长久以来,我们沉浸在区块链的内容海洋中,但如同水中捞月、镜中摘花,阅读过后仍旧困惑不解。我们不禁反思,难道区块链技术仅限技术人员理解吗?答案当然是否定的。撇开市场上故弄玄虚的小圈子,实际上,区块链涉及的加密技术、分布式存储等早已不再是新奇之事。大量深入浅出的文章被我们忽视,导致我们误以为区块链领域过于神秘莫测。今日,Josh Stark撰写的一篇7000字长文,虽篇幅可观,但言简意赅、不卖关子,极为难得地将区块链技术原理讲解得通俗易懂。若你能耐心研读,必将对以太坊及其Layer2架构有全新的理解和认知,或许还能重燃你对以太坊的信任与信念。
未来,我们会呈现更多这类文章,目标在于让更多人触及并读懂区块链,促进更多此类通俗好文的传播。唯有让更多人投身这个领域,区块链的“共识”未来才有立足之地。2018年是以太坊基础设施建设的关键一年,这一年中,人们针对网络局限性进行了探索,并重新聚焦于扩容技术的研究与实践。
当前的以太坊尚显稚嫩,安全性和可扩展性都有待提升,这是一个共识。然而,在过去一年,由投机炒作引发的过度夸大,使区块链的能力被过分渲染。
以太坊与Web3——一个受共识机制制约的安全、易用分布式网络,旨在服务于全球数十亿用户——依然处于期待之中,其落地实现有待关键基础设施的完善。
扩容方案的两大阵营:扩容并非单一技术难题,而是一个需要克服的系列问题。其中最常见的挑战是交易吞吐量。目前,以太坊每秒处理15笔交易,相比之下,Visa可达45000笔/秒。Cryptokitties之类的热门应用一度导致网络拥堵,交易费用飙升。
以太坊为代表的公共区块链要求每个节点参与处理每一笔交易,这也是其主要瓶颈所在。在以太坊上执行的每个操作——转账、Cryptokitty的诞生、ERC20合约的生成——都需要所有节点共同执行。这种设计确保了区块链的权威性,节点无需依赖外部获取区块链状态信息,而是自我验证。
这意味着以太坊的交易吞吐量受限于单个节点的数据处理速度。
理想的扩容方案应兼顾不增加单个节点负担的同时,提高整体交易处理能力。
这里提出了两种扩容思路:
设想区块链内的节点无需并行处理每笔交易;
在现有基础上,为以太坊搭建协议层网络。
前者催生了分片(sharding)理念,由以太坊创始人Vitalik Buterin等人提出,将区块链分割为多个独立运行的“片”,每个片都能处理交易,通常属于Layer1扩容方案。
后者则引出了Layer2技术,如状态通道、Plasma和Truebit等,虽各有侧重点,但均致力于在保障安全性前提下实现“链下”操作。Layer2技术因其建立在以太坊主链之上,无需修改底层协议,仅表现为与链下软件交互的智能合约而得名。
在深入了解Layer2扩容方案之前,我们先明白其背后的加密经济学原则。区块链的核心力量在于加密经济共识。通过对激励机制精心设计并与软件和密码学相结合,网络内的所有系统参与者能达成一致共识。比特币和以太坊等众多公链已成功运用了这种机制,赋予系统内部操作以确定性。
Layer2技术旨在将区块链的效用拓展至链外,允许我们在链外开展交互,而又能在需要时回归主链。这些Layer2技术都构建在以太坊主链之上,虽然不能确保与链上操作同等的安全级别,但却能确保操作的最终性、安全性及实用性,并以牺牲一定权限为代价换取更高的运行效率和更低的手续费。
I. 状态通道(State Channels)
状态通道是一种“链下”处理交易和其他操作的技术手段,同时确保了高度的安全性和终结性。遇到问题时,操作仍可通过链上交易进行挽回。支付通道作为状态通道的一种特殊形态,已被应用多年,近期以比特币上的闪电网络为例得以普及。状态通道在2015年由Jeff Coleman首次提出,不仅能处理支付,也能处理区块链状态更新——类似于智能合约的变化。
举例说明:Alice和Bob正在进行一场三子棋游戏,赢家将获得1ETH奖金。最直观的方法是在以太坊上创建一个智能合约,将游戏规则纳入合约,并追踪每位玩家棋子的移动。每当玩家移动一步棋时,就要向合约发出一条交易。然而,这种做法显然效率低下、速度缓慢,整条网络都在为此付出资源代价,每次玩家移动,还需支付手续费并等待矿工验证后方可继续下一步。
此时,我们可以通过设计系统,让Alice和Bob之间的互动尽量在链下进行。他们可在链下更新状态,并在必要时刻返回链上进行交易,这种系统便被称为“状态通道”。
1.我们在以太坊主链上创建一个智能合约作为裁判,并将游戏规则、Alice和Bob两位参赛者的身份写入合约,同时设定1ETH的奖励金额。
接下来,Alice和Bob开始互动。Alice先行一步并签名,将签名后的版本传给Bob,Bob亦签名并将自己签名后的版本回传并保存副本。此后双方轮流签名并更新各自状态,每次互动都会附带一个唯一的“nonce”编号,以便按顺序排列交互事件。
直至此时,所有操作并未在链上发生。Alice和Bob只是在网络中交换带有区块链认证的交易,但从有效性角度看,这些交易依然被视为有效的以太坊交易,犹如双方在交换带有银行认证的支票。实际上,银行账户并无资金变动,但只要双方愿意,任何时候都可以将这些支票存入银行兑现。
如果游戏结束,例如Alice获胜,双方只需将最终状态(交易清单)上传并关闭通道,进而仅需支付一次交易费用即可。智能合约将确保双方签名确认的“最终状态”,并在等待一段时间以确保结果可靠性后,将1ETH奖金发放给Alice。
为何需要等待时间?假设Bob上传的是非最终版本,合约只能执行指令,无法判断哪个版本为最终版。这时设置等待期,可以让Alice提交证据证明她提供的是最终状态。
特点与局限性
状态通道依赖于网络连接的可用性,若Alice在游戏过程中断网,可能导致她无法及时提交状态信息。不过,Alice可以付费请他人保管她的交易状态,以维持数据的可用性。
对于需要多次状态更新且持续时间较长的应用程序,状态通道特别适用。因为创建通道时需要一次性费用,但在后续维护时成本极低。
状态通道适用于用户固定的场景,因为合约需要预先知道通道内的所有实体(地址)。尽管用户数量可以动态增减,但需要在合同上作出相应变更。
状态通道具备较高的隐私性,因为所有操作都在参与者的“内部”通道和双方之间完成,而非公开链上记录。
状态通道具有即时终结性,一旦双方对状态签名确认,则视作最终状态,如有必要,也可强制链上执行。
L4组织正在研发一个基于以太坊的状态通道框架——Counterfactual,旨在提供通用且模块化的模板,使开发者无须自行研究状态通道即可在应用程序中加以利用。此外,Raiden项目也值得关注,其目标是构建一个类似闪电网络的支付通道网络,使得用户可以与一个大型通道网络开通通道,无需手续费即可与同一网络内的所有成员交易。
2017年8月11日,Vitalik Buterin与Joseph Poon联合发表《Plasma:自主智能合约》论文,推出了一项创新技术,旨在提升以太坊的处理效率。与状态通道相同,Plasma也是一种处理链下交易的技术,依赖于以太坊底层技术确保安全性。但Plasma采取了不同的途径,通过在以太坊主链上创建“子链”(“child” blockchain)。这些子链自身也可以创建子链,形成层级结构。
借助这种方式,我们可以在子链层面执行复杂操作,运行包含数千用户的大型应用程序,与此同时,与以太坊主链的交互次数大幅减少。子链运行速度快,交易费用低廉,因为交易处理无需经过主链。
以下我们通过实例了解Plasma的工作方式:
设想你在以太坊上创建
文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系多特删除。(联系邮箱:[email protected])
近期热点