tp钱包苹果版安卓教程|bitcoin升级

作者: tp钱包苹果版安卓教程
2024-03-16 08:13:34

升级您的钱包 | Bitcoin.com 支持中心

钱包 | Bitcoin.com 支持中心下载应用程序EnglishFrançaisDeutschPусский简体中文Español;简体中文下载应用程序EnglishFrançaisDeutschPусский简体中文Español;简体中文目录所有收藏钱包钱包升级您的钱包升级您的钱包了解如何更新Bitcoin.com钱包应用程序作者:AI Translator 一周前更新目录摘要 确保您的比特币钱包始终保持在最新版本非常重要。您会希望将钱包升级到最新版本,以便于访问我们为钱包添加的所有新功能。 如何查看您当前的比特币钱包版本您可以通过点击主屏幕右上方的齿轮图标,然后点击“关于比特币钱包”来查看您目前的版本 如何更新您的比特币钱包要更新您的钱包,请访问应用商店/游戏商店,搜索比特币钱包,然后点击更新。 如果您需要帮助更新钱包,请随时联系我们的支持团队,邮箱为wallet@bitcoin.com。这是否解答了您的问题?

下载 - 比特币

下载 - 比特币

Bitcoin.org 是一个社区支持的社区,我们十分感谢任何捐助。这些捐助会用于改进网站。

捐助

Bitcoin.org 需要你的帮助!

×

捐助Bitcoin.org

使用下方二维码或地址

3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd

$5.00

(... BTC)

$25.00

(... BTC)

$50.00

(... BTC)

介绍

个人

商家

开发者

入门指南

工作原理

White paper

资源

资源

兑换

社区

词汇表

活动

比特币核心

创新

参与

支持比特币

购买比特币

开发

常见问题

简体中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Language: zh_CN

下载Bitcoin Core

最新版本: 25.0

下载Bitcoin Core

Bitcoin Core 25.0

(This software is presently not available for download in the UK, and download links will not work if you are located within the UK.)

检查您的带宽和空间

Bitcoin Core 首次同步需要花费很长时间和下载很多数据。您应该确保有足够的带宽以及存储整个块链大小的磁盘空间(超过20GB)。如果你有一个良好的互联网连接,你可以保持您的电脑运行 Bitcoin Core 并且开放 8333 端口以帮助加强网络。 阅读完整的节点指南了解细节。

Bitcoin Core客户端是一个由社区驱动的自由软件项目,基于MIT协议授权发布。

验证发布的签名

下载种子

源代码

显示版本历史

或选择你的操作系统

Windows

exe

-

zip

macOS (x86_64)

dmg

-

tar.gz

macOS (arm64)

dmg

-

tar.gz

Linux (tgz)

64 bit

ARM Linux

64 bit

-

32 bit

RISC-V Linux

64 bit

PPC64 Linux

64 bit

-

64 bit LE

Linux (Snap Store)

支持Bitcoin.org:

捐助

3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd

介绍:

个人

商家

开发者

入门指南

工作原理

注意事项

White paper

资源:

资源

兑换

社区

词汇表

活动

比特币核心

参与:

支持比特币

开发

其他:

法律

Privacy Policy

新闻媒体

关于bitcoin.org

Blog

© Bitcoin Project 2009-2024 基于MIT协议授权发布

Bitcoin Core pages on Bitcoin.org are

maintained separately from the rest of the site.

Network Status

简体中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

zh_CN

比特币开发者的“老难题”:如何升级整个网络? - 知乎

比特币开发者的“老难题”:如何升级整个网络? - 知乎切换模式写文章登录/注册比特币开发者的“老难题”:如何升级整个网络?CoinDesk中文全球区块链与数字货币权威媒体。一场经年未决的争论又在比特币开发者社区内重现,矛头指向了去中心化系统所面临的一大关键性挑战:如何在没有负责人的情况下升级软件。这次的导火索是 Taproot/Schnorr 。这是一项聚焦于隐私性和可扩展性的升级,已经持续开发了多年,近期取得了巨大的进展,其代码也以“pull request(合并请求)”的形式进行过审查和测试,让几年前关于代码更改的讨论更加接近现实。目前为止,代码更改本身并未在开发者之间引起争议。引发讨论的是,该如何激活这部分代码,使之改变比特币交易的发送方式,才是最佳方案。之所以会出现这样的问题,其关键的原因在于,比特币没有领导者,而且分布在全世界各地。整个网络如何以向后兼容的方式平稳升级,让那些运行旧版本软件的用户继续参与?怎样才能让比特币在更改代码的过程中不造成中断?需要明确的一点是:比特币是一个开源项目,拥有一个遍布全球的开发者网络,几乎每天都会更新其代码。但是,如果“共识”代码被更改,就会触及比特币更深层次的部分,需要进行“软分叉”,需要一定程度上的协作才能平稳进行。Bitcoin Core 的贡献者马特·科拉罗(Matt Corallo)上周写了一份邮件群发给了比特币的开发者,再度引发了这场争论。他在邮件中写道:“近期,有一系列软分叉设计在具体实现和未来采用方面取得了良好的进展。然而,由于种种原因,关于激活方式的讨论却不多。”有两种方式可以进行软分叉。一种是通过 BIP 9(比特币改进提案),之前就有一些软分叉是通过这种方式进行的。它可以确保矿工在软分叉之前做好准备,确保软分叉在整个网络中平稳推进。关于这种方法,最常见的反对意见是,它给予了矿工太多权力。另一种方式是 BIP 8 ,也称为用户激活式软分叉(UASF)。无论矿工是否发出了准备就绪的信号,软分叉都会被激活。科拉罗警告说,这种方式会引发其他问题,具体取决于执行情况。历史教训该讨论始于 2017 年,当时 BIP 9 被用于激活隔离见证(Segregated Witness,SegWit),成为了比特币可扩展性之争的重要一节。为避免矿工挖出无效块并遭受损失,只有当 95% 的矿工表示准备就绪之时,隔离见证才会被激活。大多数矿池(由一群将算力聚集起来的矿工组成)表示不会支持(实际上是禁止)隔离见证,除非在激活隔离见证的同时增加区块大小参数。(那位神秘的比特币之父将区块大小的上限设定为 1 兆字节,从而限制了区块内可容纳的交易数量。每 10 分钟出一个块。)这一需求引发了不小的争议,许多人相信这会导致网络中心化(无论如何,除非比特币成为中心化的网络,否则隔离见证不可能成功施行)。简而言之,这场争议表明了,矿池可以利用 95% 这一阈值来推动符合其预期目的更改:帮助他们完成过渡,以免造成损失。许多比特币支持者并不喜欢这样,认为这是矿工在试图利用他们的权力来推动有违部分用户意愿的改变。随着争议不断加剧,一位匿名开发者 Shaolinfry 指出,比特币支持者们依然可以促成升级。从根本上来说,他的想法是,应该让比特币用户和交易所来决定是否进行更改,并让矿工遵从他们的意愿——而非反其道行之。这个方法已经被用来激活其它更改。Shaolinfy 在 BIP 8 中正式提出了这一想法,也被称为用户激活式软分叉。有大量用户在社交媒体上表示了对用户激活式隔离见证软分叉的大力支持,并开始运行该软件。此举似乎达到了预期的效果。在这个软分叉激活的前一天,矿工就开始发出信号来支持隔离见证。值得注意的是,在争论不休的这段时间内,出现了多个用户激活式软分叉,一个比一个更为谨慎(且更为保守),而且争议性更小。但是,如果不陷入困境的话,对于一些比特币开发者来说,通过用户激活式软分叉,可以更好地实施改变。当时,比特币创业公司 Blockstream 的开发者罗斯提·拉塞尔(Rusty Russell)甚至还为参与构建 BIP 9 而道歉。拉塞尔在 Medium 上的一篇文章中写道:“我没想到 BIP 9 会被用来绑架整个网络。这极大地改变了风险模型;目前,BIP 8 是一种更好地促成网络升级的方法,矿工只能加快进程,无法阻止它。”前车之鉴有了前车之鉴,一些开发者对于再次使用 BIP 9 促成 Schnorr/Taproot 或是其他更改之举非常谨慎。Bitcoin Core 的开发者卢克·达什希尔(Luke Dashjr)在回应科拉罗时表示:“我认为 BIP 9 已经被证实是一个失败的方案了。”之后,他又提出了技术上的理由。在这场关于可扩展性的争论中,有很多人支持通过用户激活式软分叉来实现隔离见证,达什希尔是其中呼声最高的一个。创业公司 Lightning Labs 的开发者亚历克斯·博斯沃思(Alex Bosworth)表达了相似的观点,还拿 BCH (2017 年从比特币分叉出的加密货币)举了例子。最近,很多 BCH 矿池联合提议,应从区块奖励中拨出一部分 BCH 给开发者基金。博斯沃思认为这又是一个矿池滥用权力的例子,不利于加密货币的去中心化。博斯沃思在推特上说:“我知道,部署软分叉通常是为了尝试对矿工友好的方法。但是,我们目前的算力有很大一部分(1/3)形成了垄断,用于通过窃取区块奖励的提议。”他主要从事可扩展型闪电网络基础设施的搭建。这就是为什么他支持用户激活式软分叉的原因,虽然后者需要消耗更多时间。博斯沃思补充说:“慢节奏的用户激活式软分叉是最适合我的。”混合式方案然而,有些人发出了警示,担心将用户激活式软分叉作为唯一的激活方式可能会促成有害比特币的更改。举例来说,最开始的时候,开发者喜欢 BIP 9 的一个原因是,95% 这一阈值会提供一道安全保障。如果矿池在升级软件之时发现了问题,他们就会阻止更改。一旦用户激活式软分叉启动,就很难停止激活。这就是为什么科拉罗老调重弹,提出了一个将 BIP 8 和 BIP 9 相结合的方案。先是按照 BIP 9 来激活软分叉,如果因为“不合理的反对理由”导致软分叉未在一年之内成功激活,那么接下来的 6 个月里用户可以再次提出争议。之后,如果社区确实想要做出更改的话,可以在下一年尝试 BIP 8 。一些开发者可能会争辩说,如果不存在“不合理的反对理由”,那么推行一项更改所花的时间就太久了。但是科拉罗表示要有耐心。要辨认这些反对理由是否“不合理”可能需要一些时间。科拉罗说:“如果更改未能成功推行,那么通过 BIP 9 流程可以很好地了解社区的民意。”科拉罗说:“比特币开发并不是一场竞赛。如果有些事不得不为,等待 42 个月可以确保我们不会开出一个负面的先例。否则随着比特币的发展,我们将追悔莫及。”虽然拉塞尔在 2017 年似乎很反对 BIP 9 ,但他已向 CoinDesk 表示,他现在同意采用这种混合式方法。拉塞尔说:“由于矿工未能成功阻止更改,我们也没有因拖延而遭受巨大损失,我不介意激活 BIP 9 。”不过,他提议缩短时间线。拉塞尔说:“对于 BIP 9 来说,一年的激活期限似乎太久了, 6 个月或许更好。这样一来,如果超出 BIP 9 的激活期限,并且被认定是遭遇矿工阻挠的缘故,用户就可以组织一个用户激活式软分叉。”工程师正在认真审查 Taproot/Schnorr 的代码,从而解决一切遗留问题。因此,开发者依然有时间来讨论激活方案。不过,先要等社区做出决定之后,才能对比特币协议进行更改,增强网络的隐私性。发布于 2020-02-21 09:15区块链(Blockchain)开发者比特币 (Bitcoin)​赞同​​添加评论​分享​喜欢​收藏​申请

Taproot是什么(比特币升级Taproot) - 知乎

Taproot是什么(比特币升级Taproot) - 知乎切换模式写文章登录/注册Taproot是什么(比特币升级Taproot)BiuBiuBiu  2021年11月14日左右,比特币将迎来自己的的一次重要的软分叉升级 Taproot,超过 90% 的矿工同意了这次升级,因此不太可能会出现 SegWit 升级时出现的社区分叉论战。似乎此次升级并没有引起太多的关注,但是也有不少文章将其称作最重要的升级。  Taproot 升级到底是什么,它是否真的让人激动不已?  Taproot 本身是主根系植物的意思,大概就像下图这样。而 Taproot 提出者GregoryMaxwell 解释道,他希望比特币交易支付的过程中,能够像主根系植物一样,关注大大的主根,而隐藏那些不必要的细小分支。什么是 Taproot?  Taproot 由 Bitcoin Core 贡献者 Gregory Maxwell 于 2018 年首次提出。该实现目前尚在开发中。如果没有 Taproot,这些复杂的交易(时间锁、多签)需要多个事务来完成,因此很容易失败。  Taproot 可以让复杂交易(多签、时间锁)像单个比特币交易那样执行,从而增强比特币的隐私性。  Taproot 升级包括三个重要的技术变化(概念),用来增强比特币的可扩展性、隐私性和灵活性。  P2SH(译者注:P2SH 并非 Taproot 升级的内容,但可以帮助大家理解 Taproot 的升级用意何在)  MAST  Schnorr 签名  P2SH(Pay-to-ScriptHash)  比特币地址是一个包含字母和数字的字符串。用户可以将其分享给其他人,以便从后者那里接收 BTC。比特币交易主要有两大标准:Pay-to-PubKeyHash (P2PKH) 和 Pay-to-ScriptHash (P2SH)。  在讨论 P2SH (Pay To Script Hash) 和 P2PKH (Pay-To-PubKey Hash) 这两个概念之前,我们首先熟悉一下关于比特币的背景知识:  在比特币网络中,比特币的形式是 UTXO。UTXO 是 Unspent Transaction (TX) Output(未花费交易输出)的缩写,即,比特币交易执行后形成的面额不定的单元。例如,你的比特币钱包里有 10 BTC,你想要转 5 BTC 给朋友。比特币区块链的处理方式与众不同。它会把 10 BTC(全部余额)都花掉,将 5 BTC 转入你朋友的钱包,剩下 5 BTC(10 BTC - 5 BTC = 5 BTC)转入你自己的钱包。这下,你和你的朋友各持有未花费的 5 BTC。  比特币使用脚本(几行代码)来规定花费 BTC/UTXO 的条件。脚本被用作一种锁定机制。  BTC 锁定在脚本中。当脚本返回成功(即条件得到满足)时,BTC 就会解锁。  任何人都可以向任意比特币地址发送 BTC。只有当脚本中定义的某些条件得到满足时,锁定的 BTC 才可以被花费出去。脚本决定了接收方可以如何花费收到的 BTC。发起交易时,发送方会在交易中放入一个叫作 “PubKey Script(又称锁定脚本)”的脚本。接收方(在日后花费时)需要生成一个 “签名脚本(又称解锁脚本)” ,是满足 PubKey 脚本的数据参数的集合。签名脚本在代码中又被叫作 “scriptSig”。  在上述例子中,你在向朋友发送 5 BTC 时,锁定脚本也会包含在这个交易内。如果你的朋友想要花费这些 BTC,必须生成满足锁定脚本中规定条件的解锁脚本。Pay-to-PubKeyHash (P2PKH)  Pay-to-PubKeyHash 是一种传统的比特币地址格式。其地址以数字 1 开头。  只有 P2PKH 地址的所有者才能通过提供公钥哈希值和私钥签名来解锁 PubKey 脚本并花费收到的 BTC。私钥是用来证明公钥哈希值的所有权的。  正如我们上文讨论过的那样,脚本定义了特定地址上的 BTC 在什么条件下可以花费。当规定条件得到满足且通过网络验证时,该地址上的 BTC 就会被解锁以供花费。  这一流程是如何运作的?—— 接收方首先生成 PubKey 脚本并将其分享给发送方。发送方在发送 BTC 时将该 PubKey 脚本 添加到交易中。收到 BTC 时,如果接收方想要解锁这些 BTC UTXO,就要提供公钥哈希和私钥签名,并满足 PubKey 脚本中提到的条件。  例如,这些条件可以是:  解锁 BTC 至少需要两个签名。  提供口令(password)才能解锁。  BTC 需要等待一段时间才能解锁。  上述这类情况可以作为解锁 BTC 的条件。  发送比特币时,发送方需要在交易中包含 PubKey 脚本。因此,这会增加交易的体积,产生的交易费比普通交易高出 5 倍左右。  这里,发送方必须承担额外的成本。Pay-to-ScriptHash 可以帮助发送方免去这一额外成本。  Pay-to-ScriptHash (P2SH)  Pay To Script Hash (P2SH) 可以帮助发送方免去额外的成本,并将这一责任(额外成本)转移到真正需要使用锁定脚本中规定条件的接收方身上。Pay-to-ScriptHash 比特币地址是以数字 3 开头的。  在这个交易标准下,发送方不需要将很长的 PubKey 脚本放到他们的交易中。这里,锁定脚本被替换成了赎回脚本(redeem script)哈希值。赎回脚本哈希值由赎回脚本计算而来。赎回脚本与 PubKey 脚本类似,包含接收方在花费未花费输出之前必须满足的条件。发送方只需在交易中注明赎回脚本的哈希值。赎回脚本哈希可以翻译成标准比特币地址,发送方无需进行任何特殊操作或支付额外费用即可将 BTC 发送到这些地址。  接收方想要解锁这个 P2SH 地址上的 BTC 时,需要生成具有相同哈希值的赎回脚本并将其包含到交易内。因此,接收方用来解锁 UTXO 的交易大小会增加,执行交易的成本也会增加。  例如,Alice 想要发送 10 BTC 给 Bob。Alice 必须将赎回脚本哈希包含到交易内。首先,Bob 先生成一个赎回脚本,然后将赎回脚本的哈希值发送给 Alice,以便 Alice 将该哈希添加到交易内并发起交易。如果 Bob 想要花费该 UTXO,必须生成相同哈希值的解锁脚本,并满足脚本中提到的条件。  别忘了,Alice 只需将赎回脚本的哈希值而非整个脚本添加到交易内。因此,Alice 无需承担额外的费用。通往不可能三角之路  不论什么样的区块链进行升级,终究解决的都是区块链中的不可能三角问题。区块链世界中的不可能三角理论是由 Vitalik 在一篇名为《On sharding blockchains》的文章中提出的。它是指,一个区块链网络中要同时实现去中心化,安全,性能(效率,扩展性)三个条件是非常困难的,往往现实是我们在提升某两个条件的时候,不得不以牺牲第三个条件为代价。  而此次的 Taproot 升级其实也并未脱离这个大的框架。Taproot 升级主要对应了两个方面。首先的一个目的是进一步提高其匿名性的能力,也就是进一步提升安全性。另一方面则是期望通过改变区块本身的数据结构来提升交易的性能,减少交易中不必要的数据负担。分解 Taproot  Taproot 升级是三个相辅相成的 BIP 的统称,其中包括了 Schnorr 签名(BIP 340),Taproot(BIP 341)和 TapScript(BIP 342)。Schnorr 签名  Schnorr 签名是由德国密码学家 Claus Schnorr 提出的,但是因为专利原因,Schnorr 签名直到 2008 年才可以免费使用,这就使得 2008 年诞生的比特币与之失之交臂(这里指 2008 年发表的原始论文),采用了 ECDSA 签名。  目前来看,Schnorr 签名几乎是在性能,安全性上全方位超越了 ECDSA 签名,更重要的是,Schnorr 和 ECDSA 采用相同的椭圆曲线算法,所以在升级的问题上更加容易实施。而其中 Schnorr 中最亮眼的部分在于作用于交易输出层面的聚合签名。  在多重签名条件下,我们往往要往交易数据中放入多个签名,尤其是当签名多的时候,这将带来很大的交易费和内存负担。但是利用聚合签名,我们可以把多个签名组合成一个签名,就像下图所示的那样。  类似的,在 Schnorr 签名下,也可以对公钥进行聚合,这大大的提升了比特币网络在交易时的性能。  而在验证的时候,传统的 ECDSA 只能支持一一验证的方式,但 Schnoor 得益于它的聚合思想,可以在节点上进行批量的验证。Taproot  我们知道匿名一直是比特币追求的一个重要的安全问题,在地址层面上,虽然比特币地址的伪匿名性一定程度上隔离了物理世界身份和链上世界地址,但是不同的交易,地址的类型却割裂的非常明显。下面的这些地址的交易类型一目了然,这就导致了攻击者对交易进行地址分析的可能。  而 Taproot 的目标正是提升比特币地址的匿名思想,让所有的地址看起来都一样,你无法从地址分析交易的类型。使用 Taproot 可以合并独立的 P2PKH 和 P2SH,使得彼此无法区分,其负担的交易费却是一样的,而这也正是利用了 Schnorr 的思想。  同时,Taproot 将 Schnorr 用来创建默克尔抽象语法树(MAST,一种将抽象语法树和默克尔树融合的数据结构)。在以前的情况中,假设我们有一笔交易,这笔交易设置的条件是,用户 A 在交易发起的前 30 天可以使用交易,用户 B 在交易发起的 30 天起可以使用交易。最终无论谁使用了交易,用户 A,B 的信息都将被暴露出去,这显然是不必要的。  而在 MAST 中,只有使用了交易的用户会被暴露出去,而另一个用户的信息将被隐藏,这大大保护了用户的隐私问题。TapScript  BIP 342 是关于 Taproot 脚本实施的具体内容,它增加了一些操作码用于执行,部署 Taproot,Schnorr,软分叉等代码层面的功能,,如 「OP_CHECKSIGADD」。禁用了「OP_CHECKMULTISIG」和「OP_CHECKMULTISIGVERIFY」 这样的低效操作码。修订了「OP_CHECKSIG」和「OP_CHECKSIGVERIFY」以便可以提供 Schnorr 的功能。整体上完善了比特币脚本的内容,以便适应 Taproot 升级。总结  总结来看,Taproot 升级确实有一些亮点,但更多的 Taproot 更像是对 SegWit 遗留问题的完善和补充,正如 bip-0341 中摘要所描述的那样:“This document proposes a new SegWit version 1 output type ...”这仅仅是 SegWit 输出层面的一个新的解决思路。  另一个问题是,Taproot 升级是一个软分叉,其中包括 Schnorr 真正的激活也要到明年才开始,所以 Taproot 本身的升级过程也非一朝一夕,如果 P2TR(Taproot 下的地址)未能成为主流,那么 P2TR 显然并未达成其匿名于其他地址的目的。  此外,还有一种声音质疑了 Taproot 实际的效果,其认为 Taproot 会导致地址空间碎片化,使得攻击者更容易分析。  对于普通用户来说,Taproot 的最直观的好处就是降低了交易费用,提升了交易的匿名性和效率。无论如何 Taproot 的升级到底会对比特币带来怎样的影响,是否能达到预期的目标,都只有交给时间来验证了。来源网站:发布于 2021-11-16 14:35区块链(Blockchain)比特币 (Bitcoin)数字货币​赞同 12​​2 条评论​分享​喜欢​收藏​申请

