您的位置:首页 > 其它

区块链开发应用多重签名技术实践数字货币如何实现

2017-11-06 08:52 971 查看
区块链爱好者(QQ:53016353)

背景:最近币价上涨,整个圈子也出现了久违的活跃氛围。鉴于 MtGox 门头沟倒闭事件让许多人蒙受损失,在此重新呼吁大家及时将币从交易所提取出来放到自己掌控的地址里。同时建议刚接触比特币不久的币友积极学习比特币相关技术,从而避免因个人失误而丢币。本文将介绍比特币多重签名技术的原理及使用方式,希望读者能将多重签名用于实际生活之中。

比特币多重签名技术的出现,是比特币发展史上的一个里程碑。简单地说,比特币多重签名使得花费比特币时需要用多个私钥来签名验证后才会被比特币网络接受,这不仅提升了比特币的安全性(黑客需要获得足够的私钥才能够将比特币转到自己的地址),也使得许多新的商业模式得以实现。

尽管从最新的比特币富有地址排行榜上,我们可以看到不少活跃的地址都已经用上了多重签名技术,市场上如比太钱包等客户端也提供了相应的功能,但从实际的使用情况来看,大部分用户并没有将多重签名运用起来。本文将介绍一种简单可行的多重签名地址生成管理方式,希望能让大家对多重签名技术有更深刻的了解。

实践目标

通过阅读本文,读者将能够对多重签名技术的基本原理有一定的了解,并能掌握一套多重签名私钥管理以及比特币收发的方法。

准备知识

在进行多重签名实践之前,读者应该了解以下几个概念:

1、比特币私钥(Private Key)、公钥(Public Key)、地址(Address)等概念及相关的对应关系。

2、脑钱包。通过记忆中的一串字符来生成比特币的私钥,从而得到对应的比特币公钥和地址。

3、交易签名广播。只有使用相应的私钥对交易进行签名后才能广播出去并被比特币网络接受。

地址生成

如果要使用多重签名技术,首先要生成一个多重签名地址。多重签名地址通过普通比特币的公钥生成,最基本的形式就是“N 选 M”,意思是这个地址一共有 N 个私钥,而要从这个地址中转账,需要最少用 M 个私钥来进行签名。

生成脑钱包

Passphrase:     multisig test1

Private Key:    5JWJgSQoc5mrYEB1VMDsEJ6jtqMvNDUFAqJWMP1HvxxdjNqyq9P

Address:        12DfP6nSw1ZCJwJiqjEYHVxwfoz2y2MKmv

Public Key:     04a2449b9a115bea654b0672f9120e2aabf34a4ca3993966ef7a8e672a7e851bd05814dccd2e2cd3471768762bcab499e74f2e12583d28faadd07a1dfbba01cae1

Passphrase:     multisig test2

Private Key:    5KjYgZgkspmbm8oz36r46ctfjYtm6tnHXWafgFw5EVQSwmHbY6v

Address:        1NtMMGv4ghA1XXVDajoNc5iJD5kj4GN2WA

Public Key:     04ae06813d9d19a6b29c873cad44d67099119ce5e7c9e36005870d1da4a76e7e87b0e36a0d581b73dd2238660e7c71466979bc8f85008331ca4377e7364cb9515d

Passphrase:     multisig test3

Private Key:    5KUDk8Sa2PuMwgBpUciRciWFe2dowaEsCGqi4Y4hULmD6C1Qkaw

Address:        1PvTMRcAcUziiHMFhB4HgVRnRe4BUodgEg

Public Key:     04434b519b4a1bf38a50c8456dca1fdd7c30d271e191d94a3e85bd72e77927b47d6844e45bf4ac7b1bea08a4bc1194e8722679fb4887d210bc1f07e494a584ba00

生成多重签名地址

相对于上面的公钥(Public Key)长长的一串字符,相信大部分用户对比特币的私钥和地址会更熟悉一些。不过对于多重签名地址生成的时候,并不需要直接了解具体的私钥,只需要有公钥信息即可。

Address: 32YtdRmeK9Qhbr1Um2f2Vm7XRqSexukm5x

恭喜,一个崭新的多重签名地址就这样生成了! 在此建议用户刷新一下浏览器,重新试验一次并确保能够生成相同的多重签名地址。

与普通的比特币地址相比,比特币多重签名地址是以数字 3 开头,除此之外(对于用户而言)在接收比特币时并没有什么不同。用户可以使用自己常用的方式,向该地址发送小额的比特币以进行测试。

