上一期的分享,我们了解到了分布式帐本带来的信任。那么有同学就要问了,人家记帐的小本本不用花钱买吗?记帐不要花时间吗?不能要求人人都是活雷锋吧?所以,为了体现多劳多得的原则,我们必须要给记帐人一定的报酬才行,不然人家哪来的动力来记帐。
文 | 王映
图 | 闫燕
按劳分配体现在区块链里,就是记帐数量的多少,谁记得多,谁获得的报酬就多。这样就产生了一个新的问题,所有人都在争取记帐权,以谁的帐本为准呢?在区块链里,每次会给第一个完成记帐的人付一定的报酬。为了争取第一,每个人就要付出比其他人更多的劳动才行。
所以在区块链里,对记帐也有一定的要求,不只是记录事件,还要提供一个合法的记帐标识。这个记帐标识,如同数学猜谜一般,十分困难,需要仔细花很长时间才能算出来。有人算得快,有人算得慢,有人运气好,有人运气差,计算出正确结果的时间就会有差异,最早计算出结果的这个人,把他的计算结果公布出来,大家核对无误后,就予以认可,得到记帐权,获取记帐收入。
计算数据难题的过程,类似于:由某人随便写一个很长的数字,其他人来猜这个数字是多少。从数学角度来看,目前除了逐一遍历试错之外,没有其它更好的方式。所以大家机会是均等的。
大家可能要问了,为什么要搞这么麻烦呢?又是猜谜,又是核对的。这是为了区分出谁是真正合格的记帐人。不然大家都要记帐,都要获取收益,同时举手发言,发该选谁呢?随便选的话,岂不是要天下大乱啦。所以总要有一个大家都认可的规则,来明确记帐权的归属,以及记帐奖励的分配机制。
接下来,其他人就把这个新增的帐本页原封不动地抄写进自己的小本本里,形成公认的共同大帐本。但这个抄写的过程就不再有奖励了。
记帐收入其实有两部分,一个是前面所说的计算出正确结果后,会派发固定金额的奖励。另一部分是对记帐内容的手续费。比如上面A和B之前的交易,收钱1分钱做为手续费。
当然,一页帐本上不只一个交易,可能包含2000个左右的交易,每个交易都收取一定的手续费,总的手续费还是很可观的。
一个交易被记入帐本,我们称之为“打包”。被打包的交易,在下一次记帐时就不会再被记帐了。下一次打包进入帐本的交易,是新产生的交易,或者之前尚未被打包进帐本里的早期交易。每个交易只被打包一次。如果在一次记帐时,把一笔交易进行了再次记录,则其他人员不会接受这次记帐,不会被写入大帐本,所以之前所说的数学难题就白做了。这保证了记帐的人不会为了多得手续费而重复记帐。
由于这种记帐方式是分布式的,每个人都有备份信息,所以整体大帐本是无法篡改的,任何人企图修改信息都会被其他人发现,不会得到大家的确认,且会立即丧失公信力,进入信任黑名单,影响到对以后记帐权的争取。所以失信的代价是很大的,从而确保大家都按正规的流程和规则来正确记帐。
记帐的过程本身并不制定政策,政策是线下制定好的,线上只按代码运行和判断,起到公证人的角色。其透明、可复制、不可更改的特点,使得所有政策变得公开和透明。所以说区块链最核心的问题就是解决信用共识的问题。
也许有人会问,既然是代码执行的,我又看不懂代码的执行过程,为什么要相信它呢?可以举个例子,假如你不懂英语或者不熟练,看不懂晦涩英文条款。但总有很多人是即懂中文又懂英文的,这些人在一起商讨出来的政策,也会得到大家的认可。就像联合国的决议,即使你看不懂,也会认可它,因为你信任“大多数”人的正确性。区块链使用开源代码,和联合国决议类似,向公众开放,所有的程序员都可以看到它的设计思路和执行方式,即使你不懂代码,也完全可以信任能看懂这些代码的“大多数”人,如果代码有问题或设计思路不够公允,任何懂它的人都可以指出,当大部分人都接受这些方案时,你也选择认可就没错了。
到目前为止我们所谈论的区块链,都是以比特币所使用的区块链技术为基础的。比特币系统是如何运转的,我们将在下一次为大家介绍,欢迎大家持续关注,谢谢!
网友评论