比特币4年来首次重要升级,带来了什么重大变化? - 知乎

比特币4年来首次重要升级,带来了什么重大变化? - 知乎首发于区块链资讯切换模式写文章登录/注册比特币4年来首次重要升级,带来了什么重大变化?灵猫肥喵区块链行业爱好者6月13日,比特币全网支持 Taproot 升级的矿池算力超过 90%,达到锁定升级的最低要求,这也意味着 Taproot 升级将于今年11月正式激活。被视为比特币数年来“最雄心勃勃的升级”, Taproot 在业内尤其是比特币爱好者的眼中确实代表着着非比寻常的意义,甚至是“目前为止比特币协议升级提议中最具重要性的一次”。但与引起行业大辩论的以太坊 EIP 1559 提案相比,Taproot 升级引发的行业声量并不大,不少朋友甚至都没怎么听说过,那究竟什么是 Taproot 升级,它又将为比特币带来怎样的改变? 01 、什么是 Taproot 升级?Taproot激活比特币每隔段时间就会更新一次(网络软分叉),主要通过比特币改进提案(BIPs)的形式为比特币引入新功能和信息。而此次最新的 Taproot 升级,就是三个BIPs的汇编“升级包”,也即 Taproot 升级包含了Schnorr签名(BIP 340)、Taproot (BIP 341)和Tapscript (BIP 342)三个部分:1、BIP340 — Schnorr签名Schnorr 签名计划长期以来一直列在许多比特币开发者的愿望清单上,作为由德国数学家和密码学家ClausSchnorr开发的密码学数字签名方案,主要以其生成短签名的简便性和效率著称。Schnorr签名的主要优点之一是它们能够在复杂的比特币成交中获取多个密钥并产生唯一签名。这意味着涉及多方的签名可以被“汇总”成单一的Schnorr签名,所以被称为聚合签名。所以一言以蔽之,Schnorr签名主要是节省空间、减少费用,也被誉为比特币Segwit后的最大技术更新。2、BIP 341 — TaprootTaproot 是在 Schnorr 签名基础上的解决方案,它可以包含复杂的成交条件和资金使用细节,再把所有这些内容作为一个新的资金使用条件(新的锁)提供给外界使用,这个新的使用条件和该使用条件下的解锁方法(新的钥匙)是通过 Schnorr 的线性特征来支持的。这就为用户提供了消费(不是收款)时,在复杂的任意脚本和简单地支付到公开密钥之间进行选择的能力,此外密钥聚合还使所有的Taproot输出看起来类似。所以由于多重签名输出、单签名输出和其他复杂智能合约在区块链上看起来都是一样的,许多区块链分析将不可用,从而为所有Taproot用户保留隐私。3、BIP 342 — TapscriptBIP 342添加和更新了几个操作码,这些操作码是指定要执行的操作的机器语言指令的一部分。这些新脚本有助于验证Taproot开销和Schnorr签名,统称为Tapscript,最大限度地提高了P2TR支出的灵活性,也有利于未来的升级。它将提高脚本功能和隐私,可以通过在支出时只显示合约的相关部分,来帮助使智能合约更加高效和私密。简言之,Tarpoot 升级的核心就在于 Schnorr 签名,而 Taproot 在Schnorr 签名算法的基础,可以为比特币带来性能、隐私乃至智能合约方面的全新组合和可能性。02 、Tarpoot升级比特币协议升级提议中最具重要性的一次众所周知,比特币是通过数字签名来解锁 UTXO 中的未花费余额从而完成兑换,具体可以对一笔兑换进行简单拆解——以A转给B一个比特币为例,实际过程可分为“解锁”、“加锁”两步:解锁:A提供自己的私钥,而完成解锁,从而证明这一个比特币属于自己并可以调用;加锁:A用B的公钥把这一个比特币加锁,然后转给B,从而只有B能够用它自己的私钥进行解锁使用;也即比特币需要利用公钥进行加锁,利用私钥进行解锁,从而实现加密货币的转账兑换,而公钥、私钥的产生则是通过数字签名算法,而上面提到的 Schnorr 签名就是新的签名算法。它最突出的特点在于可以把多个公钥或多个私钥签名聚合成一个新的公钥或一个新的签名,可以简单理解为把多个需要同时解开的锁变成一个锁,把用于解锁的一串钥匙变成一把钥匙。所以从这个角度讲,被视为“比特币协议升级提议中最具重要性的一次”的Tarpoot “升级包”,对比特币所能带来的改变可能是多方面的。性能——类似Rollup的扩容效果首先,性能角度的改善是最直接的。因为基于 Schnorr 签名的 Taproot,可以包含复杂的兑换条件和资金使用细节,再把所有这些内容作为一个新的资金使用条件(新的聚合签名锁)提供给外界使用。这样就减少在区块链上传输和存储的数据量,使得单个区块包含的成交更多,进而降低成本,起到了扩容的效果(其实笔者觉得有点像以太坊上的Rollup)。隐私——增强比特币网络的隐私选择其次,隐私角度讲也将获得最大的加持。因为Schnorr签名虽然不会使公共区块链上的个人比特币地址更加匿名,但会使简单的兑换与那些更复杂、由多个签名组成的兑换难以区分。同时,这也能让用户将复杂的智能合约作为普通比特币兑换来掩盖,为用户带来更大的隐私性。03 、比特币的“艰难支付”之路7月即将迎来的以太坊伦敦升级,除了包含了EIP-1559这个翘首期盼的提案,还有EIP-3198、EIP-3529、EIP-3541 和 EIP-3554 在内的共计5个提案。而不同于以太坊里无边界创新不断涌现的蓬勃生态,比特币的升级倒是向来声量很小,相信很多朋友甚至都已经觉得比特币的开发可能处于停滞状态。尤其是2020年以来,大家似乎已经逐步默认了比特币“数字黄金”的定位,而淡忘了曾经引发业内激辩,乃至“BCH分叉”背后“全球货币”的支付属性,看起来技术应用方面的升级也没那么重要了。闪电网络:比特币容量就像致力于比特币小额支付的“闪电网络”(Lightning Network),历经了近三年半的努力,锁定的比特币数量终于突破 1500 枚,相比 2021 年年初增长了 42%,创下历史新高,看起来成绩斐然。但与此同时,在过去的一年时间里,以太坊链上比特币锚定币总发行量则就已经几乎从0开始,突破了25.2万枚,比特币闪电网络数年辛勤推广,到底连“ERC20比特币”的零头都比不上。而 Taproot 升级可以算得上是一场及时雨,强化比特币在支付性能、隐私方面的可用性,包括闪电网络,如果采用 Taproot,可以通过使渠道看起来像常规的比特币兑换来改善闪电网络的隐私,或许可以回补比特币作为“全球货币”地位,使其在与“数字黄金”的定位竞争中更具优势。不过无论是“数字黄金”愈受欢迎,还是“全球货币”才是初心,或许比特币已经和包括以太坊在内的其它所有加密货币,都已不是同类的物种。发布于 2021-06-21 17:17虚拟货币比特币 (Bitcoin)​赞同 7​​2 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录区块链资讯分享区块链资讯,不构成投

比特币核心版本 25.0 发布带来新功能和交易用例

心版本 25.0 发布带来新功能和交易用例 跳到内容星期六, 三月 16日,2024 响应菜单新闻报道刊登广告订阅联系我们 BitcoinEthereumNews.com实时更新的有关比特币,以太币,加密货币,区块链,技术,经济的全球新闻。 更新每分钟。 提供所有语言版本。 搜索 搜索首页市值最高收益最大损失全部新闻比特币

以太币加密金融科学技术NFT全面、 首页比特币

比特币核心版本 25.0 发布带来新功能和交易用例 比特币

比特币核心版本 25.0 发布带来新功能和交易用例10个月前比特币以太币新闻Bitcoin Core 25.0 版已经发布,为软件带来了新功能、错误修复和性能改进。 用户可以从 Bitcoin Core 官方网站下载最新版本或更新现有安装。 发行说明概述了更改并提供了有关如何升级的说明。 一个显着的变化是允许非见证大小为 65 字节及以上的交易,这开辟了新的用例并增强了对 CVE-2017-12842 等漏洞的保护。 另一个新增功能是 scanblocks RPC,它允许通过从一组描述符返回相关的区块哈希来快速重新扫描钱包。在 RPC 更新方面,所有 JSON-RPC 方法现在都接受一个名为“args”的新命名参数,用于方便地传递位置参数值。 此外,如果无法在所需的深度和级别完成检查,verifychain RPC 现在将返回 false,从而提供更准确的反馈。该版本还包括对构建系统的更改、更新的设置和新功能。 例如,shutdownnotify 选项允许用户指定在 Bitcoin Core 开始其关闭序列之前执行的命令。 在钱包部分,minconf 和 maxconf 等新选项已添加到各种 RPC,从而更好地控制 UTXO 确认。Bitcoin Core 25.0 引入了多项改进和优化,增强了软件的用户体验和安全性。 与任何版本一样,我们鼓励用户向官方 GitHub 问题跟踪器报告他们遇到的任何错误。Bitcoin Core 在 Linux、macOS 和 Windows 等主要操作系统上得到广泛支持和测试。 但是,不建议在不受支持的系统上使用 Bitcoin Core。 在升级到最新版本之前,用户应确保他们运行的是兼容的操作系统。 此外,鼓励用户查看发行说明,以便在升级时详细了解此版本的改进。 资料来源:https://bitcoinmagazine.com/technical/bitcoin-core-version-25-0-released文章导航Klarna 将第一季度净亏损减半并“有望在今年实现盈利”加密货币仇恨者彼得希夫给埃隆马斯克提供投资建议 新闻报道 刊登广告 订阅 隐私政策 联系我们

Bitcoin Core 24.0 更新了什么