笔者向该地址发送的比特币交易信息如下:

发送交易

多重签名兑换脚本

在发送多重签名的交易时,操作过程则先需要提供一个叫 Redeem Script (在生成多重签名地址的时候便一同生成)的兑换脚本,通过其生成交易信息,并用足够的私钥签名后才能被比特币网络接受。

上面地址所对应的兑换脚本如下:

Redeem Script: 524104434b519b4a1bf38a50c8456dca1fdd7c30d271e191d94a3e85bd72e77927b47d6844e45bf4ac7b1bea08a4bc1194e8722679fb4887d210bc1f07e494a584ba004104a2449b9a115bea654b0672f9120e2aabf34a4ca3993966ef7a8e672a7e851bd05814dccd2e2cd3471768762bcab499e74f2e12583d28faadd07a1dfbba01cae14104ae06813d9d19a6b29c873cad44d67099119ce5e7c9e36005870d1da4a76e7e87b0e36a0d581b73dd2238660e7c71466979bc8f85008331ca4377e7364cb9515d53ae

Address: 32YtdRmeK9Qhbr1Um2f2Vm7XRqSexukm5x

生成交易信息

点击打开“Spend”页面,即可进入多重签名交易的构造页面。首先填入上面的 Redeem Script,网页便会提示更新该地址上的交易信息,点击确认后,该多重签名兑换脚本的地址以及上面的余额将会在“Source Address”显示出来。当前地址32YtdRmeK9Qhbr1Um2f2Vm7XRqSexukm5x里面有0.001BTC

接下来只需要填写好接收地址和交易的数额(注意计算好数额和交易手续费),在“Destination Address”项目里面写上1MzziGBa7tNNzMwVJMPEjAfM1wRcvSGZu5,发送金额为0.0009BTC,最后的手续费“Fee”项目为0.0001BTC。

由于这是一个 2-3 的多重签名地址,从三个私钥中随机选择两个即可,在“Private Key”里面分别填入5JWJgSQoc5mrYEB1VMDsEJ6jtqMvNDUFAqJWMP1HvxxdjNqyq9P和5KjYgZgkspmbm8oz36r46ctfjYtm6tnHXWafgFw5EVQSwmHbY6v,点击最下面的”Resign"按钮后即可生成一个“Raw Transaction”如下:

010000000172a0747b9a190973345e98fa6f6e1151a03b41ccedf055affa94cc2b5f1cb6ce00000000fd5e0100483045022100e5089537d9cd5cd8f304ccc61dfa2e34f55dfa0136cf811a9225ee752472e8a60220065c4a66c57800c8d59fcccccf6f74f4d1d59f8689c1c55de8479e0bf0c58b1b014830450221009d3795f9e58a4de419808e7ffc534cf86859ac0603eaaa10c2a32f37615d7618022022f6604a7a539f543f84e913c4e825112204955c42a0af1f27911888c2e634cb014cc9524104434b519b4a1bf38a50c8456dca1fdd7c30d271e191d94a3e85bd72e77927b47d6844e45bf4ac7b1bea08a4bc1194e8722679fb4887d210bc1f07e494a584ba004104a2449b9a115bea654b0672f9120e2aabf34a4ca3993966ef7a8e672a7e851bd05814dccd2e2cd3471768762bcab499e74f2e12583d28faadd07a1dfbba01cae14104ae06813d9d19a6b29c873cad44d67099119ce5e7c9e36005870d1da4a76e7e87b0e36a0d581b73dd2238660e7c71466979bc8f85008331ca4377e7364cb9515d53aeffffffff01905f0100000000001976a914e65a668adb55e50f31750d36868476d1a5d70a4f88ac00000000

至此,用户应当可以自行生成比特币多重签名地址并收发交易了。请再重复以上步骤,确保生成信息一致后先以小额比特币进行收发尝试,习惯后再考虑将这作为自己的存储方式之一。

总结

本文介绍了比特币多重签名
4000
技术的基本原理及一套多重签名私钥管理以及比特币收发的方法。用户可以在了解其操作方式后,自行通过自己掌控的比特币私钥来生成多重签名地址及对交易进行签名。

补充:

强烈建议在实践时先小额进行操作,成功掌握本方法后再考虑存入大额的。

文中提及的两个网站都是可以下载下来离线环境里面使用的。

本文更多是提供一个思路,只要你有自己能够掌握的私钥,你就可以生成自己掌握的多重签名地址并收发比特币。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数字货币开发
相关文章推荐