公平的三元平衡

现实世界,不可能每个人都像专业开发者一样实时在线,但是每个经济体参与者都有一定的货币积累。这个时候DPOS委托权益证明(Delegated proof of stake),就可以盘活这批资产,好比金融里的代客理财,或者政治里的人民代表。这给区块链经济带来了新的层次,之后所有现实社会里的合作模式,都会逐渐体现在区块链上。但DPOS只满足放松条件的DBFT容错,这和真正的BFT之间有一个选举代理人的差异,所以不免会被人担心中心化风险。但我们说去中心不是区块链的目的,真正目的是修复社会性缺陷。而经济学也早已证明,在经济规律面前,少数寡头,只要通过频繁换选避免私下协作,就可以保证市场化效率。DPOS正是利用这一规律,通过少量代理人集中资源,加速区块链的执行效率。这种模式一般在少于1/3恶意节点的情况下能保证系统一致性,在公平和效率间建立多元平衡。

DPOS的代理人陷阱

实践DPOS的项目不少,但是简单的应用显然无法满足区块链新项目的胃口。一种寻找平衡更激进的方式“政治碎片化”诞生了。虽然我们说DPOS里区块的交易认证和经济激励体系已经高效的去中心化了,但系统的升级和迭代目前还是以开发者社区为主,有一定门槛。EOS试图打破这种形式,他为期1年的ICO完成之后,背后的block.one公司拿走部分融资收益直接退出维护工作,由社区竞争21个代理人席位,决定之后项目的走向。这21个代理人,就相当于议会,扮演了政治角色。这对于EOS体系内的玩家,增加了参与性,而对于能够独立创链的外部玩家,又提供了一个体系内创新的机会。但更加的开放,也隐藏了一种代理人杠杆攻击:

假设一:代理人具有可观的代理收益
假设二:选举时大部分票数分散在选民手里
假设三:选民都是逐利的

推论一:竞选者会形成寡头并阻碍竞争,使选民损失

证明:

  1. 一般竞争者将代理收益的一定比例返还以竞争选票
  2. 恶意攻击者逐渐提高返现比例以争夺领先地位。在对手保持不变的情况下,每提高1%的返现比例,会获得远大于1%的选池扩张,最终有利可图
  3. 对手一定有所反击,选票价格逐渐提高,恶意竞争下必然到达某一返现比例,使正常经营的矿工无法覆盖运营成本,导致亏损运营或者退出竞选
  4. 在缺乏恶意竞争监管的区块链世界,最终经营成本最低的矿工都无力负担,市场上只剩下恶意竞争者。恶意攻击者之间直接的竞争最终会导致100%获利返还,整个代理市场持续亏损
  5. 至此攻击者只要自持少量代币资产,以少量的短期亏损就可以获得大多数投票权,相当于金融杠杆的原理。
  6. 攻击者有两个选择:
    1. 选择恶意操作,摧毁市场信用,以被代理者的代价破坏整个市场的价值
    2. 选择寡头联合垄断,逐渐降低返现比例,直至自己盈利。当新竞争者加入时,适当恢复高返现比例进行防御

推论二:在发生寡头垄断时,分散选民难以形成抵抗联盟

如果代理人席位有限,新进者需要满足最低标准才能获得资格。这会在选民间形成囚徒困境:如果支持更换新代理的人数不够,哪怕返现再多,我投给新代理人的票也会作废拿不到收益,所以我必然选择投票给寡头。如果支持新代理人的票够了,寡头一定会提高自己的返现比例以进行防御,这时我投票给寡头的收益是最大的。综合博弈平衡下,分散的选民是无法抵御寡头统治的。

推论三:选民联合体容易被假信息操纵,新竞争者会被寡头收编

历史的经验不断告诉我们,那些号称要打倒旧体制的人,最后往往也变得和他们一样。当选民联合推举新代理人的时候,他们也是依靠新代理人给的信息做判断。寡头可以通过操作媒体进行抹黑,同时背后收买和腐化新代理人。甚至扶持多名攻击者,串通伪造正义角色,混淆好人和坏人,使选民无法区分。由于投票杠杆始终存在,新竞争者在资本积累不足,无力长期维持高返现的竞争成本时,最佳策略是接受寡头的收买。

由此可见在区块链缺乏管理的市场环境下,代理投票和代理收益的机制存在重大缺陷。而现实经济世界里的反垄断法,反不正当竞争法,金融管理办法,等等法规的设置都是有的放矢。区块链想轻易超越这些历史积累的规律,自建一套乌托邦是不可能的。