oin Core 24.0 更新了什么BTCStudyBTCStudy首页全站目录标签地图mempool123btcBitcoin Core 24.0 更新了什么BTCStudyBTCStudyBitcoin Core 24.0 更新了什么搜 索首页全站目录标签地图mempool123btc主题设置字体设置钱包模块升级初步的 Miniscript 支持不设找零的交易找零输出随机化,以避免留下痕迹升级 “手续费替换(RBF)”描述符钱包迁移图形用户界面(GUI)变更P2P 通信的变更下载区块头的新逻辑Bitcoin Core 24.0 更新了什么Namcios2022-12-10产品作者:Namcios来源:https://bitcoinmagazine.com/technical/bitcoin-core-24-0-released-what-is-new最早由中本聪在 2009 年发布的软件,现在发布了一个新版本。Bitcoin Core 24.0 由 112 名开发者,耗时约 7 个月开发而成,给 Bitcoin Core 的钱包模块、点对点(P2P)通信、图形用户界面等等,带来了可观的提升。本文介绍了一些重要的变更。钱包模块升级初步的 Miniscript 支持Bitcoin Core 24.0 通过拓展 wsh() 输出操作符,引入了对 Miniscript 的支持。虽然这还是初步的集成,但也为在比特币上更简单、更安全地部署更复杂的脚本提供了帮助。Miniscript 可以被认为是 Bitcoin Script(比特币的原生编程语言)的一种框架(或者说模板)。Bitcoin Script 负责支持比特币可用的所有编程功能,其中就包括(举个例子)可能是最简单的一种程序(脚本):决定谁可以花费某一笔资金。对每一笔比特币交易,发送者都要请求接收者的地址,并使用这一信息构造一个脚本,将支付的数额锁定,使得只有接收者可以花费它。虽然用 Bitcoin Script 可以很容易构造这样的简单脚本,但更复杂的脚本就有更大概率遇上人力出错。这就是为什么我们需要 Miniscript。Miniscript 允许我们以 结构化 的方式编写 Bitcoin Script 的子集。它支持分析、组合、通用签名,等等,让开发者可以更安全地编写更高级的脚本。换句话来说,Miniscript 将预定义的 Bitcoin Script 的一些功能模块 “装载” 到了一套符合预期的行为模式中,从而限制了最终的风险,因为尽可能地减少了意外的行为。在实践中,它为开发者修补和创建更高级、更复杂的比特币脚本提供了一个 “工具箱”,而不是只能手动操作 Bitcoin Script。从 Bitcoin Core 24.0 开始,用户将可以创建包含一段 Miniscript 脚本的钱包、为之创建地址并充值资金。但 Bitcoin Core 的钱包模块还不支持从这些地址中花费,意思是就当下而言,Bitcoin Core 中启用了 Miniscript 的钱包只能用作观察。不设找零的交易Bitcoin Core 24.0 引入了一种新的 RPC, sendall ,允许用户完全花费掉特定的 UTXO。这个 RPC 将把指定 UTXO 中的价值完全转移到一个或多个接收者处,而不会产生找零。(默认情况下, sendall 会花掉钱包中的所有 UTXO。)这种行为在一些情况下是有用的。第一种自然是用户想要清空自己的钱包的时候。调用这个新的 PRC,仅使用默认的配置,就可以轻松完成清空钱包的操作。其次,客户可能希望通过放弃找零来提高隐私性。找零地址是很棘手的,因为用户经常不知道它们是怎么来的,而且用可能会在未来的交易中跟其他 UTXO 一起作为输入;这会因为 “输入所有权同一启发法” 导致隐私性风险 —— 这是一种在区块链分析中常用的工具,它假设一笔交易的所有输入都来自于同一个用户。如果找零输出跟别的输出混在一起,用户就会制造出这种关联,产生让自己的多笔资金去匿名化的风险,因为分析师会将这多个地址都归类为同一个钱包。不设找零的支付,通过创建完全花费选定的 UTXO 的交易,解决了这个问题。因为没有找零,用户就不会犯上面提到的错误。而且,无找零的支付给区块链分析带来了一个合理的疑难:新输出到底是由发起支付的人自己拥有的(即只是转移了资金到新的地址)呢,还是变换了所有者。(译者注:作者这里的推理是不成立的。因为找零地址跟普通收款地址没有任何区别,找零输出不是因为其地址上的特征而被辨认为找零的;而找零输出之所以要跟收款输出混用,是因为其面额不足。所以,就算不使用找零地址,也一样会有被辨认为找零的输出(除非输入的面额刚刚好);而这样的输出一旦面额不足以支付,一样会跟别的输出混用,从而被启发式分析捕捉。事实上,这个功能只有管理上的便利 —— 用户可以手动避免使用 “找零地址”,也即跟收款地址的推导路径不一样的地址 —— 但不可能因此就不再产生找零输出。)找零输出随机化,以避免留下痕迹如上所述,找零输出可能会泄露隐私。虽然 sendall 可以减少对找零地址的使用,但在现实中,很少时候用户会刚好持有跟支付数目相等的面额的 UTXO。保证观察者无法辨认哪个输出是找零可以帮助用户获得少许隐私性,因为将难以把新创建的输出(找零输出)跟现在被花费的输入关联起来。通常,当没有一个 UTXO 的面额恰好相当于支付的需要事,大部分钱包和用户会按直觉选择面额最接近于支付需求的 UTXO。结果是,观察者可以很清楚的看出哪个输出是支付(通常是更大的那个)、哪个输出是找零(更小的那个)。这带来了上面提到的许多风险。为了降低观察者分辨出找零输出并归集用户地址的可能性,Bitcoin Core 现在会随机化找零输出的面额。从 Bitcoin Core 24.0 开始,钱包模块将在支付数额与支付数额的三倍值之间选出一个随机数。这个数字将为 UTXO 选择提供指引。本质上,这意味着有时候宣发会选出一个 UTXO,其面额跟支付额是很接近的,但有时候,它会选出一个 UTXO,其面额会跟支付额的三倍更接近。前者会产生一般化的、找零输出面额低于支付输出的交易;而后者会产生相反的情形,找零输出会大于支付输出。因为区块链观察者无法辨别一笔交易到底是哪一种情形,用户自然就获得了更好的隐私性保证。升级 “手续费替换(RBF)”在比特币用户将交易发送到网络中时,RBF 给用户提供了选择权。通常,用户不想给矿工太多手续费,因此在手续费和区块确认速度之间选择一个平衡点。但是,如果用户选择的手续费数值太低,或者说交易池正在拥堵,那么交易可能要花很长时间才能得到确认(甚至会卡在交易池里面)。RBF 让用户可以追加手续费,通常都能更快处理。从原理上来说,RBF 并没有 “追加” 手续费,只是软件会广播一笔 新 的交易,使用跟原版交易同样的输入以及大部分相同的输出(一些输出的面额改变了,因此手续费的数值自然也改变了)。在以前,节点只会转发它们见到的交易的第一个版本。而有了 RBF 之后,就出现了一种机制(译者注:即 BIP125),让用户可以自己用标签表示发起的这笔交易是否能被追加手续费,也即被带有更高手续费的版本替换。这是对节点的提醒,让他们知道可能后面会出现同一笔交易的更高手续费的版本,而且他们也应该转发。更高手续费的替换版本有概率会被矿工认为有吸引力,因此打包到下一个区块。替换版本得到确认之后,更低手续费的版本就会从节点的交易池中剔除,因为它们变成了重复花费的交易。Bitcoin Core 24.0 给 RBF 模块引入了两种更新。首先,它让用户可以配置节点,转发一切交易的替换版本,不论 交易本身是否使用了 RBF 标签。这可以通过新的 mempoolfullrbf 选项来配置。这个选项默认是 关闭 的,但有兴趣的人可以打开它。其次,RBF 现在变成了 Bitcoin Core 钱包模块的标准,交易会默认使用 RBF 标签,而且 -walletrbf 选项默开启。用户可以在交易构建流程中改变 RBF 选项,也可以将 -walletrbf 启动选项设为关闭。描述符钱包迁移Bitcoin Core 23.0 让描述符钱包变成了标准。描述符可以帮助用户以标准化的格式备份钱包以及恢复备份。在描述符出现之前,用户需要知道自己的钱包的派生路径,这个路径指明了钱包的主私钥如何推导出地址,用户接收和发送比特币。因为钱包可以有不同的推导路径,所以光备份种子词已经不足以保证能恢复钱包了。有时候用户比较幸运,新钱包软件跟老钱包软件恰好使用了相同的派生路径,所以种子词备份能顺利复原钱包;但也有小概率用户无法顺利恢复,因此出现了一个网站专门帮助用户搞清楚不同软件所用的派生路径。描述符通过 描述 备份所用的派生路径,解决了这个问题、显著优化了用户体验。它背后的理念是,一个描述符钱包备份,自身就包含了让任意的软件正确恢复钱包的所有必要信息(只要这个软件支持描述符)。现在,Bitcoin Core 24.0 引入了一种新工具,将传统的钱包迁移成描述符钱包,让用户能够利用这种新兴的标准,更好地保护用户的珍贵的比特币。虽然它还是一个实验性的功能,它也有一种新的 RPC( migratewallet )。这份文档提供了更多细节。图形用户界面(GUI)变更众所周知,Bitcoin Core GUI 没能提供媲美远程过程调用(PRC)和命令行工具的功能。Bitcoin Core 24.0 为此采取了一些措施。Bitcoin Core 24.0 给 GUI 带来了一个新的菜单,让用户可以从备份中恢复一个钱包,因此不懂技术的用户也更容易复原钱包了。以前,这个功能还只存在于命令行中。与 RPC 接口相比,GUI 的另一个缺点是 Bitcoin Core 客户端的设定。以前, bitcoin.conf 文件可以说是 Bitcoin Core 配置的圣杯,但它也主要是通过命令行来调整的。GUI 中也存在一个调整设定的选项,但一个警告明确指出,如果文件和 GUI 尝试设置同一项设定,文件的优先级高于 GUI。因此,虽然 GUI 提供了改变设定的简单选项,但配置文件依然是定制化你的 Bitcoin Core 客户端的最可靠的方法。Bitcoin Core 24.0 改变了这一点。这次的更新将 GUI 的设定页与 bitcoin.conf 文件统一了起来。现在,当用户在 GUI 打开客户端设置时,其中的内容是从配置文件中拉取过来的。类似地,GUI 中作出的配置变更,也会反映在 bitcoin.conf 里面。(值得一提的是,两者的关系是间接的,因为 GUI 作出的变更会写在 settings.json 文件里面,这个文件优先于 bitcoin.conf 。)P2P 通信的变更下载区块头的新逻辑Bitcoin Core 24.0 为节点在网络中捕捉区块链顶端的方式带来一种升级;不论节点是第一次加入网络,还是因长时间离开网络而必须捕捉最新区块。在本次更新以前,刚加入比特币网络的新节点要先寻找对等节点,然后从对等节点开始下载区块头。这些新节点一开始不会下载完整的区块,因为节点被引导在下载一条链的区块之前先检查这条链是不是最值得信任的一条。不然,节点就会承担下载错误链上的区块、从而浪费资源的风险。虽然下载区块头的目的是节约时间和资源,依然有可能出现一种资源耗尽攻击,就是恶意的对等节点发送大量的假区块头给请求区块头的节点。因为节点需要下载和保存区块头在硬盘上,大量的数据可能导致节点的硬件过载。为了缓解这种威胁,Bitcoin Core 在几年前引入了 “检查点” 的概念。检查点决定了一条链 必须 包含 某一些区块,才是有效的。但是,这种解决方案会带来一种新问题 —— 检查点可能被滥用,导致实质上的最长链被否定。这种可能性在比特币中是不受欢迎的,所以我们必须提出另一种解决方案。这就是这次的升级。在 Bitcoin Core 24.0 中,节点会下载区块头两次。在第一轮中,节点只会下载,但随后就抛弃掉(不会保存在硬盘中),知道发现足够多的工作量证明 —— 表明这条链是对的那一条。这时候,节点就会重新开始下载区块头,但这一次,节点会将区块头保存在硬盘中。先确保自己所下载的区块头是具有足够多的工作量证明的链的一部分、再保存区块头到硬盘上,节点避免了在可能的攻击(例如资源耗竭攻击)中花费大量存储资源。这也移除了设置检查点的需要,而且可以说是一种更优雅的解决方案,因为它不依赖人力输入来决定链的有效性。感谢 Aaron van Wirdum 的反馈。要了解更多细节和其它变更,请看 Bitcoin Core 24.0 更新说明。要下载 Bitcoin Core 24.0,请到这个网页。关于 Bitcoin Core 24.0 的细节,也在 Bitcoin, Explained 播客的第 65 期有解释。(完)NostrrssTeleg

