1.一种基于区块链的生成房屋历史记录的方法,其特征在于,包括以下几个步骤:步骤1:填入房屋的信息,区块链对信息进行处理,再生成房屋的第一块数据,验证第一块数据的合法性,再将第一块数据储存于整个区块链中;
步骤2:若房屋状态有变化,判断状态变化的具体情况,若房屋进行所有权人变更,则进入步骤4;否则进入步骤3;
步骤3:从整个区块链中获取第M-1块数据,其中,第M-1块数据指上一块进行验证过的数据;再填入修改信息,区块链对修改信息进行处理,生成第M块数据,验证第M块数据签名的有效性和修改内容的完整性,再将第M块数据储存于整个区块链中;
步骤4:从整个区块链中获取第N-1块数据,其中,第N-1块数据指上一块进行验证过的数据,再填入所有权人B的信息,区块链对所有权人B的信息进行处理,所有权人A变更为所有权人B,得到第N块数据,验证第N块数据,验证通过后再将第N块数据储存于整个区块链中。
2.根据权利要求1所述的,其特征在于,所述步骤1具体包括以下几个步骤:
步骤1.1:填入房屋的信息,包括房屋初始信息、机构A公钥和所有权人A公钥;
其中,房屋初始信息包括房屋数据、房屋唯一标识符、房屋坐落、房屋结构和房屋用途;
机构A公钥是对外公布且可验证的;
步骤1.2:将信息共同计算生成哈希值,即HASH[1],再用机构A私钥对HASH[1]进行签名,得到机构A签名SIGNATURE[1],将信息、HASH[1]和机构A签名SIGNATURE[1]形成房屋的第一块数据,再将第一块数据储存于整个区块链中;
步骤1.3:然后对房屋的第一块数据进行验证,验证房屋的第一块数据是否有效,若有效,则房屋的第一块数据具有完整有效性和合法性;
所述步骤3具体包括以下几个步骤:
步骤3.1:从整个区块链中获取第M-1块数据,其中,第M-1块数据指上一块进行验证过的数据;填入修改信息,将修改信息计算生成SUB_HASH[m],再用机构A私钥对SUB_HASH[m]进行签名,得到机构A签名SUB_SIGNATURE[m],修改信息、SUB_HASH[m]和机构A签名SUB_SIGNATURE[m]共同组成修改内容;
步骤3.2:修改内容、所有权人公钥和第M-1块数据共同计算生成HASH[m],再用所有权人A私钥对HASH[m]进行签名,得到所有权人A签名SIGNATURE[m],修改内容、所有权人公钥、第M-1块数据、HASH[m]和所有权人A签名SIGNATURE[m]共同组成第M块数据;
步骤3.3:对第M块数据进行验证,验证通过后将其储存于整个区块链中;
所述步骤4具体包括以下几个步骤:
步骤4.1:从整个区块链中获取第N-1块数据,其中,第N-1块数据指上一块进行验证过的数据;验证第N-1块数据的合法性,确认第N-1块数据合法;
步骤4.2:填入变更信息,将变更信息和所有权人A私钥共同计算生成HASH[n],再用所有权人私钥对HASH[n]进行签名,得到所有权人A的签名SIGNATURE[n],将变更信息、HASH[n]和所有权人A签名SIGNATURE[n]形成第N块数据;
其中,变更信息包括变更详情和所有权人B公钥;
步骤4.3:对第N块数据进行验证,验证通过后将其储存于整个区块链中。
3.根据权利要求1或2所述的,步骤1、3和4均有验证步骤,其特征在于,
步骤1的验证过程包括以下几个步骤:
步骤1.3.1:对房屋的第一块数据开始验证,先验证填入的信息;
步骤1.3.2:用第一块数据中的机构A公钥解密机构A签名SIGNATURE[1],得到明文plaintext[1],再验证明文plaintext[1]与第一块数据中的HASH[1]是否一致,若一致,则签名有效,进入下一步;否则签名无效,标记信息为不可信任的,流程停止;
步骤1.3.3:计算步骤1中信息的哈希值,得到HASH[1];验证HASH[1]与数据中的HASH[1]是否一致,若一致,则填入的信息未被篡改,进入下一步,否则信息已被篡改,标记信息为不可信任的,流程停止;
步骤1.3.4:从可信源获取发布机构A的公钥,验证机构A的公钥与信息中声称的机构A的公钥是否一致,若一致,表示信息是机构A发布的,进入下一步;否则表示信息已被篡改,标记信息为不可信任的,流程停止;
步骤1.3.5:第一块数据完整有效,验证过程完成。
步骤3的验证过程包括以下几个步骤:
步骤3.3.1:从整个区块链获取第M-1块数据,其中,第M-1块数据指上一块进行验证过的数据,验证第M-1块数据是否完整有效,若有效,进入下一步,若无效则表示第M块数据也一定无效,流程停止;
步骤3.3.2:获取第M-1块数据中的所有权人A公钥,用所有权人A公钥解密所有权A人签名SIGNATUR[m],得到明文plaintext[m],验证plaintext[m]与第M块数据中的HASH[m]是否一致,若一致,则签名有效,进入下一步;否则签名无效,标记信息为不可信任的,流程停止;
步骤3.3.3:将第M-1块数据的完整内容与第M块数据的信息一起计算出哈希值,得到info_hash[m],验证info_hash[m]与第M块数据中的HASH[m]是否一致,若一致,则信息未被篡改,第M块数据的签名有效,进入下一步;否则信息已被篡改,标记信息为不可信任的,流程停止;
步骤3.3.4:填入修改信息,包括机构A公钥和修改内容,用第M块数据中的机构A公钥解密机构A签名SUB_SIGNATURE[m],得到明文sub_plaintext[m],验证sub_plaintext[m]与第M块数据中的SUB_HASH[n]是否一致,若一致,则签名有效,进入下一步;否则签名无效,标记信息为不可信任的,流程停止;
步骤3.3.5:计算修改信息的哈希值,得到sub_info_hash[m],验证sub_info_hash[m]与第M块数据中的SUB_HASH[n]是否一致,若一致,则表示信息未被篡改,进入下一步;否则信息已被篡改,标记信息为不可信任的,流程停止;
步骤3.3.6:从可信源获取发布机构A的公钥,验证机构A的公钥与信息中声称的机构A的公钥是否一致,若一致,则表示信息是机构A修改的,进入下一步;否则表示信息不是机构A修改的,已被篡改,标记信息为不可信任的,流程停止;
步骤3.3.7:第M块数据内容具有完整性。
所述步骤4的验证过程包括以下几个步骤:
步骤4.3.1:从整个区块链获取第N-1块数据,其中,第N-1块数据指上一块进行验证过的数据,验证第N-1块数据是否完整有效,若有效,则进入下一步;否则说明第N块数据也一定无效,标记信息为不可信任的,流程停止;
步骤4.3.2:对第N块数据进行验证,首先获取第N-1块数据中的所有权人A公钥,用所有权人A公钥解密所有权人签名,得到明文S[t],验证S[t]与数据中的HASH[n]是否一致,若一致,则签名有效,进入下一步,否则签名无效,标记信息为不可信任的,流程停止;
步骤4.3.3:将上一块数据的完整内容与当前块数据的信息一起计算出哈希值,得到HASH[t],验证HASH[t]与数据中的HASH[n]是否一致,若一致,则表明信息没有被篡改,进入下一步,否则信息也被篡改,标记信息为不可信任的,流程停止;
步骤4.3.4:当前块数据中的所有权人B公钥标记了新的所有权人B,所有权人变更完成,将第N块数据储存于整个区块链。
4.根据权利要求1所述的区块链的运作流程,其特征在于,包括以下几个步骤:步骤I:当一次新的修改产生时,会先被广播到区块链网络中的其他节点;
步骤II:每个节点会将未验证的修改的哈希值收集到区块中,每个区块可能包含1次或多次修改;
步骤III:各个节点都进行验证修改的合法性,由最先完成验证的节点来发布结果;
步骤IV:最先完成的节点即取得验证权的节点将自己的区块广播给其他所有节点;
步骤V:各个节点验证并链接新的区块,其他节点验证区块中包含的修改是否有效,确认有效后,才将此区块放入区块链;
步骤VI:所有节点一旦接受新的区块,当前还未验证完的区块就为无效,修改验证完成,各个节点创建一个新区块等待进行下一回的验证计算。
5.根据权利要求1或2所述,其特征在于,所述步骤1、3和4均分为生成数据块的过程和验证过程,所述验证过程与生成数据块的过程共同进行或验证过程单独进行。