EOS为期1年的ICO过程就伴随着发币争夺和节点争夺。从ICO启动到2018年6月26号截止,每天固定数量发币,按照充值金额等比分配。哪天充的人少,人均获得代币就多,看似价格低了,但如果之后抢购导致价格飙升,反而意味着之前是捡到便宜。当天充的人多,人均获得代币少,价格看似高了,但是买入成本也高。很多人会犹豫,等充值人数少的天数再抄底。就这样在1年的周期里,充满了复杂的不确定性心理,带来价格的剧烈波动。初期可以说一路下滑,1年时间太过长久。直到临近终点,超级节点争夺前,大玩家进入炒高币值,获得大量套利空间。到6月2号选举当天需要21个supernodes来确保顺利过渡,有50多个公司参与supernodes选举。他们主要是区域的矿工集团和专业矿池,前来竞争特许经营权。有趣的是这时散户的投票比例非常低,竞选者直接购买代币,持币入场。这让前面设计的代理人攻击的第一个假设失效,也暂时保住了选举的安全。但50多个机构只有21个席位,必然有大量背后的结盟操作。这种脱离于区块链记录之外的隐藏交易,是一种隐患。就算机构间顺利达到有利的平衡,但是散户也基本失去了话语权,EOS实质上成为了某种自己选举自己轮流坐庄的联盟链。2017下半年比特币成功抵制SegWit2x分叉的情况将不再出现,机构玩家代替社区掌控了项目的完全控制权。

不论标准的POS还是DPOS都把政治权利和经济权利捆绑在一起,某种程度上对于后来的区块链参与者是不公平的。所以基于类似DBFT(Delegated Byzantine Fault Tolerance)协议的NEO最值得关注的是处理政治和经济的关系。NEO代表投票权,GAS除了算力支付还可以流通,每次挖矿都会有8 GAS像税收一样打散分配到NEO的持有者手里。项目发起方以及参与方可以把资源投入到基础平台建设,换取NEO的投票权;矿工和后期参与方也可以选择把资源投入到智能合约和交易的执行上,换取GAS的经济权。NEO和GAS间有交易市场可以兑换,这和以太坊单纯将GAS作为测量单位完全不同。NEO的进一步探索,赋予了GAS独立的货币权。项目发展初期GAS作为交易货币曾经随着交易量上升持续升值,在2017年8月甚至超过了NEO本币,但最终回落在1 GAS 兑换 0.5 NEO的均值。考虑到最终NEO和GAS总量都限制在1亿枚,所以GAS的定价不会太低,这带来的负面作用就是NEO平台以GAS结算的智能合约运行成本过高。另一个负面问题是目前投票的主要节点bookkeeping nodes集中在创始的7台机器上,中心化程度很高,虽然计划2018年会扩展,但总体还是受控的。

小结一下:POW和POS都是可以清晰定义的,满足BFT条件的技术协议。但是公平不是简单的机械过程,除了考虑共识还要考虑分配,最终在去中心化和效率间寻找平衡。这个世界上除了CAP定理还有很多不可能三角(三元悖论),比如商业社会的,质量好、速度快、又安全的不可能三角;经济学里的:“一个国家不可能同时实现资本流动自由,货币政策的独立性和汇率的稳定性” 不可能三角。通过区块链的改造,我们从可信(一致性)的一角出发,走到了公平这里,在向效率转移。可信、公平、高效 就是区块链的平衡三角

验证者的两难困境

代理人不可靠,其实验证者也不一定可靠。这种不可靠并不是因为贪婪,或者恶意,而是纯粹的,最简单的经济博弈的结果。矿工通过自己的计算资源,验证账本块来竞争奖励,这种需要合奏的场景下,很可能存在“南郭先生”。一个南郭先生偷懒,大家听不出来,一个矿工偷懒,还有很多矿工在验证。我只要默认别人已经验证的交易,直接去抢算POW激励就可以。但很多人偷懒,大量矿工聚集的矿池偷懒,就会导致账本冲突,甚至区块链分叉。以前就真的发生过这类事件,称为SPV mining。

偶尔偷懒可能还不是恶意的,但利用这种漏洞可以构造相当恶意的攻击,比如“抢答攻击”。这种攻击在比特币交易型网络的作用不大,因为验证交易相对容易,并不会获得很大的时间优势。但是在以太币这类EVM算力网络里,复杂的计算需求确实能够拖慢整个网络。攻击者先发起一个计算成本高的任务,但事先自己算好了答案。为了让主链执行这个任务,需要很高的执行成本,即手续费。但因为自己知道了答案,可以通过抢答拿到这笔手续费,相当于自己支付给自己,实际攻击成本为0。而诚实的验证者为了执行这个任务,消耗了大量算力而来不及得出答案,逐渐在出块的进度上落后,只能接收攻击者的出块提议。这样攻击者没有付出实际的成本,就实现了DoS(Denial of Service)攻击的效果。逐渐攻击者的挖矿收益会大于诚实矿工,劣币驱逐了良币,可能会引发更大的危机。还好留给攻击者的空间也不是无限的,如果攻击任务的计算难度和验证难度过大,有可能阻碍这个特殊区块的正常广播。节点执行验证任务的耗时和节点遇到网络延迟的情况类似,受到阻塞的节点账本更新进度慢于外部节点的更新进度。当大多数没有受这个耗时任务影响的节点,累积了长度超过这个阻塞区块的新块时,阻塞区的矿工也会逐渐放弃任务,转而跟随没有包含这个攻击任务的长链。最后出块的最长链里没有这个攻击任务,攻击者也拿不到收益。

