[区块链系统]
区块链是通过分布式节点的存储资源,对全网全节点进行存储同步,并通过相应的共识技术保证内部节点对存储内容更改的有效性,维护一个完整的可查找的数据库。在此系统中,存储的都是链内生成账户之间余额的更改或者总剩余,当然,更完善的一些系统功能也包括存储了多个账户对数据库中子账目的数据状态维护。
因此,该系统的主要功能是记录状态的改变,然后同步。对节点来说,无论是PoW,PoS还是PoX,其核心的要求就是遵循特定的投票规则,将新的变动同步在所有节点的存储中。
如果一个系统使用的是区块链结构,那么它是不支持用户个人数据,或者说不支持我们希望实现价值的数据的,区块链上的数据是账户数据以及结算数据,这些数据是完全相同的存储到每一个节点的。
那么什么又是分布式存储系统呢?
分布式存储系统是分享分布式节点的存储资源,通过文件完整性证明和纠删码校验技术对数据存储方的数据进行分布式管理,全网的节点并不维护相同的存储信息得以降低冗余的一种分布式系统(区块链系统中全网的节点维护相同的存储信息)。
回到本文一开始提到的消费数据的例子,现有的互联网公司是通过数据的分布式存储,通过RAFT和多级灾备等方式,做适当备份来保证数据不丢失,建立起一个能储存海量数据,并有效率、低开销的系统。
也就是说在分布式存储系统这个部分,几乎所有的公司都达成一个共识,就是分布式存储是现阶段实现大量数据存储的*好的一种方法。无论区块链存在不存在,分布式存储系统已经是一个相对来说比较完善、并且已经广泛用在实际生活中的系统了。
提供分布式存储的区块链系统
在厘清区块链系统和分布式存储系统这两种不同的分布式系统后,我们接着讨论提供分布式存储的区块链系统。提供分布式存储的区块链系统是一种不同于一般公链的区块链系统,它是分布式存储+特殊的区块链系统设计。
一个普通的区块链系统,其核心逻辑在于覆盖所有与账户有关的交易属性上,比如账户(公私钥)、账户转账(签名系统和共识系统)、以及条件状态下的转账(操作码和其对应的编码方式)。
而一个提供数据存储的区块链系统除了需要覆盖以上三个属性之外,由于其提供了存储属性,为了确保存储的状态未来也可以对条件进行制约,需要在其操作码上进行判断逻辑的添加,以保证将存储产生的状态、数据支持的状态都能在链上得到追溯,这就是我们需要对提供存储的区块链系统进行特殊设计的原因。
具体而言就是,区块链是需要对特定条件下的数据状态进行维护的,状态被保护起来才能保证交易正确之后状态相应改变了。那么如果分布式存储的状态没有通过相应的设计与区块链系统结合的话,就会出现自动执行的一个空隙,如果状态的空隙被人利用的话,就会出现存储过程状态提前被记录,或者滞后被记录,这会影响到区块链系统中账户余额,也就是产生了系统不安全的空间。
因此,提供分布式存储的区块链系统和一般公链系统不同的部分主要就体现在「状态」这部分,记录某些状态并作出账户上的反馈。
另外,存储相关状态也使得智能合约可以及时获取状态,从而可以设计出一个能够使用外部数据的子账本,这样在工程上能更好的流程化,也会降低用户由于预言机导致的链上资产损失的可能性