详解最小化反共谋基础设施MACI:链上治理中的抗_合约招商_数字货币代理_海外数字货币招商代理_数字货币招商_元宇宙代理加盟

数字货币代理_海外数字货币招商代理_数字货币招商_元宇宙代理加盟
数字货币平台火爆招募数字货币合约代理

详解最小化反共谋基础设施MACI:链上治理中的抗

更新时间:2021-11-14 08:51:01点击:133

data-v-3f0fa3ab data-v-5f989728作者:埃里克张掖

architect @ Dora factory @ Dora哈克斯

关于这篇文章的背景请参照《二次方投票和二次方资助》。 这篇文章发表一个月后,BSC基金会在DoraHacks开发者平台HackerLink上执行了BSC生态的第一次二次资助,之后的15天内收到了全球60多个开发者团队提交的项目。

03010介绍了Vitalik博客《二次方投票和二次方资助》中提到的三个问题。 是身份库,勾结,合理无视问题,国家货币。 这三个问题其实不局限于平方投票,而是链上管理机制面临的共同问题。 因此,这些问题的解决方案不仅可以使平方投票更规模化、更安全,还可以惠及更多链上的治理机制。

本文的目标是为设计“不合作平方投票”或“抗共谋平方投票”的机制做准备。 在这种情况下,投票者不能相互合作,就没有了勾结的可能性。 该机制的基础框架之一是Vitalik Buterin在Ethresear上发表的文章《Quadratic Payments》 [1] (MACI )。 因此,首先说明MACI的机制,进一步探讨使用MACI改善平方投票,消除勾结(Collusion )可能性的方法。

MACI: Minimal Anti-Collusion Infrastructure

MACI是“将对勾结的耐受性最小化的框架”。 背景资料来源于Vitalik Buterin博客https://Ethresear.ch/t/minimal-anti-collusion -基础架构/5413和《Minimal anti-collusion infrastructure》3359vitalik.ca/

很多链上的管理APP应用需要“抗勾结”的特性,但同时也要抗区块链交易的执行和审核,也要保证隐私得到保护。 投票是有这种需求的重要场面。 因为投票显然需要抗勾结能力,同时对执行结果的准确性要求很高,需要保护投票程序,最后需要防止投票者的审查。

设置

智能合同\(r )、公钥列表) ) k_1.k_n )和必须能够注册智能合同的函数。 此外,只有符合以下两个条件并通过认证的参与者的公钥才能访问r

账户为“合法”的参与者(独立人士、拥有某一国家国籍的人、在论坛中享有充分声誉的人、拥有某一数量以上的Token…的人等,社区成员) ) )

账户持有人个人控制密钥(例如,必要时可打印证明) )。

所有用户都需要stake上的钱。如果任何人泄露了自己的私钥,拿到私钥的人可以直接拿走这笔钱,其账户将从列表中删除。 这个机制抑制了任何人把私钥交给别人。

此外,假设您有一个操作员\ (操作员\ ),并且拥有私钥\(k__omega\)和相应的公钥\(k__omega\)。

最后,它是一种机制) ) m ) )。 其中,函数的输入是((n ) )个参与者的行为,输出是该函数定义的某种输出结果。 例如,简单的投票机制是函数,根据输入的值输出出现次数最多的值。

执行

开始时间(t _ {开始} )、()操作者、操作=) Phi )、I: )密钥=k _ I、操作=) Phi )。

在开始时间\(t_{start}\)和结束时间(\(T_{end}\)之间,注册的参与者可以向r发送用参与者自己的私钥((k ) )加密的消息。 这两个信息是:

约定行为:例如进行投票。 参与者必须发送加密的消息(ENC ) msg=(I,sign ) msg=(I操作,密钥=k _ I ) ),而公共密钥=k _ _ OMEGA ) ) )。 其中(k_I ) )是该参与者

更新密钥:的参加者为加密的消息(\(enc(msg=(I,sign ) msg=newk_I,key=k_i ) ),pubkey=K_\omega ) ) 其中)

此时,操作员的工作是按照信息上链接的优先顺序处理各信息。 具体处理步骤:

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

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

如果解码的消息是约定的动作(\(action () ),则设置(state[I]=action ),如果解码的消息是新的公钥,则设置) (state [ I ].key

\(t_{end} )后,操作员公布输出状态((m ) state[n].action,state[n].action ) ) ) ),同时为一个ZK

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

假设有一个参与者想证明他做了什么。 例如\(action () ) ) key=k_i ),pubkey=k ) ),但是不能证明没有发行其他交易。 例如,您可能发行了将公钥更换为新的\(newk_I\)的以前的交易,因此以前的证明也没有意义。 因为如果交换过钥匙的话,有可能做了其他的动作。

参与者可以将私钥交给其他人,但这样,该人就可以拿到私钥并尝试立即修改密钥。 这样一来,1 )有50%的成功率,2 )拿到钥匙的人就直接拿走了以前stake的存款。

MACI未解决的问题

在接收者处于可信任的硬件环境中,或者接收者处于可信任的多签名的情况下,销售秘密密钥

传统的私钥在可信硬件环境中的攻击可防止私钥被改变成攻击者事先不知道的私钥

第一种情况可以利用特别设计的复杂签名机制,该机制对可信硬件和多个签名不友好。 但是,该设计需要保证验证函数对ZKP友好。

第二种情况可以通过“面对面零知识证明”解决。 例如,参与者可以将私钥\(xy=k_I\)、公共\ ) x=x*g\)和\ ) y=y*g\),然后向验证者显示两个信封,每个信封都可以包含\ ) x\

非合作二次方投票

该机制可用于改善各种链上的治理,包括投票。 在平方资助中,如果资金池规模非常大,或者平方资助用于更大的场合(例如选举或国会批准预算的场面等),勾结就成为必须解决的问题。 因此,可以设计抗勾结的平方投票(Anti-collusion quadratic funding )的结构,扩大规模,用平方来援助资金。

[1]Vitalik Buterin,最小反科学基础架构,

359以太网. ch/t/minimal-anti-collusion -基础设施/5413

官方微信