区块空间有限:比特币区块链最多每秒最多只能处理约10笔交易。为了解决这个问题,比特币的技术社区正在开发处理“链外”交易的第二层协议,例如闪电网络和侧链。使用巧妙的加密技巧,将这些交易进行批处理,以作为单个交易定期结算在比特币区块链上.
现在,新的第二层协议进入了竞争. 状态链, 首先提出 首尔比特币聚会 组织者和 裸播播客 联合主持人鲁本·森森(Ruben Somsen)颠覆了比特币交易的概念。状态链用户无需发送地址之间的硬币,而只是发送可用于花费硬币的私钥.
这就是为什么听起来不那么疯狂的原因.
为什么状态链是安全的(或多或少)
简而言之,比特币交易只是一条消息,指出哪些硬币(“ UTXO”)从哪个地址(“输入”)移动到哪个地址(“输出”)。该消息用与发送地址相对应的私钥进行了加密签名,证明这些硬币的所有者创建了交易。然后将捆绑包(交易加签名)通过比特币网络发送,最终由矿工包含在比特币区块中.
从技术上讲,可以仅发送私钥作为付款:这允许私钥的接收者花费关联的硬币。但这并不安全。如果发件人(假设自己是原始人,称她为“爱丽丝”)将私钥发送给收件人,为什么不称他为“鲍勃”? — Bob不能确保Alice没有保留密钥的副本。如果她确实保留了密钥的副本(在这种情况下,我们将其称为“临时密钥”),那么爱丽丝仍然可以将硬币花在区块链上,因此硬币并非完全是鲍勃的.
Statechains解决此问题的第一个解决方案是在组合中添加第二个密钥。通过将硬币锁定为两个签名中的两个的多重签名(multisig)设置,仅当两个密钥都签署协议后,才能在区块链上移动硬币.
第二个密钥是由中立党维克多(Victor)产生的,他成为国家链的调解人。维克托有一项非常重要的任务。只有当最后一个临时密钥的接收者要求他完成交易时,Victor才必须签署交易。.
因此,假设爱丽丝(Alice)建立了一个状态链,维克多(Victor)担任主持人。爱丽丝(Alice)产生一个临时密钥,维克多(Victor)产生维克多(Victor)的密钥,然后他们使用两个密钥创建一个多重签名地址。然后,爱丽丝将一个比特币发送到该地址,在爱丽丝和维克多之间“锁定”。现在,如果爱丽丝希望将硬币发送给鲍勃,她可以创建一个交易,使用临时密钥对其进行签名,并要求维克托也对其进行签名。有了这两个签名,爱丽丝可以广播交易,将硬币作为常规的区块链交易发送给鲍勃。.
但这当然错过了国家链的重点。爱丽丝有个更好的主意。爱丽丝转而将临时密钥发送给鲍勃,并告诉维克多她做到了。这使Bob成为了临时密钥的最后一个接收者。鲍勃现在可以联系维克多,要求他签名以帮助移动硬币.
爱丽丝本人也仍然具有临时密钥。但是,现在,如果她要维克多(Victor)帮助签署一项交易以移动硬币,维克多(Victor)将拒绝。就维克多而言,爱丽丝不再拥有该硬币。而且由于她只持有临时密钥,所以她确实无法独自移动它.
如果鲍勃(Bob)想要将硬币转移给其他人,例如卡罗尔(Carol),他当然可以重复使用状态链技巧。当他将临时钥匙发送给Carol并告诉Victor时,Victor只会从那时起与Carol合作,从而有效地制作了Carol的硬币。此过程可以重复任意次,将临时密钥转发给Dan,Erin,Frank等,而无需进行区块链交易.
不信任维克多
上述情况实际上并未从系统中删除所有信任。而是,维克托获得了很多信任.
首先,如果维克多在要求时未签署区块链交易,则代币根本无法移动。 (也许Victor的计算机崩溃了,或者他被公共汽车撞了,或者Victor意识到自己的能力-勒索了最后一个临时钥匙接收者,向他支付了一部分硬币,以换取他的签名。)
这个问题可以解决-但是在这里,状态链设计确实变得稍微复杂一些.
当她最初建立状态链时,爱丽丝采取了预防措施。甚至在将硬币发送到多签名地址之前,她就创建了一个“备份交易”,将硬币从该多签名地址发送到新地址。.
可以在两个条件下从新地址中使用硬币。像平常一样,维克多(Victor)和临时密钥的所有者都可以签署交易,或者爱丽丝(Alice)可以在一个星期后自行花费硬币.
爱丽丝不会将此备份交易广播到比特币网络。取而代之的是,她将其交给维克多(Victor),请他签署交易,并要求他将其还给她。.
只有在爱丽丝从维克多那里收到了这份已签名(但尚未广播)的备份交易后,她才将硬币发送到多重签名地址。这样,即使维克多(Victor)失踪了,她也可以播出备用交易并在一周后收回硬币.
现在,当爱丽丝想将临时密钥发送给鲍勃时,她首先联系维克多,要求他为鲍勃签署新的备用交易并将其交给他。因此,当鲍勃(Bob)从爱丽丝(Alice)获得临时钥匙时,他已经从维克多(Victor)进行了未广播但已签署的备用交易,如果维克多(Victor)失踪,他就可以要求硬币.
作为最后的联系,爱丽丝和鲍勃(以及该瞬态密钥的所有后续所有者)使用一种为闪电网络设计的技巧,称为Eltoo。 Eltoo允许Bob用自己的备份交易“覆盖” Alice的备份交易。因此,如果爱丽丝曾经试图通过广播旧的备用交易来作弊,那么鲍勃可以利用爱丽丝需要等待与维克多合作并获得硬币的那一周,也可以简单地用自己的钱来覆盖爱丽丝的更新交易以获取资金.
第一个问题解决了.
信任维克多(有点)
解决了维克多消失的问题,但还有另一个问题:维克多可能作弊。他可以与以前的私钥所有者(例如爱丽丝)串通,从鲍勃,卡罗尔,丹,艾琳,弗兰克或任何作为临时密钥最后接收者的人那里窃取硬币。 (他以后还可以与Bob勾结,从Carol,Dan,Erin,Frank等那里窃取。)
这个问题实际上无法完全解决-这也许是状态链的最大缺点。但是可以将风险降到最低.
最小化此风险的一个步骤是“拆分” Victor,并用几个实体代替他。 “维克多的钥匙”是分开的。因此,它变成了自己的多重签名设置,例如,在12名参与者中,有8名参与者必须与临时密钥持有者合作才能移动硬币。与八个“维克多”串通比比与一个维克多串通更难.
其次,如果这些“胜利者”作弊,那么对于外界来说就很明显了。这实际上是通过创建一个新的微型区块链(实际上是“状态链”)来完成的,在该区块中,爱丽丝,鲍勃,卡罗尔和其他人签署了一条消息,确认他们已将代币转发给谁。如果维克多人与爱丽丝合谋在将硬币签名给州链上的鲍勃之后花掉硬币,每个人都会看到。 (有关此微型区块链本身的确切细节,目前尚无定论,但这并不是一个很难解决的问题。)
第三,这些“胜利者”可能是众所周知的实体;例如,一群比特币公司。这些公司将在网上享有声誉,因此,即使通过作弊可以赚钱,也会因作弊而蒙受损失。尽管在密码学上还不是完美的,但这使状态链的安全性假设类似于联邦侧链,例如Blockstream的Liquid或RSK Labs的RSK的当前实现.
就是这样!
状态链使您可以将私钥发送到链下,而不是将硬币发送到新地址.
状态链的局限性(以及潜在的解决方案)
除了对“胜利者”的信任,不要与先前的州链参与者勾结,州链确实有一些局限性.
局限性
首先要注意的是,正如本文所述,状态链确实需要两个协议升级:Schnorr签名和Sighash_Anyprevout(或类似的东西)。这两个升级都在进行中,但似乎不太有争议.
另一个限制是,状态链仅允许传输整个UTXO。爱丽丝在本文中的硬币。由于爱丽丝最初恰好锁定了一个比特币,并且她发送了与该比特币相对应的临时密钥,因此她必须传递整个硬币,鲍勃,卡罗尔和其他人也必须传递。与正常的比特币交易相比,这是一个很大的限制,在正常的比特币交易中,硬币的任何一部分都可以消费,其余的作为找零返还给发送者。.
解决方案
尽管如此,这并不一定是风口浪尖。首先,状态链可以与另一个称为“原子交换”的技巧结合使用。这一举动将使爱丽丝可以与拥有两枚半硬币的扎克交换她的全部硬币,这样双方都不需要信任对方就不会中途退出交易。所有这些都可以发生,而无需进行链上交易。这增加了灵活性.
其次,在某些情况下,甚至转移整个UTXO都是非常有用的。也许最有趣的是,它将允许参与者转移整个Lightning频道。通过将Lightning频道平衡到正确的金额(例如,首先在另一个频道中进行支付),Alice仍可以向Bob支付一小部分硬币。作为奖励,这可以让Bob立刻打开Lightning频道,而无需进行链上资金交易(这需要时间和费用).
另外,由于闪电交易存在相反的问题-大额交易比小额交易更难完成-状态链和闪电网络可以很好地互补.
隐私权问题
还不清楚隐私状态链可以提供多少。在最坏的情况下,胜利者和州链中的其他参与者将确切知道谁向谁付款。 (尽管实际上,它们仍然是公用密钥,而不是真实名称。)当涉及到胜利者时,有一些方法可以改善这一点。例如,使用盲签名(一种由eCash发明者David Chaum于1980年代首次提出的加密技巧)具有额外的好处,即能够将交易的责任从Victor转移到用户自己。 (理想情况下,胜利者甚至不知道他们要签名什么。)
反过来,其他参与者的隐私也可以通过原子交换来解决,这将有助于混淆所有权链。可能还有更多改善隐私的解决方案,例如CoinJoin改编。 (例如,这也是保护隐私的Wasabi钱包的用途。)但是细节尚未确定。.
还有一些担心,链中的过去参与者试图通过尝试通过备用交易索取硬币来作弊。虽然这不太可能成功,但只需花费(链上)交易费即可尝试,因此机会主义的作弊行为可能会限制州链的潜力.
最后,当然,状态链是一个相对较新的概念。同行评审正在进行中.
感谢Ruben Somsen提供的信息和反馈。有关状态链的更多信息,请参见他的 解释者 在Medium或他的演讲中 打破比特币 在阿姆斯特丹.