什么是pow 机制,什么是pos 机制?天涯分属于什么机制?

楼主:常飞翔 时间:2018-08-11 01:46:12 点击:49 回复:5
脱水 打赏 看楼主 设置

字体:

边距:

背景:

还原:

  
  区块链是去中心化的,没有中心记账节点,所以需要全网对账本达成共识。目前有POW、POS、DPOS、POOL四种共识机制。

  今天我们用通俗的例子来分析下其中的两种:POW、POS。

  POW:有一道数学题非常难算

  POW(Proof of Work),工作量证明,引入了对一个特定值的计算工作。

  比特币采用的共识算法就是POW,矿工们在挖一个新的区块时,必须对SHA-256密码散列函数进行运算,区块中的随机散列值以一个或多个0开始。随着0数目的上升,找到这个解所需要的工作量将呈指数增长,矿工通过反复尝试找到这个解。

  在这其中,如果想要对业已出现的区块信息进行修改,攻击者必须完成该区块外加之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。

  

  用一个通俗的例子来说:

  你上学的时候,班级里发生的行为需要被记在班级的一个大家公用的账本(区块链)上。

  老师或者同学们用这个公用的账本进行记录,并且有一种专门用来支付这个账本上大家记录的、需要支付的代币,我们暂且把它叫做Good币。这些币可以兑换成钱。你们班级的公共账本不是一个大本子,而是由很多个小本子中间连接一条线组合成的。

  每个小本子的启用需要进行一个数学运算,如果一个同学算出了某个小本子附带的数学题,就开启了一个新的小本子连着前面小本子,大家就会开始用新本子记账。

  每个小本子开头都留一页,写上与其他小本子关联的信息、小本子的启用时间和开启这个小本子时算的数学题的答案。

  因为同学们学习都很忙,如果没有报酬的话,就没有人会花费大量时间去班级的小本子上帮大家记账,因此老师做了一个规定:最先算出新的小本子附带的数学难题、开启小本子的人获得Good币,用币来奖励维持班级账本正常运转的同学。

  一个期末,你得了奖,A同学算出了一个新小本子——第N个小本子带着的数学难题的解,然后帮你得奖的信息记在了小本子上,A同学获得了一笔奖励。

  B同学一直不喜欢你,他想把记录在小本子上的信息修改成B同学得奖,这样老师就会把奖金发给他。

  B同学开始计算第N个小本子上的数学难题,当他重新计算完第N个上面的数学题,其他同学已经计算出和第N个小本子连着线的第N+1个小本子的解了。

  (因为b同学算的慢,其他同学只认最长链,所以b同学算的无效)

  其他记账的同学根据最长链原则都跟在了第N+1个小本子的后面,所以B同学除非计算的速度变得很快,跟上另一条并超过,否则没办法将自己修改的错误信息的区块纳入整个账本系统中。

  所以POW共识机制的优点之一:B在攻击公共账本的时要耗费大量的时间精力和脑力,但结果却很难成功,所以如果他选择攻击,不仅得不到奖励,还会对自己造成大量的消耗,就会得不偿失——即降低不诚实节点的攻击意图。

  但,不得不说的是,攻击存在成功的可能性,如果B同学说服班上超过50%的同学一起承认错误他修改的错误的账本,那么被篡改的账本就会被达成共识。当然,就攻击这个公共账本而言,除非,超过50%的同学用被B同学的一己私欲说服。

  以这个例子来看,缺点也很明显,为了维护这个公共账本的运作,班级的同学花费了大量的时间来算这些哈希函数的难题,浪费了大量的时间和精力,表现在比特币上就是:花费了大量的电力,浪费了大量的能源。

  POS:拥有的币越多,有记账权的概率就越大?

  POS(Proof of Stake),权益证明,试图解决POW机制中大量资源被浪费的情况。这种机制通过计算你持有占总币数的百分比,包括你占有币数的时间来决定记账权。

  预告:在该处会引起不适的可能有1、2、3、4段,请大家稍作忍耐……

  在POW机制中,由于想要找到符合条件的nonce值往往需要大量的电力和时间成本,为了避免这种浪费,PoS机制采用更快速的算法:

  SHA256(SHA256(Bprev),A ,t)≤balance(A)m

  这其中,H为某个哈希函数;t为UTC时间戳;Bprev指的是上个区块;balance(A)代表账户A额余额。

  唯一可以不断调整得到参数是t,等式右边m是某个固定的实数,因此,当balance(A)越大,找到合理t的概率越大,网络中,普遍对t的范围有所限制,如可以尝试的时间不能超过标准时间戳1小时,也就是一个节点可以尝试7200次,来找到一个符合条件的t。因此在PoS中,一个账户的余额越多,在同等算力下,就越容易发现下一个区块。

  这实在是太复杂了,不知道该怎么理解……(哭脸)

  我们还是用上一个“你上学的时候,班级里发生的行为需要被记在班级公用的账本(区块链)上,老师或者同学们用这个账本进行记录”例子来说,这个时候规则变了。

  假设同学们经过前一阶段都已经持有一定数量的Good币,老师觉得大家为了争夺记账的机会,浪费的时间和精力都太多了,所以就修改了规定:

  不采用之前那种特别难的数学题的方法。通俗的来说,根据你持有币的多少和时间长短给你发利息。

  币龄(每个币每天产生1币龄)越高的人和持币越多的人越有机会得到启用小本子和帮别人记账的权利,记账又可以得到奖励。

  在期末的时候持有更多币的人会有更多的奖励,所以同学们都很勤奋地去争夺记账权。

  假设班级Good币的年利率是5%(不同的币的年利率不一样,点点币的年利率是1%;)

  现在你们班级的A同学拥有的币最多,在POS机制下,每个币每天产生1币龄,A同学拥有100个Good币,他已经持有这100个币30天,此时A同学的币龄为30✖100=3000。每产生一个区块,币龄就会被清空为0,每被清空365个币龄,就会从区块中获得0.05个币的利息。

  A同学拥有3000币龄,他通过计算启用了一个小本子,他得到的利息就是=3000✖️5%➗365=0.41个Good币。

  通过持有币的数量和时间长短来决定记账的节点,这样就省略了竞争记账造成的资源浪费。如果在POS机制中想要发起攻击,必须要收集全部币量的50%以上,不仅成本会非常大,并且执行难度非常高。

  通过这些机制,使得区块链网络之间达成共识,以此来解决去中心化网络的信任问题。(来自天涯社区客户端)

打赏

6 点赞

主帖获得的天涯分:0
来自 天涯社区客户端 | 举报 | | 楼主
楼主发言:1次 发图:0张 | 更多 |
作者:贰零壹八 时间:2018-08-11 02:35:36
  写这么多支持一下吧~
作者:zhyzjjx2018 时间:2018-08-11 02:47:28
  赞,不明觉厉。
作者:刀光2018 时间:2018-08-11 08:10:37
  科普,学习,赞一个
作者:点赞挖分 时间:2018-08-13 14:29:09
  赞赞赞
发表回复

请遵守天涯社区公约言论规则,不得违反国家法律法规