2019年1月26日 星期六

區塊鏈入門系列 | 比特幣的多重簽名技術 Multisignature




文章摘要: //en.bitcoin.it/wiki/Multisignature 上介紹了生成一個 2-of-3 的多重簽名地址的過程想要轉出地址中的錢就需要執行多重簽名交易


多重簽名技術讓比特幣可以實現非常豐富的功能,例如支付通道和閃電網路,這個看似複雜的概念其實基本原理非常簡單,下面來介紹一下。


何為多重簽名


如果一個交易需要兩個或者更多簽名才能生效,那麼這種情況就叫多重簽名。


多重簽名和單簽名不同。標準的比特幣交易只需要進行單簽名,意思是隻需要一個私鑰簽署交易就可以轉賬成功了。而多重簽名就要求交易必須附上來自多方的多個簽名。


多重簽名交易有時候也被叫做 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/





http://www.kubonews.com/2019012642699.html

更多有趣新聞請上:http://www.kubonews.com

沒有留言:

張貼留言