Bitcoin Magazine:Rollup面临什么困境?
来源:Bitcoin Magazine;编译:五铢,金色财经
Rollups 近来已成为比特币扩容的焦点,成为第一个真正从闪电网络“抢走风头”的东西,在更广泛的关注度方面。 Rollups 旨在成为一个不受闪电网络核心流动性限制约束或限制的链下第二层,即最终用户需要有人提前分配(或“借出”)资金才能收到钱,或者中间路由节点需要通道余额来促进支付金额从发送者到接收者的全程流动。
这些系统最初是在以太坊和其他图灵完备系统上运行的,但最近重点已转移到将它们移植到基于 UTXO 的区块链(例如比特币)。本文不打算讨论目前在比特币上实施的现状,而是讨论人们长期追求的理想化Rollup的功能,这取决于比特币目前不支持的功能,即直接在比特币上验证零知识证明 (ZKP) 的能力。
Roll 的基本架构如下:单个账户(在比特币中为 UTXO)保存 Rollup 中所有用户的余额。此 UTXO 包含一个承诺,该承诺以 Merkle 树的 Merkle 根的形式存在,承诺 Rollup 中现有账户的所有当前余额。所有这些账户均使用公钥/私钥对进行授权,因此为了提出链下支出,用户仍必须使用密钥签署某些内容。该结构的这一部分允许用户随时无需许可即可离开,只需制作交易证明其账户是 Merkle 树的一部分,他们就可以单方面退出 Rollup,而无需运营商的许可。
Rollup 的运营者必须在交易中包含一个 ZKP,以便在完成链下交易的过程中更新链上账户余额的 merkle 根,如果没有这个 ZKP,交易将无效,因此不能包含在区块链中。此证明允许人们验证对链下账户的所有更改是否得到了账户持有人的适当授权,以及运营者是否没有恶意更新余额以窃取用户的资金或不诚实地将其重新分配给其他用户。
问题是,如果只有 merkle 树的根发布在链上,用户可以查看和访问它,那么他们如何将他们的分支放在树中,以便能够在他们想要的时候无需许可就退出?
合适的Rollup
在适当的Rollup中,每次确认新的链下交易并且Rollup账户的状态发生变化时,信息都会直接放入区块链中。不是整个树,那样太荒谬了,而是重建树所需的信息。在一个简单的实现中,Rollup中所有现有账户的摘要将包含余额,并且账户只是在更新Rollup的交易中添加的。
在更高级的实现中,使用余额差异。这本质上是对在更新过程中哪些账户增加了或减少了资金的摘要。这使得每个Rollup更新仅包含发生的账户余额更改。然后,用户可以简单地扫描链并从Rollup的开头“进行计算”以得出账户余额的当前状态,这允许他们重建当前余额的默克尔树。
这样可以节省大量开销和区块空间(从而节省资金),同时仍允许用户保证访问单方面退出所需的信息。rollup 规则要求将这些数据包含在使用区块链向用户提供的正式 rollup 中,即不包含账户摘要或账户差异的交易被视为无效交易。
有效期
处理用户提取数据可用性问题的另一种方法是将数据放在区块链之外的其他地方。这引入了微妙的问题,rollup 仍然需要强制确保数据在其他地方可用。传统上,其他区块链用于此目的,专门设计为作为 rollup 等系统的数据可用性层。
这造成了安全保障同样强大的困境。当数据直接发布到比特币区块链时,共识规则可以保证它绝对正确。然而,当它被发布到外部系统时,它能做的最好的就是验证 SPV 证明,即数据已发布到另一个系统。
这需要验证数据存在于其他链上的证明,这最终是一个预言机问题。比特币的区块链无法完全验证除了发生在自己区块链上的事情之外的任何事情,它能做的最好的就是验证 ZKP。然而,ZKP 无法验证包含 rollup 数据的区块在生成后是否真的被公开广播。它无法验证外部信息是否真的对所有人公开。
这为数据扣留攻击打开了大门,即创建对发布数据的承诺并将其用于推进rollup ,但数据实际上并未可用。这导致用户无法提取资金。唯一真正的解决方案是完全依赖比特币之外的系统的价值和激励结构。
进退维谷
这给 rollup 带来了一个困境。当涉及到数据可用性问题时,基本上存在将数据发布到比特币区块链还是其他地方的二元选择。这一选择对 rollup 的安全性和主权以及其可扩展性都具有重大影响。
一方面,使用比特币区块链作为数据可用性层会给 rollup 的可扩展性设置一个硬性上限。区块空间是有限的,这为一次可以存在的 rollup 数量以及所有 rollup 总共可以在链下处理的交易数量设置了上限。每次 rollup 更新都需要与自上次更新以来余额发生变化的账户数量成比例的区块空间。信息论只允许数据被压缩到一定程度,在这一点上,就没有更多的扩展潜力了。
另一方面,使用不同的层来实现数据可用性会消除可扩展性增益的硬性上限,但它也带来了新的安全性和主权问题。在使用比特币实现数据可用性的 Rollup 中,如果用户需要提取的数据没有自动发布到区块链上,Rollup 的状态就不可能发生变化。使用 Validiums,这种保证完全取决于所使用的外部系统抵御欺骗和数据隐藏的能力。
现在,外部数据可用性系统上的任何区块生产者都能够通过生产区块而不是实际广播该区块来劫持比特币Rollup用户的资金,从而让数据可用。
那么,如果我们真的在比特币上实现理想的Rollup实现,真正实现单方面用户提款,那会是怎样的呢?
火币数字货币新闻
——一、只有尾部的链和应用才需要链抽象,头部不需要
我们从两个角度论证这种观念的错误之处:
现状并非 「只有头部链和应用有流量」。
未来不可能建立在单链之上,也不会 「只有头部链和应用有流量」。
目前的多链生态并非 「只有头部链和应用有流量,所以不需要链抽象」。
需要明确的一点是,C 端用户的社交媒体流量感知与链的实际运营状况之间并不对等。
1)风头正盛的 Base 链的真正起量始于 3 月,距今也只有 8 个月的历史。从向以太坊提交的 blob 数量看,Base 的优势并非碾压性的。
2)从 TVL 角度,一些 C 端用户当下感知不明显的 L2,比如 Arbitrum, Mantle 等沉淀了大量的 TVL,而链抽象可以将这部分沉淀的流动性真正利用起来。
3)从月活角度,Solana 遥遥领先,500 万月活以上的公链共有 9 个, TON 和 Aptos 都超过了 Ethereum。
4)从费用角度,排名前 5 位的是 Ethereum, Tron, Bitcoin, Solana 和 BNB,就连 10 名开外的 Polygon, Blast, TON, Starknet 一年也可以产生 2000-3000 万美元的费用收入,认为这些链「没有流量」是不合理的。
面对破碎的多链现状,有两种「去碎片化」思路:
一种认为多链是未来,链抽象帮助解决碎片化问题,让用户在多链之间畅通无阻。
一种认为单链是未来,目前的小碎片之后都会灭亡,应该集中资源发展强势 L1。
单链未来显然是站不住脚的。
1)任何单体链的扩容都不可能是无限的。如果你对 Web3 的未来有信心,就不会天真地认为能将整个 Web3 建立在一个状态机上。
2)不存在完美的链,区块链不可能三角之间总要做权衡,不同链的优势是相对场景而言的。
3)依赖单一链=集中风险,如果出问题,整个生态系统可能受到严重影响。
4)单一、集中的生态系统是对创新性的扼杀和去中心化精神的背离。
未来也不可能「只有头部链和应用有流量,所以不需要链抽象」。
1)愈发多元的 L2 生态:目前 L2 Beat 收录的 L2 超过了 100 条,待上线的超过 80 条。Unichain, Movement 等也将登场,我们无法预测一年后前三大 L2 的位置是否还和今日一致。
2)新 EVM L1 的崛起:新兴的并行 EVM L1,如 Monad, Sei 等因可扩展性优势受到了广泛关注和资本青睐。Berachain 也吸引了大量社区成员。
3)非 EVM 生态的活跃:Solana 上出现了 Sonic 这样 EVM 兼容的 L2 项目。Move 语言的 Sui, Aptos 因技术创新备受青睐,生态也初具规模。
4)Appchain 部署门槛持续降低:@AndreCronjeTech 曾发文表示 L2/Appchain 的建造复杂性被低估了,而评论区的 @ItsAlwaysZonny 和 @0xkatz 在十几分钟内就部署好了一条 andrechain,并且表示每个月的运营成本只需要一千美元。
总结来说,我们面临的是一个不可逆转的多链未来,链抽象的到来不以任何个人意志为转移。
二、链抽象把风险也抽象了,会带来安全问题
对这个问题的回答包括三个要点:
在链抽象的交易逻辑下,用户对每笔交易的底层交互逻辑保有知情权。
链抽象的出发点并非去干涉用户与什么 dApp 交互的决策,而是使用户做好的决策更无感、更高效地得到执行。
有很多种方案可以帮助用户判断要不要信任 dApp。
首先,链抽象并没有剥夺用户知情权,或者掩盖底层交互。用户随时可以检查每一笔交易的详情。
其次,链抽象也不会平白无故提高用户和所谓不安全 dApp 的交互意愿和频率。
一个事实是:当用户计划使用一款 dApp 的时候,已经默认「该 dApp 会选择一个值得信任的链,并且产生值得信任的交互」。
是用户的信任驱使其做出与 dApp 交互的决策,链抽象并非干涉用户决策,只是在用户决策之后提高了交互效率。
所以交互安全问题的核心还是用户如何决策,而不在于决策后如何执行。目前已经有很多方案去帮助用户思考和决策要不要信任某个 dApp,链抽象方案的风控层是其中之一。
三、链抽象并没有根本上解决碎片化问题
这个问题的提出和大单体链沙文主义有异曲同工之处,说白了这不是链抽象的问题,而是提问者的幻想。
我们从两个受众群体出发去定义碎片化问题的解决。
对于用户来说,碎片化带来的最直接的问题就是:需要在多链之间手动桥接,需要准备不同的 gas 代币,需要频繁在多链之间管理余额。
而链抽象已经解决了这个问题,允许用户使用任意链的任意代币余额和任意 dApp 交互,任意链上的流动性在购买力上都是等效的。
对于开发者来说,碎片化问题的解决有两种思路:
1)全链部署智能合约,但用户侧体验的割裂依然存在。
2)只在一条链上部署,但可以被任意链的用户访问,可以无缝引入其余链的流动性,这就是链抽象的解决方案。
所以链抽象已经可以从用户侧和开发者侧都解决碎片化问题。
至于所谓的完全统一底层区块链流动性,这是不可行的。不同区块链之间存在共识机制、数据结构和经济模型等的根本差异,不可能做到原子化的等效,否则就还是回到了要在单一链上建立整个 Web3 的问题。
关于「链抽象」的常见误解
关于「链抽象」的常见误解 作者:HelloLydia¹³ 来...