区块链基础概念–去中心化

基于《区块链-技术驱动金融》一书


首先是几个问题:

1.谁在维护交易账本?
2.谁有权利批准哪个交易是正当有效的?
3.谁在制造新的比特币?
4.谁在制定系统变化规则?
5.比特币是如何取得交易价值的?


分布式共识(distributed consensus)


在一个有n个节点的系统中,每一个节点都有一个输入值,其中一些节点具有故障,甚至是恶意的。一个分布式共识协议有以下两个属性:

  • 输入值的中止须经所有诚实节点来确定。
  • 这个输入值必须由诚实节点来生成。

比特币协议达成共识的两大障碍:

  • 信息延迟和节点死机

  • 恶意节点

隐形共识

共识算法(PoW):

  1. 新的交易被广播到所有节点上。
  2. 每个节点都将新的交易放进一个区块。
  3. 在每个回合,一个随机的节点可以广播它的区块。
  4. 其他节点可以选择接受这个区块,前提是如果区块里的交易都是正当的(有真的签名)。
  5. 节点们可以把以上区块的哈希值放进自己的区块里,以此来表示它们对那个新区块的认可。

基于该共识算法被认为是安全的。

  • 窃取攻击:基于签名算法的安全性

  • 拒绝服务攻击:攻击者不把被攻击者的任何交易放进其提议的区块中,由于节点是随机选中的,被攻击者只需等到下一个诚实节点再放进诚实节点提议的区块中即可

  • 双重支付攻击: 攻击者在支付比特币后恰巧成为下回合被选中的节点,这样他可以产生一个包含指向之前区块指针的区块(忽略之前交易形成的区块),然后继续产生一个交易放在这个区块上。这样他之前的支付交易就无效了。所以我们需要长期共识链结构来比避免这个问题。即从商家的角度,需要其谨慎地等待交易形成的区块被足够多的确认后,再判断是否继续交易。


两种奖励机制


  • 区块奖励:创建区块的节点,在该区块被区块被纳入长期共识链后才能获得报酬。(存在比特币发放总量的上界)

  • 交易费:任何交易的制造者都可以选择让交易输出值比输入值小。

可能产生的问题是,大家都想成为这个节点来获得奖励从而导致系统不稳定,另外攻击者产生大量女巫节点来颠覆共识共识过程。


工作量证明


计算能力的比例决定了节点被自动选中的概率

即临时随机数,前序块的hash值以及包含该节点提议的一系列交易形成整个字符串,然后对其计算hash函数,输出要落在一个很小的目标区间内:

H(nonce‖prev_hash‖tx‖tx‖…‖tx) < target

特性:

  • 计算复杂度高
  • 成本可参数化,不是固定值
  • 易于证实