CoinGeek访谈关于OP_PUSH_TX技术的背后故事

近期,Stas Trock编写了如何在比特币SV账本上实现、部署和交易现实世界的有状态智能合约的文章。Stas与SCrypt创始人刘晓晖密切合作,利用这一平台来开发该合约。在一篇关于有状态智能合约的Medium帖子中,晓晖称赞了nChain提出的OP_PUSH_TX的概念。

我们联系了nChain的首席技术官(CTO)——史蒂夫·施德斯(Steve Shadder),跟进了他所参与的这项概念论证的情况。

谁提出了OP_PUSH_TX的想法?

它的主要作者是在2016/2017年期间的前nChain研究员Ying Chan。我相信其他人也参与了该项目,但是Ying Chan在这方面的专业性是无人能及的

几个月前,一名为Word先生的人询问了这个问题OP_PUSH_TX的想法是怎么来的?

由于我当时不在场,如果在场的话,我会请Ying Chan亲自回答这个问题:

(提问的)动机是,我想知道比特币在解锁操作码和去除限制的情况下,可以克服什么样的局限性

在2016/2017年推出这个想法时,还只有BTC这一种数字货币。

在OP_PUSH_TX的操作中,私钥会被推送到链上。您能解释一下为什么在这种情况下无需保护私钥吗?

这只是在推送交易时用于生成签名的私钥。该签名是用来验证OP_CHECKSIG是否有效运行所必须的,并且它会确认您的计算结果是否与您当前的交易相匹配。

实际上,由于OP_PUSH_TX中的私钥并不保管任何资金,所以只要您不再使用它,就无需担心其安全性。

通过推送私钥,计算变得非常简单,因为您可以重新计算ECDSA签名算法(椭圆曲线数字签名算法)的许多元素。

您将使用一个不同的私钥来保护交易本身,当然它是不会泄露的。

您能否讨论一下,在脚本语言完全解锁的情况下,为何使用比特币时不需要私钥?

从技术上讲,脚本是不需要签名检查的,但是,它们通常被用于一种机制,该机制可以限制持有机密(secret)的用户进行比特币转账的能力。

算力谜题也一样,但是它需要在解决脚本谜题后公开这个机密。

ECDSA签名允许在不透露私钥的情况下,提供私钥的知识证明。

这里使用的哪些技术是nChain的知识产权?如果有的话,特指哪些专利?

据我所知,至少有九项相关专利应用在这项技术和其他拓展上。在比特币发明时强加在BTC上的人工限制意味着,我们必须等待比特币的协议恢复后,才能够在真实环境中看到它们的应用。

我们目前正在创世版本比特币(Genesis Bitcoin)的规则下审查和重新测试这些技术。

OP_CODESEPARATOR(或任何其他操作码)会影响这些功能吗?

我确信OP_CODESEPERATOR可用于创建复合功能,但是此技术不需要使用它。

史蒂夫,您先前向我提到过,在2018年年初,比特币SV诞生之前,您向比特币现金(Bitcoin Cash)的首席开发员(Lead Developer)解释了这项技术。您能详细说明当时的情况吗?

2018年3月,BCH社区就新提出的OP_GROUP操作码展开了激烈辩论。从本质上来说,此操作码允许对UTXO进行染色,并强加一个非常有限制性的转发条件,也就是说UTXO及其所有的后代,都必须带有与上述UTXO相同的颜色。

这被吹捧为一种可以在BCH上启用无需许可(Permission-less)代币的方法。这项建议的争议颇多,以至于讨论转向了算力战和区块链分叉的可能性。

nChain既不想进行区块链分叉,也不想使用新的OP_GROUP操作码,它解释道,OP_PUSH_TX本身就可以解决同样的问题,还能够实现更多功能,这样的话也就根本不需要任何新的操作码了。这项技术的实施只需要恢复脚本语言到它昔日成功的状态,这项任务本就应该出现在BCH的路线图中(译者注:OP_PUSH_TX本来应该在BCH上实施,却没有被纳入规划中)。

这个OP_PUSH_TX的解决方案满足了ABC引入此操作码的愿望,也满足了Bitcoin Unlimited所推动的功能需求。可惜地是,该提案遭到了怀疑其可行性以及脚本内容可能体积过大的质疑。

我们已经通过sCrypt团队所做的工作证明了第一点。通过我正在研究的其他技术,最终证明第二点也是不成问题的。

在您看来,为什么您会鼓励大家接受这种实例?

长期以来,人们认为比特币缺少一个以太坊所拥有的基础功能。这就是将脚本的条件,带入到下个交易的能力。也就是说,您可以设置花费数字货币的条件,但不能满足其中的某个条件:特定条件必须被包含在下一个子孙交易(descendant transaction)中。

这项技术表明,比特币可以做到这件事的,并且可以让它成为现实。通过访问脚本本身中的交易,您可以针对脚本部分检测这些交易,或检查其他特性,并在上述状态不满足时,强制使脚本不执行。

结论

史蒂夫,感谢你为我们花时间解答了这些问题。对于目前在比特币SV上可以实现的各种脚本技术,我希望读者能够有更清楚的了解。

为求清晰,本文中的引文经过轻微的编辑。

您是比特币新手吗?请查看CoinGeek的比特币新手入门栏目,这是了解更多关于(中本聪最初设想的)比特币与区块链的终极资源指南。

更多访谈新闻