区块链第二层扩容方案plasma和rollups

链巨人 链巨人     2023-04-04     514

关键词:

本文首发在本人知乎专栏 https://zhuanlan.zhihu.com/p/361016799

目前的permissionless区块链系统比如以太坊和比特币存在扩展性问题,表现为每秒所能处理的最大交易量有限。以太坊15tps左右,比特币7tps左右。为了让区块链系统能够处理更多的交易,人们提出了很多方法,比如blockchain sharding技术,新的共识算法,RSA accumulator,ZKP,和off-chain。off-chain包含payment channel、state channel和plasma以及rollups,都是layer2扩容方案。

这里讲解Plasma和Rollups.

Plasma

Plasma有很多变体,但是它的总体思想是一样的:有个体叫operator,ta用个人网站收集用户发来的交易数据Ti,将这些数据作为输入生成一个hash值,定期把新生成的hash值发布到区块链(比如以太坊)中。operator然后将一个证明返回给用户。这个证明是用来向这个用户证明这个交易已经“链接/敲定”到区块链上面了(交易数据到Merkle tree的根的路径信息)。

 

需要注意的是,只有hash值被保存在区块链中,那些交易数据并没有。

为什么要这样做呢?这样子,operator所管理的这个网站就相当于一个虚拟的银行,用户可以在这个虚拟银行中相互转账,而不是必须要跟main-chain(这里指上文中的智能合约区块链,比如以太坊)交互。举一个例子,我现在在operator那里注册一个账号,“可以”不跟main-chain交互,就能够接收到别人给我的转账。我也可以使用以太币兑换成这个plasma的代币来在这个虚拟银行中使用,只要我账号中有了代币,正常情况下可以不用跟main-chain交互。因此,显而易见的,在这个虚拟银行中转账,可以显著降低转账手续费。

虽然operator是一个个体,可能是malicious的,但是,这个协议能够保证operator无法盗取用户的钱,不过这个保证有一个前提:需要用户时刻监视着main-chain。需要注意的是,这个协议只提高吞吐量,而不是降低交易延迟。它需要用户时刻监视着main-chain,以免operator或者其它用户作恶(比如盗取用户钱)-- 当这种情况发送时,需要用户向main-chain中的智能合约提出挑战来解决争端,阻止operator的这次作恶。具体的攻击可以参考这篇blog: 深入理解Plasma(四)Plasma Cash | 登链社区 | 深入浅出区块链技术

存在的另一个可能的攻击是operator不将证明数据发给用户。这样子用户既无法控告operator,智能合约又无法区分是谁在作恶。

出现上面所述问题的本质原因是“data unavailability”,因为只有一个hash值被提交到区块链中。因此,区块链中的共识算法无法评判到底是谁在作恶,不知道到底发生了什么。

除此之外,plasma还存在下面两个大问题。(1)攻击者比如恶意的operator能够强迫诚信的用户向main-chain提交大量的通信数据来“挑战”operator,避免自己的钱被盗取。(2)因为区块链中只保存了hash值,因此,当智能合约需要处理“争端”时,智能合约并不知道到底是谁在作恶,因此无法让作恶的那一方来支付在争端过程中所产生的交易费用。这个交易费用是不少的,因为需要将交易数据和相应的证明发送到main-chain,还需要触发智能合约来judge。关于这个方面的细节可以参考这篇论文:Lower Bounds for Off-Chain Protocols: Exploring the Limits of Plasma。

为了解决因为data unavailability所带来的问题,我们做出了折中:我们只将交易的必要的数据保存到main-chain中,而不单单是hash值。于是我们有了rollups。

Rollups

Rollups的思路跟Plasma相似,除了交易数据的hash值,我们还将交易的必要数据保存到main-chain中,比如转账人,收款人,转账金额等(后面将这些数据叫state)。如下图所示。

读者可能会问,这个state和现在的比特币转账交易数据或者以太坊的转账交易数据有什么区别?区别是state不包含转账人的签名等数据,而且其它字段都使用更小的字节空间来存储(如下图)。这样给人的感觉就是一种“压缩”,这样operator一次可以向main-chain提交几百甚至上千的压缩后的“交易数据”。这些state相当于保存在main-chain的log数据。转账人的签名等数据放到链下operator那里。

如何保证数据的一致性呢?为了这个一致性问题,出现了两种不同的技术路线,分别是Optimistic rollup和ZK rollup。前者以乐观的方式使用“challenge-response”的方式让智能合约来做裁判来解决争端。它的一个缺点是,用户要等待一周时间才能将钱从rollup中取出,因为需要留时间给可能存在的争端;后者需要operator在本地生成零知识证明(zkSNARK),智能合约通过验证该证明来判断数据是否一致(验证证明的过程的复杂度很低,而且该复杂度独立于交易的数据量和所需要证明的constraints,因此以太坊的智能合约完全能够胜任该验证任务)。它的一个优点是,用户可以很快就能将钱从rollup中取出,但缺点是需要operator有很强的算力来生成zk证明。具体还可以参考Vitalik的博客,里面有两者比较。https://vitalik.ca/general/2021/01/05/rollup.html

 

参考:

An Incomplete Guide to RollupsPlasma Cash: Plasma with much less per-user data checkingAn Incomplete Guide to Rollups

https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298

https://www.youtube.com/watch?v=QyM9qdFKsEA&t=723s

On-chain scaling to potentially ~500 tx/sec through mass tx validation

深入理解Plasma(四)Plasma Cash | 登链社区 | 深入浅出区块链技术

深入理解Plasma(三)Plasma MVP(验证实现) | 登链社区 | 深入浅出区块链技术

https://www.youtube.com/watch?v=_TBANNaVfXk

Dziembowski, Stefan, et al. "Lower bounds for off-chain protocols: Exploring the limits of plasma."12th Innovations in Theoretical Computer Science Conference (ITCS 2021). Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 2021.

barryWhiteHat/roll_up

当区块链使用证明之后

...了Optimism、Arbtrium、zksync等应用此技术的方案。而在整个区块链领域里,以太坊的“证明”技术都与rollup技术进行了融合,形成了optimistic rollup和zk rollup以及,而像Mina这样完全应用零知识证明技术体系的区块链,... 查看详情

以太坊2.0中的layer2

...成为一个热门话题。所谓Layer2 是一种由以太坊提出的对区块链进行扩容的策略。早期的以太坊拥堵是有目共睹的问题,以太坊的扩容也是在之前十分值得关注的事件。以太坊在扩容时,提出了两个策略,一个就是直... 查看详情

shardblobtransaction是什么

...A这个问题。因为资料本身就是全都在链上,我们每个区块、每一笔交易的资料在每个节点都可以看到,所以我们根本不会意识到资料不可用这个问题。但是,比如说Layer1的区块时间是固定的12秒、13秒,它的Gaslimit... 查看详情

深入理解plasmaplasma细节

...篇文章将对其运行过程中的一些关键部分,包括Plasma提交区块的过程,当有恶意行为发生时如何构建防伪证明以及如何退出Plasma子链等进行剖析。需要注意的是,由于Pla 查看详情

深入理解plasmaplasma细节

...篇文章将对其运行过程中的一些关键部分,包括Plasma提交区块的过程,当有恶意行为发生时如何构建防伪证明以及如何退出Plasma子链等进行剖析。需要注意的是,由于Pla 查看详情

11v神12/6endgame区块链扩容的终局

...入Rollup阵营吧,大家一起Roll起来!从以太坊Rollup区块生产的中心化长期来看,可能是个不可避免的趋势,But,That’sOK……加入RollUp阵营  目前的“大区块链”(BSC、Solana等)有非常高的区块频率、非常大的区... 查看详情

深入理解plasmaplasmacash

这一系列文章将围绕以太坊的二层扩容框架Plasma,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在Plasma框架下的项目PlasmaCash。在上一篇文章中我们已经理解了Plasma的最小实现PlasmaMVP... 查看详情

什么是比特币?宁话区块链第1集视频

欢迎收看《宁话区块链》,这是一档分享区块链入门知识的节目,每集3分钟一共10集,希望可以帮助你快速了解区块链,抓住属于你的行业机会。本集内容摘要什么是比特币比特币的特点如何获得比特币点击观看视频下集预告什... 查看详情

科普|区块链扩容之侧链v.s.rollups

这是白话区块链的第1721期原创 作者|CyberPunkMetalHead编译|火火出品|白话区块链(ID:hellobtc)区块链的可扩展性是指随着越来越多的用户采用该服务,它能够自如应对不断增长的用户数据计算需求。当谈到可... 查看详情

以太坊optimisticrollup原理概览(代码片段)

...交给RollupL1。二层网络Optimism智能合约要点解析|登链社区|区块链技术社区解析Optimism在代码层面是如何工作的https://learnblockchai 查看详情

区块链中执行层扩容的常见方案

区块链分层已经成为了当今项目中十分常见的内容。其中,执行层因为主要负责区块链交易的处理、执行等,有着十分重要的地位。因此,随着区块链的交易需求不断增加,针对执行层进行扩容也显得十分重要。... 查看详情

区块链架构与扩容方案

 区块链分层架构区块链大致上分为三大主层:Layer0层主要工作是针对区块链与传统网络结合的非共识问题,可以简单理解为网际网络的资料传输,目前只有少数项目针对Layer0进行研究与开发。Layer1层包含了所有区块链的... 查看详情

区块链链上扩容链下扩容layer-2扩容

链上扩容,也常被称为layer-1扩容。直接修改区块链的基础规则,包括区块大小、共识机制等。链下扩容,也常被称为Layer-2扩容方案。不直接改动区块链本身的规则(区块大小、共识机制等),而是在其之... 查看详情

区块链链上扩容链下扩容layer-2扩容

链上扩容,也常被称为layer-1扩容。直接修改区块链的基础规则,包括区块大小、共识机制等。链下扩容,也常被称为Layer-2扩容方案。不直接改动区块链本身的规则(区块大小、共识机制等),而是在其之... 查看详情

深入理解plasmaplasmamvp

这一系列文章将围绕以太坊的二层扩容框架Plasma,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍Plasma的一个最小实现PlasmaMVP(MinimaViablePlasma)。在上一篇文章中我们已经理解了Plasma中... 查看详情

深入理解plasmaplasmamvp

这一系列文章将围绕以太坊的二层扩容框架Plasma,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍Plasma的一个最小实现PlasmaMVP(MinimaViablePlasma)。在上一篇文章中我们已经理解了Plasma中... 查看详情

为区块链提速,多层扩容方案

区块链以去中心化的设计构建出了一个具备高度信任的网络环境,这种独特的机制,为互联网带来了更高的安全性和隐私性,受到许多人的青睐。目前,区块链已经在金融、教育、农业、交通、司法、税务、证书... 查看详情

以太坊optimisticrollup原理概览(代码片段)

...是使以太坊更有效率的方法之一,通常被称为L2解决方案。有3种L2解决方案类型:状态通道、plasma和Rollup。我很快会有一篇关于 L2解决方案的分类 的文章,将详细介绍这个问题。下面是关于什么是Rollup,特别是... 查看详情