什么是状态通道?

获取更多区块链资讯

关注

NEWS

什么是状态通道?

Point

状态通道是一种被用来考虑区块链中可能发生的区块链交互的非常广泛和简单的方式,但是它可以从区块链中转移到链下,而不会显着增加任何参与者的风险。这一策略最为人所知的例子就是比特币支付通道这个想法,它允许两方之间直接发送无需费用的即时支付。状态通道是支付通道的一般形式,将相同的方式应用于通常在区块链上执行的任何类型的改变状态的操作。在不需要任何额外信任的情况下将这些交互从链条上转移到链下,可以显着提高速度和降低成本。状态通道将是扩展区块链技术以支持更高级别应用的关键部分。

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

1.部分区块链状态通过多重签名或某种智能合约进行锁定,以便特定参与者必须完全同意彼此才能进行更新。

2.参与者通过构建和签署可提交区块链的交易来相互更新状态,但这个时候仅仅是持续进行更新。每个新的更新覆盖掉以前的更新。

3.最后,参与者将状态提交回区块链,区块链关闭状态通道并再次解锁状态(通常是与开始时不同的组态)。这就是状态通道!如果两个参与者间更新的“状态”是数字货币余额,那我们就得到了一个支付通道。步骤1和步骤3打开和关闭通道,这涉及区块链操作。但是在步骤2中,可以迅速进行无限数量的更新,而完全无需涉及区块链 ——这正是状态通道大展身手的地方,因为只有步骤1和3发布到网络时才需要支付费用,或等待确认。

事实上,只要通过仔细地规划和设计,状态通道可以几乎无限期地保持开放,并且可以用作为一个区块链经济或区块链生态系统提供动力的大型枢纽和辐射系统的一部分。

尽管我在上面做了简单的描述,但状态/支付渠道一般被认为是相当复杂的。这里有几个原因,其中之一是在我的三个步骤的措辞中隐藏了一些重要的细节。

让我们仔细看看这些简单的句子意味着什么,首先是:

可以提交给区块链

为了使状态通道运作起来,参与者必须确信,他们可以随时将当前的通道的状态发布到区块链上。这会导致一些重要的限制。

例如,必须有人保持在线状态直到通道关闭,才能保护每个单独方的利益。想象一下,当我们启动一个支付通道,我一开始使用100个比特币,而你一开始10个。如果我们首先签署了一个将10个比特币转移给我的更新,然后再签署一个将50转回给你的更新,对你来说,显然后者比前者更有利。如果你在交易中意外地失去了互联网连接,并且我假装从未发生过第二次更新,那么我也许可以发布第一次更新到区块链,并有效地窃取你的50个比特币!

在这种情况下,你需要的是有人保持在线来得到第二个交易的交易副本,以便它可以覆盖掉第一个交易,从而确保你的比特币受到保护。发布交易广播的不一定是你 ——你可以将一份副本发送给许多随机服务器,这些服务器只有在需要时才通过智能合约发布交易广播(当然,收取少量费用)。但是,无论你做什么,你都需要确保最新签署的更新状态可以盖过所有旧状态。这引导我们来到下一个微妙的句子:

每个之前的更新覆盖掉之前的更新。

为了使状态通道的这部分起作用。锁定和解锁机制必须设计合理,以便提交给区块链的那些旧状态更新有机会被那些取代它们的新一代的状态更新所更正。最简单的方法是让有关任何解锁的尝试都启动一个计时器,在此期间任何较新的更新都可以替换旧的更新(重新启动定时器)。当计时完成时,通道关闭,并调整状态以反映最后收到的更新。计时器的长度将针对每个状态通道进行选择,从而平衡长通道关闭时间带来的不便,同时提高网络连接或区块链的问题的安全性。

或者,你可以构建一个财务惩罚的渠道,以便任何发布区块链更新不准确的人都会因未假冒后来的交易而使损失比得到的更多。但是这个机制最终并不重要,因为(回到前一个观点),这种情况的博弈论对事物进行了歪曲。

只要这种机制在理论上是合理的,它就可能永远不会被使用。实际上,通过计时器/罚款程序可能会引起额外费用,延误或其他不便之处;考虑到迫使某人加入这个机制并不能给你带来任何好处,状态通道的各方可能会通过最终通道状态双方达成一致的方法来关闭通道。这个最终的平仓操作需要与普通的“中间”更新有根本的区别(因为它会绕过上面的“覆盖”机制),所以参与者只会对在特定的通道内的被锁定状态的每一部分进行一次最后的平仓交易。

这些“微妙之处”的细节并不特别重要。这一切最终归结于参与者通过建立一个“裁判”智能合同来开放通道,彼此签订承诺,法官可以在必要时执行和裁决或者通过彼此商定来关闭渠道,裁判的裁决并不是必须的。只要“裁判”机制可以被认为是可靠的,这些通道可以被视为即时执行,而裁判只有在特殊情况下才会提出申诉,例如一方当事人失踪。

当然,这些细节只是人们认为状态/支付通道复杂的一部分原因。比较大的一个问题是比特币支付通道很复杂。在比特币网络中建立一个具有合理有用属性的“裁判”机制错综复杂得令人惊讶。但是一旦你对状态通道有一个清晰的概念,你就会发现,在有限的背景下,这仅仅只是一个想法。像计时器机制这样的根据提交的签名信息,允许采取两种不同的路径的基本智能合约功能,在比特币中显然很难做到。但是就目前来说,比特币其中一些功能正在逐渐添加或构建。

就我个人而言,我期待在未来6个月内看到可以使用比特币支付通道。但通过意识到支付通道只是更广泛的“状态通道”观念的一个特殊子集,我们意识到这是一个更广泛的技术,并且状态渠道可以应用于任何智能合约,这些智能合约处理参与者在其中的频繁更新。你可以预见在许多(如果不是大多数)分布式应用程序中都会使用到这种方法。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180814G0FP3200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券