主页 > imtoken安卓官方版 > 币银潘志标:Taproot,解决比特币隐私问题

币银潘志标:Taproot,解决比特币隐私问题

imtoken安卓官方版 2023-04-21 06:25:03

8月22日-23日,“共享新机遇——2020全球区块链算力大会暨新基建挖矿峰会”在成都召开。本次会议由成都市新经济委员会、成都市科技局、成都市成华区人民政府指导。主持人。发布会上,币印创始人潘志彪分享了题为“Taproot——比特币隐私之路”的主题。

什么是主根?如何解决比特币隐私问题?潘志彪为我们介绍了技术方案。

币印潘志彪:Taproot,解决比特币隐私问题 资讯 第1张

以下为演讲全文:

今天,我将从隐私问题的角度来介绍比特币即将要做的Taproot。下图是Taproot的意思,上面只能看到一张传单,下面可能有各种复杂。

币印潘志彪:Taproot,解决比特币隐私问题 资讯 第2张

解决比特币的隐私问题,或者说数字货币的隐私问题,主要有三个方向:一是货币是怎么来的,从A到B,B到C,这个流程是公开的,所以我们必须解决硬币是怎么来的问题;第二,币是怎么花的,转出去的时候去了哪里,目前有很多专业的数据网站通过流量分析和流向分析来解决隐私问题;第三,有多少币,当你转币给别人的时候,别人是公开的,通过简单的数学推理就可以完成漂亮的数学运算。

主根

Taproot 由著名的 Gregory Maxwell 于 2018 年 1 月提出,并于今年发布了代码。开发人员也在进行一些大胆的讨论,这些讨论很快就会出现在 MAST 分支上。 MAST,由 Johnson Lau 于 2016 年 4 月由 BIP114 提出。

比特币脚本的演变基本上分为三个阶段:

第一个是P2PKH;

第二个是P2SH,可以做一些多重签名,也可以放一些复杂的脚本;

第三个是Taproot/MAST,Taproot可以在一定程度上替代MAST,或者可以将MAST应用转换成Taproot。 MAST 的脚本输出非常简单。只要有签名比特币Taproot升级时间,就可以通过。它由一个简单的 OP 代码完成。它实际上是一个语法树的结构,里面有一个分支,里面有一个值。扩展的 MAST 语法树在其上方有一个根,然后向下拆分。

MAST 有几个特点:它支持非常复杂和大型的脚本;可以轻松支持10层以上的二叉树结构,突破单个脚本520Bytes字节限制,无需构建balance。

施诺尔签名

Schnorr 签名由德国数学家和密码学家克劳斯·施诺尔提出,并于 1990 年申请了专利。该专利于 2008 年 2 月到期,在各个方面(性能、安全性、体积、可扩展性等)基本碾压了 ECDSA,因为ECDSA 并不是那么简单。 Schnorr Sig 可以使用与 ECDSA 相同的椭圆曲线。

Schnorr 比 ECDSA 更安全。目前,Schnorr 签名有安全证明,而 ECDSA 目前没有类似的证明。 Schnorr 没有延展性问题,ECDSA 签名具有延展性。 Schnorr是线性的,因为它的签名是线性的,所以公钥和私钥层次可以直接叠加,以前做不到的新东西可以在上面做。 Taproot对于一个输出可以有两种执行模式,一种是签名模式,全部签名,另一种是运行一个脚本而不暴露整个脚本。 N 个参与者,将其叠加在一起形成一个新的值,这个值称为主公钥,主公钥和脚本的哈希值叠加在主公钥中。主公钥的哈希值是所有相关方都知道的。在交易的输出中,直接填写Segwit格式,填写版本号,填写主公钥。因为激活了Segwit,以后很容易fork,可以预留一个字节支持很多,为以后做铺垫。

我们做一个 Taproot 例子。

币印潘志彪:Taproot,解决比特币隐私问题 资讯 第3张

方法一、签名方式代价,有A和B两方比特币Taproot升级时间,其组公钥为C。定义后B的签名可以花费B,然后形成一个新的P,乘以通过椭圆曲线得到C的hash值,所以P是这样的。如果要分解,就是A、B、D三方。每个人签名,都会得到各自对应的签名。

币印潘志彪:Taproot,解决比特币隐私问题 资讯 第4张

第二个是脚本模式。在脚本模式下,由于一方拒绝签名,无法得到公钥P对应的签名,所以必须使用公钥。 C脚本S,以及可以验证这个脚本S的数据,这样这个B就可以用了。 Taproot 仅在非合作时公开和执行脚本。

币印潘志彪:Taproot,解决比特币隐私问题 资讯 第5张

Taproot 通常是多方参与,一方可以,但没有多大意义。在条件执行中,很多情况下基本遵循设置,所以这个脚本中的细节完全不需要暴露,就是正常的签名。有一些非常典型的应用场景,有具体的执行方式,但是看不出脚本在调整。

Taproot其实很灵活,未来会有很多新的应用,也可以解决比特币数量的问题。目前,MimbleWimble 是最简单的,但是软分叉现在不太好做。我们只能通过扩展块来实现,比较简单。目前在 Wright 社区推荐 MimbleWimble。