区块链中的工作量证明和股权证明

作者: 老码农不上班 | 来源:发表于2017-11-21 11:55 被阅读1128次

工作量证明 PoW

工作量证明早期应用在抵抗网络攻击(例如 DDOS),中本聪首次把它应用到区块链技术中。比特币使用 Hashcash ,该算法可分解为如下步骤:

  1. 取一些公开的数据(在比特币中取区块头的数据)
  2. 给这个公开数据添加一个计数器。计数器默认从 0 开始(在区块链中计数器就是 nonce)
  3. 将 data(数据) 和 counter(计数器) 组合到一起,获得一个哈希
  4. 检查哈希是否符合一定的条件:
    • 如果符合条件,结束
    • 如果不符合,增加计数器,重复步骤 3-4

Hashcash 原始的实现要求一个哈希的前 20 位必须是 0 , 但在比特币系统中算 0 的位数为动态变化,保证每 10 分钟生成一个块。在编码实现时,我们需要把公开数据(在比特币中取区块头)加 nonce 做哈希运算,然后和设定的难度比较,小于难度值则认为运算正确。

...
// Run performs a proof-of-work
func (pow *ProofOfWork) Run() (int, []byte) {
    var hashInt big.Int
    var hash [32]byte
    nonce := 0

    fmt.Printf("Mining a new block")
    for nonce < maxNonce {
        data := pow.prepareData(nonce)

        hash = sha256.Sum256(data)
        fmt.Printf("\r%x", hash)
        hashInt.SetBytes(hash[:])

        if hashInt.Cmp(pow.target) == -1 {
            break
        } else {
            nonce++
        }
    }
    fmt.Print("\n\n")

    return nonce, hash[:]
}
...

股权证明 PoS

PoS 试图解决 PoW 中大量资源被浪费的缺点。它的安全性不是来自矿机的性能,而是来自提高经济损失的经济价值。

区块链维护一个验证人的集合,验证者轮流对块提名并投票,每个验证者的投票权重取决于其存款的大小。 持币的节点通过发送某种特定类型的交易把币作为锁定的保障金之后成为一个验证者,然后区块链当前有效的验证者基于某种共识算法产生并确认一个新块。

共识算法通过奖励验证者提高矿工的积极性,从算法层面可把这些共识算法分为:

  • 基于链的 PoS:在固定的时间周期内随机选定一个验证者并赋权于它新建一个块。新块(包含上个块的哈希值)被追加到当前最长链的父区块上。
  • 拜占庭容错的 PoS:基于BFT的PoS协议伪随机的安排一个验证者在多轮投票的过程中提出一个区块。但是,提交和最终确认的区块取决于大多数验证者的投票(所有验证者中2/3的验证者在提交的区块中签名)

当前实现了 PoS 的协议有 Casper 和 Tendermint ,他们最大的不同点如下:

这里比较简单的回答是 Casper 重点关注活跃度(可用性)和可以接受相对不实时的安全(正确性)。虽然 Tendermint 是一个伟大的项目,但他的缺点是,如果检查点没有得到三分之二的投票,那么链出块将会停止。这就是为什么以太坊选择在 Casper 上做工作而不是使用 Tendermint 的原因。

Tendermint是基于拜占庭容错的PoS设计;Casper 有两种实现方式:

  • CTFG (由Vlad Zamfir带领研究的Casper the Friendly Ghost)基于链的 PoS 设计
  • CFFG (由Vitalik Buterin带领研究Casper the Friendly Finality Gadget)则混合了 PoW 和 PoS

开源代码

参考阅读

相关文章

  • hyperledger fabric (三)

    区块链中的共识机制: 常用的共识算法有: POW 工作量证明 POS 股权证明机制 DPOS 授权股权证明 PBF...

  • 由浅入深学通证经济007

    在上篇文章中,我们讲到了区块链中的共识机制,其中工作量证明机制(PoW)和股权证明机制(PoS)在区块链中被广泛使...

  • 共识之工作量证明机制(PoW)

    在上篇文章中,我们讲到了区块链中的共识机制,其中工作量证明机制(PoW)和股权证明机制(PoS)在区块链中被广泛使...

  • #F080代币咋算出来的?PoW,PoS,DPoS 综述

    工作量证明(Proof of work)和 股权证明(Proof of stake)是区块链理论研究中重要的两个概...

  • 区块链概况整理

    区块链的一些概念 区块链三要素 共享帐本 共识算法工作量证明机制(PoW,Proof of Work)股权证明机制...

  • 区块链世界常用共识机制分析

    现在区块链常用的共识机制有:POW(工作量证明)、POS(股权(权益)证明共识机制)、DPOS(受托人共识机制)及...

  • 小巴成长记-区块链的共识机制(二)

    目前,区块链的共识机制主要有工作量证明、权益证明和最长链机制共识。工作量证明和权益证明我们之前有介绍过,现在我们来...

  • 区块链中的工作量证明和股权证明

    工作量证明 PoW 工作量证明早期应用在抵抗网络攻击(例如 DDOS),中本聪首次把它应用到区块链技术中。比特币使...

  • 共识机制

    POW 工作量证明机制 顾名思义,是指工作量的证明,通过你的工作量来证明你是可信任的,在区块链网络中通过运...

  • 区块链Demo

    刚接触区块链,百度了下,发现有人用Golang编写了一些区块链的链构建过程和工作量证明的代码,发现工作量证明的代码...

网友评论

    本文标题:区块链中的工作量证明和股权证明

    本文链接:https://www.haomeiwen.com/subject/ybnivxtx.html