首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分分钟了解区块链

区块链就是个账本,记录着所有参与交易人的交易记录。账本的每一页叫做一个区块(Block),把他们按顺序装订在一起就是区块链(Block Chain)

为了防止账本被某个恶意的家伙破坏或者销毁,每个参与交易的人都保留这样一个账本,记一模一样账。这就叫去中心化。

账本的每一页上除了正常的交易记录之外,还要额外记录两串数字:

本页的校验码。就是本页上的那些交易记录经过哈希运算(HASH)得到的一串数字;

本页的标识码。就是用账本前一页的标识码、前一页的验证码和其它一些信息,再进行一次哈希运算得到的一串数字。

有了这两串数字,那么本页和之前所有页上的交易记录就不能够再改动了。因为如果某一页的账目被篡改,它就跟校验码和标识码这两串数字对不上了。这时候大家就纷纷把自己的账本上这一页的内容拿出来对照,能跟这俩码对上的才是真实的原始账目。这就叫通过加密算法实现不可篡改。

实际交易发生的时候,每一笔交易都会由交易人通知给每个有账本的人。大家核对之后都在自己的账本上记一笔。当交易记录又写满了一页的时候,大家就开始计算前面说的那两串数字。第一个计算出来的人,把他的整页交易记录和计算结果和诉大家。大家按着验算一遍,如果无误,那就用这个人的记账内容把各自的这页账本补全。这就叫共识算法

然而有人想偷懒:让雷锋去记账和计算那两串数好了,我就等着现成的结果进行验算和抄账。当每个人都这么想,就没人愿意当雷锋记账和计算了。于是我们决定给雷锋一些奖励,谁辛苦记账和计算,谁就能从交易中抽取一笔手续费,同时还能得到一笔可观的奖金。

这下热闹了,从没人愿意记账变成了人人争着记账赚钱。那就设计个游戏规则让大家竞争。我们把前面计算校验码的方法稍微改一下,参与哈希计算的除了交易记录之外,另外增加一个随机数。然后对于计算结果的那一串数字做一些要求,比如必须小于某个数才算有效。

当交易记录记满了一叶账本的时候,就开始了一场计算比赛。他们选取一个随机数,和交易记录一起进行哈希运算。之后检查计算结果是否满足要求。如果不满足,那就换一个随机数重新算,循环往复。第一个计算出满足要求的结果的人,像上面讲过的一样,把他的整页交易记录和计算结果,当然还有那个关键的随机数告诉大家。大家验算、抄账。而那个计算出结果的幸运儿则顺利拿到应得的奖励。这就是比特币(BTC)特有的共识算法,叫做工作量证明(POW,Proof of Work)。而为了获得记账奖励而争着计算,就叫做挖矿。

随着挖矿的人越来越多,计算能力的竞争级别越来越高,依靠个人的那点计算能力想要独占奖金越来越不可能。于是大家决定抱团取暖,把各自的计算能力集中在一起组队竞争,赚到的奖金按照贡献分配,实现合作共赢。这就叫做矿场

为了维持算力竞争,对计算结果的要求条件越来越苛刻,挖矿难度越来越大。使得挖矿成为了又慢又难的活儿。慢直接拖累了交易速度。难直接拖累了挖矿成本,甚至有时挖矿获得的奖金覆盖不住成本。更悲惨的是如果运气不好,也许你刚刚计算出一串满足要求的数字打算发出,却收到了其它竞争对手发来的计算结果。之前的全部计算都打了水漂。

既然算力竞争机制有缺陷,那么选举制度怎么样?废除增加计算难度的随机数和计算结果约束。每当写满一页账本,就搞个全民公投或者股东大会。每个人凭借自己手里的资产多少加权进行投票,选出一个人来记账和简单的哈希计算。这种不用于PoW的共识算法就叫做权益证明(PoS,Proof of Stack)。

可是全民公投这种事偶尔搞一次还好,每记账一页都搞一次就有点不大现实,尤其是选举人数量众多而且分布在世界各地。那既然全民公投不切实际,代议制怎么样?搞个人民代表大会或者董事会。每个人凭借自己手里的资产多少加权进行投票,选出奇数比如21个人来。这些人要么轮流负责记账和计算,要么再进行二次选举,再选出个人来记账和计算。这就是EOS币采用的共识算法,叫做委托权益证明(DPoS,Delegated Proof of Stack)。

今天就说到这里吧,下次再接着说。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180609G1OFKF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券