Loading

区块链是否有储存状态

2020-04-22 14:52:28 23

       区块链又经常被称为“账本”,既然是账本,那么最重要的用途就是记账,记录每笔交易的重要数据,以便将来以此作为套账和进免纠纷的依据。区块结构中最核心的部分就是用来存储交易的信息(状态) ,因此可以说没有状态存储就不会有区块链。需要注意的是,这里的交易服指的是广义的交易,并不限于货币和金融的交易,一切会产生数据状态变化的事务都称之为交易,例如:账户的创建、商品信息的变化,甚至对于一次查询的审计信息的记录等都可以算作交易。

   什么样的数据不适合上链以及什么样的数据适合上链?

  首先来看什么样的数据不适合上链。从业务角度看,不需要共享的数据不适合上链。例如用户的私钥,是用户绝对不想与其他人分享的信息,如果上链,就意味着私钥会被每一个参与者获取并存储,即便是被加密也会有泄漏的风险,因此没有必要上链。从性能角度看,过于庞大的数据和更新过于频繁的数据也不适合上链。例如用户上传的一些二进制的介质、音频、日志文件等。因为区块上存储的数据作为链的一部分是会被永久保存并同步到每一个参与节点用来保证完整性的,如果存储的数据过于庞大,则会严重影响同步性能,占用有限的存储空间。另外由于当前区块链的交易需要通过密码学算法进行哈希和加解密的签名运算,交易的最终数据也需要通过共识算法进行排序才能最终落块,在性能上还有一定的限制,因此过于频繁的操作还不太适用区块链。

  那么什么样的数据适合上链呢?

    简单来说就是需要共享的、需要具备可信度、不能被篡改并且需要可追溯的数据。例如保险行业的保单信息,用户签署了什么样的保险协议,需要套中只有被妥善保存.将来出险的时候必须以此为依据进行理赔.因为不可也因为可以共享和追溯,且产生纠纷也可以由监管部门追溯取证。再如能源行业,如果使信服?用区块链来记录电量的交易,那么拥有光伏发电的家庭就可以和需要用电的家庭进行自由交其次易,每一笔电量的产生和去向都有清晰的历史被区块链记录在案,不能篡改,同时支持发电方收器中心和用电方进行查询和追溯,哪家发了电,哪家用了电,交易清晰无法抵赖,避免了纠纷,是使用带来中区块链的合适场景。

  此外说到状态存储,就不得不提及信息安全,这也是当前区块链大规模普及的障碍之一和扩展性,我们都知道区块链之所以难以篡改,就是因为每一个参与交易的节点都拥有完整的区块链账处于数本数据,可以对任何交易或账户状态进行验证。但是这样也带来一个严重的安全问题,就是岛各区块链账本数据对所有人公开了,而在很多场景下,这样的做法是难以被接受的。拿货币转不能账的交易举例来说:用户A一开始在系统中存人了一定金额的货币,用户B也存入了一定金移居额的货币,随后用户A向用户B进行了一定金额的转账,因为用户A和用户B的余额都存储在区块链上,智能合约的逻辑可以验证用户A的余额大于转账金额,并且把交易结果写回到的情区块链上,对用户A和用户B的余额进行更新,最终这笔交易新生成的区块中后,区块会进行被同步到用户A和用户B相关的节点上,他们都可以查询到这笔交易以及自己当前账户的余额。但是很多情况下,作为用户来说,并不希望自己的余额被其他用户看到,作为交易的双方到也不希望交易的详细信息被第三者读取到。

  同态加密就是智能合约在存储用户的余额状态到区块链上时,存储的并不是明文,而是使用相应用户非对称密钥的公钥通过同态加密算法加密之后的数据。在同态加密交易过程中,转账双方的余额都没有经过解密,并且交易记录存储到区块链上之后只能被交易双方解密查看,第三方只能看到密文,无法解密。这样既达到了区块链无法篡改、可以被追溯和监控的目的,又能保护用户隐私不被泄露。