NEO GUI 多方簽名使用

衆所周至,NEOGUI是一個開發者演示用錢包,使用體驗是很是的不友好的。html

今天原本打算使用多方簽名帳戶,發現和想象的不同,請教了小夥伴也不行。遂調試了一下緣由,發現踩進坑裏了。測試

把這個問題記錄一下,但願之後用到的小夥伴能夠順利實施3d

準備階段

首先準備兩個key調試

Key1地址 ALjSnMZidJqd18iQaoCgFun6iqWRm2cVtjcdn

Key1公鑰 02aa792c61ffe03d92bb505969fe81e2c345682a9c0ba38596275f3a31f6da6e5fhtm

Key2地址 AcfWad6TSjQbfrjyhkTuEPDRrYWYQC9zHDblog

Key2公鑰 02a763b5d3bf02cbb4d7e03eb9b060021324d6074bcff046d9846fe3ae1cdc5031索引

我是不會給你私鑰的,此處你應該準備本身的Key一、key2開發

爲了測試的純潔,新建一個錢包,隨錢包生成的地址刪了,不要了get

新建多方簽名

把key1公鑰和key2公鑰填進去,設置最小簽名數量2.

意味着咱們建立一個這兩個地址都要簽名的多方簽名。

而後往這個多方簽名地址裏轉點錢,這個都很順利。

若是轉帳後、同步後多方簽名地址裏不能順利顯示餘額,那你就

重建一下索引

好了,咱們給這個多方簽名地址裏面轉入154gas,如今尚未什麼問題

轉出

而後,問題就來了

怎麼從這個合約地址裏面轉帳出來

轉帳

首先

轉到一個地址15個GAS

此時就會獲得一個交易構造,但沒有簽名的對話框。很好,此時正常。

而後只要把這串東西發給一個key的擁有者簽名

而後簽名以後再發給另外一個key的擁有者簽名並廣播

15個gas就能夠取出來了。

理論如此,但有一些小坑

Key1擁有者

咱們假定key1的擁有者準備簽名了,那麼key1的擁有者是否是可能爲這個需求新建一個錢包呢,極可能,新建一個錢包,導入key1,執行簽名。

好,咱們來試一試。

Key1擁有者新建錢包,導入key1

而後簽名你會獲得

第一次失敗

這是由於根據

這串東西,找不到和key1的關係

咱們能夠分析一下他生成的交易,這個交易有一個輸入

交易的輸入是一個UTXO

他指向的地址是Ayx……xR4,就是多方簽名合約

因此,實際上是須要多方簽名合約來提供鑑證信息的。

好,新建多方簽名

再執行一次簽名,你會成功

而後咱們把輸出的這串東西交給Key2擁有者

Key2擁有者

咱們假定key2的擁有者準備簽名了,key2的擁有者思路不太同樣,他也爲了清晰新建了一個錢包,而後先建立了多方簽名合約,再導入了Key2,而後簽名

第二次失敗

而後key2擁有者會獲得這個問題,明明有多方簽名地址,也有key2,爲何還會沒有這個信息呢。

這個地方就要解釋一下源碼了。觀察了多方簽名建立的代碼

他是這個樣子的,具體的關係就是。

多方簽名合約對話框從多個簽名中找一個key,只有我錢包裏面能找到一個key,才能返回。

那就要求了建立多方簽名合約時,你要想讓這個錢包能用來簽名,它裏面必須有一個多方簽名裏面用到的key,並且只能有一個

由於你有兩個Key,建立多方簽名也只能關聯一個key,並且很難判斷關聯的究竟是哪一個。

第二次失敗的緣由明確了

再來一次

必須先導入key2,再建立多方簽名地址

修改後正常

點廣播,錢取走

總結一下

使用NEOGUI操做多方簽名合約。

須要注意

1.一個錢包裏的多方簽名合約只能關聯一個KEY,若是沒有KEY,他就不能用來簽名。

也就是說若是你須要三個簽名,你就須要三個錢包。

2.只有當前錢包中有KEY的狀況下建立多方簽名合約纔會關聯上。

產生轉帳交易

須要多方簽名合約,無需關聯KEY

簽名1

須要多方簽名合約,KEY1,多方簽名合約必須關聯KEY1

簽名2

須要多方簽名合約,KEY2,多方簽名合約必須關聯KEY2

進技術羣討論:795681763

做者:李劍英

原文轉自:www.cnblogs.com/crazylights…

相關文章
相關標籤/搜索