状态通道的现状

2020-07-17 12:29 栏目:经验之谈 来源:网络整理 查看()

在本文中,我们将学习状态通道如何工作以及它们的实现为何复杂的基础知识。我们将讨论如何使用它们来支付比特币的闪电网络,以及如何使用它们在以太网智能合同的支持下实现更复杂的应用。最后,我们将讨论为什么到目前为止身份渠道还没有被广泛采用,以及为什么这种情况可能会改变。

状态通道是如何工作的

地位渠道的核心前提出人意料地容易理解。所有希望定期交易的各方都可以先锁定智能合同中的资金,然后在链外交换签名消息,用于更新谁拥有哪些资金的状态,而不是使用链交易。任何数量的交易都可以在链外进行,其速度仅受各方交换签名信息能力的限制。任何一方想退出渠道时,都可以向链中的智能合同提交最新的签名状态,智能合同将验证签名并按照约定的分配方式分配资金。

状态通道的现状

让我们来看看状态渠道的最简单的例子:双方之间的简单支付。我们邀请了我们的老朋友,爱丽丝和鲍勃。我们假设这两个人有理由定期交换资金。他们都将钱存入基本链中的智能合同——比如,在这个例子中,每个人存入5个ETH。爱丽丝签署了向鲍勃支付1瑞士法郎的消息,这意味着她将自己的余额更新为4瑞士法郎,鲍勃的余额更新为6瑞士法郎。爱丽丝将签名的消息发送给鲍勃,鲍勃签署更新后的状态并返回。之后,鲍勃付给爱丽丝0.5瑞士法郎,把她的余额减少到5.5瑞士法郎,把她的余额增加到4.5瑞士法郎。他在付款信息上签了名,并发送给爱丽丝,然后爱丽丝在信息上签了名,又发了回去。

只要爱丽丝和鲍勃愿意,这个过程就会重复。值得注意的是,小额支付在这个系统中是可能的。由于在渠道结算前不收费,发送1000个0.001个付款就成本而言与发送一个1个付款相同。

最终,爱丽丝和鲍勃的交易结束了。双方最终签署的余额是爱丽丝有7个以太网,鲍勃有3个以太网。她将最后一个共同签署的状态提交给基本链,基本链首先验证双方使用私钥签署,然后根据指示的余额将其分发给双方。简单明了,对吧?是的,但是我们漏掉了一些关键的细节。

细节中的魔鬼

像区块链世界的许多事情一样,当各方都按照他们期望的方式行动时,地位渠道将会顺利运作。但是,如果各方总是按照他们期望的方式行动,我们就不需要先有一个分散的密码货币网络!区块链存在的全部原因是允许各方以最小化信任的方式进行贸易,这必须防止争端下的恶意行为。

对于身份渠道,即使在我们简单的双向支付渠道的例子中,考虑这些有争议的因素也会增加很多偶然的复杂性。想想这个场景。如果鲍勃向爱丽丝支付两个联邦贸易局作为商品或服务的回报,但是当他收到商品时,他使用了一个过时的状态——在他最后一次付款之前的一个签署状态——来关闭供应链上的渠道。爱丽丝和鲍勃都签署了这个先前的状态,但是智能合同不知道这个状态是先前的。这将使鲍勃能够索要爱丽丝认为属于她的钱。

为了防止这种不良行为,我们的系统可以要求两个用户都签署一个特殊的“最终”状态,它清楚地将渠道标记为关闭,并且只有当这种状态被提交时,资金才会被释放。那么,如果一方拒绝签署最终状态,或者干脆消失或长时间离线,会发生什么呢?双方的资金都将被困在智能合同中。

为了避免这种“可悲的提醒”,各方都有必要退出渠道,以中间状态撤出资金。当双方未明确关闭渠道时,大多数最终操作将增加资金支付的等待期。这给了每一方挑战退出的机会,通过显示双方签署的更新状态,从而证明对方试图欺骗。这种证据通常伴随着对恶意者的惩罚。

这是一个可行的解决方案,但我们可以看到它增加了多少复杂性。对于一个简单的双方支付渠道,双方必须不断地监控链,以确保对方不会试图欺骗。他们必须保存最新状态的缓存副本,并准备进行连锁交易以证明欺诈。此外,如果另一方停止响应,用户必须准备好等待异议期结束后再取回自己的资金。

