信任即服务:解锁区块链的下一波创新|乌托邦周报 #19

信任是区块链的立身之本。

要让用户信任一条链,按区块链的风格,有两种做法。一种是加密(如签名、ZKP),另一种是去中心化(引入更多验证者,相信大部分人或至少有一个人是遵循规则的)。

加密效果最好,但适用范围相对有限,因此在大多数场景下,去中心化仍必不可少。然而,去中心化面临网络效应冷启动的问题,即“鸡生蛋,蛋生鸡”窘境。一条新链,验证者少,安全性差,应用就不会来部署;应用不来部署,整条链能被验证者捕捉的价值就少,吸引不来更多的验证者。

虽然优秀的 Tokenomics 设计和项目运营(如 Airdrop 让渡部分价值吸引早期用户),或者从中心化过渡到去中心化的路线(如大多数 Sequencer),能缓解冷启动的问题,但仍是治标不治本;从零到一构建有广泛参与的去中心化网络,依然是横亘在区块链创新面前的一道难以逾越的门槛。

本文我们就谈谈以太坊、Polkadot、Cosmos、EigenLayer 是如何尝试一步步解决这个问题的,并抽象出“信任即服务”(Trust-as-a-Service;虽然叫“安全即服务”或许更直观,但安全在其他语境下有不同的意思,而且简称和 SaaS 撞车了)。

本文要点:

  • Dapp 与以太坊的安全依存关系

  • 独立的应用链如何共享以太坊的安全性

  • 在任意链之间共享信任的通用方案


Dapp 与以太坊的安全依存关系

以太坊的创新之处是引入智能合约,大大提升了区块链的可编程性。然而常被忽视的是,智能合约的引入,也潜在地解决了信任问题。

说信任可能比较抽象,我们举个具体的例子。

ENS 是 DNS 在区块链上的变种,作为智能合约部署在以太坊上,提供域名解析等的服务。大家可以花 ETH,在 ENS 上注册一个自己的域名(如 shibainu.eth)。

这个想法并非原创。其实早在比特币问世 2 年后,以太坊出现以前,Namecoin 就想到了。但当时还没有智能合约,要用区块链实现一套 DNS,只能独立开一条链。于是 Namecoin 就 fork 了比特币的代码,在其中加入了 DNS 的逻辑。那么问题来了,Namecoin 在一开始怎么吸引大家加入,做它的矿工,保障它的安全呢?

答案当然是发币(NMC),但是除了画饼吸引大家,有没有什么好的办法降低大家的参与门槛(迁移成本)呢?

Namecoin 想出了合并挖矿这么一个巧妙的思路,即让比特币矿工在不消耗额外算力的前提下,多运行一套 Namecoin 的全节点,同时给 Namecoin 挖矿,为其提供安全保障,并获得 Namecoin 发放的 NMC 作为回报。(合并挖矿可参考以前的文章。)

So far so good。不过,每提一个新应用,就得 fork 一下比特币,并且用 Token 来吸引比特币矿工加入。这样下来,矿工运行的节点会越来越多,负担也会越来越重,显然扩展性不佳。此外,如果参与合并挖矿的矿工,在应用链上作恶,提交内容非法的区块,那么他最多只会丢失应用链的 Token 奖励(应用链的其他节点会无视这个区块),这种惩罚力度十分有限。

以太坊将底层模块化,共享给各个应用。大家专心写智能合约,无需操心信任冷启动(构建去中心化矿工网络)的问题。而且,扩展性也比合并挖矿高,能支持更多的应用(虽然依然有 gas 上限)。此外,如果有矿工提交内容非法的区块,那么这个区块根本就不会被其他矿工接受;在以太坊转变为 PoS 共识后,恶意的验证者还会因此受到惩罚。

很好,对不对?


独立的应用链如何共享以太坊的安全性

无论是合并挖矿,还是以太坊,都存在一个要求,那就是应用链必须和依赖的主链足够相似。比如 Filecoin 就无法和比特币合并挖矿,也不可能作为智能合约运行在以太坊上,因而到头来还是得自己解决信任问题,这大大限制了更大范围内的创新。所以,以太坊对信任问题的解决,还不够彻底,无法支持更广泛的异质化应用。

有改进办法吗?

先看看 Polkadot。

在 Polkadot 方案里,应用链作为 Parachain(安全层面叫 Consumer Chain)存在,主链(Relay Chain,安全层面叫 Provider Chain)上的验证者会被随机分配到 Parachain 上,验证 Parachain 上提块的 Collator 没有乱来,没乱来的话就把 Parachain 上这个区块的头 Commit 到主链的区块里。这意味着,每条应用链的安全由主链的验证者提供,不用自己操心,只要应用链通过竞标,得到了 Polkadot 的 Parachain Slot,就可以高枕无忧了。不过可惜的是,Polkadot “车同轨,书同文”的设计思路,要求 Parachain 需要遵循同一套框架,相当于只是放宽了以太坊的限制,还是没解决彻底。

