程序员区块布道

EOS多签命令行实现--by Skyh

2018-09-26  本文已影响225人  skyh25

最近好多朋友问多签问题, 昨天eos又被偷了几个亿(做空啊),安全问题刻不容缓,刚好我最近研究完成了一次主网多签,于是分享给大家

找了些资料:
https://helpdesk.eostoolkit.io/hc/en-us/articles/360013330031-Multisig-Tutorial

之前在telegram的 eos developer群,generEOS团队给了个教程:
https://medium.com/coinmonks/advanced-eos-multisignature-tutorial-bf4da94f8360

试过不行,只能修改权限。。多签网站和scatter经常出现各种问题
下面给出我自己主网上的解决方案,网站+命令行。(未完整)

1 eostookit修改权限

为了不用命令行,还是用eostookit和scatter修改账户权限吧,
登录scatter之后,导入账户, 这个步骤只需要做一次


image.png

点击update 最终看到success


image.png

要点:1. active原先是某个秘钥对,现在该账户多签,
可以把相关用户名的active导入,weight设置账户权重(重要程度),
这些用户各自签名后,权重之和超过阈值Treshold就可以实现转账
举个栗子:
比如三个账号,两个人同意就可以交易,那么可以设置3个账号,权重为1, 阈值一样设为2即可

2 命令行实现多签转账交易

试过网上钱包不能多签后,我们直接用命令行来实现多签吧

  1. 如果没有创建本地钱包
    ./cleos wallet create --to-console


    image.png

    有或者锁住就要解锁:
    ./cleos wallet unlock --password PW5Jwd****


    image.png
    导入本地钱包,用主网的私钥
    ./cleos wallet import --private-key 5***
    image.png
  2. 先检查权限,连接随便节点即可(这里是https://api.eosnewyork.io:443
    ./cleos -u https://api.eosnewyork.io:443 get account skyhigh12345
    image.png
    刚才我们已经导入私钥,现在试试转账
    image.png
    可以看到,导入钱包后的账户haytqmzugige 可以转账skyhigh12345没有权限,也可以直接区块链浏览器查到交易
    image.png
  3. 前戏完成,实现多签转账
http://api.eosnewyork.io:80 multisig propose payme  \
'[{"actor": "haytqmzugige", "permission": "active"}, {"actor": "xiaozuoyou55", "permission": "active"}]' \
'[{"actor": "skyhigh12345", "permission": "active"}]' eosio.token transfer \
'{"from":"skyhigh12345", "to":"haytqmzugige", "quantity":"0.1000 EOS", "memo":"Pay multisig some money"}' -p haytqmzugige@active

image.png

链上能查到


image.png
./cleos -u http://api.eosnewyork.io:80 multisig approve haytqmzugige payme '{"actor": "haytqmzugige", "permission": "active"}' -p haytqmzugige@active
image.png

同时别人的机器装了cleos也执行 -p 改成别人

./cleos -u http://api.eosnewyork.io:80 multisig approve haytqmzugige payme '{"actor": "xiaozuoyou55", "permission": "active"}' -p xiaozuoyou55@active

./cleos -u http://api.eosnewyork.io:80 multisig exec haytqmzugige payme -p haytqmzugige@active
image.png

3 不足改进地方

  1. 当用owner用户私钥导入钱包,也是可以实现转账的!! 完全也可以设置owner多签,以后修改权限多个人同意,可以自己尝试(怕弄坏账户不敢改,这样就可能有一个问题,掌握owner私钥就有绝对掌控权,可以自己尝试owner权限)
  2. 功能做起来不难, 钱包完全也可以添加,就是还没有,觉得是个机会!

以上EOS纯属自己理解,描述不正确请见谅

上一篇下一篇

猜你喜欢

热点阅读