# Algorand：打破不可能三角

By [libevent.eth](https://paragraph.com/@libevent) · 2022-01-12

---

> 作者：Kris@Moon Digital ResΞarch & 1Circle
> 
> Wechat：shadowy
> 
> Twitter：@dshadowy
> 
> 日期：2022.1.9

在刚刚过去的2021年，一个标志性的现象是NFT的大量采用，导致了上半年ETH的GAS费的疯狂增长，进而带动了BSC的崛起。而在下半年，ETH的扩容进展缓慢，同时BSC的拥堵问题也明显加剧，其他非EVM原生的L1开始蓬勃爆发，以Solana和Avalanche为代表的的竞争链在年末以3AC的Zhu Su与ETH最大主义者的加密推特论战带动了一波高潮。ETH年中基于Optimistic的L2 Rollup上线并不能显著降低gas费用，基于ZK的Rollup年底的采用效果还有待观察，各方争鸣的多链时代已经隐约可见，而Algorand随着生态基金的设立，生态发展已经开始提速，参考其他竞争性L1的发展路径，具有鲜明特色的L1都会有自己的爆发时刻，那么Algorand的优势在哪里呢，有没有独到之处？带着这样的疑问，我开始对它进行系统了解。

不可能三角
-----

随着以太坊的发展，Vitalik提出了区块链的不可能三角理论：安全性、去中心化、扩展性三者不可兼得，只能放弃其中一方。显然安全性是第一位的，所以公链往往只能在去中心化和扩展性中选其一。

以太坊选择了安全性和去中心化，充分分散去中心化的PoW节点保证了它的安全性，但是性能目前就只有15TPS左右。而竞争性L1广泛选择了PoS/DPoS机制保证安全性，并通过受限的验证节点，提高了扩展性，以太坊的L2 Rollup也同样往往选择受限的验证节点，安全性交给L1保证，获得了扩展性，但这样形成了中心化或者半中心化的问题。

以太坊的2.0版本也会在今年年中转向PoS，用户质押32个ETH即可创建一个验证点，但是随着质押服务商在2021年的崛起，用户可以将验证权委托给质押服务商来进行，这样导致质押服务本身也会面临中心化验证集团的问题。

Algorand
--------

### 背景

Algorand作为目前Top20的顶级公链，其背景自然非常优秀。创始人Micali是加密学北斗，可验证随机函数（VRF）和零知识证明（ZKP）的联合发明人，同时得到了Arrington XRP资本等业界顶级资本支持，目前已经主网上线两年半稳定运行。

### 共识

作为公链根基的共识算法保证了公链的安全性，常见公链的共识算法基本都是对给定问题极难构造答案但很容易攻击。而Algorand则通过创新性的设计达到了相反的效果——易于构造答案，却极难攻击。

区块链保证安全的核心问题是决定谁来出块，出块者必须保证构造合法准确的交易上块，如何避免作弊者成功获取出块权是共识机制的核心。70年代以来的传统解决方案是BFT算法，但它必须由有限的验证者才能参与共识，带来了中心化问题。而中本聪引入的中本聪共识则做到了任何人都可以参与，不过牺牲了吞吐量。

Algorand则通过数学保证的随机性来作为共识核心。它引入了密码抽签机制，通过基于验证者持有Algo Token数量作为加权，随机决定了1000名验证者，构成了出块委员会，如果2/3的委员会成员是诚实的，那么系统是安全的。

同时抽签过程是完全本地化的，任何人都可以随时加入，只需要根据上一个块信息，就可以在毫秒级时间内计算出自己是否是下一个块委员会成员。而其他成员则可以根据委员会成员发布的信息立刻知道他们是否确实中签了。抽签是基于每一个参与验证的钱包内持有的Token来进行选择，每一个Token是平等的。所以无论一个钱包是只有1个Algo，还是有10亿个Algo，他们每个Algo中签几率一致，只不过更大的持有者中签几率等比提高。

抽签过程是基于Micali发明的VRF算法，攻击者无法在事前确定某个Token是否中签，以贿赂验证者，只能在验证者发布信息后才能知道验证者中签，同时由于出块候选时间只有0.5秒，这个时间再去贿赂验证者是不可能的，从而使得攻击变得不可能。

在出块过程中，这样的抽签还会反复存在几次，通过连续几个委员会每一步都通过才能最终出块，使得攻击完全不可能。这个机制非常类似西方法律系统，司法部（出块者）受高等法院和立法委员会监督，通过透明的机制保证了公正。

打破不可能
-----

不可能三角的主要问题在于使用PoS机制的情况下，如何进一步分散验证节点，并保障权限公平。理想情况下，用户参与验证，并不需要质押类似32ETH这样的大额资产，同时也不需要复杂的IT基础设施来进行验证，否则会面临意外受罚的问题，这样可以保证低门槛参与，从而最大可能的扩展验证点的数量和分布。

而参与Algorand验证几乎没有最低持仓的要求，考虑到单个Algo Token的价格，任何人都可以参与验证。验证过程完全是本地化进行，一台有网络连接的当前主流个人PC/手机在1毫秒内都可以计算出自己是否成为出块委员会成员，并不需要高昂的IT成本。门槛的足够降低，从而实现了最广泛的去中心化。

共识机制本身由保证了Token的充分平权，一个Token一票，从而避免了鲸鱼在囤积了足够大量的Token后具有不平等优势的问题。

在这样优秀的机制设计下，Algorand就成功在广泛去中心化的基础上，获得了安全性和高性能，当前已经稳定运行两年半时间，TPS长期可以保证在1000以上，根据官方路线图，后续将通过区块流水线机制将TPS提高到46000，这将可以满足真实世界传统金融机构的交易需求。

更优秀的PoS
-------

Algorand不仅仅是打破了不可能三角，同时针对当前流行PoS机制遇到的问题也做出了非常有益的尝试。

### 当前PoS的问题

PoS机制在提供区块链性能的同时，也存在很多问题，当前对PoS的主要质疑集中在4个方面：

*   财富集中：相比散户，鲸鱼质押了更多Token，并获取了对应的质押回报，但是质押验证过程本身鲸鱼并没有比散户付出了更多工作量，这样会导致财富加速流向富人。比如ETH 2.0里，32个ETH加稳定的IT设施是参与质押的必要条件，很少有散户能满足这个要求，但是鲸鱼可以很轻松的质押上千个ETH，并赚取大量激励，而质押之后的验证过程并不需要有对应的工作量投入。
    
*   作弊诱惑：目前的PoS公链，比如ETH 2.0，往往采用了债券机制，验证者需要像购买证券一样锁定一部分资产，当被发现作恶的时候，这部分资产就将会被惩罚性扣除，通过经济惩罚可以降低验证点作恶的动机。但是随着底层公链承载的经济资产指数型增长，这部分抵押的资产可能远远比不上作弊带来的回报，比如当以太坊承载资产达到几万亿甚至十万亿量级的时候，作恶或者不作恶，就成了很多验证者面临的问题。
    
*   资本沉积：PoW主要面临的问题是大量的机械工作和设备能源耗费，而PoS的质押，也锁定了大量的资产，这些资产损失了大量机会成本。如果这些资产可以在参与质押的同时，也能参与对公链的生产建设，或为持有人创造其他资本价值，相信也会更有利于公链和持有人，增强持有人对公链的长期信心。
    
*   DPoS的中心化：在PoS公链里，DPoS的占比很高。DPoS里的验证者都是白名单化的，这显然会带来中心化的问题。同时由于验证者都是显名，所以针对他们的网络攻击、社会工程学攻击也会更容易成功。ETH 2.0为代表的的一批公链并不是DPoS的，但随着以太坊的进一步发展，很有可能会演变成类似DPoS的方向，这是因为1.质押要求的资本和设施成本越来越高，驱逐了大量小验证者；2.质押服务商吸收了大量流动性，同时作为显名验证者，非常容易收到攻击；3.MEV的高额回报会导致验证者串谋，类似FlashBots和Eden这样，形成卡特尔集团。
    

### Algorand之道

针对上述问题，Algorand改进了PoS机制，它使用了PPoS（Pure PoS）机制。在PPoS中，每个token成为验证者的概率相等，同时并不区分用户和验证者，这是根本性的变化。Algorand的共识是For the network, By the network，通过网络本身保证网络安全，就像美国宪法一样，For the people, By the people(嗯，我说的就是ConstitutionDAO)，没有区分人民与政府，这样会相比基于抵押债券的PoS机制，更高的去中心化比例。

形成共识成本非常低，同时非常易于扩展，所以Algorand不需要额外的回报来激励验证者，这样降低了财富集中的趋势。散户和鲸鱼拥有的Token数，决定了他们分别期望获得的回报，这个过程中财富增长比例是一样的，所以财富不会集中，而不像其他PoS系统一样，鲸鱼由于资产的不公平优势，获取了更高的财富增长比例，从而加速了财富集中。

PPoS也杜绝了少数者作恶的可能，通过VRF算法，少数者无法形成攻击，而多数者作恶攻击自己没有任何意义，攻击自己的经济回报不可能超过维护链上资产安全的回报。Algorand的信任基石是基于网络的大多数人是诚实的，而不是基于少数聚集大量资产的人是诚实的。

贿赂验证者获得优势的情况现在在PoS公链中已经开始浮现，比如有传言BSC验证者参与了MEV活动，随着链上经济系统越发增长，这种现象和现实生活一样，一定会越来越多，毕竟绝对的权力会带来绝对的腐败，而PoS公链中验证者就拥有了无上权力。在Algorand中，则通过共识机制杜绝了这种现象发生的可能。出块的每一层计算都独立产生了随机委员会，只有委员会成员中签并在网络公开自己信息后，行贿者才能和网络其他成员同时知道委员会成员的身份，这时候再行贿就为时已晚。

PPoS也相比其他PoS资本效率更高，在Algorand的世界里完全没有资本沉积，而随着L1的发展，沉积资本体量指数增长，这一点会显得越发重要。

链接TradFi
--------

### TradFi的特殊需求

随着链上世界的发展，除了DeFi之外，越来越多的TradFi传统金融也将扩展的链上世界。对于大型传统金融机构来说，保证交易和资产安全性将是第一位的，然后才是性能和成本。

共识机制和去中心化程度决定了一条公链的安全程度，目前主流公链的共识机制在数学层面上，通过设定一些容易达到的先决条件（比如2/3的参与者可信任）来保证了公链底层机制的安全。而去中心化程度则决定了非技术因素影响下，比如监管和审查层面如何保证用户的资产安全。对于大型机构来说，肯定不希望由于某个央行或者司法机构的政策影响，导致自己资产被冻结甚至划转。

公链的安全运行历史则是机构在选择公链时的另一个重要参考，熟悉IT开发运维的人士应该知道金融机构对系统稳定安全运行的苛刻要求标准。

### 典型用例

#### CBDCs：未来的法币

央行数字货币现在仍在广泛讨论阶段，但是如果考虑到它给法币系统带来的剧烈变革，完全可以相信它就是未来的主流法币系统。简单列出一些带给现行货币系统的改进：

*   可编程央行：央行可以对账户实施更加精细的管理，比如更细致的黑白名单，通过链上活动实时监管可疑账户行为，从而更有效管控主权货币和实施货币政策。
    
*   基于账户的金融政策：通过对某个账户的行为进行分析，央行可以实施细化到账户地址的基础金融货币政策，比如针对地址的信贷基准利率，财政救济的不同标准。央行也可以通过限制每个CBDC Token的权限，极大扩展政策空间，比如可以设置国内和海外完全不同的货币金融政策体系，并限制不同区域CBDC的账户流动。
    
*   丰富货币政策空间：现阶段央行通过再贴现率、存款保证金等工具管理货币政策来完成经济的收缩扩张调控。未来央行可以更细化丰富这些政策工具，比如像三元算法稳定币一样，可以设定M1扩张速率，并当通胀超出区间的时候自动从每个账户回收货币，从而刺激消费，要么花钱，要么丢钱，通过让最终零售客户感知这一切，而加速政策落地效率。
    
*   贸易争端仲裁：通过构筑跨国央行链上合约，系统可以自动进行贸易争端仲裁，这避免了WTO解决争端的低效，清晰明了，传统贸易战将无法在进行下去。
    
*   国家级众筹：通过在链上发行债券，国家将大大拓展债券的销售范围，从以前只能面向机构，现在可以 面向世界公民。通过提供合理的抵押品，国家将能以比以前更低的成本获得资本，从而加速发展经济。而不同级别国家债券，也必须对应更合理的利率才能发行，这大大提高了债券发行市场有效性。
    

#### 资产Token化：新的资本市场

2030年前，世界上大部分支付都将是数字支付。同样，未来相当部分的资产也将会Token化。

*   证券化Token：证券化Token向全球客户提供了买卖证券的机会，而在传统市场，这严重受限了各国证券市场开户和资本流动门槛，从而极大扩展了企业募资范围和市场价格发现有效性。但是脱胎于DeFi的证券化Token目前发展缓慢，不过有理由相信随着时间发展，越来越多传统机构会介入这一领域，从而影响证券市场全过程，包括发行、投行、交易、机构借贷等。
    
*   可编程合规：证券发行后的合规问题是公司、投行、会计师、律所都面临的重大责任，而通过Token化之后的实时程序控制，将会更好的适应合规政策变更，以及细化影响领域及账户。
    
*   稳定金融市场：08金融海啸很大程度是由于金融衍生品底层资产不透明导致的，机构过于相信评级机构，而评级机构对这些衍生品的过高评级直接导致了市场对资产的错误定价。如果相关资产都在链上Token化，那不同衍生品资产的穿透将会一目了然，评级也将会更加透明，从而提高评级有效性，风险的有效早期揭示将显著降低金融市场的波动水平，从而更为稳定，可能将会避免类似危机的再次发生。
    

### Algorand的优势

从前文可知，Algorand的去中心化程度在各条PoS公链里已属翘楚，而两年半稳定运行的历史，目前也是首屈一指。ETH在转向2.0之后，去中心化程度方面的衍生方向不论，考虑到底层变革的剧烈程度，安全稳定运行的历史将要重新计算。

Algorand由于其重视去中心化，高性能和可靠历史，将会在多个方面相比其他公链，更可能收到大型机构和央行的青睐，比如2020年3月，马歇尔群岛已经有意向在Algorand发行以及通胀率4%的CBDC，以后这种情况会更多，从而实现更多链上资产的结算，承载更高的价值。

---

*Originally published on [libevent.eth](https://paragraph.com/@libevent/algorand)*
