LAYER:Layer2 的一种通用分析框架

一般来讲,Layer1特指一种可在大范围内,尤其特指全球范围内达成业务一致性的区块链网络系统。而相应地,Layer2则是基于Layer1之上,在相对更小范围达成一致性的网络系统。典型的Layer1系统包括以太坊、比特币以及NervosCKB等,典型的Layer2协议有状态通道、Plasma等。对于Layer2来说,Layer1承担了两个角色,首先是资产的来源,其次是仲裁的法官。Layer1的用户基于对Layer2的有限信任将部分资产转移到Layer2上享受高速、低成本的服务,并在异常发生时利用Layer1对争议进行仲裁。其中,我们将区块链上的资产定义为代币、NFT以及其他可明确所有权的数据或状态信息。2018年以来,Layer2技术的前沿技术发展迅速,各种Layer2方案不断涌现。本文尝试给出一种通用框架,对Layer2方案在不同功能点的取舍进行分析,以方便用户在不同的应用场合有针对性地选择。Layer2业务流程的生命周期

典型的Layer2业务流程包括五个主要步骤:规则设置、进入、状态迁移、退出以及挑战与应答。规则设置

在规则设置阶段,参与Layer2业务的各方会就状态迁移规则、挑战应答规则进行设置。该步骤通常表现为在Layer1部署一个智能合约,或者交易多方互换数字签名。其本质在于各方提供一个不可否认的承诺,以便在挑战与应答阶段对争议进行判定。早期的状态通道技术通常要求预先在Layer1上部署一个判定合约对规则和状态进行约束。近期以Counterfactual为代表的虚拟合约方式则仅要求参与者对规则进行链外签名认可,当用户对交易结果产生争议时再将其部署到Layer1上。这种方式大幅降低了通道建立的成本,但Plasma类的Layer2协议仍然需要在Layer1上部署规则合约以便定期接收Layer2对状态的commitment。进入

用户的资产从Layer1进入到Layer2需要用户触发Layer1的资产锁定动作,以确定其不会被两层网络双花。锁定后的资产将产生资产锁定证明,该证明在Layer2上被验证后即实现了资产的进入。假设Layer1具备足够的可用性和安全性,那么资产锁定证明的生成和内容的可靠性是无需置疑的。所以本操作的关键在于Layer1上的资产锁定证明如何在Layer2达成共识。对于支付通道/状态通道等点对点交易的Layer2协议来说,共识仅限于交易双方或有限几方之内,参与者愿意执行进一步业务即证明对对方的资产锁定证明达成了共识。对于Plasma等多对多交易的Layer2协议来说,除非所有的参与方都对某个资产锁定证明进行签名并通知所有人,否则无法确认所有人对该动作达成共识。此时,退而求其次,可由Layer2的Operator对该资产锁定证明进行签名,来宣布该动作在Layer2达成了共识。显然,存在某些情况一些参与方对该行为并不认可,他们可以执行退出动作离开这个共识区,或者把Operator的签名提交到Layer1上进行仲裁。同时,也存在Operator有意或无意地忽略了用户的资产锁定证明,并没有对其签名、在Layer2上广播的情况,此时用户也应该可以执行退出动作。最终留下来的参与者表明其对锁定证明无异议,即对此达成了与Layer1安全性一致的共识。状态迁移

Layer2用户的每一笔交易都应该使得Layer2的总状态发生正确迁移。这一步骤涉及三个关键行为:每笔交易的发生是否达成了共识,每笔交易的结果是否达成了共识,该共识的达成是否受到Layer1的监督。与进入阶段类似,参与方对共识的接受与否取决于自己与所有其他参与方的认可或自己与Operator的认可。点对点交易的Layer2只需要获得对方的签名,并确认该签名符合设置阶段的业务规则即可。而多对多交易的Layer2则必须由Operator提交共识结果,并且将共识结果的摘要提交到Layer1作为commitment以便该行为接受Layer1监督和仲裁。该步骤的几个关键点在于,参与方应能够对影响到自己资产的状态迁移进行检验;参与方应能够验证Operator提交到Layer1的commitment与自己获得的状态迁移信息的一致性,并可获得足够的数据生成证明并提交到Layer1进行质疑;当参与方交易被Operator过滤时,它的资产应可以安全地退出。其中前两个点都涉及Layer2的数据可用性问题,后一个点涉及Layer2的服务可用性问题。一旦服务或数据不可用,用户可以随时退出;在数据和服务可用前提下,Operator的作恶行为可以由Layer1约束。退出

