区块链共识分析的简单框架

共识

#21

Ethereum 2.0 是 RANDAO + VDF 我记得?VDF 单独是无法工作的,必须指定输入,不同的输入其实会影响实际效果。


#22

指定输入是指什么?详细说说?


#23

VDF 是一个函数 f : \mathcal{X} \to \mathcal{Y} 。尽管它的性质要求它对于任意 x \in \mathcal{X} 都必须有唯一一个合法的 y \in \mathcal{Y} ,并且计算这个函数需要一个给定的时间,但是它还是必须要有输入 x 。不平凡的是,这个输入 x 在 Distributed Randomness Beacon (以下简称 DRB) 的场景下,最终必须是每一个节点间的公共知识,这样才能保证 DRB 输出的结果对于诚实节点是唯一的;并且这样的 x 应具有一定的熵 (反例如选择块高度作为 x ,攻击者可以轻易通过提前计算来预知 DRB) 且 \mathcal{X} 需要足够大(否则可以穷举 x ,也叫 Offline Attack)。因此,当 VDF 作为一个工具去构建 DRB 的时候,确定 VDF 的输入源是什么并不是一个平凡的问题。

Dan 在他的论文中提到,我们可以使用股票价格,PoW 区块链中的 nonce 和 Merkle Tree root 以及 “commit-and-reveal” 协议的输出 (例如 RANDAO) 作为 VDF 的输入 x


#24

对于使用随机方式出块的区块链中随机数生成的分析: 区块链上的随机性(二)项目分析


#25

Eth 2.0 为什么不简单地用 block hash 做 VDF 的输入呢?跟它的 PoS 共识有关吗?


#26

没有太大的关系。参见 Justin Drake 的 Minimal VDF randomness beacon,里面提到,这样的设计是为了保证 VDF 的时间屏障被攻破之后仍能保证一定的随机数安全性(这个时候回落到只有 RANDAO 的情况)。


#27

对 Honey Badger(HBBFT) 的分析

应用 Jan 的分析框架分析一个异步共识协议 HBBFT:

  1. 从进入方式来看,和 Tendermint 一样,通过抵押代币的方式。
  2. 从出块选择上看,它不是轮流出块,而是所有的节点从自己的交易池中随机选出 1/N 的交易用门限签名的方式进行签名,并广播。
  3. 从共识方式看,HBBFT 通过一个可靠网络传输协议传输是用门限签名加密的交易,每个节点通过 BA 协议(与 Algorand 中的 BA 协议几乎相同)形成一致的列表。每个节点对列表中的值(交易)进行解密并广播,在收到 f + 1 个解密消息之后,即可解密整个共识的交易。对所有的交易进行排序以去除重复的交易。
  4. 从退出方式看解除抵押即可退出。
  5. 一致性和活性的要求上与 Tendermint 相同,攻击者 < 33% 的代币。
  6. 从效率上看延迟较低。
  7. HBBFT 的带宽效率很高,在收到交易的时候节点会将交易平均分成 N - 1 份,发送给其他节点,其他节点再互相转发,提高了整体带宽的利用率。
  8. HBBFT 因为采用门限签名,在不使用第三方的情况下,门限签名需要分布式秘钥生成,这个是比较消耗时间的。并且每一次更换共识列表都需要重新进行秘钥生成,所以这也限制了进出共识的灵活性。
  9. 从节点数量上来看,节点数量较高。因为是纯异步的共识协议,在延迟上要高于 Tendermint,但是其节点数量要高于 Tendermint,在不同节点数量下的表现参见下图: