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


在比特币发展的过程中,曾多次出现因私钥被盗导致交易所倒闭和比特币用户损失大量资金的情况。比特币系统每个用户都拥有一个经过编码的34个字符比特币地址,用于接受比特币。每个比特币地址都有一个对应的32个字符的私钥,可以使用它来发送比特币。私钥必须被安全地管理好,只有你签署一笔转账时才需要用到,比特币地址可以自由地分发到全世界。这就是比特币钱包的原理。当你的私钥是安全的,那么一切都好,如果你失去了你的私钥,那么你的所有资金都没有了。

为了解决当私钥被盗后,尽量减少损失,在2011和2012年出现了多重签名交易。普通的交易只要一个私钥签名即可完成转账,多重签名交易关联两个及以上私钥,只有当其中两个或更多私钥对该交易进行签名,才能完成一笔转账。最常见的是2/3组合,意思是三个私钥中有两个私钥做了签名该转账有效。多重签名交易可以有效保证资金安全,同时在商业上也很有应用价值。可以基于多重交易实现第三方交易担保,以保证交易的顺利进行。

以太坊根据自身平台特点采用智能合约实现多重签名功能,一般在钱包合约中实现该功能。智能合约可以简单的理解为一段可执行的程序片段,具体的代码由发布人使用特定的编程语言来编写(以太坊使用的是Solidity编程语言,类似JavaScript),在本地编译成功后可以发布到区块链上。而以太坊的智能合约也可以理解为一个特殊的交易(包括可执行代码的),被发送出去后会被矿工打包记录在某一个区块中,当需要调用这个智能合约的方法时只需要向这个智能合约的地址发送一笔交易即可。下图为以太坊智能合约模型:

主流的以太坊钱包(如MIST、PARITY等)均提供多重签名功能。新建钱包合约时选择多重签名,输入相应的多重签名组合及对应的账号信息即可。钱包内置的钱包合约代码与这些输入信息通过SOLC编译为二进制码,然后通过一笔交易发送给以太坊网络,一旦以太坊网络节点把该交易打包记录到以太坊区块链中,该智能合约则部署成功。部署成功后会生成该智能合约地址,后续调用该智能合约只需要向该地址发送交易或者事件即可。

在测试private网中进行测试,运行MIST程序进入钱包首页。程序进入账户总览页:


点击“新增钱包”,进入新钱包合约界面。


这里我们选择“多重签名的钱包合约”:


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


其实这里的W1钱包合约,大家可以理解为就是一个账号,只不过这个账号受多人控制而已,这些我们可以向W1合约转账了,转账过程和普通交易一样,这儿不再啰嗦。

下面讲如何通过W1钱包合约向其他账户转账,多重签名的功能主要也就体现在这儿。

首先我们得确保W1合约里面有充足的余额,我们通过MAIN ACCOUNT已经转了100以太币到W1合约。我们现在新增一个账户ACCOUNT 4。使用W1合约给ACCOUNT

4分别转1以太币和5以太币。我们首先转1以太币,MIST钱包只提示了MAIN

ACCOUNT口令认证。再转5以太币,此时转出的以太币数量已经超过了W1合约设置的每天5以太币。


点击界面上的“发送”后,会弹出如下窗口:


注意这儿是执行W1合约,而不是执行交易。MAIN ACCOUNT向W1合约发送执行合约的交易命令,因此需要输入MAIN ACCOUNT的口令。RAW DATA就是合约执行的二进制参数,包括转到的目的账户和金额等。

当执行合约的交易发送给了以太坊网络后,则等待以太坊确认该交易,一旦以太坊网络确认了该交易,则在账户总览界面上会立即弹出下面信息:


点击“批准”后,MIST会弹出“选择一个账户”的对话框:


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

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

以太坊基于智能合约实现多重签名,具有很强的灵活性,应用非常广泛,尤其在当前火爆的ICO众筹中大量应用。但智能合约代码需要非常严谨,稍有不慎出现BUG导致大量资金损失,如parity钱包因智能合约BUG导致15万以太币被盗事件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容

  • 一、区块链 1. 分布式去中心化 比特币设计的初衷就是要避免依赖中心化的机构,没有发行机构,也不可能操纵发行数量。...
    Tenny1225阅读 33,629评论 5 35
  • 新世界大门 当你打开数字货币新世界大门时,你需要学会一项在这世界生存的技能, 如何妥善的备份你的钱包 。 在过去的...
    阿树阅读 17,571评论 0 21
  • 如果说,比特币是运行在计算机上的一种模拟黄金的数字货币,那么以太坊则更像是区块链工业的石油,推动区块链行业呈爆发式...
    卡卡10086阅读 4,767评论 3 29
  • 云游百万里,回首春风吹。 一夜萤灯烬,游子当思归。
    谢勿念阅读 244评论 1 2
  • 大学时,有一舍友,不相信有所谓的爱情,而我却刚好相反,为此,不知有多少个晚上的卧谈会,我们在辩论这个话题。 在他看...
    柠檬木头人阅读 242评论 0 2