本文介绍了多签名钱包的基本概念、工作原理以及优势。多签名钱包允许使用多个私钥来管理资金,并可以自定义签名阈值,从而提高资金的安全性。文章还推荐了几款支持多签名钱包的软件,并强调了私钥安全管理的重要性。
作者:Gaurav
在本文中,我会介绍多签名钱包。多签名钱包常被缩写为 “Multisig wallet”。本文会给出非常基础的介绍。我会解释人们为什么需要多签名钱包、其运作原理、公开地址的生成流程,以及交易的签名流程。最后,我会介绍集中多签名钱包,比如 Armory、 BitGo、 CoPay、 Coinbase 和 Electrum。
所谓的比特币交易,就是在 比特币钱包 之间转移资金的操作。比特币钱包的实质是一个秘密字符串(有英文字母、有数字),叫做 “私钥” 或者 “种子”。私钥是用了签名交易的,这个签名是一种数学上的证明,证明这笔资金转移确实是由这个钱包的主人发起的。这个数字签名也保证了,发出的交易在传播过程中不会被人篡改。
- 单签名的比特币钱包,钱包只能由唯一的一把私钥来操作 -
假设我有 100 个比特币,所有的比特币都放在我的一个钱包里,这个钱包只能由一把对应的私钥来操作。如果我想发起比特币交易,比如转 50 个比特币给我的朋友,我必须使用对应的私钥来签名。这也就是说,只要我掌控着这把私钥,就只有我能用这个钱包发起交易。
但要是我弄丢了我的私钥,或是别人知道了我的私钥呢?这个钱包里所有的比特币都会丢失!
多签名钱包正是为了处理这种情况而出现的,可以提高你的密码货币的保管安全性。
多签名钱包可以用多个私钥(比如 3 个)来操作,而且我可以自设规则,比如 “至少需要这 3 个私钥中的任意 2 个才能转移这个钱包里的资金”。也就是说,需要其中任意两个私钥的的签名才能发起交易。我也可以设置 3-3 的规则,即只有全部 3 个私钥的签名才能发起交易。
- 多签名的比特币钱包,不止一把私钥 -
举例,用户可以根据自己的需求设置这样的规则:
1-2 多签
两个很要好的朋友相互信任,希望有一个共享的账户。设置 1-2 多签钱包之后,他们都可以凭各自的私钥访问同一批资金。两个人都可以独立发起交易(类似于合伙账户)。
2-2 多签
你可以把一个私钥保存在手机里,另一个保存在笔记本电脑上。需要两个私钥才能转移资金。
2-3 多签
类似于 Bitrated。Bitrated 是一个为买家和卖家安排仲裁的平台。它会创建一个三方参与的多签名钱包,释放资金需要且仅需要两个签名。假如买家和卖家都满意,那交易可以直接完成,不需要仲裁员介入。如果某一方请求调解,那仲裁员就介入,评判对错侯参与分割资金。
当然,还可以有 5-8 多签名钱包、3-6 多签名钱包,等等。1-1 的就是单签名钱包啦。
有了多签名钱包,我们就能为两种意外安排预案:
但这里还有一个问题,我该如何管理我的私钥,或者说我该如何安全地保管自己的私钥呢?
这里,我们假设需要保管三个私钥。
如果我把两个私钥保存在手机上,一个保存在笔记本电脑里,并且我设置了 2-3 的多签。那要是 Eric 拿到了我的手机怎么办?
因此,妥善管理私钥是个刚需。
为避免单点故障,我们需要在 3 个地方分别存储这 3 个私钥。比如,
甲私钥存在手机上。
乙私钥存在笔记本电脑上。
丙私钥存在一个不联网的保险柜里。
这样一来,即使 Eric 拿到了我的笔记本电脑,也只拿到了乙私钥,他没法用我的多签名钱包发起交易池,因为他只拿到了一把私钥;即使我弄丢了自己的手机,我的钱也还在,我还有两把私钥。
唯一一个我们要牢记在心的事情就是不要把所有的私钥都放在一个地方。
我们已经了解了多签名钱包的工作原理。但还有其它的一些问题,比如,如何给一个多签名钱包发送资金,以及在发起交易时如何签名。
首先,我们要理解三个术语:
公钥:公钥是一个字符串,可用来接收比特币。由私钥推导而来。
私钥:如前所述,私钥用来发送资金。用户必须保证私钥的安全。
公开地址:一般来说是公钥的哈希值,当某人想要接收资金时,只需把地址出示给支付的一方。
假设我们想要使用三个私钥来创建一个多签名钱包,这三个私钥都有自己相应的公钥和地址,如:
私钥 1,公钥 1,地址 1;
私钥 2,公钥 2,地址 2;
私钥 3,公钥 3,地址 3。
要生成这个多签名钱包的公开地址,我们需要提供所有三把公钥(即公钥 1、2、3)作为输入。同时我们也要定义发送交易的签名阈值,在我们这个例子中就是 2 个。
- 多签名钱包的公开地址 -
细节此处不表,但这样就生成了 一个多签名钱包的公开地址,这个地址可以分享给其他人。所有发往这个之地的资金都使用多签名来解锁。与这个地址同时生成的还有一个叫做 “赎回脚本(Redeem Script)” 的数据,用户要保管好这个数据,并在多签名钱包发起交易时提前分享给所有参与方,这样才能验证这个地址的真实性。
现在,大体上来说,你已经知道多签名钱包的地址是如何生成的了。
我们继续。
假设私钥 1 的主人希望使用多签名钱包来发送一笔交易(发送 10 btc 给某个地址),TA 要先初始化一笔交易,并使用其私钥签好名。然后,TA 需要把这个交易分享给私钥 2 和私钥 3 的主人。两人中的任何一位给交易签名之后,这笔交易就有两个签名了,满足规则了。这就是交易的处理方式。
我们讲解了多签名钱包的概念,其工作原理,并介绍了几种支持多签名钱包的软件。这里,我们可以稍微做个总结。
希望你觉得这篇文章有用。
(完)
- 本文转载自: btcstudy.org/2021/10/18/... , 如有侵权请联系管理员删除。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!