来源:https://wiki.polkadot.network/docs/learn-parachains
来源:https://wiki.polkadot.network/docs/learn-parachains

再看看 Cosmos。

Cosmos 设想的 Interchain Security 和 Polkadot 有几分相似,不过遵循了 Cosmos 标志性的模块化思路。想从 Cosmos Hub 共享安全的链,只需在 CCV(Cross Chain Validation)模块中,定义如何与 Cosmos Hub 就验证者信息进行通信,如何验证区块的合法性,以及怎么个惩罚法,其他的模块可以在更大的范围内变动。当然,由于 Cosmos 这套是在协议层实现的,因此共识机制还得要求是 Tendermint。嗯,比 Polkadot 灵活了很多,但限制还是在。

最后看看 EigenLayer 这个被给予厚望的项目。相比 Cosmos,它再做了一次加减法。

减法,指它着重保留了合法性验证的部分。通过在以太坊上部署的智能合约(不是靠协议),验证者将质押的 ETH 资产(原生的或者是经过再质押的)的控制权交给 EigenLayer,然后运行想要保障的应用链的节点软件;只要老老实实干活,就有奖励,如不老实,遭人挑战(Arbitrum 的那套交互式挑战逻辑)并验证属实,就会损失质押品(一部分会奖给挑战者)。

来源:《EigenLayer: The Restaking Collective》
来源:《EigenLayer: The Restaking Collective》

加法,指它更灵活,创造了一个验证者和应用链的双边市场,互相选择。验证者根据收益和其他因素,选择要为哪些应用链提供安全服务;应用链可以设定,为它提供安全服务需要满足什么要求。此外,应用链还可以结合以太坊的验证者和自己链上的验证者。(这个笔者认为尤其复杂,比如如何衡量不同 Token 的话语权,要引入预言机吗?类似的计划在 Cosmos 中叫 Layered Security。)

当然,EigenLayer 提高资金效率,是基于再质押(Restaking)实现的,后者本质上也是一种 Rehypothecation,或者是加杠杆。EigenLayer 的创始人不同意加杠杆的这个说法,认为只要你作为验证者,老实干活,就不存在风险(验证逻辑 bug 的风险暂且除外)。但这个说法只设想了好的情况,不好的情况是,一个巨鲸验证者 opt-in 了 100 个应用链(EigenLayer 叫 AVS,Actively Validated Service),这 100 个应用链认为自己有巨大的安全保障,但只要这个巨鲸验证者在一条链上作恶被罚,其他 99 条链都会看到自己的安全保障下降(主链其实也会受影响)。虽然应用链可以限制巨鲸验证者 opt-in,或者设定验证者 opt-in 应用链的上限,让自己的验证者更去中心化,以及远离系统性风险,但这还是很模糊,不太好实操。(目前 EigenLayer 还主要停留在设想上,代码很多没实现或做了极大的简化,后续还需要持续关注。)


在任意链之间共享安全的通用方案

其实到了 EigenLayer 这里,思路已经比较明确了;Cosmos Interchain Security V3 的规划也基本上和 EigenLayer 大同小异。

在智能合约层,收押验证者的质押品,然后按照预设的规则(如禁止 Double Signing),验证验证者有没有作恶,作恶的话就给予惩罚。

预设的规则,由应用链来定。验证过程,可以是 OR 那一套,由挑战者提供证据。可是智能合约怎么确定应用链上的最新状态真如挑战者说的那样呢?小问题,只要智能合约知道应用链的初始状态,后面的状态变更由挑战者提供证明就好了(有加密算法保障)。

照这个思路,基于 PoS 的支持智能合约的链的安全性,都可以共享给其他链,只要其他链的区块验证逻辑可以用前者的智能合约表达。

再接着就是进一步完善双边市场,让 Validator 和应用链的需求能更好、更快地匹配了。


结语

本文介绍了“信任即服务”(Trust-as-a-Service)的概念,即通过智能合约或协议,让一条链的验证者为其他链提供安全保障并获得相应回报的机制。带着对这一概念的问题,本文分析了以太坊、Polkadot、Cosmos、EigenLayer 是如何尝试实现这一机制的。

本文认为,“信任即服务”是区块链创新的基石性方向,可以解决信任冷启动的问题,支持更多的异质化应用,提高资金效率,但也需要注意系统性风险。

Subscribe to 无环图
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.