干货 | 比特币升级提案 Taproot 技术解读 | 登链社区 | 区块链技术社区

干货 | 比特币升级提案 Taproot 技术解读 | 登链社区 | 区块链技术社区

文章

问答

讲堂

专栏

集市

更多

提问

发表文章

活动

文档

招聘

发现

Toggle navigation

首页 (current)

文章

问答

讲堂

专栏

活动

招聘

文档

集市

搜索

登录/注册

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

EthFans

更新于 2021-09-26 11:03

阅读 3526

本文将从各个技术层面分析 Taproot、介绍本次升级中涉及的技术以及这些技术会给比特币用户带来哪些好处。

![95b0e18d710f5fd8e46eb5da05522b9.png](https://img.learnblockchain.cn/attachments/2021/09/KPyylwZR614fe0991773b.png)

## **什么是 Taproot?**

Taproot 由 Bitcoin Core 贡献者 Gregory Maxwell 于 2018 年首次提出。该实现目前尚在开发中。如果没有 Taproot,这些复杂的交易(时间锁、多签)需要多个事务来完成,因此很容易失败。

> Taproot 可以让复杂交易(多签、时间锁)像单个比特币交易那样执行,从而增强比特币的隐私性。

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

- P2SH(译者注:P2SH 并非 Taproot 升级的内容,但可以帮助大家理解 Taproot 的升级用意何在)

- MAST

- Schnorr 签名

我们将从技术层面讨论这三个概念,从而了解 Taproot 升级会给比特币用户带来哪些好处。

## **P2SH(Pay-to-ScriptHash)**

比特币地址是一个包含字母和数字的字符串。用户可以将其分享给其他人,以便从后者那里接收 BTC。比特币交易主要有两大标准:Pay-to-PubKeyHash (P2PKH) 和 Pay-to-ScriptHash (P2SH)。

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

- 在比特币网络中,比特币的形式是 UTXO。UTXO 是 **Unspent Transaction (TX) Output(未花费交易输出)** 的缩写,即,比特币交易执行后形成的面额不定的单元。例如,你的比特币钱包里有 10 BTC,你想要转 5 BTC 给朋友。比特币区块链的处理方式与众不同。它会把 10 BTC(全部余额)都花掉,将 5 BTC 转入你朋友的钱包,剩下 5 BTC(10 BTC - 5 BTC = 5 BTC)转入你自己的钱包。这下,你和你的朋友各持有未花费的 5 BTC。

- 比特币使用**脚本(几行代码)** 来规定花费 BTC/UTXO 的条件。脚本被用作一种锁定机制。

- BTC 锁定在脚本中。当脚本返回成功(即条件得到满足)时,BTC 就会解锁。

- 任何人都可以向任意比特币地址发送 BTC。只有当脚本中定义的某些条件得到满足时,锁定的 BTC 才可以被花费出去。脚本决定了接收方可以如何花费收到的 BTC。发起交易时,发送方会在交易中放入一个叫作 “**PubKey Script(又称锁定脚本)**”的脚本。接收方(在日后花费时)需要生成一个 “**签名脚本(又称解锁脚本)**” ,是满足 PubKey 脚本的数据参数的集合。签名脚本在代码中又被叫作 “**scriptSig**”。

- 在上述例子中,你在向朋友发送 5 BTC 时,锁定脚本也会包含在这个交易内。如果你的朋友想要花费这些 BTC,必须生成满足锁定脚本中规定条件的解锁脚本。

## **Pay-to-PubKeyHash (P2PKH)**

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

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

正如我们上文讨论过的那样,脚本定义了特定地址上的 BTC 在什么条件下可以花费。当规定条件得到满足且通过网络验证时,该地址上的 BTC 就会被解锁以供花费。

**这一流程是如何运作的?**—— 接收方首先生成 PubKey 脚本并将其分享给发送方。发送方在发送 BTC 时将该 PubKey 脚本 添加到交易中。收到 BTC 时,如果接收方想要解锁这些 BTC UTXO,就要提供公钥哈希和私钥签名,并满足 PubKey 脚本中提到的条件。

![3304caeec7dc7d5c463e76f5ab966de.png](https://img.learnblockchain.cn/attachments/2021/09/VCrlSb5M614fe0a6cfd32.png)

例如,这些条件可以是:

- 解锁 BTC 至少需要两个签名。

- 提供口令(password)才能解锁。

- BTC 需要等待一段时间才能解锁。

上述这类情况可以作为解锁 BTC 的条件。

发送比特币时,发送方需要在交易中包含 **PubKey 脚本**。因此,这会增加交易的体积,产生的交易费比普通交易高出 5 倍左右。

这里,发送方必须承担额外的成本。Pay-to-ScriptHash 可以帮助发送方免去这一额外成本。

## **Pay-to-ScriptHash (P2SH)**

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

在这个交易标准下,发送方不需要将很长的 PubKey 脚本放到他们的交易中。这里,锁定脚本被替换成了赎回脚本(redeem script)哈希值。赎回脚本哈希值由赎回脚本计算而来。赎回脚本与 PubKey 脚本类似,包含接收方在花费未花费输出之前必须满足的条件。**发送方只需在交易中注明赎回脚本的哈希值**。赎回脚本哈希可以翻译成标准比特币地址,发送方无需进行任何特殊操作或支付额外费用即可将 BTC 发送到这些地址。

接收方想要解锁这个 P2SH 地址上的 BTC 时,需要生成具有相同哈希值的赎回脚本并将其包含到交易内。因此,接收方用来解锁 UTXO 的交易大小会增加,执行交易的成本也会增加。

例如,Alice 想要发送 10 BTC 给 Bob。Alice 必须将赎回脚本哈希包含到交易内。首先,Bob 先生成一个赎回脚本,然后将赎回脚本的哈希值发送给 Alice,以便 Alice 将该哈希添加到交易内并发起交易。如果 Bob 想要花费该 UTXO,必须生成相同哈希值的解锁脚本,并满足脚本中提到的条件。

别忘了,Alice 只需将赎回脚本的哈希值而非整个脚本添加到交易内。因此,Alice 无需承担额外的费用。

## **Pay-to-ScriptHash 的优势**

- 使用哈希值取代冗长的脚本。

- 发送方可以在不知道脚本中规定的花费条件的情况下,在交易中放入任意数量的赎回脚本哈希值。

- 减轻了发送方的交易费负担。

(……)

## **MAST(默克尔抽象语法树)**

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

**为什么要使用 MAST?** 如果你想花费 P2SH 地址里的 BTC,你必须生成具有相同哈希值的赎回脚本并将其包含到交易中。如果脚本中规定的花费条件太多,交易体积会变得格外庞大。MAST 可以很好的解决这一问题。

默克尔抽象语法树是默克尔树和抽象语法树的结合体。

就像 Pay To Script Hash (P2SH) 是给哈希值为某某的脚本付款那样,MAST 是给哈希值为某某的默克尔根付款。MAST 是把一个大的条件集合中的各个条件组装成一棵哈希树(所谓的默克尔树),而默克尔树的根值是一个哈希值,由所有条件哈希而成。

**默克尔根和哈希树是如何生成的?**

首先分别对所有脚本(条件)做哈希计算;然后将计算得到的哈希值与相邻哈希值组合起来进行哈希计算,生成一组新的哈希值。不断重复这个两两哈希计算的过程,直到计算出最后一个哈希值为止。这个哈希值就是默克尔根。

假设共有四组条件。首先,分别计算出这四组条件的哈希值;再将这四个哈希值两两配对,计算出两个哈希值;最后,把这两个哈希值组合起来做哈希计算,生成最终的哈希值。最后这个哈希值就是默克尔根。

![67e36d7b31dab8bd2c0209cc6184ada.png](https://img.learnblockchain.cn/attachments/2021/09/mYsBtHBa614fe0b81204b.png)

这个默克尔根可以翻译成一个能够接收付款的有效比特币地址,即,**默克尔比特币地址(Merklized Bitcoin address)**。默克尔比特币地址有很多优点,最主要的优点是无需知晓所有脚本单元就能验证某个脚本是否位于这棵默克尔树上。这个技术叫作**默克尔证明(Merkle Proof)**,可以用来轻松验证一个比特币 UTXO 是否包含某些解锁条件。

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

## **Schnorr 签名**

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

若想执行交易,你需要使用私钥签名该交易,以证明你是某个公钥背后的 BTC 的所有者。但是,若想执行多签交易,你必须提供多个签名。这些签名会占据额外的空间。

以 12/20 多签交易为例。12/20 指的是执行该交易至少需要提供 20 个签名中的任意 12 个。签署交易时,签名也会存储在区块内。假设 1 个签名的大小是 5 字节,12 个签名需要占用区块 60 字节(5*12 = 60)的内存,100 个签名需要占用 500 字节的内存。这会增加内存用量。**Schnorr 签名**恰好可以解决这一问题。

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

- (……)

- 另一种情况是多签交易。假设你需要 100 个签名且每个签名的大小是 5 字节,Schnorr 签名方案可以将这 100 个签名合并成一个大小为 64 字节的 Schnorr 签名。省下 436 字节(5*100-64=436)的内存可以用来存储更多交易。(注:现在的椭圆曲线签名可不止 5 字节)

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

## **比特币 Taproot:总结**

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

- Taproot 是 Bitcoin Core 贡献者 Gregory Maxwell 在 2018 年提出的比特币升级提案。

- Taproot 让复杂的交易如多签名交易、时间锁交易看起来如同普通的比特币交易,增强了比特币的隐私性。

- Taproot 升级主要包含 3 个技术概念 —— P2SH、MAST 和 Schnorr 签名。

- 比特币使用脚本注明花费 BTC/UTXO(未花费交易输出)的条件。

- Pay To Script Hash (P2SH) 可以帮助发送方免去额外的交易费,并将这一责任(额外的交易费)转移到真正需要使用锁定脚本中规定条件的接收方身上。

- 使用 MAST,比特币可用默克尔树抽象语法树来锁定。(与默克尔根对应的)默克尔树决定了可以解锁未花费 BTC 的所有复杂条件。默克尔抽象语法树(Merklized Abstract Syntax Trees,MAST)被提议引入比特币区块链,以减少 BTC 交易的体积,使得接收方无需在交易中附加冗长的脚本。仅使用默克尔根即可验证接收方生成的脚本是否属于原始条件集合。

- Schnorr 签名可以将多个签名合并成单个签名。

原文链接: https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/

作者:0xB10C

本文首发于:https://mp.weixin.qq.com/s/_cl3XeXdX7m0ZJHpyBp02g

什么是 Taproot?

Taproot 由 Bitcoin Core 贡献者 Gregory Maxwell 于 2018 年首次提出。该实现目前尚在开发中。如果没有 Taproot,这些复杂的交易(时间锁、多签)需要多个事务来完成,因此很容易失败。

Taproot 可以让复杂交易(多签、时间锁)像单个比特币交易那样执行,从而增强比特币的隐私性。

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

P2SH(译者注:P2SH 并非 Taproot 升级的内容,但可以帮助大家理解 Taproot 的升级用意何在)

MAST

Schnorr 签名

我们将从技术层面讨论这三个概念,从而了解 Taproot 升级会给比特币用户带来哪些好处。

P2SH(Pay-to-ScriptHash)

比特币地址是一个包含字母和数字的字符串。用户可以将其分享给其他人,以便从后者那里接收 BTC。比特币交易主要有两大标准:Pay-to-PubKeyHash (P2PKH) 和 Pay-to-ScriptHash (P2SH)。

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

在比特币网络中,比特币的形式是 UTXO。UTXO 是 Unspent Transaction (TX) Output(未花费交易输出) 的缩写,即,比特币交易执行后形成的面额不定的单元。例如,你的比特币钱包里有 10 BTC,你想要转 5 BTC 给朋友。比特币区块链的处理方式与众不同。它会把 10 BTC(全部余额)都花掉,将 5 BTC 转入你朋友的钱包,剩下 5 BTC(10 BTC - 5 BTC = 5 BTC)转入你自己的钱包。这下,你和你的朋友各持有未花费的 5 BTC。

比特币使用脚本(几行代码) 来规定花费 BTC/UTXO 的条件。脚本被用作一种锁定机制。

BTC 锁定在脚本中。当脚本返回成功(即条件得到满足)时,BTC 就会解锁。

任何人都可以向任意比特币地址发送 BTC。只有当脚本中定义的某些条件得到满足时,锁定的 BTC 才可以被花费出去。脚本决定了接收方可以如何花费收到的 BTC。发起交易时,发送方会在交易中放入一个叫作 “PubKey Script(又称锁定脚本)”的脚本。接收方(在日后花费时)需要生成一个 “签名脚本(又称解锁脚本)” ,是满足 PubKey 脚本的数据参数的集合。签名脚本在代码中又被叫作 “scriptSig”。

在上述例子中,你在向朋友发送 5 BTC 时,锁定脚本也会包含在这个交易内。如果你的朋友想要花费这些 BTC,必须生成满足锁定脚本中规定条件的解锁脚本。

Pay-to-PubKeyHash (P2PKH)

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

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

正如我们上文讨论过的那样,脚本定义了特定地址上的 BTC 在什么条件下可以花费。当规定条件得到满足且通过网络验证时,该地址上的 BTC 就会被解锁以供花费。

这一流程是如何运作的?—— 接收方首先生成 PubKey 脚本并将其分享给发送方。发送方在发送 BTC 时将该 PubKey 脚本 添加到交易中。收到 BTC 时,如果接收方想要解锁这些 BTC UTXO,就要提供公钥哈希和私钥签名,并满足 PubKey 脚本中提到的条件。

例如,这些条件可以是:

解锁 BTC 至少需要两个签名。

提供口令(password)才能解锁。

BTC 需要等待一段时间才能解锁。

上述这类情况可以作为解锁 BTC 的条件。

发送比特币时,发送方需要在交易中包含 PubKey 脚本。因此,这会增加交易的体积,产生的交易费比普通交易高出 5 倍左右。

这里,发送方必须承担额外的成本。Pay-to-ScriptHash 可以帮助发送方免去这一额外成本。

Pay-to-ScriptHash (P2SH)

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

在这个交易标准下,发送方不需要将很长的 PubKey 脚本放到他们的交易中。这里,锁定脚本被替换成了赎回脚本(redeem script)哈希值。赎回脚本哈希值由赎回脚本计算而来。赎回脚本与 PubKey 脚本类似,包含接收方在花费未花费输出之前必须满足的条件。发送方只需在交易中注明赎回脚本的哈希值。赎回脚本哈希可以翻译成标准比特币地址,发送方无需进行任何特殊操作或支付额外费用即可将 BTC 发送到这些地址。

接收方想要解锁这个 P2SH 地址上的 BTC 时,需要生成具有相同哈希值的赎回脚本并将其包含到交易内。因此,接收方用来解锁 UTXO 的交易大小会增加,执行交易的成本也会增加。

例如,Alice 想要发送 10 BTC 给 Bob。Alice 必须将赎回脚本哈希包含到交易内。首先,Bob 先生成一个赎回脚本,然后将赎回脚本的哈希值发送给 Alice,以便 Alice 将该哈希添加到交易内并发起交易。如果 Bob 想要花费该 UTXO,必须生成相同哈希值的解锁脚本,并满足脚本中提到的条件。

别忘了,Alice 只需将赎回脚本的哈希值而非整个脚本添加到交易内。因此,Alice 无需承担额外的费用。

Pay-to-ScriptHash 的优势

使用哈希值取代冗长的脚本。

发送方可以在不知道脚本中规定的花费条件的情况下,在交易中放入任意数量的赎回脚本哈希值。

减轻了发送方的交易费负担。

(……)

MAST(默克尔抽象语法树)

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

为什么要使用 MAST? 如果你想花费 P2SH 地址里的 BTC,你必须生成具有相同哈希值的赎回脚本并将其包含到交易中。如果脚本中规定的花费条件太多,交易体积会变得格外庞大。MAST 可以很好的解决这一问题。

默克尔抽象语法树是默克尔树和抽象语法树的结合体。

就像 Pay To Script Hash (P2SH) 是给哈希值为某某的脚本付款那样,MAST 是给哈希值为某某的默克尔根付款。MAST 是把一个大的条件集合中的各个条件组装成一棵哈希树(所谓的默克尔树),而默克尔树的根值是一个哈希值,由所有条件哈希而成。

默克尔根和哈希树是如何生成的?

首先分别对所有脚本(条件)做哈希计算;然后将计算得到的哈希值与相邻哈希值组合起来进行哈希计算,生成一组新的哈希值。不断重复这个两两哈希计算的过程,直到计算出最后一个哈希值为止。这个哈希值就是默克尔根。

假设共有四组条件。首先,分别计算出这四组条件的哈希值;再将这四个哈希值两两配对,计算出两个哈希值;最后,把这两个哈希值组合起来做哈希计算,生成最终的哈希值。最后这个哈希值就是默克尔根。

这个默克尔根可以翻译成一个能够接收付款的有效比特币地址,即,默克尔比特币地址(Merklized Bitcoin address)。默克尔比特币地址有很多优点,最主要的优点是无需知晓所有脚本单元就能验证某个脚本是否位于这棵默克尔树上。这个技术叫作默克尔证明(Merkle Proof),可以用来轻松验证一个比特币 UTXO 是否包含某些解锁条件。

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

Schnorr 签名

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

若想执行交易,你需要使用私钥签名该交易,以证明你是某个公钥背后的 BTC 的所有者。但是,若想执行多签交易,你必须提供多个签名。这些签名会占据额外的空间。

以 12/20 多签交易为例。12/20 指的是执行该交易至少需要提供 20 个签名中的任意 12 个。签署交易时,签名也会存储在区块内。假设 1 个签名的大小是 5 字节,12 个签名需要占用区块 60 字节(5*12 = 60)的内存,100 个签名需要占用 500 字节的内存。这会增加内存用量。Schnorr 签名恰好可以解决这一问题。

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

(……)

另一种情况是多签交易。假设你需要 100 个签名且每个签名的大小是 5 字节,Schnorr 签名方案可以将这 100 个签名合并成一个大小为 64 字节的 Schnorr 签名。省下 436 字节(5*100-64=436)的内存可以用来存储更多交易。(注:现在的椭圆曲线签名可不止 5 字节)

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

比特币 Taproot:总结

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

Taproot 是 Bitcoin Core 贡献者 Gregory Maxwell 在 2018 年提出的比特币升级提案。

Taproot 让复杂的交易如多签名交易、时间锁交易看起来如同普通的比特币交易,增强了比特币的隐私性。

Taproot 升级主要包含 3 个技术概念 —— P2SH、MAST 和 Schnorr 签名。

比特币使用脚本注明花费 BTC/UTXO(未花费交易输出)的条件。

Pay To Script Hash (P2SH) 可以帮助发送方免去额外的交易费,并将这一责任(额外的交易费)转移到真正需要使用锁定脚本中规定条件的接收方身上。

使用 MAST,比特币可用默克尔树抽象语法树来锁定。(与默克尔根对应的)默克尔树决定了可以解锁未花费 BTC 的所有复杂条件。默克尔抽象语法树(Merklized Abstract Syntax Trees,MAST)被提议引入比特币区块链,以减少 BTC 交易的体积,使得接收方无需在交易中附加冗长的脚本。仅使用默克尔根即可验证接收方生成的脚本是否属于原始条件集合。

Schnorr 签名可以将多个签名合并成单个签名。

原文链接: https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/

作者:0xB10C

本文首发于:https://mp.weixin.qq.com/s/_cl3XeXdX7m0ZJHpyBp02g

学分: 6

分类: 比特币

标签:

Taproot 

比特币 

P2SH 

P2PKH 

点赞 1

收藏 1

分享

Twitter分享

微信扫码分享

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

你可能感兴趣的文章

2024 年 2 月公链行业研报:DeFi 腾飞,比特币 Layer 2 异军突起

62 浏览

链下转移:比特币资产协议的演进之路

175 浏览

BRC-20, from Newbie to be Awesome

314 浏览

BTC生态的现状总结及未来发展

459 浏览

RoochBTC - 用链上索引器实现比特币二层

865 浏览

重新思考闪电网络

825 浏览

相关问题

大家好,我是新手一枚,请多关照。

11 回答

比特币隔离地址怎么构造离线交易

1 回答

0 条评论

请先 登录 后评论

EthFans

关注

贡献值: 2240

学分: 3322

以太坊爱好者 https://ethfans.org

文章目录

关于

关于我们

社区公约

学分规则

Github

伙伴们

DeCert

ChainTool

GCC

合作

广告投放

发布课程

联系我们

友情链接

关注社区

Discord

Twitter

Youtube

B 站

公众号

关注不错过动态

微信群

加入技术圈子

©2024 登链社区 版权所有 |

Powered By Tipask3.5|

粤公网安备 44049102496617号

粤ICP备17140514号

粤B2-20230927

增值电信业务经营许可证

×

发送私信

请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!

发给:

内容:

取消

发送

×

举报此文章

垃圾广告信息:

广告、推广、测试等内容

违规内容:

色情、暴力、血腥、敏感信息等内容

不友善内容:

人身攻击、挑衅辱骂、恶意行为

其他原因:

请补充说明

举报原因:

取消

举报

×

如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!

系统扩展常见问题解答 — Bitcoin Core

系统扩展常见问题解答 — Bitcoin Core

Bitcoin.org 是一个社区支持的社区,我们十分感谢任何捐助。这些捐助会用于改进网站。

捐助

Bitcoin.org 需要你的帮助!

×

捐助Bitcoin.org

使用下方二维码或地址

3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd

$5.00

(... BTC)

$25.00

(... BTC)

$50.00

(... BTC)

本页面已经移到新的比特币核心

网站(点击这里进行重定向)

介绍

个人

商家

开发者

入门指南

工作原理

White paper

资源

资源

兑换

社区

词汇表

活动

比特币核心

创新

参与

支持比特币

购买比特币

开发

常见问题

简体中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Language: zh_CN

系统扩展常见问题解答

路线图包括什么新技术,预期在什么时候可以使用?

隔离见证软分叉究竟相当于多少的区块大小增加?我听过不同讲法,如4MB、2MB、1.75MB。

隔离见证好像很复杂,比特币生态各环节准备好没有?

我还是觉得隔离见证很复杂,为什么不简单地提高区块体积?

在实行隔离见证前会有硬分叉吗?隔离见证方案会本身又会否包括硬分叉?

如果最终还是要硬分叉,为何现在不做?

钱包会如何使用隔离见证?

如果没有人被逼升级,为何会有人升级?听说P2SH用了差不多两年时间才得到广泛应用。

听说你们会让零确认不能再用,这是路线图内哪一项技术?

在路线图上弱区块和IBLT只注明是2016年,你们是否也不知道它们什么时候才可以完成?

「如果隔离见证不能减少矿工所用的带宽,储存空间,和处理时间,为什么他们要支持?」

我可以怎样帮忙?

路线图包括什么新技术,预期在什么时候可以使用?

在路线图提及到以下的技术,在充分的测试后,预计可以在以下时间完成。

2015年12月

 

隔离见证测试网

2016年2月

0.12.0

libsecp256k1验证

2016年2月

 

隔离见证功能完成并作审核

2016年3月*

0.12.x

完成OP_CHECKSEQUENCEVERIFY (BIP68 及 112) + BIP113 并作为首个以 BIP9 versionbits 实施的软分叉

2016年4月*

0.12.x

完成隔离见证

2016年

 

弱区块, IBLTs, 或者二者都实现

* 有星号的日期是预计完成代码的时间。代码只会在充分审核后才会发表,而软分叉完成也需要时间。(BIP66经历数月时间在2015年7月生效,BIP65则只用了五周时间在2015年12月生效)

隔离见证测试网: 一个独立的测试网,并非平常测试网的一部分。让 Bitcoin Core 开发员及钱包开发员测试隔离见证功能。

Libsecp256k1验证: 在x86_64硬件上提升交易验证速度五至七倍。帮助新节点加入网络并减轻现有节点的负担。

OP_CHECKSEQUENCEVERIFY: 让双向支付通道可以无限期使用,提升效率达25倍。

VersionBits: 允许1至29个软分叉同时实施,让系统升级的过程更快,更去中心化。

隔离见证: 允许交易容量上升到1.75至4倍,解决第三方延展性让智能合约更安全,双向支付通道效率提升66%,提供欺诈证明让轻量节点也可以执行系统规则,更容易对脚本系统升级以允许更强大的合约功能。

IBLT及弱区块: 只需要把总带宽增加少许,就可以把区块传播所必须的带宽减低90%以上,让矿工可以在最短时间內把区块传播出去,把比特币广播网络的好处带给所有全节点。IBLT及弱区块可以把全节点所需的带宽变得更平均,让将来可以更安全地增加最大区块容量。

隔离见证软分叉究竟相当于多少的区块大小增加?我听过不同讲法,如4MB、2MB、1.75MB。

现在的方案是以软分叉来实现隔离见证,并把每字节的见证内容算为0.25字节,因此最大的区块体积会是稍低于4MB。

然而,区块并不应该只有见证内容,而计算非见证内容的体积时不会有折扣,因此并不可能有4MB的体积。

根据Anthony Towns的计算,如果区块装满了标准的单签名P2PKH交易,体积大概为1.6MB;如果是2-of-2多重签名交易,则大概为2.0MB。

隔离见证好像很复杂,比特币生态各环节准备好没有?

有些想法是容易解释但执行很难,有些却是解释很难但执行容易,隔离见证似乎是后者。

由于隔离见证可以逐步实行而不会破坏兼容性,因此生态内各环节无需特别准备。开发员可以在2015年12月推出的测试网得到实际的使用经验并同时测试他们的软件。

最初,只有希望支持隔离见证的矿工需要升级,让新规则可以在主网实行。现有的应用程序只有需要使用新功能才需要改变。

隔离见证交易收取较低交易费,有更佳的性能,而且支持多重签名智能合约,如双向支付通道,可以作大量交易却无需在区块链作额外纪录。我们强烈建议钱包升级,但即使不升级,现有钱包仍然可以继续正常使用。

我还是觉得隔离见证很复杂,为什么不简单地提高区块体积?

在Bitcoin Core有一句代码指定区块最大是 1,000,000 字节 (1MB)。最简单的方法是用硬分叉改变这句代码,例如变为 2,000,000 字节 (2MB)。

但硬分叉本身绝不简单:

我们并没有经验: 矿工,商户,开发员,用户都没有硬分叉的经验,因此让硬分叉可以安全实行的技术也未经测试。

软分叉则不同。软分叉最初由中本聪管理,然后我们又从实行BIP16所遇到的问题中得到经验,让我们以改良了的方法实行BIP34,以及后来的BIP66 和 65。在将来的软分叉,我们正准备使用BIP9 version bits,让多个软分叉方案可以同时进行。

强制升级: 硬分叉要求所有全节点升级,任何使用旧版本节点的人都可能会损失金钱,这不但包括全节点钱包的运行者本身,还包括依靠该全节点提供数据的轻量钱包。

需要其它的改动: 即使只是改一行代码来增加最大区块容量,也会影响到系统内其它代码,有些更是不良的影响。例如现在可以制造一个接近1MB的交易,而现代的电脑验证该交易需时超过30秒 (这样的交易已存在于区块链上)。在2MB的区块下,验证一个2MB的交易需时10分钟,将成为一个很危险的攻击方法。为了避免这种攻击,就有必要改动其它代码。

虽然有以上的问题,但只要有充足的准备,硬分叉并不会出现致命问题,而我们也预计将来会有硬分叉。但隔离见证可以用我们更熟悉的软分叉完成,而且带来增加交易量以外更多的好处。

和简单提升区块体积相比,隔离见证需要在不同的软件层面作更多改动。但如果我们真的希望比特币可以扩展,我们无论如何也需要根本性的改动,而隔离见证可以逐渐地鼓励人们升级至更具扩展性的方案,却无需强逼他们这样做。

开发员,矿工,以及社群已对软分叉有充分经验,我们相信实行隔离见证所需时间并不比提升容量的硬分叉为多,而且会更安全。

在实行隔离见证前会有硬分叉吗?隔离见证方案会本身又会否包括硬分叉?

不会,这并非路线图的一部分。

如果最终还是要硬分叉,为何现在不做?

利用有广泛共识的软分叉,我们能够把系统扩展而没有硬分叉的副作用,因此即使预期会有硬分叉,这并不是现在就要做的充分理由。

在路线图提到的改进,除提供额外的交易容量以外,配合其它技术如双向支付通道,可以让用户减少使用区块链,变相提高了比特币系统的容量,却不用增加全节点使用的带宽。例如:

BIP68 及 BIP112 允许无限期的双向支付通道,可以大为减少纪录在区块链的交易。

隔离见证允许在关闭支付通道的同时开设新的支付通道,减少因为更换通道所需的区块链空间约66%。

隔离见证允许将来更容易以软分叉改变比特币的脚本语言,例如从签名提取公钥,或使用Schnorr联合签名算法,从而减少交易的平均大小。

实行隔离见证后,当无效区块出现时就可以产生很简洁的欺诈证明,这会让进行简单交易验证 (SPV) 的轻量节点的安全性更接近全节点,可以让整个网络在较少的全节点下仍能运作。

这些技术的实际效果仍然未知,但实行一个具广泛共识的软分叉可让我们立即得益并且测试和评估中期的可能性,以及用这些数据作长期的规划。

钱包会如何使用隔离见证?

现在支持 P2SH 的钱包可以分两阶段转移至完整的隔离见证:

第一阶段:脚本需要经过两次哈希运算,首先是变成256字节,然后再变成160字节。这个160字节的哈希和现有的P2SH地址兼容,因此已升级的钱包和现有的钱包之间可以互相收付款项。

第二阶段:脚本只需一次哈希运算变为256字节。这格式和现有钱包不相容,但允许更有效率地使用区块空间,及提供更强的防碰撞攻击性能。

如果没有人被逼升级,为何会有人升级?听说P2SH用了差不多两年时间才得到广泛应用。

在隔离见证交易中,见证部分的每字节只算为0.25字节,也就是说这部分的交易费有75%的折扣,但只限于隔离见证的用户。

David Harding 提供了下表以估计在不同费用和交易类型下可以节省的费用。例如如果一个常见的250字节交易收费是0.01美元,用隔离见证花费一个P2PK-in-P2SH输出就可以节省约0.003美元。

交易

节省字节

$0.01/250B

$0.05/250B

$0.25/250B

$1.00/250B

P2PK-in-P2SH

79/107

$0.003

$0.015

$0.079

$0.316

1-of-1 P2SH 多签

83/112

$0.003

$0.016

$0.083

$0.332

2-of-2 P2SH 多签

163/219

$0.006

$0.032

$0.163

$0.652

2-of-3 P2SH 多签

189/254

$0.007

$0.037

$0.189

$0.756

(费用金额只作参考,我们并不预期交易费会达到上表显示的最高情况。)

收取固定比例费用 (如免费或1%交易额) 的网页钱包和交易所会最早应用隔离见证,因为即使每个交易节省很少,每天数以千计的交易加起来都会非常可观。

听说你们会让零确认不能再用,这是路线图内哪一项技术?

这并不是路线图的一部分。作为现在 Bitcoin Core 版本的默认设置,在收到一个未确认交易后,就不会再接受其它有相同输入的交易。有些人认为这表示他们首个见到的交易就是安全的,但其实不是;如果真的是这样,我们根本不需要区块链。

在现时的默认设置下,人们并不能更新他们未确认的交易。在最初的 Bitcoin 版本,其实是有方法让使用者表明他希望交易可被更新,但为了防止拒绝服务攻击,中本聪在2010年关闭了这功能。

最近 Bitcoin Core 的开发员发现只要要求更新交易的同时要求使用者要付出更多的交易费,就可以防止上述的拒绝服务攻击,因此他们重开了中本聪那个允许交易被替换的机制。这功能会在预计2016年1至2月在 Bitcoin Core 0.12.0 推出,但和中本聪原本的设计一样,只有希望可以替换交易的使用者才需要选择使用支持该功能的钱包。

现在并没有钱包提供这功能,但将来这类钱包可以把多个未确认交易合并以减少所需要的区块链空间,也可以让用户提高未确认交易的费用,不会因为之前付费不足让交易「阻塞」在钱包内。

在路线图上弱区块和IBLT只注明是2016年,你们是否也不知道它们什么时候才可以完成?

弱区块和IBLT是两种仍在研究的技术,需要选择适当的参数,但因为参与的开发员有限,我们难以估计在什么时候才能推出。

弱区块和IBLT都只涉及网络改善而不是软分叉或硬分叉,因此只需要较短的测试时间就可以推出让节点升级,我们希望可以在2016年内完成。

在推出弱区块和IBLT后,我们可以利用一个简单而无争议的软分叉来规范交易次序让它们更有效率,这软分叉可以透过BIP9 versionBits 推出。

「如果隔离见证不能减少矿工所用的带宽,储存空间,和处理时间,为什么他们要支持?」

其实大部分以前的软分叉都没有为矿工带来这些好处,例如:

BIP16 (P2SH)

新交易种类

BIP30 (重覆交易ID)

要求检查重覆交易ID

BIP34 (Coinbase 内记录区块高度)

让矿工可用的coinbase空间减少 4 字节

BIP65 (OP_CLTV)

新脚本命令

在2015年7月正式执行的 BIP66 (严格 DER 签名) 软分叉让我们可以转用libsecp256k1作交易验证,让验证时间大减,让矿工得益。

而隔离见证可以为其使用者带来以下好处:

这永久地解决第三方延展性,让多阶段智能合约得以实现;减低交易费;让比特币脚本升级更容易,钱包更容易得到新功能。

通过以前的软分叉和沟通,例如在香港比特币扩展性会议内的矿工座谈会,矿工一再表达了即使他们未必有直接得益,他们也希望比特币成为一个最有用的系统。隔离见证和路线图上其它改进可以显着地提升比特币的可用性。

另外,隔离见证允许矿工在区块内加入更多交易,因此也可提升在每个区块内得到的收入。

我可以怎样帮忙?

首先阅读在 Bitcoin.org 上的 Bitcoin Core贡献者网页。

其中代码审阅是实行软分叉极重要的一部分。

如果你想得到更多有关如何贡献的建议,请加入#bitcoin-dev IRC 频道讨论。

支持Bitcoin.org:

捐助

3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd

介绍:

个人

商家

开发者

入门指南

工作原理

注意事项

White paper

资源:

资源

兑换

社区

词汇表

活动

比特币核心

参与:

支持比特币

开发

其他:

法律

Privacy Policy

新闻媒体

关于bitcoin.org

Blog

© Bitcoin Project 2009-2024 基于MIT协议授权发布

Bitcoin Core pages on Bitcoin.org are

maintained separately from the rest of the site.

Network Status

简体中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

zh_CN

Bitcoin Core - 桌面 - Windows - 选择钱包 - 比特币

Bitcoin Core - 桌面 - Windows - 选择钱包 - 比特币

Bitcoin.org 是一个社区支持的社区,我们十分感谢任何捐助。这些捐助会用于改进网站。

捐助

Bitcoin.org 需要你的帮助!

×

捐助Bitcoin.org

使用下方二维码或地址

3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd

$5.00

(... BTC)

$25.00

(... BTC)

$50.00

(... BTC)

介绍

个人

商家

开发者

入门指南

工作原理

White paper

资源

资源

兑换

社区

词汇表

活动

比特币核心

创新

参与

支持比特币

购买比特币

开发

常见问题

简体中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Language: zh_CN

Bitcoin Core

比特币核心是一个实现了全节点的比特币客户端,它组成了整个比特币网络的支架。比特币核心拥有极高的安全性、隐私性、稳定性。但是它有较少的特性且会占用很多的磁盘和内存空间。

Features:

Bech32

×

Bech32:

Bech32 is a special address format made possible by SegWit (see the feature description for SegWit for more info). This address format is also known as 'bc1 addresses'. Some bitcoin wallets and services do not yet support sending or receiving to Bech32 addresses.

Full Node

×

Full Node:

Some wallets fully validate transactions and blocks. Almost all full nodes help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.

Legacy Addresses

×

Legacy Addresses:

Most wallets have the ability to send and receive with legacy bitcoin addresses. Legacy addresses start with 1 or 3 (as opposed to starting with bc1). Without legacy address support, you may not be able to receive bitcoin from older wallets or exchanges.

SegWit

×

SegWit:

Some wallets support SegWit, which uses block chain space more efficiently. This helps reduce fees paid by helping the Bitcoin network scale and sets the foundation for second layer solutions such as the Lightning Network.

Good

Acceptable

Caution

Not applicable

资金掌控权

这个钱包让你拥有对你的比特币的全面掌控权。这意味着没有第三方可以冻结或是弄丢你的资金。但你仍需注意保障安全和备份你的钱包。

全面验证

这种钱包是一个完整节点,它在比特币网络上验证并轮询交易。这意味着当验证支付的时候,不需要信任第三方。完整的节点提供了最高级别的安全性并且是保护网络不可缺少的元素。然而,它们需要更多的硬盘空间(350GB)、更大的带宽和一个更长的初始化同步时间。

完全透明度

这个钱包是开放源代码,它是被确定性地建立的。这意味着世界上所有的开发人员都可以审查这个编码并确保最后的软件没有隐藏任何秘密。

脆弱的环境

这个钱包可以加载到电脑上。电脑容易受恶意软件攻击。你可以通过使用一个安全性高的密码口令、把你的大部分资金转移到冷储存来保证电脑安全。开通双因素认证也可以让盗取你的比特币变得难上加难。

改进的隐私性

防止对你的支付的窥探

这个钱包使得通过滚动地址的方式来窥探你的余额和支付历史的举动变得难上加难。你还是应该在每次要求支付的时候都使用一个新的比特币地址。

防止信息泄露

当接受或发出一个支付时,这个钱包不会在网上给其他节点披露信息。

Tor 可用于

这个钱包让你建立并把Tor当成一个代理来使用。这样可以防止攻击者或防止互联网服务供应商把你的支付和你的 IP 地址联系在一起。

完全的手续费控制

这种钱包给与您完全控制手续费的功能。意思就是这种钱包允许资金使用RBF或CPFP发送之后进行手续费变更。这种钱包根据当前网络条件提供手续费建议,这样在实时的方式中确认你的交易,不会导致您透支交易。

windows

mac

linux

安装

源代码

安装

源代码

安装

源代码

Similar Wallets

Sort by:

Control

Control

Validation

Transparency

Environment

Privacy

Fees

Similar wallets

Control

Validation

Transparency

Environment

Privacy

Fees

Armory

Good

Good

Acceptable

Caution

Good

Good

Armory

Good

Good

Acceptable

Caution

Good

Good

Armory

Good

Good

Acceptable

Caution

Good

Good

BitBox02

Good

Not applicable

Good

Good

Not applicable

Not applicable

Bitcoin Core

Good

Good

Good

Caution

Good

Good

Bitcoin Core

Good

Good

Good

Caution

Good

Good

Bitcoin Core

Good

Good

Good

Caution

Good

Good

Bitcoin Knots

Good

Good

Good

Caution

Good

Good

Bitcoin Knots

Good

Good

Good

Caution

Good

Good

Bitcoin Knots

Good

Good

Good

Caution

Good

Good

Bitcoin Wallet

Good

Acceptable

Good

Acceptable

Acceptable

Good

Bither

Good

Acceptable

Acceptable

Acceptable

Acceptable

Caution

Bither

Good

Acceptable

Acceptable

Acceptable

Acceptable

Caution

Bither

Good

Acceptable

Acceptable

Caution

Acceptable

Caution

Bither

Good

Acceptable

Acceptable

Caution

Acceptable

Caution

Bither

Good

Acceptable

Acceptable

Caution

Acceptable

Caution

BitPay

Good

Caution

Acceptable

Acceptable

Acceptable

Acceptable

BitPay

Good

Caution

Acceptable

Acceptable

Acceptable

Acceptable

BitPay

Good

Caution

Acceptable

Caution

Acceptable

Acceptable

BitPay

Good

Caution

Acceptable

Caution

Acceptable

Acceptable

BitPay

Good

Caution

Acceptable

Caution

Acceptable

Acceptable

Coldcard

Good

Not applicable

Good

Good

Not applicable

Not applicable

Edge

Acceptable

Acceptable

Acceptable

Acceptable

Acceptable

Acceptable

Edge

Acceptable

Acceptable

Acceptable

Acceptable

Acceptable

Acceptable

Electrum

Good

Acceptable

Good

Acceptable

Acceptable

Good

Electrum

Good

Acceptable

Acceptable

Acceptable

Acceptable

Good

Electrum

Good

Acceptable

Good

Acceptable

Acceptable

Good

Electrum

Good

Acceptable

Good

Acceptable

Acceptable

Good

Green

Good

Caution

Acceptable

Acceptable

Acceptable

Good

Green

Good

Caution

Acceptable

Acceptable

Acceptable

Good

Green

Good

Caution

Acceptable

Acceptable

Acceptable

Good

Green

Good

Caution

Acceptable

Acceptable

Acceptable

Good

Green

Good

Caution

Acceptable

Acceptable

Acceptable

Good

Jade

Good

Not applicable

Good

Good

Not applicable

Not applicable

KeepKey

Good

Not applicable

Good

Good

Not applicable

Not applicable

Ledger Nano S

Good

Not applicable

Acceptable

Good

Not applicable

Not applicable

Mycelium

Good

Caution

Good

Acceptable

Acceptable

Acceptable

Passport

Good

Not applicable

Good

Good

Not applicable

Not applicable

Sparrow

Good

Acceptable

Acceptable

Caution

Good

Good

Sparrow

Good

Acceptable

Acceptable

Caution

Good

Good

Sparrow

Good

Acceptable

Acceptable

Caution

Good

Good

Specter

Good

Good

Acceptable

Caution

Good

Good

Specter

Good

Good

Acceptable

Caution

Good

Good

Specter

Good

Good

Acceptable

Caution

Good

Good

Trezor Model T

Good

Not applicable

Good

Good

Not applicable

Not applicable

Trezor One

Good

Not applicable

Good

Good

Not applicable

Not applicable

Unstoppable

Good

Acceptable

Acceptable

Acceptable

Acceptable

Acceptable

Unstoppable

Good

Acceptable

Good

Acceptable

Acceptable

Acceptable

Wasabi

Good

Caution

Good

Caution

Good

Acceptable

Wasabi

Good

Caution

Good

Caution

Good

Acceptable

Wasabi

Good

Caution

Good

Caution

Good

Acceptable

Good

Acceptable

Caution

Not applicable

支持Bitcoin.org:

捐助

3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd

介绍:

个人

商家

开发者

入门指南

工作原理

注意事项

White paper

资源:

资源

兑换

社区

词汇表

活动

比特币核心

参与:

支持比特币

开发

其他:

法律

Privacy Policy

新闻媒体

关于bitcoin.org

Blog

© Bitcoin Project 2009-2024 基于MIT协议授权发布

Network Status

简体中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

zh_CN

Bitcoin Core :: Home

Bitcoin Core :: Home

关于我们

博客

软件发行

开发

貢獻

贡献码

会议

支持的比特币改进协议 BIPs

生命周期

RPC Docs

26.0.0

25.0.0

24.0.0

23.0.0

22.0.0

0.21.0

0.20.0

0.19.0

0.18.0

0.17.0

0.16.3

0.16.2

0.16.1

0.16.0

联系

联系我们

声明

简体中文

English

Español

日本語

繁體中文

 

Recent Posts

Bitcoin Core 26.0 released

Bitcoin Core 26.0 is now available.

Published on December 06, 2023

Bitcoin Core 24.2 released

Bitcoin Core 24.2 is now available.

Published on October 26, 2023

Bitcoin Core 25.1 released

Bitcoin Core 25.1 is now available.

Published on October 19, 2023

Bitcoin Core 25.0 released

Bitcoin Core 25.0 is now available.

Published on May 26, 2023

Bitcoin Core 24.1 released

Bitcoin Core 24.1 is now available.

Published on May 18, 2023

Twitter

Legal | Privacy Policy | RSS

© 2024 Bitcoin Core