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