MACI: 链上治理中的抗勾结框架-ODAILY

EricZhang

Architect\\),\\(operator\\)开始一个其实状态\\(S_{start}={i:(key=K_i,action=\\phi。,i\\in1...n\\).

在起始时间\\(T_{start}\\)和结束时间\\(T_{end}\\)之间,任何注册的参与者可以向R发送消息,消息用参与者自己的私钥\\(k\\)加密。有两种消息:

约定行为:例如投票。参与者需要发送加密过的消息\\(enc(msg=(i,sign(msg=action,key=k_i)),pubkey=K_\\omega)\\),其中\\(k_i\\)是这个参与者当前的私钥,\\(i\\)是参与者在\\(R\\)中的id

美SEC指控Crowd Machine涉嫌进行未注册的ICO:金色财经报道,美国证券交易委员会指控澳大利亚男子Craig Sproule涉嫌就未注册的ICO进行了虚假声明。该机构对Sproule和他的两家公司Crowd Machine和Metavine提起诉讼,指控其对Crowd Machine Compute Tokens(CMCT)进行ICO。发行时间为2018年1月至4月。SEC声称Sproule和Crowd Machine在没有提醒投资者的情况下将580万美元转移给了南非的金矿实体。此外,SEC声称CMCT的销售构成了未经注册的证券发行,并且Sproule和他的公司在没有确定投资者是否为合格投资者的情况下故意出售了代币。[2022/1/7 8:31:15]

更新密钥:参与者需要发送加密过的消息\\(enc(msg=(i,sign(msg=NewK_i,key=k_i)),pubkey=K_\\omega)\\),其中\\(NewK_i\\)是参与者要变更的公钥,\\(k_i\\)是这个参与者当前的私钥

声音 | Joe McCann:MACD和均线两个技术性金叉预示ETH上涨行情:据EWN 6月19日消息,Joe McCann目前看好以太坊。当前,比特币和ETH都处于停滞状态,在非常小的价格范围内交易。有些人认为,尽管现在很平静,ETH可能很快就会爆发,向上突破。最近知名分析师Joe McCann声称,ETH图表发现两个标志性技术形态应该对多头来说是个好兆头。首先,ETH的一日图上的MACD最近出现看涨金叉,蓝色信号线交叉在红色和橙色线上方。这标志着ETH的17天熊市期结束。上一次在ETH日线图上看到MACD交叉看涨,该资产上涨了64%。这可能意味着另一次大涨即将到来,需要考虑到以太坊2.0的利好消息。其次,以太坊的一日图显示,其10日均线交叉于20日均线上方,这个金叉意味着多头控制着加密货币。这种模式最后一次实现,ETH上涨了69.27%。这些都预示ETH会大涨。[2019/6/19]

这时,操作员的工作是按照消息上链的先后顺序处理每一个消息。具体的处理过程:

声音 | 彭博报告:MACD指标自2月中旬以来持续下降 比特币可能会再次下跌:彭博社3月12日的一份最新报告称,关键的价格走势指标显示,比特币可能会再次下跌。自2月中旬以来,MACD指标一直在下降。比特币的长期购买需求正在恶化,因此,购买压力可能会增加。比特币在前几周已经数次测试过4000美元大关,但在相当长一段时间内都未能突破这一关口。彭博表示,在比特币突破这一水平之前,很可能面临抛售压力。[2019/3/13]

使用操作员私钥解密消息。如果解密失败,或者解密对应的信息无法解码成为以上的两类信息,则直接跳过这条信息

动态 | 恶意软件通过谈论SLACK和DISCORD上的数字货币来攻击MacOS用户:据bitcoinist消息,安全研究人员透露,一款针对MacOS用户的恶意软件正通过谈论Slack和Discord上的数字货币进行攻击。据悉,攻击者将在与数字货币有关的聊天中冒充“关键人物”,然后共享恶意脚本,并试图鼓励用户将脚本粘贴到mac的终端窗口。之后,该窗口会发送命令下载一个34MB的文件并执行它;这一过程将为黑客建立一个远程连接。文章建议,为了防止恶意软件造成损害,用户要避免在终端窗口上粘贴别人提供的脚本。[2018/7/5]

使用\\(state.key\\)验证消息的签名

如果解码后的消息是约定的行为(\\(action\\)),那么设置\\(state=action\\),如果解码后的消息是一个新的公钥,那么设置\\(state.key=NewK_i\\)

在\\(T_{end}\\)之后,操作员必须公布输出状态\\(M(state.action,...,state.action)\\),同时给出一个ZK-SNARK,证明这个输出是正确的结果。

为什么这个机制是抗勾结的

假设一个参与者想要证明他做过什么,例如做过\\(action\\)\\(A\\),他可以引用一个链上的交易\\(enc(msg=(i,sign(msg=A,key=k_i)),pubkey=K_\\omega)\\),并且提供一个零知识证明,验证这笔交易的确是包含\\(A\\)的加密信息。但是,他无法证明他没有发出别的交易,例如他可能发出过一笔更早的交易,把公钥换成了一个新的\\(NewK_i\\),因此前面的证明也就变得没有意义了,因为如果他更换过密钥的话,他可能已经做了别的动作。

参与者还可能把私钥给其他人,但是这样做的话那个人拿到私钥后就可以立即试图修改密钥。这样的话1)有50%的成功率,2)会导致拿到密钥的人直接拿走之前stake的存款。

MACI未解决的问题

接收方在可信硬件环境中,或者接收方在可信多签的情况下,卖出私钥

原有的私钥在一个可信的硬件环境中的攻击,这个环境可以防止私钥变更为任何攻击者们不事先知道的私钥

第一种情况,可以通过特别设计的复杂签名机制,而这种设计对可信硬件和多签不友好。不过这种设计需要确保验证函数对ZKP友好。

第二种情况可以通过“面对面零知识证明”解决,例如,参与者可以把私钥拆解为\\(x+y=k_i\\),公布\\(X=x*G\\)和\\(Y=y*G\\),并且给验证者展示两个信封,分别包含\\(x\\)和\\(y\\);验证者打开一个,检查公布的\\(Y\\)是正确的,然后检查\\(X+Y=K_i\\)。

非合作二次方投票

这种机制可以用来改进包括投票在内的多种链上治理机制。在二次方资助中,当资金池规模非常大的时候,或者当二次方资助被用于更大的场景时(例如大选、国会审批预算等场景),勾结就会成为一个必须被解决的问题。因此,设计一个抗勾结二次方投票(Anti-collusionquadraticfunding)机制,可以规模化二次方资助。

VitalikButerin,Minimalanti-collusioninfrastructure,

https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-6:172ms