广告

状态链是Ruben Somsen于2018年最初开发的原始第二层协议,取决于eltoo(或LN对称)提案。

日期:2025-06-15 22:50:45 栏目:DeFi 阅读:


ShareFacebookTwitterLinkedinReddIt

状态链是Ruben Somsen于2018年最初开发的原始第二层协议,取决于eltoo(或LN对称)提案。2021年,商业街区(CommerceBlock)建造了原提案的一个变体——水星(Mercury)。2024年,对最初的水星计划进行了进一步的迭代,即水星层。

与其他系统(如Ark或Lightning)相比,讨论状态链协议要复杂一些,因为在最初提出的设计,实际实现的两种设计以及其他松散提出的可能设计之间可能存在一系列变化。

像Ark一样,状态链依赖于一个集中的协调服务器来运行。与Ark不同的是,它们的信任模型与Ark批次中的vUTXO略有不同。它们依赖于协调服务器来删除以前生成的私钥共享,以保持不可信,但只要服务器遵循定义的协议并这样做,它们就提供了强大的安全保证。

状态链的一般思想是能够在链下的不同用户之间转移整个UTXO的所有权,由协调器提供便利。不需要像闪电那样接收流动性,也不需要像方舟那样协调器服务器提供任何流动性。

首先,我们来看一下Ruben Somsen提出的原始协议。

原始状态链
状态链实际上是一个预先签名的交易,允许当前状态链的所有者在他们想要的时候单方面在链上撤回,并且历史签名消息加密证明过去的所有者和他们发送状态链的接收者批准了这些转移。

最初的设计是使用ANYPREVOUT在eltoo上构建的,但是目前的计划是如何使用CHECKTEMPLATEVERIFY和CHECKSIGFROMSTACK来实现相同的功能(关于这一点的高级解释在CHECKSIGFROMSTACK文章的末尾)。其基本思想是一个脚本,使预先签名的交易能够花费任何具有该脚本的UTXO并锁定适当数量的比特币,而不是绑定到花费单个特定的UTXO。

在该协议中,希望将其硬币存入状态链的用户接近协调器服务器并通过存款协议。存款用户Bob生成了一个由他唯一拥有的密钥,同时也生成了第二个最终将被共享的“临时”密钥(稍后会详细介绍)。然后,他们制作一个存款交易,将他们的硬币锁定到一个多重签名中,需要协调者的密钥和临时密钥签名。

使用此多重签名,Bob和协调器签署一个花费该硬币的交易,并创建一个UTXO,该UTXO可以由使用LN对称的临时密钥和协调器密钥签名的任何其他交易花费,也可以由Bob的唯一密钥在时间锁后花费。Bob现在可以用适当的金额为multisig提供资金,并且状态链已经创建。

为了将一个状态链转移给Charlie, Bob必须经历一个多步骤的过程。首先,Bob用他唯一的私钥签署一条消息,证明他将把状态链转移给Charlie。Charlie还必须签署一条消息,证明他已经从Bob那里收到了状态链。最后,协调器服务器必须签署一个新的交易,允许Charlie在Bob向Charlie发送临时密钥副本之前单方面在链上声明Statechain。

所有这些都是通过适配器签名实现的。这些签名是使用随机数据块以这种方式修改的签名,该数据块使其无效,但一旦签名的持有者接收到该信息块,则可以使其再次有效。所有消息和新的预签名事务都使用适配器签名进行签名,并通过适配器数据的发布自动地同时生效。

状态链的持有者必须相信协调器服务器永远不会与以前的所有者合谋签署立即关闭状态链并从当前所有者那里窃取资金,但是预签名消息链可以证明协调器参与了盗窃,如果他们这样做的话。如果过去的所有者试图使用他们的预签名交易来窃取资金,那么只使用他们的密钥的花费路径上的时间锁允许当前所有者提交他们的预签名交易并正确地在链上索取资金。

