區塊鏈愛好者(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
至此,使用者應當可以自行產生比特幣多重簽名地址並收發交易了。請再重複以上步驟,確保產生資訊一致後先以小額比特幣進行收發嘗試,習慣後再考慮將這作為自己的儲存方式之一。
總結
本文介紹了比特幣多重簽名技術的基本原理及一套多重簽名私密金鑰管理以及比特幣收發的方法。使用者可以在瞭解其操作方式後,自行通過自己掌控的比特幣私密金鑰來產生多重簽名地址及對交易進行簽名。
補充:
強烈建議在實踐時先小額進行操作,成功掌握本方法後再考慮存入大額的。
文中提及的兩個網站都是可以下載下來離線環境裡面使用的。
本文更多是提供一個思路,只要你有自己能夠掌握的私密金鑰,你就可以產生自己掌握的多重簽名地址並收發比特幣。