比特币改进协议BIP13(翻译)

来源:互联网 发布:win10网络连接红叉 编辑:程序博客网 时间:2024/05/17 18:13

比特币改进协议BIP13(翻译)

英文原文地址:

https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki


摘要

此BIP描述了一种新型的比特币地址,以支持任意复杂的交易。 这里所说的复杂性被定义为接收者需要什么信息来花费所接收的比特币,而不像现有的比特币实现中那样需要单个ECDSA私钥。

本质上,根据此提议编码的地址表示脚本的编码散列,而不是ECDSA公钥的编码散列。

动机

启用“端到端”安全钱包和付款以资助托管交易或其他复杂交易。 启用第三方钱包安全服务。

详细说明

新的比特币地址类型以与现有比特币地址相同的方式构建(请参见Base58Check编码):

    base58-encode: [one-byte version][20-byte hash][4-byte checksum]

主网地址的版本字节为5,testnet地址为196。20字节散列是将用于兑换比特币脚本的哈希值。 4字节校验是版本和哈希的双SHA256散列的前四个字节。

理论依据

一个批评是,比特币地址应该被弃用,以便维护一个更加用户友好的付款机制,这个协议只会鼓励继续使用设计不善的机制。

另一个批评是,比特币的地址天生是不安全的,因为没有与地址相关的身份信息; 如果你只有一个比特币地址,那么你怎么能确定自己给谁付款或者你付出的究竟是什么?

此外,截断的SHA256不是最佳校验和; 有更好的错误检测算法。 如果我们引入一种新形式的比特币地址,那么也许应该使用一个更好的算法。

这是一个更安全的比特币基础设施的最简单的方法之一。 它不是为了解决所有比特币的可用性或安全问题,而对现存体系是一个渐进的改进。 未来的BIP应该提出更多用户友好的付款机制,或者用于验证您是向自由软件基金会发送付款,而不是名叫Joe的黑客。

假设以后手动输入比特币地址将会变得越来越少见,并且鉴于现有的比特币地址的校验和方法在实践中似乎运作得很好,并且已经被多次实现,作者认为没有必要更改校验算法。

选择前面的版本字节,以便在base58编码之后,前导字符一致:对于主网络,字节5变为字符“3”。 对于testnet,字节196被编码为’2’。

向后兼容性

这个提议不是向后兼容的,但是报告失败时很”优雅” - 如果旧的实现被赋予了这些新的比特币地址之一,它将把地址报告为无效,并且拒绝创建一个交易。

参考

See base58.cpp1/base58.h at https://github.com/bitcoin/bitcoin/src

原创粉丝点击