汞和汞层

原始的状态链架构需要软分叉才能运行。CommerceBlock设计了他们的状态链变体,使其在没有软分叉的情况下运行,但为了做到这一点,在功能方面进行了权衡。

基本思想与原始设计相同,所有用户都持有一个预先签名的交易,允许他们单方面索取他们的资金,协调器服务器仍然在促进链下转移方面发挥作用,这需要他们被信任以诚实行事。两个主要区别在于如何对这些事务进行签名,以及给出预签名事务用户的结构。

就签名而言,不再存在从一个用户传递到另一个用户的临时私钥。取而代之的是,使用多方计算协议(MPC),以便原始所有者和协调器服务器能够协作生成私钥的部分片段,而无需其中任何一方拥有完整的密钥。此密钥用于对预先签名的事务进行签名。MPC协议允许当前的所有者和协调者与第三方(传输的接收者)签订第二个协议,以重新生成不同的片段,这些片段加起来就是相同的私钥。在水星和水星层协议中,在完成传输后,诚实的协调器服务器会删除与前所有者对应的密钥材料。只要这样做了,协调器就不可能再与以前的所有者签署交易,因为他们拥有的新密钥材料与任何以前的所有者可能仍然拥有的密钥材料不兼容。这其实是一个更强的保证,只要协调员是诚实的,比原来的建议。

水星和水星层的预签名事务结构不能使用LN对称,因为如果没有软分叉,这是不可能的。因此,商业性区块选择使用递减的时间锁。使用nLocktime将原始所有者的预签名交易时间锁定到从状态链创建点开始的未来很远的时间。当每个后续用户在传输期间接收状态链时,其交易的nLocktime值比前一个所有者短一些预定的时间长度。这保证了之前的所有者甚至无法在当前所有者之前尝试在链上提交他们的交易,但这也意味着最终在某些时候,当前所有者必须在之前所有者的交易开始生效之前关闭他们的链上状态链。
结束
状态链并不是完全不可信的,但它们是一种非常信任最小化的方案,具有非常高的流动性效率,并且允许在任何愿意接受状态链信任模型的用户之间自由地转移utxo。

虽然最初的提案尚未构建,但由CommerceBlock设计的两个实现已经完全实现。在现实世界中,这两种技术都只是边际使用而已。这是由于用户不愿意接受所涉及的信任模型,还是仅仅是营销或意识上的失败,这是无法完全确定的。

无论如何,考虑到有两个完整的实现和更灵活的设计,如果LN对称在比特币上成为可能,这个选项将永远存在。开源软件的好处在于,不管人们现在是否使用它,或者将来是否选择使用它,它都会一直存在。

TAGSLayer 2ruben一些状态链
ShareFacebookTwitterLinkedinReddIt

水星和水星层之间的主要区别在于如何对这些事务进行签名。在Mercury的情况下,协调器服务器只是看到被提议的事务,对其进行验证,然后对其签名。水星层使用盲签名协议,这意味着他们实际上看不到他们正在签名的事务的任何细节。这需要服务器使用服务器上的匿名记录和当前所有者的特殊授权密钥来跟踪状态链,以便他们可以确保他们只签署有效的传输。

与其他层的协同作用
状态链可以与基于预签名事务的其他第2层协同。例如,原始提案的一部分建议将状态链和闪电通道结合起来。因为两者都是简单的预签名交易,所以实际上可以在状态链上嵌套一个闪电通道。这只需要当前所有者的单边退出密钥是多重签名,并创建输出到闪电通道的预签名交易支出。这使得闪电通道可以完全在链下打开和关闭。

以类似的方式,可以在Ark批处理中的vUTXO上嵌套状态链。这只需要构造状态链所需的预签名事务,花费vUTXO输出。


我来作答

关于作者

510

提问

27万+

阅读量

0

回答

350800

余额

3百+

被赞

2百+

被踩