今天,我们将延续昨天的话题,讲解区块链的记账方式是如何制造信任的机器的。
01 传统的记账方式
记账是一件我们非常熟悉的事情。特别是现在,我们出门不需要带现金,我们的钱就是我们在银行账户、支付宝或微信钱包里对各种收支进行记账计算后的余额。
那么什么是记账呢?举个例子:
小张每个月的工资是1万元,在发放工资的过程中,银行会记录:公司账户减去1万元,小张账户增加1万元。发放工资后,小张在双十一使用微信支付购买了一件衣服,花费了500元,这时微信会记录:小张的账户减去500元,商家的账户增加500元。
我们能够认可这样的记账方式,是因为我们对于记账者(银行、微信支付等第三方机构)有信任。然而,这些都属于中心化的记账系统,很难避免因为系统故障、公司倒闭或其他原因导致的记账失效或失真。
如果每个人都有一个账本,并且大家共同参与记账,账本实时同步,那么账本就会变得公开透明、真实可靠。这样,任何一方出现问题,都不会影响记账的安全运作。与由个别机构进行记账相比,这显然是一种更好的记账方式,这也是区块链的记账方式。
02 区块链的记账方式
在区块链系统中,通过一套竞争规则来选取记账人,并且参与竞争的人都有机会成为记账人。我们可以假设这个规则是拼魔方竞赛,谁最先完成魔方的拼接,谁就获得记账权。这体现了区块链记账的一个特点:非中心化的记账。通过玩魔方游戏随机产生记账人,确保记账人不再依赖于某个中心化机构。
每一次魔方竞赛中,只有一名获胜者,他将进行记账,并将记账信息打包生成一个数据包,这个数据包被称为区块(即挖掘出一个新区块)。其他玩家验证无误后,将这个新区块复制(下载同步)到自己维护的区块链上,这就保证了所有玩家虽然分布式记账,但所有人的账本数据是一致的(区块链上的信息相同)。这展示了区块链记账的第二个特点,所有节点(参与游戏的玩家)维护的账本是一样的,对账非常方便。
那么怎样保证记账人不会作弊或记假账呢?
这是通过验证和奖励机制实现的。所有玩家都会验证获胜玩家记账的真实性。如果记假账,其他玩家就不认可这次记账,获胜玩家就白白浪费了一次记账机会。而且,每次获得记账权都意味着丰厚的奖励,记假账就等于自动放弃奖励。所以,获胜玩家出于利益考虑,不会记假账。
即使有人故意捣乱,最终也无法通过其他玩家的验证,因为只有正确的记账才会被所有玩家认可。这就保证了记账数据的正确性。
一次记账完成后,就会产生一个新的区块,这个区块的信息是固定的,它有自己独特的数据指纹(即哈希值)。通过对该区块进行哈希运算,可以生成该区块的哈希值。只要该区块发生任何变化,其哈希值就会发生巨大的改变。
在下一轮游戏中,新的获胜玩家会记录新一页账单(挖出新区块)。新账单的头部(区块头)需要记录上一页账单的数据指纹(上一个区块的哈希值),这就保证了上一页账单和当前账单建立了明确顺序的紧密关联。
如果上一页账单的数据被修改,那么它的哈希值也会发生改变,无法与下一页账单中记录的哈希值对应。所有玩家都能够识别出这是一个被篡改的无效链,并且将其抛弃。
上一个区块的头部还记录了上上个区块的哈希值,这样整个区块链就构成一个环环相扣的链条,有严格的先后顺序。只要某个区块的数据被篡改,其后所有区块的记账数据都会发生改变,可谓“牵一发而动全身”。这就是区块链记账的第三个特点:链上的所有区块环环相扣,通过算法保证全链信息无法篡改。
小结
区块链通过竞争机制来产生记账权,确保了记账节点的去中心化以及所有记账节点账本数据的一致性。通过新区块引用上一区块的哈希值的方式,保证了全链数据具有严格的先后顺序和不可篡改的属性。通过以上方式,区块链确保了上面的交易信息都是可信的,所以我们说区块链是制造信任的机器。