以太坊MIST钱包中的多重签名

live41 pow pos 2022-05-15 13:09:39 mist以太坊

  展的过程中在⽐特币发,闭和⽐特币⽤户损失⼤量资⾦的情况曾多次出现因私钥被盗导致交易所倒。过编码的 34个字符⽐特币地址⽐特币系统每个⽤户都拥有⼀个经,受⽐特币⽤于接。对应的32个字符的私钥每个⽐特币地址都有⼀个,来发送⽐特币可以使⽤它。全地管理 好私钥必须被安,转账时才需要⽤到只有你签署⼀笔,由地分发到全世界⽐特币地址可以⾃。币钱包的原理这就是⽐特。钥是安全的当你的私,切都好那么⼀,了你的私钥如果你失去,资⾦都没有了那么你的所有。私钥被盗后为了解决当,少损失尽量减,年出现了多重签名交易在2011和2012。私钥签名即可完成转账普通的交易只要⼀个,联两个及以上私钥多重签名交易关 ,私钥对该交易进⾏签名只有当其中两个或更多,⼀笔转账才能完成。2/3组合最常见的是,私钥做了 签名该转账有效意思是三个私钥中有两个。有效保证资⾦安全多重签名交易可以,也很有应⽤价值同时在商业上。实现第三⽅交易担保可以基于多重交易,的顺 利进⾏以保证交易。⽤智能合约实现多重签名功能以太坊根据⾃⾝平台特点采,约中实现该功能⼀般在钱包合。为⼀段可执⾏的程序⽚段智能合约可以简单的理解,写(以太坊使⽤的是Solidity编程语⾔具 体的代码由发布⼈使⽤特定的编程语⾔来编,Script)类似Java,可以发布到区块链上在本地编译成功后。个特殊的交易(包括可执⾏代码的)⽽以太坊的智能合约也可以理解为⼀,打包记录在某⼀个区块中被发送出去后会被矿⼯,要向这个智能合约的地址发送⼀笔交易即可当需要调⽤这个智能 合约的⽅法时只需。智能合约模型下图为以太坊:

  增钱包”点击“新,包合约界⾯进⼊新钱。重签名的钱包合约”这⾥我们选择“多:

  合约实现多重签名以太坊基于智能,的灵活性具有很强,常⼴泛应⽤⾮,CO众筹中⼤量应⽤尤其在当前⽕爆的I。码需要⾮常严谨但智能合约代,G导致⼤量资⾦损失稍有不慎出现BU,BUG导致15万以太币被盗事件如parity钱包因智能合约。

  ARITY等)均提供多重签名功能主流的以太坊钱包(如MIST、P。时选择多重签名新建钱包合约,及对应的账号信息即 可输⼊相应的多重签名组合。⼊信息通过SOLC编译为⼆进制码钱包内置的钱包合约代码与这些输,发送给以太坊⽹络然后通过⼀笔交易,打 包记录到以太坊区块链中⼀旦以太坊⽹络节点把该交易,则部署成功该智能合约。成该智能合约地址部署成功后会⽣,该地址发送交易或者事件即 可后续调⽤该智能合约只需要向。te⽹中进⾏测试在测试priva,序进⼊钱包⾸页运⾏MIST程。账户总览页程序进⼊:

  W1钱包合约其实这⾥的,为就是⼀个账号⼤家可以理解,受多⼈控制⽽已只不过这个账号,W1合约转账了这些我们可以向,通交 易⼀样转账过程和普,再啰嗦这⼉不。包合约向其他账户转账下⾯讲如何通过W1钱,要也就体现在这⼉多重签名的功能主。合约⾥⾯有充⾜的余额⾸先我们得确保W1,T已经转了100以太币到W1合约我们通过MAIN ACCOUN。户ACCOUNT 4我们现在新增⼀个账。 4分别转1以太币和5以太币使⽤W1合约给ACCOUNT。转1以太币我们⾸先,N ACCOUNT⼝令认证MIST钱包只提⽰了MAI。以太币再转5,了W1合约设置的每天5以太币此时转出的以太币数量已经超过。

  账户是之前在创建W1合约时对话框上⾯可以选择确认的,2和ACCOUNT 3选择的ACCOUNT 。个进⾏合约确认我们选择其中⼀,成功转账。

  名的参数设置上图是多重签,3个账号控制表⽰该合约由,币则启动多重签名功能每天消费超过5以太,COUNT账户拥 有合约由MAIN AC,OUNT 3参与多重签名确认ACCOUNT 2和ACC。相关参数后设置好了,开始创建钱包合约点击“创建”则,IN ACCOUNT的操作⼝令过程中MIST会提⽰输⼊MA,上会出现该钱包合约信息创建成功后在钱包界⾯。

  执⾏W1合约注意 这⼉是,执⾏交易⽽不是。1合约发送执⾏合约的交易命令MAIN ACCOUNT向W, ACCOUNT的⼝令因此需要输⼊MAIN。合约执⾏的⼆进制参数RAW DATA就是,的账户和⾦额等包括转到的⽬。送给了以太坊⽹络后当执⾏合约的交易发,坊确认该交易则等待以太,络确认了该交易⼀旦以太坊⽹,会⽴即弹出下⾯信息则在账户总览界⾯上:

  函数execute()和confirm()MIST钱包实现的钱包合约代码中有两个关键。者执⾏交易时当合约发布,)负责启动钱包合约execute(,发布者和相关账号的签名才能执⾏在执⾏该合 约之前需要该合约。⾏过程中发现需要进⾏多次签名时当execute()函数在执,()请求其它 账号进⾏签名会⾃动调⽤confirm。通知其它账号进⾏签名并确认Confirm()函数负责,设定的参数多次被调⽤该函数根据钱包合约。满⾜原先预 定值后直到账号签名的次数,e()完成执⾏execut,执⾏交易操作此时钱包合约。

分享: