Blockchain Funds-Technology Federation

17 Jul 2018 • jolestar

链圈币圈三句话不离『共识』,但共识具体指什么?一种是社会学上的共识,即社会成员如何就价值的认可达成一致看法。一种是技术层面的共识,多个机器如何对数据达成一致看法。

在区块链中,这两种共识有什么关系呢?首先机器的共识是社会共识的基础,而社会共识是机器共识的目标。所有的公链都可以理解成一个全球公用的账本,无论链上记录的是加密币的交易信息,还是 DApp 的执行结果,还是版权信息等,这个账本的价值不仅取决于上面记录了多少内容,同时也取决于有多少人认可上面的记录(社会共识)。而公链提供的去中心化,不可篡改等特性的根本目标则是让更多的人认可其价值,其中依赖的关键的点则是公链的共识算法。

共识算法这个在区块链之前的分布式系统上就已经得到了充分的应用。分布式系统的共识算法有 Paxos,Raft,BFT(Byzantine fault tolerance) 等,解决了大型分布式系统中的众多机器如何就全局状态达成一致的认识的问题,主要方法是通过多阶段的提交和投票来实现。而区块链提出了新的问题:

如何在无准入限制,节点数不确定的情况下实现共识?更进一步的问题是:

  1. 如何确定参与节点的唯一 ID?比如有人可以把一台机器模拟成多台,在投票中占据优势。(所谓女巫攻击)
  2. 如何防止坏的节点伪造数据?分布式系统中的共识算法一般假定节点会出故障,但不会欺骗。但无准入限制情况下,则不能做这个假设。
  3. 如何选择 leader ,同时避免 leader 被攻击?主流的分布式共识算法一般都有选 leader 的过程,一段时间内 leader 负责对数据排序,实现一致性。
  4. 节点数不确定,如何确认最终实现一致了呢?

这几个问题按照传统的方式是无解的,但比特币通过 PoW 在共识算法中引入经济博弈解决了这几个问题:

  1. 如果是纯算力竞争,则伪造节点无意义。
  2. 如果所有节点对其他节点的数据都不信任,都做重复校验,同时有 PoW 带来的经济成本,坏节点无利可图。
  3. 先假定每个节点都是 leader,各节点独自打包数据,等解决 PoW 谜题的一刻对外公布区块,成为 leader,但这时候数据已经被打包完成,该节点已经没有被攻击的价值。
  4. 不试图达到完全的最终一致状态,而是通过延迟确认达到一个概率,比如交易后等待 6 个区块确认。

但 PoW 同时也带来了新的问题,比如效率的问题,比如资源浪费的问题。于是业界也在探索其他的共识算法,比如 PoS。

PoS 的思路是首先通过抵押金来实现 ID 认证,按抵押金数量来分配出块权重,消除伪造节点的动机。而其他几个问题的解决方案则有不同的实现。

PoS 带来的一个问题就是,当出块成本很低的情况下,一旦有恶意节点分叉,其他节点可能会跟随同时出多个分叉链的块(Nothing at Stake)。所以必须引入其他方式来避免这种情况,Ethereum Casper 通过抵押金惩罚机制,而 Algorand 则引入 BFT 协议,避免分叉,同时改进 BFT 协议,使其可应用到大规模的网络中。

选举机制上,Algorand 则引入了 VRF (可验证的随机函数 Verifiable Random Functions) 来实现抽签选举。通过这个机制,它可以实现随机选择委员会成员(BFT 协议的投票成员),同时可以避免成员暴露,降低被攻击的风险。

另外一种共识的探索思路是 DPoS。 PoW 引入了经济学上的博弈,而 DPoS 本身实际上引入了社会学上的博弈。它通过选举机制,把出块节点后面的个体和组织暴露出来,通过社会群体约束出块节点,降低出块节点作恶的概率。但它同时也带来了许多技术问题,比如出块节点的选举,投票机制,如何解决类似 Nothing at Stake 的问题。

这次 Meetup 主题方向是『区块链共识算法』,我们邀请了区块链业界的专家,通过理论以及实践角度给大家详解以上的问题。

Algorand 的基本原理

演讲嘉宾:张季恒 香港科技大学工业工程与决策分析系与数学系终身教授。 详解 Algorand 的基本原理,Algorand 是如何利用 VRF 选举,它的 BA 协议和标准的 BFT 协议有什么区别?

区块链中VRF(可验证随机函数)的应用及原理解析

演讲嘉宾:黄祺 Tarax Network 联合创始人 & CTO 详细分析 VRF 的原理,以及在区块链上的应用场景。

以太坊 DPoS 实践以及开源 DPoS 分析

演讲嘉宾:孙小俊 美图云事业部系统研发工程师。 分享他们改造以太坊,以实现 DPoS 的经验,同时比较和开源 DPoS 的各种实现之间的区别。

深入理解以太坊 Casper

演讲嘉宾:姜家志 BCH社区资深开发者 详解以太坊的 Casper,它是如何解决前面提到的问题的。

同时还有几个闪电演讲的空缺,如果有对区块链共识算法的新的见解,可以通过 10 分钟的闪电演讲和大家分享,请在报名链接中注明。

这次 Meetup 主要以交流为主,名额有限,区块链技术研发人员优先。非科普内容,请参会者提前对所讲的议题进行初步了解,避免到时候跟不上讲师的内容。

报名地址:https://www.bagevent.com/event/1655107 报名二维码:

img