支付信道和比特币智能合约

技术博客 专栏收录该内容
15 篇文章 0 订阅

在这里插入图片描述
信息来源:nChain


一个普遍的误解是:相比于其他区块链,比特币对智能合约的支持相对薄弱。

比特币脚本语言被设计为尽可能地保持简单原始。通过使用一组操作码,该脚本语言尽可能地减小了攻击面,从而实现最大的安全性,而这刻意设计的局限性常常导致比特币的真正潜力被低估。实际上,如果仅关注了比特币脚本语言,就有可能会忽略比特币协议中的许多其他有趣功能。要了解比特币如何有利于智能合约,需要仔细观察比特币交易的框架和细节,以及比特币交易在整个生态环境中所扮演的角色。

通过这么做,很明显有很多方法可以在比特币上构建智能合约。我们可以大致概括为:

  1. 智能加锁脚本
  2. 智能使用sighash标志,以及
  3. 支付信道

这篇文章致力于解释支付信道如何让比特币成为智能合约的友好平台。

什么是支付信道?

支付信道是一个参与者通过比特币交易进行沟通的通信信道。所有通信的信息都加载在比特币交易里。

一些必须的知识

每个比特币交易,均可含有多个输入。对于每个输入,都有一个称为序列号(sequence number)的参数。此数字表示包含此输入的交易是否已最终化。如果序列号没有取最大值(0xFFFFFFF),则验证过程将查看锁定时间字段(locktime,对整个交易有效),它指定交易起效的时间,即这个交易在锁定时间到达之前无效。这对于指定一个未来的起效时间很有用。(在编写本文时,锁定时间最长可以定到大约9500年后。)在给定交易的锁定时间来临之前,这笔交易的一个具有更大序列号的新版本,可以使花费相同输入但序列号较小的较早版本失效。

这一功能在最初的比特币协议中就存在,而且是通常被称为中本聪支付信道(Nakamoto Payment Channel)的必要组成。

比特币上的智能合约的通用构架

本构架中的核心要素被称为“出资交易” (funding transaction),这个交易一旦在链上确认,即会打开一个支付信道。

一个典型的出资交易长这样:

在这里插入图片描述

与这一出资交易配对的是一个“退款交易”,它将在到达一个给定的锁定时间之后,将初始资金退回给参与人:

在这里插入图片描述

当交易TxID_0提交到区块链后,将打开出资交易中指定的合约的支付信道。参与人Alice和Bob之间的所有后续通信都通过比特币交易进行。这些交易不仅与比特币协议兼容,而且遵循支付信道所规定的规则,即在出资交易中建立的合约。验证可以由任一参与者完成。简单地说:

  1. Alice电子签名一笔比特币交易,发送给Bob。
  2. Bob检查这笔交易是否符合比特币协议和智能合约:
    a. 如果他乐意,他也签上名,发回给Alice。这会为这个支付信道创立一个检查点(上一个达成共识的交易)。
    b. 如果他不乐意,他更新这笔交易的内容,发给Alice。
  3. 这个交易每更新一次,序列号会增加1或更大的数字。
  4. Alice和Bob重复这一过程,直到他们需要在区块链上结算本次合约。
这怎么就是一个智能合约了呢?

我们需要同意智能合约的定义。如果某个合同可以自动化、强制执行,并且不需要信任,它就会算智能。如果我们同意这个定义,那么我们就来逐个验证这些要求。

自动化

Alice和Bob的动作都可以完全自动化。创建出资交易时,可以将实现自动化的源代码添加到OP_RETURN负载中。由于该交易是由双方签署的,这意味着自动化的实现由Alice和Bob共同验证和批准。

强制执行

如果任何一方试图作弊,另一方仅需简单地发布上一个达成共识的交易来索取交易输出。鉴于比特币交易的性质,作弊方获得的收益不可能超过上次约定交易的预期。换句话说,执行的强制性继承于这个成对交易的特性:出资交易和退款交易。

信任

支付通道不需要Alice和Bob彼此信任。一旦出资交易上链,他们将尝试在支付信道中沟通并达成共识。如果没能形成共识,他们总是可以回到上一个达成共识的交易。这是从强制执行特性中继承来的。

这更好在哪?

我们认定这比其他智能合约平台更好,因为它提供了可扩充性、灵活性、隐私性,并实现成本效益。

可扩容性

一般来说,一个支付通道只需要在链上记录两个交易,即出资交易和结算交易。支付信道中的所有通信都是点对点的,矿工不需要验证支付信道中交换的中间交易。这与其他区块链不同,在某些其他区块链中,每个智能合约都由网络中的所有矿工执行。这种本地化的点对点模式提供了扩容的能力。

灵活性

本方法对于实施合约的编程语言、运行平台,或者参与者需遵循的额外规则,统统没有要求。唯一的要求是支付通道的所有参与者对出资交易的所有参数和规则达成一致。

隐私性

无需将合同明文放入出资交易。为了增加隐私性,可以选择在OP_RETURN负载中放置一个哈希值来代替原始信息。

成本效益

不需要向矿工支付费用,因为他们不需要为执行智能合约提供任何服务。

除以上列出的优点外,出资交易的模板还可以分享到市场上,供其它类似案例使用。例如,一个用于双人象棋的支付信道出资交易模板,可以用到任何其他两个玩家上。我们还可以建立一个用于矿池与矿工的出资交易,这个模板也可用到其他任何矿池上。设计此类模板的难点在于确保特定于支付信道的规则不会偏向任何参与者。

结论

我们提出的是一个关于比特币智能合约的通用构架,这是许多人认为比特币所缺乏的一个特性。我们已经看到,支付信道可以提供这种功能并充分实现可扩容性、灵活性、隐私性和成本效益。它可以用在包括超小额支付(水电煤气或内容串流随用随付)或、实时游戏和电子竞技、涉及频繁支付的商业协议等许多案例中。现在,轮到你来发挥创造力了。

*本文中的比特币指的是原始比特币协议,即比特币SV 所代表的协议。

联系人: Wei Zhang, 高级研究员, nChain, w.zhang@nchain.com


Bitcoin SV是唯一遵循着中本聪于2008年发表的白皮书《比特币:点对点的电子现金系统》中协议的区块链。


  • 对比特币区块链开发感兴趣的朋友可以通过CSDN站内私信联系我们,申请加入BSV开发者交流群。
  • 同时,您也可以扫描下方二维码,关注比特币协会官方微信公众号——BA资讯,了解更多区块链领域的实时资讯。
    在这里插入图片描述
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值