本文由币乎(bihu.com)内容支持计划奖励。
EOS的共识机制
区块链的总市值超过4000亿美元,加密货币的数量超过1500种,一幅幅欣欣向荣的景象。而与之相对的现状,是真正落地的区块链项目少之又少。大家看看自己手机上到底有几种代币钱包,而又有几个dapp可以安装。除了在交易所里炒币,又有几种代币可以拿来买其它服务。所以,现在区块链世界面临如何落地,如何与中心化的服务商进行竞争的问题。
目前在以下几方面,中心化的平台对区块链有着绝对的优势:1、支持百万级别用户;2、免费使用;3、轻松升级和Bug恢复;4、低延迟;5、强大的串行性能;6、强大的并行性能。
为了满足实际的需要,支持大量用户的使用,需要高性能,而这些中心化的系统都做的还不错,比如VISA每秒两万次、社交媒体如facebook每秒五万次、中心化交易所每秒十万次。而反观已有的去中心化系统,比特币每秒3次、以太坊每秒30次,无法满足使用。而在此之外,构建DAPP也依然是一个难题。不可否认,中心化在集中资源干大事方面有不可比拟的优势。而普通用户大多不清楚底层逻辑的区别,而是更关心的使用体验。也就是说,如果区块链应用如果不能在性能上追赶中心化平台,达到一致的体验,就难以争取到规模化的用户,极大限制了商业生态的建立和发展。
EOS软件构架采用的共识机制是股份授权证明机制(DPOS),瞄准的是对中心化平台的优势发起冲击。
不同于BTC和ETH,虽然都是公链,EOS的区块生产者数量是恒定的21个。全网token持有者可以通过投票系统来选择区块生产者,一旦当选任何人都可以参与区块的生产。预计每3秒生产一个区块,区块产生是以21个区块为一个周期。在每个出块周期开始时,21个区块生产者会被投票选出。 获票最高的前 20 名自动在每轮被选中,第21个出块者按所得投票数目对应概率选出。
EOS的生产者每 3 秒生成一个并且在任何时间点都只有一个被授权的生产者来生成区块。被选中的生产者通过从区块取到的时间作为伪随机数来打乱其顺序。 打乱顺序是为确保这些生产者与其他生产者保持均衡的连通性。
如果一个生产者错过了一个区块并且在过去的 24 小时内没有生产任何的区块,那么它将被从候选中移除,直到它在区块链中通知它要开始再次生产区块的意图。 这样通过最小化区块丢失数量(因被证实不可靠的节点不作为导致)来确保网络操作的稳定性。
在一般情况下,一个 DPOS 区块链不会经历任何的分叉,因为区块生产者是通过合作而非竞争的方式来生产区块。 即便真的出现了分叉,共识也将自动的切换到最长的链上。 之所以会这样运作,是因为区块添加到一个区块链分叉的速率与公用同一共识的区块生产者比例是相关的。 换句话说,具有更多生产者的区块链分叉会比拥有较少生产的那一个条增长的速度更快。在出现分叉的情况下,为了确保一个交易是不可逆转的,可以等待超过2/3的生产者确认,也就是15区块,大约45秒。 而且,没有一个生产者会同时在两个分叉上同时生产区块。 如果一个区块生产者被抓到做这样的事儿,那么这个生产者将很可能被投票投出。 这些双重生产行为对应密码学凭证可以用来自动的删除这些滥用者。
优势
有限的区块生产者,可以保证优势资源的集中,从而构建更好的软硬件环境来构建效率极高的区块链系统。任何时刻,只有一个生产者被授权产生区块。这样区块生产者之间是合作而不是竞争关系,保证共识能高效的完成,延迟小,速度快。
区块生产者的存在给governance提供了机会,即主观产生共识。区块生产者在授权后,有更强的执行力。而区块生产者的行为受到宪法和投票等措施的制约。
争议
DPOS也是受到争议的一种共识机制,有人认为去中心化程度不够。以太坊的V神和量子链的帅初都发表过类似的观点。主要的观点依据是节点数不够多,是通过牺牲去中心化程度来实现高并发的。
比如帅初在一篇文章中说了以下的话。
在点对点对等(P2P)网络中,有个非常重要的核心要素就是 full node (全节点),一个P2P网络中,全节点的数量基本上决定了这个网络的技术价值。
如果你是比特币网络中的全节点,那么你就拥有这个网络最大的也是对等的权利,你不用再需要信任第三方,也不用让渡自己的权利给他人。目前很多其他的加密货币都有中心化的趋势,很多共识机制实现快速的交易处理速度,其本质是剥夺参与者的对等权力,让网络又重新回到了一个中心化的网络。但是如果我们真的需要在区块链网络中让渡自己的权利,也许银行是一个更好的选择,而不是很多中心化的区块链系统。
社区治理
治理是人们在主观问题上达成共识的过程,而这些问题不可能完全被软件算法所捕获。直观的理解,就是共识算法不能完全解决的问题,也就是不能通过软件完全自动解决的问题,而需要人的参与,通过投票等方式表达意愿,行使权力的过程。
首先,少数的区块生产者是授予了权力,可以进行一系列执行。这是一种执行集中制,是为了高效。但为了保证执行集中制的正义的,是民主的集中制,必须对集中制进行充分的监督。治理的权力来源并最终属于token的拥有者。也就是,区块生产者进行操作,而token持有者对操作进行反馈的闭环过程,有效地影响区块生产者。
冻结账户
有时,智能合约的行为会发生异常或不可预知,无法按照预期执行;有时应用程序或帐户可能发现一个漏洞,使其消耗不合理的资源。当此类问题不可避免地发生时,区块生成者应当有能力纠正这种情况。
所有区块链的区块生成者有权选择哪些交易被包含在区块中,从而使他们有冻结帐户的能力。EOS.IO系统通过冻结一个帐户到17 / 21活跃区块生成者的投票结论中,使这一授权成为正式结论。如果生成者滥用权力,他们可以被淘汰,账户将被解冻。
改变帐户代码
当其他一切都失败了,而“不可阻挡的应用程序”以一种不可预知的方式运行时,EOS.IO系统允许区块生成者在不需要硬分叉整个区块链的情况下替换帐户的代码。与冻结帐户的过程类似,此代码的替换需要17 / 21被选中的区块生成者的投票。
宪法
EOS操作系统可以用区块链技术在签名用户之间建立P2P服务协议或约束性合约,也就是所谓的“宪法”。宪法内容定义了仅依靠代码无法完全执行的用户间义务,同时结合相互间的公认规则,确立司法权和适用法律。每一个在网络中签名广播的交易,其签名信息中必须包含宪法的哈希值,以明确约束合约签名者。
宪法还定义了源代码协议的人类可读性intent(意图)。当出现系统错误时,intent(意图)可用来区分这个错误是bug还是系统特性,并且判断社区对此的修复措施是否正确。
升级协议和宪法
EOS操作系统使用源代码定义宪法和协议,同时也定义了宪法及协议的更新方法。对宪法或协议进行变更,需要完成以下步骤:
1.区块生产者(译注:miner/delegate/witness,因此没有译作矿工)提交一个宪法变更动议,并获得17/21以上的赞成票;
2.区块生产者将17/21以上的赞成票维持连续30天;
3.要求所有用户都使用新宪法的哈希值确认交易;
4.区块生产者采用修改源代码的方式反映宪法变更,使用git提交的哈希值将变更提交到区块链上;
5.区块生产者继续将17/21以上的赞成票维持连续30天;
6.变更的代码7天后生效,源代码修改通过后,将有1周的时间来对所有节点的进行升级;
7.所有没有升级为新代码的节点将自动关闭。
根据EOS操作系统的默认配置,更新区块链来添加新功能这一进程需要2到3个月时间,而修复那些不需要更改宪法的非关键性漏洞需要1到2个月时间。
紧急变更
面临一个损害用户利益的有害漏洞或安全漏洞时,区块生产者可以加速宪法变更过程。一般来说,加速新特性更新过程或修复无害漏洞,都是违反宪法的行为。
优势
针对一些紧急情况,可以快速响应,对异常进行及时处理。同时,将主观治理融入区块链机制,实现了链上的主观共识治理的途径。主观治理的决议可以被当做共识来执行。
争议
主观治理是考验token持有者的能力的。主观治理这块不完全受代码的控制,让一部分人有不安全感。
网友评论