- 欢迎访问蜗牛娱乐,Allnewbet,好玩刺激可以赚Money,传送门:开始游戏
蜗牛娱乐网讯, 01 比特币地址的由来
我们知道比特币地址是一个由数字和字母组成的字符串,例如由公钥(一个同样由数字和字母组成的字符串)生成的比特币地址以数字“1”开头,例 1:
1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy。
如果要生成一个新的密钥,需使用 getnewaddress 命令。但出于安全考虑,命令运行后只显示生成的公钥,不显示私钥。例 2:
$ bitcoin-cli getnewaddress 1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy $ bitcoin-cli
这种由公钥生成比特币地址时使用的算法是 Secure Hash Algorithm (SHA)和 the RACE Integ rity Primitives Evaluation Message Digest (RIPEMD),具体地说是 SHA256 和 RIPEMD160。
以公钥 K 为输入,计算其 SHA256 哈希值,并以此结果计算 RIPEMD160 哈希值,得到一个长度为 160 位(20 字节)的数字,其中 K 是公钥,A 即为生成的比特币地址:
A = RIPEMD160(SHA256(K))
公钥生成比特币地址过程
我们通常所见到的比特币地址是经过“Base58Check”编码的,这种编码使用了 58 个字符(一种 Base58 数字系统)和校验码,提高了可读性、避免了歧义,并有效地防止了在地址转录和输入中产生错误。
Base58Check 编码过程
冷知识:为了避免混淆,Base58 编码中不包括 0(数字零)、O(大写字母欧)、I(大写字母 i)和 l(小写字母 L)。
总结比特币地址产生的完整过程:从私钥、到公钥(椭圆曲线上某个点)、再到两次哈希的地址,到最终的 Base58Check 编码,编译并运行 address 代码,即可得到比特币地址。
02 隔离见证的出现
比特币的地址不只有“1”开头,事实上比特币最常见的地址类型有三种:普通公钥地址(1-地址),脚本哈希地址(3-地址)和隔离见证地址(bc1-地址),地址类型通过地址的前缀来区分。
•1-地址:这是最常见的比特币地址,通常用于普通转账收款。1-地址实际上为公钥 Hash 的编码,验证 1-地址的签名后便可解锁收款。
•3-地址:这个地址为脚本(Script)哈希地址,这类地址实际对应为一段比特币脚本 Hash 的编码。
•bc1-地址:bech32 编码地址,用于隔离见证交易。
隔离见证改变了地址的格式。作为目前为止规模最大的一次比特币协议更新,隔离见证引进了一整套全新的数据结构,将比特币区块外貌更改为升级后的节点——虽然未更新的节点应该继续像往常一样运作。
Bech32 编码
首先,我们简单了解一下什么是 Bech32 编码,与 Base58 有什么不同。Bech32 字符串最长 90 个字符,由两部分组成:
•可读部分,用于传递数据类型或与读卡器相关的任何其他内容,用于主网 mainnet。此部分必须包含 1 到 83 个 US-ASCII 字符,每个字符的值都在[33-126]范围内。
•数据部分,至少有 6 个字符长,仅由字母数字字符组成,不包括“1”、“b”、“i”和“o”,用于测试网 testnet。关于数据部分值:1 字节为见证版本;2 到 40 字节见证程序(由 BIP141 定义)到 BASE32 的转换。Bech32 编码过程:
03 隔离见证带来的改变
我们通过隔离见证程序改变“支付给公钥哈希”(Pay-to-Public-Key-Hash ,P2PKH)地址的例子来看看隔离见证带来的改变。假设某笔交易构建了一个价值 2BTC 的 P2PKH 输出,例 3:
DUP HASH160 ab68025513c3dbd2f7b92a94e0581f5d50f654e7 EQUALVERIFY CHECKSIG
如果通过隔离见证,将会创建一个“支付给见证公钥哈希”(P2WPKH)脚本,(需要注意的是,P2WPKH 应该由收款人即接收者,通过将被压缩的公钥转换成 P2WPKH 哈希值进行创建),例 4:
0 ab68025513c3dbd2f7b92a94e0581f5d50f654e7
一个隔离见证输出的锁定脚本相对一个传统输出明显大为简化,“DUP HASH160”, “EQUALVERIFY CHECKSIG”都不再需要。此外,开发者还可使用 P2SH-P2WPKH 技术,即通过 P2SH 来包裹 P2WPKH 交易,让 P2WPKH 交易“骗过”不支持隔 D 离见证 SegWit 的旧节点。
在引入隔离见证之前,每一个交易输入后面都跟着用来对其解锁的见证数据,见证数据作为输入的一部分被内嵌其中。而隔离见证将某个特定输出的签名分离开,或将某个特定输入的脚本进行解锁。隔离见证实现了对比特币的一种结构性调整,将见证数据部分从一笔交易的 scriptSig(解锁脚本)和签名数据字段移出至一个伴随交易的单独的见证数据结构,客户端请求交易数据时可以选择要或不要该部分伴随的见证数据。
将见证移出交易后,用作标识符的交易哈希不再含见证数据。因为见证数据是交易中唯一可被修改的部分,移除它的同时也移除了交易延展性攻击的机会。通过隔离见证,交易变得对除创建者本人外任何人都不可变,这极大地提高了许多其它依赖于高级比特币交易架构的协议的可执行性,比如支付通道、跨连交易和闪电网络。对于用户而言,隔离见证也会带来最直接的好处——减少交易费用。
隔离见证在多方面产生影响的结构性调整,一方面实现了扩容,更重要的是优化了延展性和比特币整体性能。在未来的区块链世界,保持比特币原链,加上隔离见证,再用闪电网络做小额支付,将是数字货币未来合情合理的发展路线,也是唯一可选的路线!(币信钱包) 蜗牛娱乐(www.woniuyulew.com)亚洲最具人气线上娱乐平台