Balenciaga on Nostr: PSBT 是什么?它如何解决比特币 NFT 的交易问题? 乍一看,PSBT ...
PSBT 是什么?它如何解决比特币 NFT 的交易问题?
乍一看,PSBT 这个概念颇像 Vitalik 不久前提出的灵魂绑定 Token「SBT」这个概念,但二者却有着很大的差别。
「PSBT 其实是一个非常基础的技术,当然现在比特币有了 NFT 后,这些原本构想的东西又有了的应用场景」,BTCStudy 贡献者阿剑在采访中说道。实际上,PSBT 在比特币发展史中也可以算是由来已久了,是比特币网络中最基础且重要的协议之一。
PSBT 发展史
PSBT 是「部分签名的比特币交易」(Partially Signed Bitcoin Transactions)缩写,它由 BTC 核心开发者 Andrew Chow 设计。Andrew 最初打算开发 PSBT 协议,是因为他发现不同的比特币软硬钱包之间无法实现输入输出的兼容,急需要一套标准来解决这个问题。
在比特币的生态中,每种硬件和软件钱包似乎都有着自己独特的序列化标准范式,这种标准上的不统一使钱包软件之间的序列化无法兼容,成为比特币交易的一大噩梦。而 PSBT 的作用正是将复杂的交易结构与交易的实际签名区分开来,允许使用不同软件之间的交易实现非交互签名。任何人只要收集到足够多的 PSBT,都可以将生成的部分签名交易合并为一个完全签名的交易。
PSBT 于 2017 年 7 月借由 BIP-174 引入比特币网络,并在这个名为「0 PSBT」的原始版本中描述了该协议的详细规范,随后 PSBT 便逐渐得到其他开发者的支持,不断对其进行完善。
2018 年 10 月,比特币钱包 Bitcoin Core v0.17 放出,团队在这一版本增加的新功能中就包括了对 PSBT 的支持。到了 2020 年 3 月,在一场比特币社区的 OG 圆桌会上,比特币核心开发者再次提到了关于 PSBT 的话题。开发者们认为,PSBT 技术对于开发比特币多签钱包尤为重要,并且能让比特币网络支持各类钱包特有功能,增强可扩展性,因此希望更多比特币硬件设备生产商能够增加 PSBT 支持。
在 2021 年 1 月,在新的 BIP-370 中,PSBT 更新第 2 版「2 PSBT」,有趣的是,PSBT 是直接从「版本 0」跳到了「版本 2」,没有「版本 1」。
PSBT 工作原理
当前,比特币 NFT 的一大问题就是交易门槛极高,如果不通过 Ordinals 桥接至以太坊网络,并在 OpenSea 上交易,就只能通过 OTC 的渠道进行买卖。但 OTC 最大的问题就是需要信任,钱打过去,NFT 不一定过来,反之亦然,不少人都是因这个原因,出现了资产损失。另一方面,没有成熟有效的去信任交易渠道,比特币 NFT 也很难创造出以太坊 NFT 那样蓬勃发展的局面。
PSBT 在比特币 NFT 发展中扮演的角色,就是在没有智能合约的情况下,实现交易的去信任化。这一标准的核心是创建一个未完全签名的交易以及与其相关的一些数据,来协助未签名交易的传输,并促进未签名交易的可移植性,让多方更加便捷地签名同一笔交易。(BlockBeats 注,更多关于 PSBT 的内容请阅读《什么是「部分签名的比特币交易(PSBT)」?》)
比如,一个硬件钱包用户想要发起一笔 Coin Join 交易,在没有 PSBT 之前,这个操作流程是非常复杂的,因为比特币软件钱包不兼容硬件钱包发送过来的输入/出序列。而 PSBT 的作用就是让软件钱包先把交易的输入/出以及 UXTO(即资金集)等交易内容建构好,形成一个没有签名的交易,然后将它发送给硬件钱包。硬件钱包收到 PSBT 后对该交易进行签名,这笔交易便正式执行了。
而在多方都需要签名同一笔交易的情况下,则可以创建一个 PSBT 来标识要花费的 UTXO 和接收 UTXO 的输出,再把这个 PSBT 复制到可以签名的程序中,然后通过协调员把多个 PSBT 集成到一个 PSBT 中并发送给每个参与者,各方完全签名后即转换为一笔完整的准备广播的交易。
目前,PSBT 标准已经得到了比特币硬件钱包、软件钱包以及节点软件的广泛采用。尽管这个标准仍存在一些缺陷,但就当下来看,它已经极大地强化了比特币软件和硬件之间的互通性,让委托交易的过程实现完全去信任化。PSBT 大大协助了 CoinJoin 和其他合作型交易的运作,也让多签名变得更加易用,将是比特币 NFT 的应用场景下基础却关键的技术。
PSBT 如何实现去信任的比特币 NFT 交易?
对此,阿剑在与 BlockBeats 的采访中给出了自己的设想:假设现在有一对比特币 NFT 交易者,且 NFT 卖方的公钥是双方可知的信息。在发起一笔 NFT 交易时,买方先在交易中写好自己的 UTXO 输入以及一个承接 NFT 的输出。买方在构建好交易并签名后,将其转为 PSBT 发给卖方,卖方通过中间服务商等方式接收到消息后签名,这笔比特币 NFT 交易就成交了。
上述整个过程对买卖双方而言都是完全去信任的。对于买方来说,出价、接受地址等信息已经提前构建在交易中,一旦发生改动,签名便会失效。对于卖方来说,只有自己完成签名,NFT 才会卖出,而价格则是经过自己审核衡量的。在阿剑看来,这种简单的交易结构还在很大程度上剔除了 OpenSea、Blur 这类 NFT 交易中间服务商的抽成空间,「只要卖方的消息渠道通畅,就完全不需要中介,因为买方签好名的交易直接就是出价」。
到这里你可能会想,PSBT 解决了 P2P 的 NFT 交易,但像 Yuga Labs 这样的项目拍卖如何实现去信任化呢?
首先要说明的是,Ordinals 团队之所以质疑此次 NFT 拍卖,正是因为他们认为在比特币上进行的交易本来就不应该存在索取信任的中间代理方。不过在比特币生态未来的发展过程中,难免会需要中间协调者这个角色,我们需要做的,就是尽可能地在协调者和参与者之间也实现去信任化。
阿剑告诉 BlockBeats,就 Yuga Labs 这个例子说,想要实现拍卖的完全去信任化,光靠 PSBT 一个技术是不够的,还需要搭配一些别的技术手段,比如利用 Sighash 实现的委托签名。「假设现在 Yuga Las 要帮你买一个 NFT,你就可以建立一个委托签名的交易结构,并通过交易本身的 Sighash 在里面设置一些其他的条件。然后把 PSBT 发给 Yuga Labs,让他帮你去提交交易,用这样的方式去实现委托购买。」
上述这个过程就可以看作用户参与 NFT 拍卖的过程,设置的条件即铸造拍得的 NFT。作为代理方,Yuga Labs 无法修改用户提交的交易内容,只能帮用户把资金发到提前定好的目标地址。PSBT 在这个过程当中解决的则是用户如何把委托交易发给代理方的问题。
乍一看,PSBT 这个概念颇像 Vitalik 不久前提出的灵魂绑定 Token「SBT」这个概念,但二者却有着很大的差别。
「PSBT 其实是一个非常基础的技术,当然现在比特币有了 NFT 后,这些原本构想的东西又有了的应用场景」,BTCStudy 贡献者阿剑在采访中说道。实际上,PSBT 在比特币发展史中也可以算是由来已久了,是比特币网络中最基础且重要的协议之一。
PSBT 发展史
PSBT 是「部分签名的比特币交易」(Partially Signed Bitcoin Transactions)缩写,它由 BTC 核心开发者 Andrew Chow 设计。Andrew 最初打算开发 PSBT 协议,是因为他发现不同的比特币软硬钱包之间无法实现输入输出的兼容,急需要一套标准来解决这个问题。
在比特币的生态中,每种硬件和软件钱包似乎都有着自己独特的序列化标准范式,这种标准上的不统一使钱包软件之间的序列化无法兼容,成为比特币交易的一大噩梦。而 PSBT 的作用正是将复杂的交易结构与交易的实际签名区分开来,允许使用不同软件之间的交易实现非交互签名。任何人只要收集到足够多的 PSBT,都可以将生成的部分签名交易合并为一个完全签名的交易。
PSBT 于 2017 年 7 月借由 BIP-174 引入比特币网络,并在这个名为「0 PSBT」的原始版本中描述了该协议的详细规范,随后 PSBT 便逐渐得到其他开发者的支持,不断对其进行完善。
2018 年 10 月,比特币钱包 Bitcoin Core v0.17 放出,团队在这一版本增加的新功能中就包括了对 PSBT 的支持。到了 2020 年 3 月,在一场比特币社区的 OG 圆桌会上,比特币核心开发者再次提到了关于 PSBT 的话题。开发者们认为,PSBT 技术对于开发比特币多签钱包尤为重要,并且能让比特币网络支持各类钱包特有功能,增强可扩展性,因此希望更多比特币硬件设备生产商能够增加 PSBT 支持。
在 2021 年 1 月,在新的 BIP-370 中,PSBT 更新第 2 版「2 PSBT」,有趣的是,PSBT 是直接从「版本 0」跳到了「版本 2」,没有「版本 1」。
PSBT 工作原理
当前,比特币 NFT 的一大问题就是交易门槛极高,如果不通过 Ordinals 桥接至以太坊网络,并在 OpenSea 上交易,就只能通过 OTC 的渠道进行买卖。但 OTC 最大的问题就是需要信任,钱打过去,NFT 不一定过来,反之亦然,不少人都是因这个原因,出现了资产损失。另一方面,没有成熟有效的去信任交易渠道,比特币 NFT 也很难创造出以太坊 NFT 那样蓬勃发展的局面。
PSBT 在比特币 NFT 发展中扮演的角色,就是在没有智能合约的情况下,实现交易的去信任化。这一标准的核心是创建一个未完全签名的交易以及与其相关的一些数据,来协助未签名交易的传输,并促进未签名交易的可移植性,让多方更加便捷地签名同一笔交易。(BlockBeats 注,更多关于 PSBT 的内容请阅读《什么是「部分签名的比特币交易(PSBT)」?》)
比如,一个硬件钱包用户想要发起一笔 Coin Join 交易,在没有 PSBT 之前,这个操作流程是非常复杂的,因为比特币软件钱包不兼容硬件钱包发送过来的输入/出序列。而 PSBT 的作用就是让软件钱包先把交易的输入/出以及 UXTO(即资金集)等交易内容建构好,形成一个没有签名的交易,然后将它发送给硬件钱包。硬件钱包收到 PSBT 后对该交易进行签名,这笔交易便正式执行了。
而在多方都需要签名同一笔交易的情况下,则可以创建一个 PSBT 来标识要花费的 UTXO 和接收 UTXO 的输出,再把这个 PSBT 复制到可以签名的程序中,然后通过协调员把多个 PSBT 集成到一个 PSBT 中并发送给每个参与者,各方完全签名后即转换为一笔完整的准备广播的交易。
目前,PSBT 标准已经得到了比特币硬件钱包、软件钱包以及节点软件的广泛采用。尽管这个标准仍存在一些缺陷,但就当下来看,它已经极大地强化了比特币软件和硬件之间的互通性,让委托交易的过程实现完全去信任化。PSBT 大大协助了 CoinJoin 和其他合作型交易的运作,也让多签名变得更加易用,将是比特币 NFT 的应用场景下基础却关键的技术。
PSBT 如何实现去信任的比特币 NFT 交易?
对此,阿剑在与 BlockBeats 的采访中给出了自己的设想:假设现在有一对比特币 NFT 交易者,且 NFT 卖方的公钥是双方可知的信息。在发起一笔 NFT 交易时,买方先在交易中写好自己的 UTXO 输入以及一个承接 NFT 的输出。买方在构建好交易并签名后,将其转为 PSBT 发给卖方,卖方通过中间服务商等方式接收到消息后签名,这笔比特币 NFT 交易就成交了。
上述整个过程对买卖双方而言都是完全去信任的。对于买方来说,出价、接受地址等信息已经提前构建在交易中,一旦发生改动,签名便会失效。对于卖方来说,只有自己完成签名,NFT 才会卖出,而价格则是经过自己审核衡量的。在阿剑看来,这种简单的交易结构还在很大程度上剔除了 OpenSea、Blur 这类 NFT 交易中间服务商的抽成空间,「只要卖方的消息渠道通畅,就完全不需要中介,因为买方签好名的交易直接就是出价」。
到这里你可能会想,PSBT 解决了 P2P 的 NFT 交易,但像 Yuga Labs 这样的项目拍卖如何实现去信任化呢?
首先要说明的是,Ordinals 团队之所以质疑此次 NFT 拍卖,正是因为他们认为在比特币上进行的交易本来就不应该存在索取信任的中间代理方。不过在比特币生态未来的发展过程中,难免会需要中间协调者这个角色,我们需要做的,就是尽可能地在协调者和参与者之间也实现去信任化。
阿剑告诉 BlockBeats,就 Yuga Labs 这个例子说,想要实现拍卖的完全去信任化,光靠 PSBT 一个技术是不够的,还需要搭配一些别的技术手段,比如利用 Sighash 实现的委托签名。「假设现在 Yuga Las 要帮你买一个 NFT,你就可以建立一个委托签名的交易结构,并通过交易本身的 Sighash 在里面设置一些其他的条件。然后把 PSBT 发给 Yuga Labs,让他帮你去提交交易,用这样的方式去实现委托购买。」
上述这个过程就可以看作用户参与 NFT 拍卖的过程,设置的条件即铸造拍得的 NFT。作为代理方,Yuga Labs 无法修改用户提交的交易内容,只能帮用户把资金发到提前定好的目标地址。PSBT 在这个过程当中解决的则是用户如何把委托交易发给代理方的问题。