首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多人签名是如何工作的?

多人签名是如何工作的?
EN

Ethereum用户
提问于 2018-05-25 22:05:08
回答 2查看 1.4K关注 0票数 0

我创建了一个DAO智能合同,大约20人投票赞成提案。他们每个人都制造新的Tx。

离线签名是很好的,以尽量减少汽油成本。想知道离线签名是如何与合同功能一起工作的,对于多个签署不同选票的人也是这样吗?

我听说有很多人在灯光网络频道状态下签署他们的平衡协议。

EN

回答 2

Ethereum用户

回答已采纳

发布于 2018-05-25 23:00:35

您使用签名的方式与在某个人签名时使用的方式相同。每个人都必须支付提交签名所需的交易费用。但是,您可以创建一个函数,它将自动解析所有签名的消息,比提交一个新事务来解析每个签名的消息稍微便宜一些。您可能会实现类似默克尔空投(https://blog.ricmoo.com/merkle-air-drops-e6406945584d)之类的东西。

在验证签名消息时有几个问题,我有一组契约和python签名程序,它们演示了签名消息所需的工作流:

当对消息进行签名时,它们会被以下数据所覆盖:https://github.com/postables/Postables-Payment-Channel/blob/7d2f91bb060f80b139cab72b5fdff79d116f6210/solidity/ChannelsV4.sol#L12

我还有一个python脚本,可以用来对消息进行签名:https://github.com/postables/Postables-Payment-Channel/blob/develop/python/signer.py

以下solidity函数详细说明了如何验证已签名的原始消息以及签名消息的签名者:https://github.com/postables/Postables-Payment-Channel/blob/7d2f91bb060f80b139cab72b5fdff79d116f6210/solidity/ChannelsV4.sol#L257

以下solidity函数详细介绍了如何验证消息的签名者:https://github.com/postables/Postables-Payment-Channel/blob/7d2f91bb060f80b139cab72b5fdff79d116f6210/solidity/ChannelsV4.sol#L192

票数 2
EN

Ethereum用户

发布于 2018-05-25 23:05:05

是的,您可以让人们脱机签名,收集所有签名,并将它们作为单个事务数据部分的一部分发送,并让契约检查有效签名的数量。这应该节省你的汽油,它通常会允许一个更简单的合同。

请参阅下面的多功能钱包示例:https://medium.com/@ChrisLundkvist/exploring-simpler-ethereum-multisig-contracts-b71020c19037

但是,请记住,您添加的每个签名都会增加发送它们的事务的气体成本,并且您可以在单个事务中使用的气体总量受到块气体限制的限制,这可能会发生变化。因此,如果可能需要的签名数量很高或没有限制,则可能仍然需要编写契约,以便将签名拆分到多个事务中。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/49548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档