主页 > imtoken官网下载广告 > 干货| 比特币升级提案 Taproot 技术解读

干货| 比特币升级提案 Taproot 技术解读

imtoken官网下载广告 2023-09-09 05:13:06

比特币使用的数字签名方案叫什么_比特币签名的密码学原理_什么叫比特币矿池

本文将讨论比特币升级提案 Taproot,它将引入许多新功能。 本文将从各个技术层面分析Taproot,介绍本次升级涉及的技术,以及这些技术将给比特币用户带来哪些好处。

什么是主根?

Taproot 于 2018 年由比特币核心贡献者 Gregory Maxwell 首次提出。 此实现目前正在开发中。 如果没有 Taproot,这些复杂的交易(时间锁、多重签名)将需要多个交易才能完成,因此很容易失败。

Taproot 通过允许复杂交易(多重签名、时间锁)像单个比特币交易一样执行来增强比特币的隐私性。

Taproot 升级包括三个重要的技术变化(概念),旨在增强比特币的可扩展性、隐私性和灵活性。

我们将从技术层面讨论这三个概念比特币使用的数字签名方案叫什么,以了解 Taproot 升级将如何使比特币用户受益。

P2SH(脚本支付哈希)

比特币地址是一串字母和数字。 用户可以与他人分享,以便从后者那里获得 BTC。 比特币交易有两个主要标准:Pay-to-PubKeyHash (P2PKH) 和 Pay-to-ScriptHash (P2SH)。

比特币签名的密码学原理_什么叫比特币矿池_比特币使用的数字签名方案叫什么

在讨论P2SH(Pay To Script Hash)和P2PKH(Pay-To-PubKey Hash)这两个概念之前,我们先来熟悉一下比特币的背景知识:

支付到 PubKeyHash (P2PKH)

Pay-to-PubKeyHash 是一种传统的比特币地址格式。 它的地址以数字 1 开头。

只有 P2PKH 地址的所有者才能解锁 PubKey 脚本并通过提供公钥哈希和私钥签名来使用收到的 BTC。 私钥用于证明公钥散列的所有权。

正如我们上面所讨论的,脚本定义了在什么条件下可以使用特定地址上的 BTC。 当满足指定条件并通过网络验证时,该地址上的 BTC 将被解锁用于消费。

这个过程是如何进行的? —— 接收方首先生成一个PubKey脚本,共享给发送方。 发件人在发送 BTC 时将此 PubKey 脚本添加到交易中。 在接收 BTC 时,如果接收方想要解锁这些 BTC UTXO,则必须提供公钥哈希和私钥签名,并满足 PubKey 脚本中提到的条件。

比特币使用的数字签名方案叫什么_比特币签名的密码学原理_什么叫比特币矿池

例如,这些条件可能是:

比特币使用的数字签名方案叫什么_比特币签名的密码学原理_什么叫比特币矿池

以上情况均可作为解锁BTC的条件。

发送比特币时,发送方需要在交易中包含 PubKey 脚本。 因此,这增加了交易量,产生的交易费用比正常交易高出约 5 倍。

在这里,发件人必须承担额外费用。 Pay-to-ScriptHash 可以帮助发件人避免这种额外费用。

支付脚本哈希 (P2SH)

Pay To Script Hash (P2SH) 可以帮助发送方避免额外成本,并将这种责任(额外成本)转移给真正需要使用锁定脚本中指定条件的接收方。 Pay-to-ScriptHash 比特币地址以数字 3 开头。

在此交易标准下,发送方无需将长的 PubKey 脚本放入其交易中。 在这里,锁定脚本被替换为赎回脚本的哈希值。 赎回脚本哈希值由赎回脚本计算得出。 兑换脚本类似于 PubKey 脚本,并且包含接收方在花费未花费的输出之前必须满足的条件。 发送方只需在交易中注明赎回脚本的哈希值即可。 兑换脚本哈希可以翻译成标准的比特币地址,发送者可以将比特币发送到这些地址,无需任何特殊操作或额外费用。

当接收方想要解锁这个P2SH地址上的BTC时,需要生成一个具有相同哈希值的赎回脚本,并将其包含在交易中。 结果,接收方用来解锁 UTXO 的交易规模增加了,执行交易的成本也增加了。

例如,Alice 想发送 10 BTC 给 Bob。 Alice 必须将兑换脚本哈希包含到交易中。 首先,Bob 先生生成赎回脚本,然后将赎回脚本的哈希值发送给爱丽丝,让爱丽丝将哈希值添加到交易中并发起交易。 如果 Bob 想要花费这个 UTXO,他必须生成一个具有相同哈希值的解锁脚本,并且满足脚本中提到的条件。

