# Bitcoin

By [blokslabs](https://paragraph.com/@blokslabs) · 2022-04-05

---

比特币 Bitcoin 的概念最初由中本聪在 2008 年提出，根据中本聪的思路设计发布的开源软件以及建构其上的 P2P 网络。比特币是一种 P2P 形式的数字货币。点对点的传输意味着一个去中心化的支付系统。

与大多数货币不同，比特币不依靠特定货币机构发行，它依据特定算法，通过大量的计算产生，比特币经济使用整个 P2P 网络中众多节点构成的分布式数据库来确认并记录所有的交易行为，并使用密码学的设计来确保货币流通各个环节安全性。

P2P 的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同，是其总数量非常有限，具有极强的稀缺性。该货币系统曾在 4 年内只有不超过 1050 万个，之后的总数量将被永久限制在 2100 万个。  

比特，是一种计算机专业术语，是信息量单位，是由英文 BIT 音译而来。二进制数的一位所包含的信息就是一比特，如二进制数 0100 就是 4 比特。那么，比特这个概念和货币联系到一起，不难看出，比特币非现实货币，而是一种计算机电子虚拟货币，存储在你的电脑上。

早年中本聪定的比特币最小单位是 1 比特 Bit ，一百万分之一个比特币。后来经哈尔芬尼提醒，这样搞可能不够全世界人口用。中本聪就又拆了 100 份，到比特分 Bitcent 。如果比特币涨到一百万美元，那一比特刚好一美元，一比特分刚好一美分。这样互联网货币比特币就和现实世界美元对等了。等到一个比特币变得多数人一辈子都买不起的时候，用比特这个单位似乎更合理。后来，大家为了纪念中本聪，把比特币最小单位比特分 Bitcent 命名为聪Satoshi。

**什么是比特币钱包的子地址？**

比特币钱包建立在 HD（分级确定性）框架之上，通过这种框架我们可以生成并管理不同地址。 用户钱包的每个公开地址都可以从该钱包的 xPub（扩展公钥）中产生。

通过主密钥推导出的子密钥对应的钱包地址就是子地址。

如果每次都使用相同地址接收 BTC，那么任何人都可以轻松追踪此地址的所有转账记录。而使用子地址收款就可以极大地改善这种情况，提供更好的匿名性和隐私性。

**什么是比特币地址？**

比特币地址是一个由数字和字母组成的字符串，可以与任何想给你比特币的人分享。

比特币地址可由公钥经过单向的加密哈希算法得到。哈希算法是一种单向函数，接收任意长度的输入产生指纹摘要。加密哈希函数在比特币中被广泛使用：比特币地址、脚本地址以及在挖矿中的工作量证明算法。

通常用户见到的比特币地址是经过“Base58Check”编码的，这种编码使用了58个字符（一种Base58数字系统）和校验码，提高了可读性、避免歧义并有效防止了在地址转录和输入中产生的错误。

Base58Check编码也被用于比特币的其它地方，例如比特币地址、私钥、加密的密钥和脚本哈希中，用来提高可读性和录入的正确性。

![](https://storage.googleapis.com/papyrus_images/31e7e31c5d88b8a784699911b33cb6545efdc190ba68550c7c64f8156c8ec5c9.png)

**比特币地址之 Legacy (P2PKH) 格式**

地址以“1”开头，是比特币最初的地址格式，至今仍在使用。P2PKH 是 Pay To PubKey Hash （付款至公钥哈希）的缩写。

比如：1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u ​​​

**比特币地址之 P2PH格式**

地址以 "3" 开头，P2SH 是 Pay To Script Hash （支付至脚本哈希）的缩写，它支持比 Legacy 地址更复杂的功能。

Nested P2SH，获取现有的 P2SH 地址 (以“3”开头)，并与 SegWit 地址一起封装。以此来兼容老版本。但这是某种破解行为，导致 SegWit 交易需要大约 10% 的额外空间。

比如：3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN

**比特币地址之 Native SegWit (Bech32) 格式**

地址以”bc1“开头。Bech32 编码的地址，是专为 SegWit 开发的地址格式。

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

由于地址中需要的字符更少，地址使用 Base32 编码而不是传统的 Base58，计算更方便、高效。数据可以更紧密地存储在二维码中。

Bech32 提供更高的安全性，更好地优化校验和错误检测代码，将出现无效地址的机会降到最低。

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

比如：bc1qvfcpxtky539pmqx2euryzr8xx537dm4cuyqkgk

**SegWit**

SegWit 是 Segregated Witness 的缩写，其中 Segregated 是分离、隔离的意思，Witness 是与交易相关的签名事物。因此，SegWit 是将某些交易签名数据与交易分开。SegWit 已在比特币区块链上被激活。

将签名与交易相关数据分离的主要好处是减少了存储在一个比特币块中的数据的大小。这样每个块具有额外的容量来存储更多的交易。也意味着网络可以处理更多的交易，并且发送者支付更低的手续费。

SegWit 地址的另一个主要好处是它们向后兼容，所以可以将 SegWit 地址的比特币与 Legacy 地址的比特币互转。

**UTXO（Unspent Transaction Output）**

⽐特币交易的基本单位，是⼀个未使⽤的交易输出。⼀个⽤⼾的⽐特币会被当作UTXO分散到数百个交易和数百个区块中。实际上，并不存在储存⽐特币地址或账⼾余额的地点，只有被所有者锁住的、分散的UTXO。

⽐特币可以被分割成表⽰⼋位⼩数的“聪”，⼀个UTXO可以是⼀“聪”的任意倍。UTXO可以是任意值，但只要它被创造出来了，就像不能被切成两半的硬币⼀样不可再分了。

**比特币不同类型地址的区别**

传统地址(Legacy Address)：

1 开头的地址，被称为传统地址 ( Legacy Address )。这就是最原始的比特币地址，比如：创世地址：1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa，属于中本聪。

1 开头的地址，采用 P2PKH ，P2PKH(Pay-to-Pubkey Hash)，支付公钥哈希，即比特币交易输入输出脚本，采用公钥及公钥哈希。

1 开头的传统地址，上线至今，一直被支持，我们可以从它发送 BTC 到下面介绍的多签地址和隔离见证地址。

多签地址：

3 开头的地址，比如 3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX。2012年的比特币改进提案中，新增 P2SH 的地址。

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

隔离见证兼容地址(Nested Segwit Address)：

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

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

原生隔离见证地址(Native Segwit Address):

bc1 开头的地址，是由新的隔离见证脚本生成的地址（P2WPKH 或 P2WSH），是纯正的隔离见证地址。

它采用 Bech32 编码，其风格和 P2PKH 和 P2SH（即 1开头和 3开头）风格的地址完全不同。 由于使用 bc1 前缀，它比上面两种地址要长，由42个符号组成。

比如：bc1qa5ndt07z2lu7r2kl6zrffw362chj74vse76lq5

不过，它具有更多优势：

1、没有大小写

2、生成的二维码面积更小

3、可以错误纠正（不推荐使用）

目前，只有部分钱包支持原生隔离见证地址 ，支持的交易所也不多。

转账手续费，哪家强（便宜）？

当然是隔离见证地址的转账费用强，更便宜。这是因为，传统地址、多签地址交易事务更大，占用更多字节。而隔离见证可以减少交易字节数，如果我们使用隔离见证地址作为收款地址，之后再使用该隔离见证地址给其他人转账，就可以节省转账成本。

Bitcoin Optech 的统计数据的统计数据显示：

隔离见证兼容地址（部分3开头）比传统地址（1开头）节省 24% 转账手续费；

原生隔离见证地址（bc1开头）比传统地址（1开头）节省 35% 转账手续费；

隔离见证地址（bc1开头和部分3开头） 比 多签地址（部分3开头），最多可以节省 70% 转账手续费；

总结：bc1 开头的原生隔离见证地址，最省转账费用。

**隔离见证**

隔离⻅证，是比特币协议的一个兼容性升级，它**将签名数据**从比特币交易中分离出来。

话说比特币区块链上的每个区块内，不仅记录了每一笔转账交易的时间、账户、收到或转出的比特币数量等具体信息，还包括每一笔交易的数字签名。矿工们在打包区块时，需要用数字签名来验证每一笔交易的合法性，确认无误后，才会将交易记录在区块里。

然而，普通用户只关心自己账户有多少比特币，并不需要验证每一笔交易。所以，隔离见证就**把区块内的数字签名信息拿掉**，从而减少交易字节数，让每个区块可以承载更多笔交易，进而达到扩容的目的。

2017年8月，隔离见证正式激活。

隔离见证具有如下优势：

**更安全：**

对比传统地址（1 开头的地址），隔离见证地址具有更好的安全性。

**更快速：**

可增大区块容量，检查交易速度更快。

**更便宜：**

隔离见证地址的转账手续费比传统地址（1 开头的地址）更便宜。

**具备兼容性：**

隔离见证是软分叉，是兼容性升级，支持旧节点。

因为隔离见证是兼容性升级，因此存在 **兼容地址** 和 **原生地址** 两种。

隔离见证是一种区块链扩容的方法，已在比特币和莱特币上成功实施。我们常见的部分 3 开头的地址，和 bc1 开头的比特币地址，就是隔离见证地址。

---

*Originally published on [blokslabs](https://paragraph.com/@blokslabs/bitcoin)*