多方支付

现在,事情是这样的——只有双方付费的状态通道的可用性是非常有限的。有多少经济交易只涉及双方之间的重复支付,而双方都可以安全地使用自己的大量资金与对方进行支付?可能有不少。

为了使状态通道更加有用,我们需要扩展它们的功能。我们有两种方法。一是增加可以使用该渠道的参与者数量。第二,扩展状态渠道的能力,不仅仅是支付,可以实现更一般的状态类型,从而实现更复杂的用例。

让我们先看看参与者的增加。最简单的方法是有一个大的渠道,所有的参与者都存入同一个合同,并签署所有的州。由于显而易见的原因,这种方法不能在少数用户之外工作。我们需要的不是单一的渠道,而是渠道网络。

闪电网:支付渠道网络

为了让支付渠道变得真正有用,比特币的闪电网络让它们跳到一条特定的路线上。任何用户都可以用一个或多个节点打开一个通道(任何人都可以操作它)。然后,支付在节点之间“跳跃”,每个节点将资金转移到下一个节点,直到它到达预期的接收者。对于这样的跳跃,每个节点将收取少量费用。

状态通道的现状

可以想象,这样的系统伴随着复杂性的爆炸,而闪电网需要很长时间来解决这样的困难。它还有很长的路要走。在过去的12-18个月中,在采用闪电网络方面没有任何改进。老实说,我不确定闪电网络是否会被广泛使用,但已建立的技术仍然令人印象深刻。

虽然闪电网络通过在所有参与者之间进行支付使身份渠道变得更加有用,但其他人采取了不同的策略:将渠道限制在少数参与者,但扩大他们的功能。

将状态添加到状态通道

通过包含关于允许何种状态转换的特定规则(这些规则可以在发生争议时在链式智能合同中进行验证和执行),状态通道可以用于构建多方分散应用程序,并获得与传统应用程序相同的性能(链接:https://mid ium.com/block channel/state-channel-for-dummies-part-2-2ffef 52220 EB)。

想象一下可以通过这个状态通道实现的应用类型。最常见的例子通常是游戏。想象一下,如果爱丽丝和鲍勃想下一盘棋,并投入一些钱。爱丽丝和鲍勃通过一个智能合同来编码象棋规则和一些表示棋盘状态的基本数据结构,可以通过交换签名信息在链外下注和下棋。游戏结束后,频道可以关闭,获胜者可以获得奖励。

如果任何一方试图欺骗,另一方可以通过聪明的合同进行“调解”。通过显示最新状态,他们可以证明游戏状态有效,并最终关闭频道。然而,在正常情况下,这种游戏将按照任何基于网络的象棋游戏的预期方式进行。唯一的区别是,在游戏的开始和结束,需要一个连锁交易来打开和关闭渠道。

前景如何?

地位渠道作为一个概念相对简单,这意味着它们是区块链世界最早提出和研究的扩展解决方案之一。然而,经过多年的研究,它们还没有以任何有意义的方式被广泛采用。这是什么原因?

正如我试图给你留下的印象,状态通道的概念相对简单,但是实际的实现涉及相当大的复杂性,尤其是当你试图构建一些实用和有用的东西的时候。事实证明,要处理许多与恶意行为有关的情况并实现人们真正想要的东西是相当困难的。我们还没有看到可能采用太多的事实,因为开发一个强大且可用的解决方案需要很长时间。

我还不会放弃状态频道。首先,闪电网络正在不断成熟,以后可能会采用更多。此外,在Etherium生态系统中,许多团队正在开发通用状态通道,这将使基于状态通道构建应用程序变得更加容易(link :https://docs . eth hub . io/Etherium-roadmap/layer-2-scaling/state-channels/)。

一个名为“反事实”的项目的进展给我留下了深刻的印象(但现在它被简单地命名为“状态频道”,这令人困惑)。通过将争议解决等复杂部分抽象出来,开发人员可以更容易地专注于应用程序特有的规则和数据结构。(链接:https://blog . state channels . org/do-we-仍然需要-state-channels/)

如果开发人员可以更容易地使用这些工具包,我们可能会看到一些真正有创意的应用程序。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发