http://www.tnmanning.com

侧链和状态通道:不一样的烟火

前言:大发3d的技术术语中,有很多概念经常会混淆使用。其中之一就是侧链和状态通道。两者都是大发3d的扩展解决方案。但在社区的使用中,经常被互换使用。那么它们之间到底有什么不同,有什么优缺点,谁更好?本文有助于回答你的困惑。本文作者Vasa,由“蓝狐笔记”的“Moqi”翻译。

以太坊社区中“状态通道”和“侧链”这两个术语经常被互换使用,从而导致普通用户的混淆。今天我们将这个问题搞清楚。先煮杯咖啡,因为它会需要耗费一些时间。

本文的主要目的很明确:

· 什么是状态通道?
· 什么是侧链?

然后我们进行比较:

· 它们两者试图解决什么问题?
· 哪个是更好的扩展解决方案?

现在开始。

什么是状态通道?

状态通道是一种非常广泛且简单的思考问题的方式:思考将可能发生在大发3d上的交易,在不显著增加任何参与者风险的情况下在链下执行。

这一策略最著名的例子是一分PK10的支付通道概念,它允许在双方之间直接发送即时的低费用支付。

状态通道是支付通道的一般形式,将相同的想法应用于通常在大发3d上执行的任何类型的状态改变操作。(蓝狐笔记:也即是说,支付通道只是状态通道的一种特殊形式,它不仅仅是支付)

将这些交互移至链下,且无须要求任何额外的信任,可以实现成本和速度的极大改善。状态通道将是扩展大发3d技术的关键部分,它支持更高级别的用户使用。

状态通道的基本组成非常简单:

侧链和状态通道:不一样的烟火

1.将大发3d状态的一部分通过多重签名或某种智能合约锁定,因此,特定的参与者集必须彼此间完全同意才能对其状态进行更新。

2.参与者们通过构建和签名可被提交至大发3d的交易,以更新他们之间的状态,而在此之前状态只是暂时保持在内部。每个新的状态更新都“高于”之前的更新。

3.最后,参与者们将状态提交回大发3d,这将关闭状态通道,并再次解锁状态。

就这样。如果参与者之间更新的“状态”是加密货币的余额,那么,我们就有了一个支付通道。打开和关闭通道的步骤1和3涉及到了大发3d操作。

但步骤2可以快速执行不限制次数的更新,且无须涉及到大发3d。这就是状态通道可以发挥作用的地方。因为,仅有步骤1和3需要发布到网络上,以及支付费用或等待确认。

实际上,通过仔细的规划和设计,状态通道几乎可以无限期保持开放状态,且可用于大型枢纽系统的一部分,为整个经济或生态系统提供动力。

尽管这里描述看似简单,但人们通常认为状态/支付通道是非常复杂的。造成这种情况的原因有很多:其中之一就是在对这三个步骤的表述中隐藏了一些重要的微妙之处。让我们仔细看下这些简单的短语所隐含的含义:

· 可以提交到大发3d

为了使状态通道正常工作,必须确保参与者可以在任何时候将其当前通道的状态发布到大发3d上。这导致产生了一些重大的局限,例如这样的事实:在通道关闭之前,有人必须保持在线以保护每一方的利益。

想象一下,假设当我们开启一个支付通道时,我以100BTC开始,而你以10BTC开始。如果我们首先签署将10个BTC转给我的更新,然后又签署将50个BTC转回给你的更新,第二个更新明显比上个更新对你更有利。如果你意外地网络掉线,而我则可以假装第二次更新从来没有发生过,那么,我能将第一次更新发布到大发3d上,从而有效地从你哪里窃取了50个BTC。

你需要的是有人保持在线,拥有最新交易的副本,以便于它们可以“高于”早前的交易,并确保你的一分PK10得到保护。不一定是你自己保持在线。你可以将副本发送到很多随机服务器,它们同意通过智能合约仅在需要时才发布它(可以节省费用)。但是,无论你如何做,你都需要确保最新签名的状态更新都是高于其他所有更新的。这使得我们进入下一个微妙的短语:

· 每个最新更新都“高于”之前的更新

为了使状态通道的这一部分正常工作,必须正确地设计锁定和解锁机制,以便提交给大发3d的旧状态有机会被取代它们的新状态所纠正。最简单的方法是让任何解锁尝试启动计时器,在此期间,任何新的更新都能取代旧的更新(也重启计时器)。当计时器完结,通道关闭,并且状态将进行调整以反映最后一次收到的更新。

可以为每个状态通道选择计时器的长度,以平衡较长通道关闭时间的不便利性和不断增加的应对互联网连接或大发3d问题的安全性。(蓝狐笔记:此处意思是权衡利弊,计时器过长,导致通道关闭时间过长,则会带来不便,而计时器过短,则可能带来安全问题)

或者,你可以通过罚款方式来构建通道,这样任何向大发3d发布不正确更新的人的损失要比他们假装没有发生后续交易所获得的更多。

但是这个机制最终不会有太大关系,因为(回到上一点)这种情况的博弈论使得事情产生变化。只要这种机制在理论上是合理的,它就可能永远不必使用它。

实际上通过计时器/ 惩罚程序可能会带来额外的费用、时延或其他不便;考虑到迫使某人进入机制并不能给你带来任何好处,因此,一个状态通道的参与方可能会只是通过相互商定最终通道状态来关闭通道。

这种最终关闭操作跟普通的“中介”更新有根本上的不同(既然它将绕过上面提及的最新交易“高于”之前交易的机制),因此,参与者对于在特定通道内锁定的状态的每个部分仅是签署一次关闭交易。

这些“微妙之处”的细节并不是特别重要。最终归结为参与者通过设置“法官”智能合约来打开通道,相互签署如有必要“法官”可以强制执行和裁决的承诺,然后,相互协商关闭通道,这样法官的裁决就不需要。

只要“法官”机制被认为是可靠的,这些承诺就可以算作为即时转移,只有在特殊情况下法官才会出现,例如参与方消失时。当然,这些细节只是人们认为状态/支付通道是复杂的部分原因。更大的原因是一分PK10的支付通道是复杂的。在一分PK10上构建具有合理有用属性的“法官”机制是非常复杂的。

不过,一旦你对状态通道有一个清晰的总体概念,就能看到,这只是由于在一个受限的环境中试图实施这个概念而产生。基本的智能合约功能,例如计时器机制和根据提交的签名信息来允许采用两种不同路径,这些在一分PK10中很难做到。

其中的一些功能正在逐步添加或构建。支付通道只是更广泛“状态通道”概念的特殊子情况,我们可以意识到这是一种更广泛的技术,状态通道可以应用到任何智能合约,这些智能合约在定义好的参与者组中处理频繁的更新。你可以预期在很多(如果不是大多数)分布式应用中看到这种方法。

现在,我们对什么是“状态通道”有了更明晰的理解。因此,我们来看看侧链。

什么是侧链?

侧链是使用双向锚定关联于其父链(主链)的单独大发3d。换句话说,你可以将资产移至侧链,并再移回父链。(蓝狐笔记:就是将主链资产在主链和侧链间来回移动)

侧链和状态通道:不一样的烟火

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