Layer2的退出机制非常复杂,类型也非常多。但其本质都是退出人将资产状态及其证明提交到Layer1上,通过预定规则和已经由Layer1认可的状态commitment的验证解锁资产。退出流程依赖于已经达成共识的规则和状态commitment,并受后续挑战与应答阶段的约束,其本身的要点在于退出次序和退出的即时性。对于需要引入Operator为Layer2共识结果以及Layer2锚定到Layer1的commitment进行背书的协议来说,总是存在某些情况无法证明Operator给出的共识结果是错误的。因此需要一个公正的退出次序能够保障诚实用户优先退出。然而,恰恰是因为我们无法证明某人“诚实”才引入了退出的次序问题,所以这里指的诚实用户优先退出指的是所有的诚实用户都必须时刻关注Operator的行为,并在其行为失序时立刻发起退出,然后按照这些用户退出状态所在的时点的先后次序进行依次退出。用户提交的退出动作涉及的资产可能与其他用户的资产有关,Layer1往往无法确定用户提交的退出动作是否是对应资产的最终状态,这就需要等待其他用户对该动作的挑战。挑战的流程决定了退出动作的即时性。理论上,如果Layer1可以确定该动作就是对应资产的最终状态,该资产就可以即时退出。例如要求Operator在Layer1上抵押不小于当前用户所有资金余额的资金,并在每次向Layer1提交状态空间commitment时都向每一个用户发送一个当前余额的证明。那么用户就可以在最新的commitment上提交一个即时的、无需等待挑战的退出请求。挑战与应答

挑战与应答发生在Layer1,利用了它作为Layer2仲裁者的角色。对应的挑战内容为所有在Layer1上发生的与Layer2有关的交易,包括Layer2共识状态的commitment以及用户对退出状态的主张。对共识状态commitment的挑战意味着挑战者不认同Operator提交到Layer1的共识结果,这种不认同或者源自于挑战者获得了不同的状态结果,或者来自于挑战者无法获得足够的数据以得到对应的状态结果。针对第一种情况,挑战者可以提交新的commitment,并给出足够的证据证明其正确性。针对第二种情况,挑战者可以提交一个数据申请,要求Operator披露完整数据。但由于数据可用性,或者Operator签署冲突的共识结果等问题,上述挑战可能无法得到符合诚实用户利益的结果。此时,应允许用户选择最近一个用户认可的状态点进行挑战。如果1)用户由于自己疏忽导致超过了最后一个自己认可的状态点的退出提交时间;或者2)预定义的设置规则并不允许用户对Operator提交的共识commitment信息进行挑战,那么用户将蒙受损失。前者正是Plasma方案遇到的用户体验批评,后者则是多签跨链方案遇到的安全诟病。结论本框架从Layer2交易业务流程出发,分析了局域共识的Layer2与全局共识的Layer1之间进行资产转移的必要步骤。指出确保Layer2的安全性要求第一Layer2要能够达成共识,第二Layer2的共识结果必须由Layer1接受。对于点对点交易的Layer2协议来说,达成共识只需要双方交换对共识的签名即可。对于多对多交易的Layer2协议来说,达成共识不得不引入Operator的角色,并由Operator将共识结果的摘要提交到Layer1备查。我们还应该发现,Layer2Operator的数量对该流程并无本质影响,因此Layer2并不关心运营方是中心化节点还是分布式节点。此外,由于Layer2的共识范围总是小于Layer1,因此不论Layer2采取哪种共识形式,其共识结果都不能由Layer1无条件接受。因此Layer2的共识达成方式也不是Layer2安全性的决定性因素。因此,不论是哪种类型的Layer2协议,其共识结果要想获得Layer1的接受都需要经历挑战-应答过程。而挑战-应答流程则受到Layer1带宽、退出次序以及高费用的限制,对大部分用户来说是非常高的门槛。但这并不意味着用户资产退出的即时性无法得到保障,可以通过Operator对用户在Layer2持有的资产在Layer1上进行100%资产抵押来实现用户退出的实时性。从用户体验的角度来说,挑战-应答流程是一个灾难,每个用户都必须时刻关注最新的状态变更。将挑战-应答流程委托给代理方并不能提高安全性,因为它把风险转嫁到代理方的可信性上了。一个折中的方案是结合点对点交易和多对多交易的Layer2的特点,让Operator给出足够的资产抵押,并对用户在Layer2上的状态迁移给出资产退出保障。这样,一旦用户选择退出,可以立即退出,无需经历挑战-应答流程。还有一种方法就是用户舍弃转移到Layer2的资产的安全性,对Operator给与信任,由Operator完成所有的状态迁移与资产退出证明工作。相信这两种协议会是未来Layer2发展的重点。作者:王博原地址:https://talk.nervos.org/t/layer2/1531

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-6:783ms