Bitcoin Segwit

segwit

什么是隔离见证?

隔离见证(SegWit)是2015年开发的升级协议。引入该概念是为了解决区块链网络当下面临的可扩展性问题。平均统计,比特币网络每10分钟验证一次新区块,每个区块包含几笔交易。这样,区块大小会直接影响每个区块中可以确认的交易数量。目前,比特币区块链每秒能够处理约 7 笔交易。

隔离见证的主要思想是重新组织区块数据,使签名不再与交易数据存储在一起。换句话说,SegWit 升级包括将验证人(签名)与交易数据隔离。这能够将更多交易存储在单个区块中,从而增加网络的交易吞吐量。

由于每秒只能处理大约 7 笔交易,因此比特币交易有时可能需要很长时间才能完成。与传统的支付解决方案和金融网络(每秒可以处理数千笔交易)相比,速度要慢得多。 隔离见证由比特币开发者 Pieter Wuille 和其他比特币核心贡献者于 2015 年开发升级。2017 年 8 月,隔离见证升级被作为比特币网络上的软分叉进行实施。 现今,有多个使用隔离见证协议的加密货币项目,包括比特币和莱特币。协议升级带来了许多优势,例如提高了交易速度和区块容量。此外,隔离见证还解决了所谓的交易延展性问题。

segwit-diff

隔离见证的主要优势是什么?

增加容量

隔离见证的最大优势之一就是增加区块容量。通过从交易输入中删除签名数据,可以在一个区块中存储更多交易。

交易包括两个主要部分:输入和输出。本质上,输入包含发送者的公共地址,而输出包含接收者的公共地址。但是,发送人必须证明他们已经转移了资金,并且必须使用数字签名。

如果没有隔离见证,则签名数据最多可占用一个区块的 65%。使用隔离见证,会把签名数据从交易的输入中移除。这使有效区块大小从1 MB增加到大约4 MB。

请注意,隔离见证并不仅仅是区块大小的增加。相反,它是一种工程解决方案,可以在不增加区块大小限制的情况下增加有效区块的大小(这将需要硬分叉)。更具体地说,实际区块大小仍为1 MB,但有效块大小的限制为4 MB。

此外,隔离见证还引入了区块权重的概念。我们可以将区块权重视为替代区块大小的概念。本质上,区块权重是一种度量单位,它包括所有的区块数据:包括交易数据(1 MB)和签名数据(最大3 MB),这些数据不再是输入字段的一部分。

交易速度提升

除了可以存储更多交易的区块,隔离见证还能够提高交易速度,由于区块链中可能存储大量的交易数据。即使区块的出块时间相同,但区块中可以容纳更多的事务,因此 TPS 会更高。

交易速度的提升也能够帮助降低比特币网络的交易成本。在实施隔离见证之前,每笔交易费用大多在 30 美元以上。但是,随着隔离见证的实施,交易成本大幅降低至每笔交易 1 美元。

segwit2

交易延展性修复

比特币面临的另一个主要问题是篡改交易签名。如果签名被篡改,则可能导致两方之间的交易被破坏。由于存储在区块链上的数据实际上是不可变的,因此无效交易会永久存储在区块链上。 使用隔离见证,签名不再是交易数据的一部分,从而消除了更改此数据的可能性。此修复程序支持在区块链社区内进行进一步的创新,包括二层协议和智能合约。

什么是SegWit隔离见证地址

SegWit是“隔离见证(Segregated Witness)”。它是对当前比特币区块链的改进,通过分离签名的方式,减小了交易存储在区块中所需的大小。它通过软分叉实施在比特币网络。通过将交易签名和比特币交易数据分隔,隔离见证可以使区块容纳更多交易。它的优势是更加快速,费用也更低。

binance-segwit

实施隔离见证的网络

  • 比特币:SegWit达到了一个区块内实现的阈值。比特币挖矿池表示100%支持该提议。所有矿工和挖矿池都获得了一段宽限期,可以升级其采矿软件以激活隔离见证,之后,任何不支持变更的区块都会被拒绝。
  • 莱特币:莱特币实现了隔离见证,并在验证交易的能力上得到了提升。在SegWit实施后,莱特币的价格也迅速上涨。

比特币的地址格式

目前来看,比特币的地址格式主要分为 4 个类型:

Legacy(P2PKH)格式(以1开头的地址)— 传统地址 范例:1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u

比特币最初的地址格式,至今仍在使用。P2PKH 指 Pay To PubKey Hash(付款至公钥哈希)。

Nested(P2SH)格式(部分以3开头的地址)— 多签地址 范例:3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX

P2SH (Pay-to-Script-Hash)支付脚本哈希,即比特币交易输入输出脚本,采用赎回脚本及赎回脚本哈希。其地址结构类似于 P2PKH,但它支持比传统地址更复杂的功能。P2SH 脚本函数最常用于 multisig 地址,这些地址可以指定多重数字签名来授权事务。举个例子:某个3开头的地址由三人控制,其中,任意两人同意,便可发起转账。

上述两种地址,都是传统的交易转账地址,并未采用隔离见证技术。下面介绍两种主流的隔离见证地址。

Nested SegWit (P2SH)格式(部分以3开头的地址)— 隔离见证兼容地址 范例:3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN

3 开头的地址:因为使用 P2SH 方式打包,所以隔离见证兼容地址,也以3开头,旧节点能识别。

大家不需要知道以3开头的比特币地址,到底是多签地址,还是隔离见证兼容地址,只需要知道以3 开头的地址,被广泛支持,可以向 1开头 和 bc1 开头的地址发送比特币即可。

Native SegWit (Bech32)格式(地址bc1开头)— 原生隔离见证地址 范例:bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3

Bech32编码的地址,是专为SegWit开发的地址格式。Bech32在2017年底在BIP173被定义,该格式的主要特点之一是它不区分大小写(地址中只包含0-9,az),因此在输入时可有效避免混淆且更加易读。

由于地址中需要的字符更少,地址使用Base32编码而不是传统的Base58,计算更方便、高效。数据可以更紧密地存储在二维码中。Bech32提供更高的安全性,更好地优化校验和错误检测代码,将出现无效地址的机会降到最低。

Bech32地址本身与SegWit兼容。不需要额外的空间来将SegWit地址放入P2SH地址,因此使用Bech32格式地址,手续费会更低。

Bech32 地址比旧的 Base58(Base58Check编码用于将比特币中的字节数组编码为人类可编码的字符串)地址有几个优点:

QR码更小、更好地防错、更加安全、不区分大小写, 只由小写字母组成,所以在阅读输入和理解时更容易。

另外,不同地址间更细微的差别,还体现在以下方面:

  • 1)隔离见证兼容地址(部分3开头)比传统地址(1开头)节省24%转账手续费;
  • 2)原生隔离见证地址(bc1开头)比传统地址(1开头)节省35%转账手续费;
  • 3)隔离见证地址(bc1开头和部分3开头)比多签地址(部分3开头),最多可以节省 70% 转账手续费;