“你将激活契约,并且你会喜欢它”
你将喜欢并激活契约
Shinobi的草稿是一个每周系列,我们的技术编辑Shinobi向比特币社区发起挑战,旨在引发围绕激烈技术辩论的讨论。
______________________________________________________________
距离比特币上次升级Taproot激活并上线已经两年了。自那以后,关于协议下一次升级的提议不断涌现,似乎堆积得比人们跟得上的速度还要快。
这些提议大多属于一个类别:契约。契约的基本目的是从根本上改变脚本如何限制比特币的支出。目前,UTXO中的脚本只能控制或限制当前现有UTXO的支出方式,契约的设计目标是扩展这种限制,使得当前现有UTXO中的脚本能够限制尚未创建的未来UTXO的支出方式。
我过去曾对启用契约的风险提出过担忧,但我得出的结论是,最初的担忧被夸大了。我仍然认为,契约可能导致一些负面后果,过多地限制未来UTXO的使用,但这些担忧主要根源于激励机制的潜在变化,而不是滥用契约本身来审查人们。
然而,问题在于:为了使我们目前的扩展方向长期发挥作用,我们绝对需要某种形式的契约。像闪电网络这样的系统都是围绕着使用预签名交易来限制未来UTXO的支出条件,但这可能非常局限。
仅涉及两个人的闪电通道的状态变更是直接的,只需要签署几笔交易。资金余额变化,任何新的HTLC或合约,以及处理这些的几笔交易。然而,对于更复杂的事务,您需要签署的交易数量会随之增加。例如,涉及多于两个人的通道。想想惩罚,现在一个人只是惩罚另一个人,非常简单。作弊方将所有资金损失给被欺骗的一方。
三个人的通道怎么办?不再是一切都归一个人,而是要确保正确的金额分配给每个被欺骗的人。并且这个正确的金额会随着通道的更新而变化。因此,每次通道状态发生变化时,您都必须签署(或以某种方式创建)交易,惩罚每个旧的通道状态,同时确保资金按照当前状态的余额正确分配给其他参与者。还必须确保只能使用最新的惩罚,否则使用不同通道状态创建的旧惩罚在有人尝试作弊后将无法正确分配资金。想象一下,每次更新通道时都要签署所有这些不断增长的交易集合,这是完全不可扩展的(即使您能找到一种使其在逻辑上首先能够工作的方法)。SIGHASH_ANYPREVOUT (APO)通过eltoo为此提供了一种解决方案,允许人们简单地用当前状态替换旧状态,而不是惩罚人们。
当考虑到链上执行事务时,类似的问题也会出现。如果将10个人放入一个通道,当其中一个不响应时会发生什么?您必须在链上关闭整个通道,阻止所有人继续在链外更新事务。像OP_TAPLEAFUPDATEVERIFY (TLUV)和OP_EVICT这样的提议可以为单个用户提供一种非合作退出通道的方法,而不会关闭其他人的通道,或者可以使除一个离线方之外的所有人高效地将该离线方踢出并保持通道对自己开放。
预签名交易的长链可以预先承诺发生的个别支付、通道打开等。然而,为了能够信任,该交易链必须从您是密钥持有人的多签地址开始,否则承诺的任何事务都可能被双重花费和作废。这就需要一个长时间的设置阶段,创建多签,每个人都必须在线签署所有内容,然后最终进行资金拨款。OP_CHECKTEMPLATEVERIFY (CTV)允许以一种无需参与长而复杂的设置阶段的方式进行信任操作。
无论我们在闪电网络和其他链外协议的工作中找到什么问题或障碍,某种基本契约提案都可以优雅地解决这些问题。而且有很多这样的提案:
- SIGHASH_ANYPREVOUT
- OP_CHECKTEMPLATEVERIFY
- OP_CHECKSIGFROMSTACK
- OP_TAPLEAF_UPDATE_VERIFY
- OP_EVICT
- OP_TXHASH
- OP_CAT
- OP_VAULT和OP_UNVAULT
- TX_HASH+CSFS
- 模板密钥
如果我错过了一些内容,我也不会感到惊讶。为了继续扩展比特币,一些提案、衍生品或者尚未被想到的新提案是必要的。这是无法避免的,要么我们接受比特币目前的限制,要么我们改进它以解决这些限制。
因此,我们将做与上一次相同的事情。你对契约有什么想法?你有什么最有趣或最有用的具体提案?你对可以构建什么,或者可以用它们解决什么问题有什么想法?你对它们有什么不了解的地方?它们是如何工作的,它们有什么用处,风险和不利之处是什么?让我们听听你的意见。
私信是开放的,如果你觉得更适合,可以发送至[email protected]。下周三我们将做与上次相同的事情,我将回答任何问题或对回复的想法进行回应,并发布回复。
We will continue to update 算娘; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles