比特币的多重签名技术 Multisignature

比特币的多重签名技术 Multisignature

多重签名技术让比特币可以实现非常丰富的功能,例如支付通道和闪电网络,这个看似复杂的概念其实基本原理非常简单。
多重签名和单签名不同。标准的比特币交易只需要进行单签名,意思是只需要一个私钥签署交易就可以转账成功了。而多重签名就要求交易必须附上来自多方的多个签名。
这个技术已经很成熟了
跟房产过户一样的,如果房产证上有你老婆的名字,你老婆不签字就过户不了,就卖不掉这房子,即使你们已经离婚了也不行

比特币破34700美金22万了,DOT破10美金了,ETH破1000美金了,转眼间又暴跌了,这个世界真魔幻!一个比特币快可以买一辆特斯拉了! - 大自然的流风 - 博客园
https://www.cnblogs.com/zdz8207/p/14224574.html

比特币挖矿还有搞头吗? - 大自然的流风 - 博客园
https://www.cnblogs.com/zdz8207/p/14235511.html

何为多重签名?
如果一个交易需要两个或者更多签名才能生效,那么这种情况就叫多重签名。
多重签名和单签名不同。标准的比特币交易只需要进行单签名,意思是只需要一个私钥签署交易就可以转账成功了。而多重签名就要求交易必须附上来自多方的多个签名。

多重签名交易有时候也被叫做 M-of-N 交易。M 指的是交易生效所需要的签名数量,N 指的是和本次交易相关的各方的总数量。
例如:
1-of-2:Alice 和 Bob 有一个共用的比特币地址,他们其中任意一个人的签名都能够花费掉地址中的钱。
2-of-2:Alice 和 Bob 有一个共用的比特币地址,他们两个要共同签名才能花掉地址中的钱。
当然,N 的取值不局限于2,也可以是3、4 甚至更多,M 的值只要小于等于 N 的正整数即可,不同的 M 和 N 取值可以适合不同的应用场景。上面所说的各方共用的比特币地址就是一个多签名地址。

多重签名地址

多重签名地址是一种特殊类型的比特币地址,想要转出地址中的钱就需要执行多重签名交易。

Bitcoin Wiki https://en.bitcoin.it/wiki/Multisignature 上介绍了生成一个 2-of-3 的多重签名地址的过程。简单来讲,一个 M-of-N 的地址需要收集 N 方的地址信息来生成。币一旦转入这个地址就需要 M 方共同签名交易,才能把币转出。

多重签名地址是 P2SH 类型的地址。普通的比特币地址是由公钥做哈希后得到的,而多重签名地址基于脚本哈希,所以能够实现复杂的交易。关于 P2SH 的原理,这里我们就不展开了。

总之,多重签名地址是多重签名交易的前提。

2-of-3 第三方托管服务

多重签名的意义显然是防止有人单方面转走地址中的钱,从某种角度来提高地址中币的安全性。随着业务类型的不同,M 和 N 的各自取值也会不同,下面我们以支付宝那样的第三方托管服务为例,看一下多重签名的实际业务场景。

第一步,生成一个 2-of-3 的多重签名地址,涉及到的三方分别是:买方、卖方和中间人。
第二步,买家先把货款存入多重签名地址。
第三步,卖家看到多重地址中的款项之后给买家发货。
第四步,买家收到货之后发起一个多重签名交易把钱转给卖家,并附上自己的签名。
第五步,卖家签署这个多重签名交易,拿到货款。
以上是一个理想条件下的操作过程,只需要买卖双方同时签署交易就可以把钱转给卖方了,无需第三方中间人的参与。

但是,如果买卖双方出现争执,就需要中间人的介入了。例如,卖方发货后,买方声称自己没有收到货,于是拒绝签署交易,这时中间人就可以参与仲裁了。中间人可以和买方共同签署交易,把钱退还给买方,或者和卖方共同签署交易,把钱转给卖方。但是,如果中间人签署一个把钱转给自己的交易,那么买卖双方都会拒绝在这个交易上签名,所以中间人想偷走地址中的钱也是不可能的。

以上就是基于 2-of-3 的多重签名来实现第三方托管服务的整个过程了。

总结

比特币的多重签名技术,我们就介绍到这里了。整个技术基于多重签名地址,一旦钱存入了比特币 M-of-N 多重签名地址,就需要 M 方签署交易才能将钱转出。多重签名地址给比特币的创新带来多种可能。

参考:
https://en.bitcoin.it/wiki/Multisignature
https://www.mycryptopedia.com/multisignature-technology-explained/
比特币的多重签名技术 Multisignature

=====================

硬件钱包多重签名功能介绍
多重签名是一种特定类型的数字签名,要求两个以上用户共同签名才能使签名生效。
多重签名完全不同于单密钥签名,即当资金被存储在多重签名地址时,只有提供了多个签名时才允许转移资该资金。
即使其中一个人丢失了私钥,仍然可以用另外的私钥来转移资产,从而降低管理私钥过程中的各种风险。
单密钥签名丢失的风险太大了,密钥丢了,硬件钱包坏了,各种异常情况都可能导致密钥找不回来了

如何在硬件钱包中创建“多重签名”?

需要一个具有“多重签名”功能的钱包
1. 用硬件钱包创建一个自己的钱包
2. 用热钱包成功监控冷钱包;
3. 选择要进行多重签名的币种,并创建多签地址 (如BTC);
4. 点击右上角三个点;进入后点击“+”创建多签地址,输入多签地址备注名,完成后点击创建。
5. 添加合伙人并导入合伙人的公钥;
6.添加合伙人——输入合伙人姓名——扫码导入合伙人公钥——点击下一步——点击完成
注:设置后无法进行修改,转出资产时需要设置的几名合伙人的签名才能成功转出。
7. 让各位合伙人扫描二维码导入多签地址就创建完成啦
8. 最后分别在热钱包进行查看即可
注:需要合伙人用监控冷钱包的热钱包去扫码二维码。

其他硬件钱包操作或略有差异之处,但基本原理都一样。

合伙人如何查看自己币种的公钥,以BTC为例。
1、打开自己创建的硬件钱
2、选择并打开对应的币种BTC
3、选择“高级”功能选项,点击“导出公钥”功能
4、选择系统提示给出的第1个默认地址
5、点击“确认”确定要导出该地址的公钥
6、弹出币种地址公钥的二维码
7、让创建“多重签名”的合伙人用硬件钱包的“扫一扫”功能即可完成添加公钥。

 

posted @ 2021-01-05 14:15  大自然的流风  阅读(1772)  评论(0编辑  收藏  举报