关于墨客的DAPP锁仓开发

墨客共识社区提出锁仓要求,根据各种讨论,建议做多签名钱包,原因主要是社区对于锁仓规则没有确定,争论很大,但是对于资金处于某种逻辑下的共管没有争议。

大体功能性需求如下

创建多签名钱包
支持投票M-N规则设定
支持通过初始设定投票人
支持现有投票人投票方式增加新投票人和踢掉投票人
支持用户充值
支持投票方式转移资金
支持资金流转的流水显示
补充性说明

是否强制转移资金的目的地和充值地址一致
是否强制转移资金的数量不能超过当初充值数量
这些逻辑是钱包共有人投票决定,增加这些逻辑不仅仅是代码的复杂性问题,也是社区逻辑变更之后需要升级代码,引入更多的不确定风险。简单的说,这个模型,只要投票通过,资金就被转移到符合投票要求的地址去。
开发需要的资源

产品一人
平面设计一人
合约开发和前端开发1人或者两人
计划DAPP在TP或者墨宝上线

关于多签名钱包,涉及到的相关资料链接

[url=https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md]Ethereum typed structured data hashing and signing[/url]
[url=https://github.com/gnosis/MultiSigWallet/blob/master/contracts/MultiSigWallet.sol]MultiSigWallet Contract[/url]
[url=https://github.com/christianlundkvist/simple-multisig]Simple Multisig Contract[/url]
[url=https://github.com/ethereum/EIPs/issues/763]Standard API for multisig wallet smart contracts[/url]
简单归纳一下,多签名钱包在类以太的环境下都是合约形式,Mist也是用合约支持多重签名钱包, Ethereum typed structured data hashing and signing是对结构化数据进行签名形成特定的签名数据,2和3是具体的多签名钱包的实现代码,可以参考。Standard API for multisig wallet smart contracts提出了多签名钱包合约的一般性指导建议,和我们锁仓需求相比,这个建议比较接近我们的需求,但是不完全一样。

墨客的锁仓需求应该是存款和提现数据能一一对应,也就是说提现不能超过当初自己存款的总额,只是这个提现是否成立,需要多人投票来决定。

对于释放的规则来说,可能是币价,可能是时间,可能是某个公认的重大事件,这些作为合约来说,无法检测到外部条件变化,应该是当事人发起提案后,投票决定。

我相信还有其他类型的锁仓,锁仓的资产成为贷款,有可能有抵押物,也有可能没有,合约中的数据作为某个商业合同的依据,这些不在我们的考虑范围之内,我们只考虑当前墨客的锁仓基本锁仓要求。

工作量估计:

合约编写

支持创建新的多签名合约钱包,支持多签名钱包命名
支持初始设定投票人和投票规则
支持查询罗列投票人和存款人钱包地址
支持以投票方式更换投票人,一次更换一个,应对社区要求更换和投票人丢失密钥的情况
支持用户存款,并记录,只有存款人才有权力发起提现提案,额度不超过自己存款
支持投票人进行投票,根据规则批准提案后,转出资金
取消创建者删除合约功能,避免因此转移资金
更进一步,支持MOAC和ERC20 Token的锁仓
另外需要一个合约,专门记录多签名钱包和关联钱包的映射关系,便于DAPP读取数据。

以上估计7个工作日

DAPP前端开发

创建多签名钱包合约画面
导入多签名钱包合约画面
设置投票人和投票规则
变更投票人
转账存款
发起提案
显示提案列表和投票
显示和自己钱包关联的多签名钱包
显示多签名钱包流水记录
估计20-25个工作日,其中UI设计约5个工作日
DAPP和钱包的对接调试

估计2-3个工作日一个APP,默认上TP一个

以上一共35个工作日

有些地方没看明白
1.‘支持投票M-N规则设定’具体含义意思是什么?
是指创建多签名钱包时,N个公钥,需要>=M个私钥才能转移资金。
还是指创建多签名钱包后,N票中,需要>=M票才能转移资金。
M个持有人,需要N票以上才能执行

2.‘支持通过初始设定投票人’,这个投票人是通过什么机制确定的?是由多签名钱包的创建者指定的,还是什么其他机制?难道不是所有参与锁仓者就是投票人吗?如果不是的话,那么是否意味着‘多签名钱包参与签名者’、‘投票人’、‘参与锁仓者’这3者并不是重合的?
钱包创建者是一个人,投票人是创建人设定的,一旦设定,权力转移到所有投票人,按照M-N规则决定行为
锁仓的可以不是投票人,也可以是
参与签名的都是投票人

3.‘支持用户充值’是否就是用户可以将自己的资金转入多签名钱包,从而参与锁仓计划。参与锁仓后是否自动拥有投票权?如果这个用户并非当初多签名钱包参与签名的人,那么他的投票权如何行使?在我的理解中,投票权就体现在多签名钱包参与签名。
锁仓和投票权不一定重合,可以不重合,锁仓人只有提议发起权力,是否调动资金看投票结果
如果我的理解正确,那么是否一个没有参与多签名钱包签名的用户在充值的同时,要对原本的多签名钱包增加自己的签名。这就要求多签名钱包在生成后可以增加或删除签名参与钱包。
如果我的理解不正确,那么是否说明多签名钱包参与签名者只是该钱包的保管者,帮锁仓参与者保管资金而已。当投票人投票决定转移资金时,要求保管者提供私钥来开启多签名钱包。

[url=https://github.com/JCCDex/jcc-moac-mutisig-wallet]版本库位置[/url] 目前代码在各自开发分支上
[url=https://free.modao.cc/app/2mfu92q9ye6k06ivo6b1hblnr2cnkm]交互设计原型[/url]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值