所以通过一段时间的试探,偷懒的矿工和恶意攻击的矿工,都会产生自适应的策略。诚实矿工可能会对计算发起方有一个评级,安全性高的可以偷懒略过验证。攻击矿工可能会不时的发布些有一定强度的任务,以拖慢其他矿工,但还要平衡攻击的执行成本。作为平台的共识机制,可以进化到POS模式,并对矿工有考核,甚至要求资产抵押。但风险和收益的细微失衡,都会促使某些验证者铤而走险。从定量博弈上分析,在满足下面公式的情况下,就可以激励矿工坚持验证,维持区块链的公正公平:

略过验证的时间收益 x 单位时间优势对应的出块概率 x 出块奖励 < 作弊被发现的概率 x 抵押资产的损失

所以应对方法就很清晰,限制每个块的交易数量和执行极限。那些计算消耗大的交易和任务需要分拆执行,在多个块进行验证。这样略过单一步骤的时间优势有上限,而新块的计时会重新开始,导致等式左边的收益项无法累加。同时基于Casper POS协议对参与验证者的资产进行抵押,要竞争更大的收益就需要加大抵押,进一步加重等式右面的损失项。这样资产越多的验证者越不愿意作恶,也就基本避免了这种现象。当然还可以通过加大抓作弊的力度来进行惩罚,但实操起来会有些复杂。现实中倒是有类似场景,就是机场的缉毒犬。这种警犬通过条件反射的训练,能够利用强大的嗅觉,隔着行李箱识别里面的毒品。它们训练过程中设置的激励是食物,但现实中发现毒品的概率太低,很难获得激励。其实正确的排查没有毒品的箱子也是重要贡献,如果缺乏相应的校验和反馈就容易滋生慵懒。所以训练员会不定期的放置问题行李当做诱饵,一方面刺激警犬保持警惕的状态,验证它的能力,另一方面也是补偿激励。这种诱饵法,在智能算力的一些项目里有实施。

VBFT匿名委任共识

可见以人的恶意假设为基础,要超越三角平衡是非常困难的。我们需要进一步缩小人的作恶空间,用算法来约束流程。在POW/POS保证了“公平”,代理机制提供“高效”的同时,用可验证随机函数Verifiable random function VRFs来加强“可信”这个角。这一方法源自于图灵奖得主Silvio Micali在2017年发表的一篇论文 “Algorand: Scaling Byzantine Agreements for Cryptocurrencies”。其中提出了基于 VRFs的代理人选举方式,当然VRF的概念他们早在1999年就提出过,只是在DPOS里发现了应用场景。在区块链委任共识里,按照VRF选出的区块提名者和验证者,是匿名当选的,只有当选人自己完成第一次确认。这让权力蒙上了面纱,腐败和贿赂很难渗透进决策流程。而且当选单次有效,当选者提名区块的同时,揭示自己的选票,由验证者来确认其当选身份和区块有效性。验证完成后该次选举结束,选票自动失效,所以无法形成多人串通,难以持续保留权力。

应用该算法的Algorand项目是比较纯粹的,通过一个随机数发生器来随机决定下一个区块的生成者是谁。这种VRFs随机数发生器不需要广播,不需要见证,仅凭验证函数就能达成共识。而提名者的选中概率根据其余额权重分布(POS),任何人(包括上个区块的发布者)都无法预测下一个发布者是谁。在提名区块的同时,也会提名下一次随机函数的SEED,这样将共识不断传递下去。接收到的提名区块,通过自创的Byzantine Agreement (BA) 来达成共识,类似PBFT,在2/3以上诚实节点时可避免Sybil attack的风险。最终这种共识机制可以实现弱同步(weak synchrony) 下的共识,就是说可以异步一段时间,但需要跟随足够的强同步(短于异步时长)来维持共识状态。正常同步态下是4次交互达成共识,而在最差情况下也可以保证13步以内达成共识。

模仿这个设计,2018年4月Ontology就发布了他们的VBFT共识项目,是POS和VRF的合体。在VRF确保了随机性、匿名性、和瞬时性的基础上,可以大大加快共识过程又保证安全性不受损害。Dfinity和Cardano的Ouroboros共识也都使用这个思想。其中Cardano的Ouroboros版本基于publicly verifiable secret sharing (PVSS),而Praos版本使用VRF加强了异步网络下的共识能力。但这种动态分配机制下,如果要做sharding的分区扩展会遇到麻烦,给存储和计算的网络同步带来额外压力。所以只能说VRF是在解决共识机制的三元平衡,而暂时无法解决区块链算力和存储的所有问题。但方向是确定的,我们不断走向更加接近机器控制的共识,大大降低每个节点的人为操控。由机器控制的区块链,在后续章节将继续展开......

results matching ""

    No results matching ""