比特币使用的数字签名方案叫什么_比特币签名的密码学原理_什么叫比特币矿池

请记住,Alice 只需将兑换脚本的哈希添加到交易中,而不是整个脚本。 因此,爱丽丝不会产生额外费用。

Pay-to-ScriptHash 的优势

(…)

MAST(默克尔抽象语法树)

MAST是Merklized Abstract Syntax Tree(默克尔抽象语法树)的缩写。

为什么要使用桅杆? 如果你想从 P2SH 地址花费 BTC,你必须生成一个具有相同哈希值的兑换脚本并将其包含在交易中。 如果脚本中规定的消费条件过多,交易量就会变得非常庞大。 MAST可以很好的解决这个问题。

Merkle抽象语法树是Merkle树和抽象语法树的结合。

就像 Pay To Script Hash (P2SH) 支付给一个哈希为 X 的脚本,MAST 支付给一个哈希为 X 的 Merkle 根。 MAST 是将一大组条件中的每个条件组装成一个哈希树(所以-称为默克尔树),默克尔树的根值是一个哈希值,由所有的条件进行哈希。

比特币使用的数字签名方案叫什么_什么叫比特币矿池_比特币签名的密码学原理

Merkle根和哈希树是如何生成的?

首先对所有脚本(条件)进行哈希计算; 然后将计算出的哈希值与相邻的哈希值结合起来进行哈希计算,生成一组新的哈希值。 重复这个二乘二的哈希计算过程,直到计算出最后一个哈希值。 这个散列是 Merkle 根。

假设有四组条件。 首先分别计算这四组条件的哈希值; 然后将这四个哈希值成对配对,计算出两个哈希值; 最后,结合这两个哈希值进行哈希计算,生成最终的哈希值。 这个最终的哈希是 Merkle 根。

比特币使用的数字签名方案叫什么_比特币签名的密码学原理_什么叫比特币矿池

这个默克利化根可以翻译成一个有效的能够接收支付的比特币地址,即默克利化比特币地址。 Merkle 比特币地址有很多优点,主要的优点是不需要知道所有的脚本单元来验证一个脚本是否位于这棵 Merkle 树上。 这种称为 Merkle Proof 的技术可用于轻松验证比特币 UTXO 是否包含某些解锁条件。

在 MAST 中,BTC 与 Merkle 树绑定。 这棵 Merkle 树指定了可以解锁未使用的 BTC 的所有复杂条件。 每个叶节点代表一个条件。 为了解锁 BTC,您必须生成满足 Merkle 树上某个分支所表示的条件的脚本。 只有使用Merkle根才能验证这个条件是否属于原始条件集(即验证某个叶子节点是否在这棵Merkle树上)。 一旦比特币区块链网络发现某个脚本(及其代表的条件)属于这个默克尔根,网络就会知道这个脚本是这些比特币的锁定条件,并开始验证解锁脚本。 因此,我们可以使用锁定在 MAST 中的 BTC,而无需生成完整的脚本并将其包含在交易中。 这有助于减少 BTC 交易量。

Schnorr 签名

在密码学中,Schnorr签名是由Claus Schnorr提出的Schnorr签名算法生成的数字签名。 Schnorr 签名算法是一种以简单着称的数字签名方案,它通过将多个签名聚合为一个签名来优化验证和认证过程。 该方案适用于多重签名交易。

什么叫比特币矿池_比特币使用的数字签名方案叫什么_比特币签名的密码学原理

为了执行交易,你需​​要用你的私钥签署交易比特币使用的数字签名方案叫什么,证明你是某个公钥背后的比特币的所有者。 但是,要执行多重签名交易,您必须提供多个签名。 这些签名占用额外的空间。

以 12/20 多重签名交易为例。 12/20 意味着至少需要 20 个签名中的任意 12 个才能执行交易。 签署交易时,签名也存储在块内。 假设一个签名的大小是5个字节,那么12个签名需要占用一块60字节的内存(5*12=60),100个签名需要占用500字节的内存。 这会增加内存使用量。 Schnorr 签名正好可以解决这个问题。

为了理解 Schnorr 签名,让我们看两个例子:

比特币升级 - Taproot 计划将上述概念引入比特币区块链,增强其可扩展性、隐私性和灵活性。

比特币主根:总结

本文主要围绕以下几点介绍Taproot:

(结束)

(本文链接较多,可点击左下方“阅读原文”从EthFans网站获取)

原文链接: