Nervos 创始人详解:Layer 1 应该做什么_LAYER:MetaPlayers.gg

原文标题:《Layer1应该做什么》作者:janx

NervosApproach

NervosNetwork的技术目标是设计一个分层的加密经济网络。这样一个出发点带来的是一个与众不同的设计思路,我们自己把它称为「NervosApproach」:

如果我们认为分层是未来的发展方向,我们应该从一开始就考虑到上层协议和分层网络的需求,在分层的大框架下去设计区块链协议。

换句话说,从分层的角度来看,现有的区块链设计方式都是过时的。现有的区块链在设计时考虑的是特定的功能,并希望在运行一段时间后让上层协议来适应自己。然而如果我们阅读互联网的历史就知道,今天互联网的协议分层不是这样打补丁打出来的,相反是在吸收过去经验之后基于分层的思路重新设计出来的。NervosApproach是向互联网学习的产物。

这是为什么区块链并不天然是Layer1,Layer1是需要设计的。这也是为什么我们选择设计CKB这样一个新的区块链协议。

Layer1vsLayer2

要弄清Layer1应该做什么,先要弄清楚它和上层协议的区别。Layer2起源与我们发现公有链的性能不足,很难扩容到满足整个加密经济体需求的水平,同时我们又非常迷恋公有链提供的可用性和极大的服务范围,因此慢慢演化出了一系列可以由区块链来保证安全的Layer2协议,例如支付通道(paymentchannel),plasma,etc.

这些协议的共同特点是牺牲共识范围来换取性能。公有链最让人惊艳的地方是通过开放网络提供不间断的覆盖全球的服务,这意味着全球共识,也意味着性能底下。解决这个问题的最好方式是将大部分交易转移到共识范围更小但是性能更好的上层协议中,并且保证上层协议的参与者总是可以在不满意的时候退回到区块链上来解决问题,代价仅仅是一些时间成本。

因此作为Layer1的区块链,关注点显然不应该是性能,因为Layer2会承担这个职责。Layer1是保障上层协议参与者的最后防线,它的关注点应该是安全和去中心化。如果我们观察Layer2协议与Layer1交互的模式,我们还会发现,Layer1负责的是状态共识,Layer2负责的是状态生成。

计算与状态

程序员的世界中有一个流传甚广的公式:程序=算法数据结构。这个等式指出了程序设计的两个核心关注点,计算与数据。而数据又可以分为两种,程序输入和状态。

计算机科学中的”状态“一词可以理解为程序在运行时某个特定时刻可访问的一切数据。程序中有变量,变量通常代表着内存中的一个可以存放数据的位置,这个位置的内容就是程序的状态。一段程序的输出完全取决于它的输入和其开始执行时的状态。计算、输入/输出与状态构成了完整的冯诺依曼体系,今天最流行的计算架构。

以支付通道为例

在支付通道中,Layer2的共识范围缩小到两人之间,这是最小范围的共识。参与通道的两人进行的操作如下:

1、向Layer1发送交易建立通道,锁定特定的状态,锁定的状态只有用Alice和Bob双方的签名才能更新

例如Alice锁定1BTC,Bob锁定1BTC,我们用(1,1)表示在Layer1锁定的状态2、双方通过链外的网络连接(Layer2),产生并交换新的状态,各自签名

Alice→Bob0.5BTC,Alice/Bob在本地保存的新状态为(0.5,1.5)Bob→Alice0.1BTC,Alice/Bob在本地保存的新状态为(0.6,1.4)…最后一次交换后,Alice/Bob在本地保存的新状态为(0.2,1.8),而且双方都对该状态进行了签名3、向Layer1发送最终的状态,Layer1验证最终提交的状态有Alice/Bob双方的签名,更新锁定的状态为(0.2,1.8)并解锁

从这个例子我们很容易看到,在整个过程中,我们通常讨论的计算分成了两个部分进行:新状态的生成,新状态的验证。前者发生在Layer2,而后者发生在Layer1。如果我们观察其他的Layer2协议,例如Plasma或者是TrueBit,很容易得到类似的结论。正因为Layer1会验证Layer2产生的状态,我们才能够做到通过Layer1保证Layer2的安全,因为Layer2的用户在遇到问题的时候,总是可以请求Layer1来做某种形式的验证。

因此在分层架构下,Layer1的关注点应该是状态的验证,Layer2的关注点应该是状态的生成。通过将状态的生成转移到Layer2,将生成和验证分离,我们的分层网络兼顾了性能、安全和去中心化。

任何程序都有计算和状态,区块链上运行的程序自然也不例外,在分层架构上构建应用时,需要考虑在哪里产生状态,在哪里验证状态,在哪里保存状态。由于状态的生成和验证分离,状态生成的方法可以和验证解耦,状态生成不必被Layer1的编程模型绑定,具有更大的自由度。只要能通过Layer1验证,状态的生成甚至可以是中心化的。

Layer1应该做什么

我们在说“计算”的时候,实际上说的是“状态生成”。在一般的计算模型里面,不存在信任和安全问题,所以生成就好,不考虑验证;但是在区块链网络里面,我们不仅需要生成,还需要验证。Layer1的关注点应该是状态的验证和存储,而不是状态生成。

由此我们终于可以推出Layer1应该做什么:

1、需要一个安全的共识协议,范围越大越好。基于PoW的NakamotoConsensus正是这样一个协议,这是唯一一个在现实环境中经过验证的全球共识;2、需要可编程能力,以支持各种状态验证逻辑,这意味着我们需要一个强大的编程模型;3、需要能够理解各种密码学证明,因为区块链协议是基于密码学构建的,Layer1与Layer2之间传递的证明是密码学证明;4、需要管理好状态,因为经过验证的状态会留在Layer1上。这意味着我们需要一个关注状态的经济模型。

来源链接:talk.nervos.org

Nervos

Nervos

底层设计上将区块链范式从世界计算机改变为共识自动机,链上存储共识结果,链外执行计算过程,从根本上解决了区块链的扩展性问题。团队由以太坊Research团队核心成员Janx打造,对移动节点优化、支持分布式身份协议并同步推出侧链方案,让区块链技术真实可落地。Nervos是一套可扩展和可互操作的协议,以及一个用于分散式应用程序的开放式区块链Trustware平台。Trustware是一种新的分散式计算模式,超越了分布式账本和智能合约,带来了信任的普遍表达以满足当今现实世界应用的需求。与其它智能合约平台相比,Nervos使用「通用知识库」,这是一种具有统一状态转换语义的更简单的状态机,具有出色的可扩展性,互操作性和对网络所有参与者更好的一致性激励。NervosCKBNervos查看更多

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

金宝趣谈

[0:15ms0-4:339ms