比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

DAOrayaki:詳解最小化反共謀基礎設施_MAC

Author:

Time:1900/1/1 0:00:00

原文作者:?KyleCharbonnet

原文標題:?ATechnicalIntroductiontoMACI1.0

一、MACI簡介

MACI是MinimalAnti-CollusionInfrastructure的縮寫,是一種允許用戶進行鏈上投票過程的應用程序,其有很強的抗串通/共謀能力。當今鏈上投票過程中的一個常見問題是,賄賂選民使其為某一特定選項投票十分容易。很多時候,這種賄賂采取的形式是"加入我們的池子,我們會給你分紅"。由于區塊鏈上的所有交易都是公開的,如果沒有MACI,投票者可以很容易地向賄賂者證明他們投票給了哪個選項,從而獲得賄賂獎勵。

MACI通過使用zk-SNARKs來解決這個問題,從本質上隱藏了每個人的投票方式,同時仍然顯示最終的投票結果。用戶無法證明他們投票給哪個選項,因此賄賂者無法可靠地相信用戶所投的票是投給了賄賂者所指定的選項。例如,一個選民可以告訴賄賂者他們投的是選項A,但實際上他們投的是選項B。沒有可靠的方法來證明選民實際上投的是哪個選項,所以賄賂者沒有動機去付錢給選民來投他們的票。

a.背景

關于MACI的總體概況、歷史和重要性,可以查看往期的這些文章:

DAOrayaki|MACI:鏈上治理中的抗勾結框架

DAOrayaki|MACI中的匿名化

DAOrayaki|向MACI添加匿名化方法

DAOrayaki|rollup/mixers/MACI的批量處理存款

同時,建議了解zk-SNARKs背后的基本理念,因為這些是MACI的核心組成部分。

DAOrayaki|創建假的zkSNARK證明

PermaDao Builder Panda:流量入口的最終目的就是讓進入Web3.0的門檻越來越低:金色財經現場報道,在8月8日由金色財經主辦的金色沙龍活動中,PermaDao Builder Panda在《下一個十億級Web3用戶來自哪里》圓桌會議中表示,流量入口的最終目的只有一個就是讓Web3.0進入的門檻越來越低。

很多開發者會出現私鑰保管不當,發地址的時候錯發成私鑰。我從去年一直在關注MPC和AA錢包賽道,有了MPC錢包,就是讓用戶拿不到私鑰,這樣被盜的概率就會大大降低。AA錢包還有一個好處,很多新人理解不了為什么要用GAS,因為在Web2.0是免費轉賬。

在以太坊和BTC網絡存數據非常昂貴。這樣我們可以把比特幣網絡的數據和代碼放到永存網絡上,把計算邏輯和VM放到鏈下。大家可以嘗試更廉價的存儲,比如Arweave等公鏈,這也是一個新的思路。

現在看起來ZKL2是一個值得發展和探索的路子,但能不能行通不好說,也要看技術落地。因為現在交易鏈非常慢,所以要看在V神的帶領下,ZK這些項目哪個到底更好用,這也是值得期待的。[2023/8/8 21:32:36]

本文將介紹MACI的一般工作流程以及它如何能夠提供以下原則:

反對共謀。除了受信任的協調者之外,沒有人可以確定投票的有效性,從而降低賄賂的有效性。

無收據性。沒有投票者可以證明他們投票的方式。

隱私。除了受信任的協調者,沒有人能夠解密投票。

不可審查性。任何人都不能審查投票。

不可偽造性。只有用戶私鑰的所有者可以投票與其對應的公鑰相關聯

不可抵賴性。何人都不能在投票后修改或刪除投票,盡管用戶可以再次投票以使其無效

正確執行。任何人都不應該能夠產生虛假的選票。

孫宇晨:TRON DAO Venture充值TUSD進入交易所,以提高流動性掛單與交易量:5月1日消息,波場TRON創始人孫宇晨發推表示,作為TUSD的合作做市商,TRON DAO Venture充值進入交易所的主要目的是為了搬平各大TUSD的價差,提高流動性掛單與交易量,目的不是參加相關交易所內的活動。

此前報道,孫宇晨今日分10筆交易累計向幣安共轉入4.05億枚TUSD。[2023/5/1 14:37:10]

二、系統總覽

a.角色

在MACI工作流程中,有兩種不同的角色:用戶和一個受信任的協調者。用戶通過MACI智能合約在區塊鏈上投票,協調者統計票數并發布最終結果。

協調者必須使用zk-SNARKs來證明他們的最終統計結果是有效的,而不公布每個人的投票。因此,即使協調者是腐敗的,他們也無法改變用戶的投票或自己增加額外的投票。腐敗的協調者可以通過從不公布結果來阻止投票,但他們不能公布虛假的結果。

在將他們的投票發送到區塊鏈上之前,用戶使用一個只有用戶和協調者才可以知道的共享密鑰對他們的投票進行加密。這個密鑰方案的設計是為了讓每個單獨的用戶與協調者共享一個不同的密鑰。這可以防止任何賄賂者簡單地讀取交易數據,以便查看用戶投票給哪個選項。加密后的投票將被認為是一個"消息",用戶將這個消息發送到MACI智能合約上,并存儲在鏈上。

這種加密原理的一個非常簡化的說明如下所示:

b.選票覆蓋和公鑰轉換

在用戶投票之前,他們必須通過向MACI智能合約發送他們希望用于投票的公鑰來進行注冊。這個公鑰在投票時充當他們的身份。他們可以從任何地址投票,但他們的信息必須包含該公鑰的簽名。在注冊后進行實際投票時,用戶將把一些變量,包括公鑰、他們的投票選項、他們的投票金額和其他一些變量捆綁到一個所謂的"命令"中。然后,用戶用他們最初用于注冊的公鑰簽署該命令。之后,用戶將簽名和命令一起加密,這樣它就被認為是一個消息。關于說明如何構造更復雜消息的描述如下:

Huobi與波場DAO承諾永久1:1剛性承兌所有FTX平臺內波場系代幣:據官方消息,Huobi和波場DAO聯合發布公告,Huobi和波場DAO決定永久1:1剛性承兌所有FTX平臺內波場系代幣(TRX、BTT、JST、SUN、HT),將會根據用戶填寫的表單為根據,與FTX平臺協調對賬關于TRX、BTT、JST、SUN、HT代幣的提現事宜。

公告表示,本決定是行業自救的一次嘗試,支持本次幣安對于FTX交易所的盡調、投資,未來的可能性收購。[2022/11/9 12:36:49]

只要用戶使用之前的公鑰簽署他們的命令,就能夠推翻他們之前的投票。如果該命令被用戶以前的公鑰正確簽署,那么該信息就被認為是有效的,協調者將把這算作正確的投票。因此,當用戶在投票中提供的公鑰與他們之前的公鑰不同時,他們可以提交一個由這個新公鑰簽名的新投票,以推翻他們之前的投票。如果該簽名不是來自以前的公鑰,該信息將被標記為無效,不計入統計。因此,公鑰可以被認為是用戶的投票用戶名,而簽名就是投票密碼。如果他們提供了正確的簽名,他們就可以提交投票或更改他們的公鑰,或兩者兼而有之。

這個功能,我稱之為公鑰切換,旨在對抗賄賂攻擊,用戶只需向賄賂者展示他們的信息,然后解密,讓賄賂者看到用戶的投票方式。公鑰轉換允許用戶改變他們的公鑰,并創建有利于賄賂者的無效信息。賄賂者沒有辦法知道用戶在發送顯示給賄賂者的投票之前是否切換了他們的公鑰。

舉個例子

Bob用公鑰1注冊

Bob創建了一個命令,其中包含--對選項A的投票和公鑰2

Bob用公鑰1,也就是他用來注冊的密鑰,簽署這個命令

Bob把這個命令加密成一個消息,并把它提交給MACI智能合約

協調者解密這個消息,并檢查以確保該命令是由Bob之前的密鑰--公鑰1簽署的。這個消息是有效的。

Flipside Crypto任命DAO總經理,以發展公司DAO戰略:8月23日消息,區塊鏈分析公司Flipside Crypto聘請上市媒體集團Meredith Corporation首席戰略官Daphne Kwon為DAO總經理,Daphne Kwon將推動發展公司的DAO戰略。

今年4月份,Flipside Crypto以3.5億美元估值完成由Republic Capital領投的5000萬美元融資。[2022/8/23 12:43:45]

協調者記錄Bob對選項A的投票,并將其公鑰更新為公鑰2

Bob已經成功地投票給了選項A,為了推翻這個投票,必須發送一個帶有公鑰2簽名的新投票。在這一點上,一個賄賂者現在試圖讓Bob投票給選項B。

Bob創建一個命令,其中包含--對選項B的投票和公鑰1

Bob用公鑰1簽署這個命令,對信息進行加密,并將其提交給MACI智能合約

Bob向賄賂者展示解密后的信息,作為他對選項B投票的證明

協調者解密了Bob的消息,看到簽名與公鑰2--Bob之前的消息中添加的密鑰不一致。因此,這條信息是無效的,這張票不會被計入最后的統計。

賄賂者沒有辦法知道投票是有效還是無效的,因此沒有動力向其他用戶提供賄賂

為了更好地了解MACI是如何工作的,最重要是要知道zk-SNARKs如何能夠證明協調者解密了每個消息并正確地統計了投票。下一節對zk-SNARKs做了一個快速的、過于簡化的概述。

c.zk-SNARKs

從本質上講,zk-SNARKs允許用戶證明他們知道一個特定數學方程的答案,而不透露這個答案是什么。以下面這個方程為例。

XY=15

DeFi資管協議BlackHoleDAO協議Token自上線以來漲幅接近500%:4月4日消息,據DEXScreener行情數據顯示,BlackHole DAO協議TokenBHO突破0.0000004美元,現報價0.000000401,自3月22日上線以來,漲幅接近500%。BlackHoleDAO是基于DAO社區治理的去中心化資產管理協議。

其中VCPool協議通過不斷添加主流Token、NFT、流動性LP等不同有價值資產憑證來支撐BHO價值,而Donation Pool協議是針對機構、社區、普通投資者等不同群體,施行DAO治理的發展型協議。[2022/4/4 14:03:08]

我可以證明我知道兩個滿足方程的數值,即X和Y,而不需要透露這兩個數值是什么。當我為我的答案創建一個zk-SNARK時,任何人都可以使用SNARK并根據上述方程進行驗證,以證明我確實知道該方程的一個解決方案。用戶無法使用SNARK來找出我對X和Y的答案。

對于MACI來說,這個方程式要復雜得多,但可以總結為以下幾個方程式:

encrypt(command1)=message1

encrypt(command2)=message2

encrypt(command3)=message3

Command1fromuser1command2fromuser2command3fromuser3…=totaltallyresult

在這里,每個人都能看到區塊鏈上的消息和總的財務結果。只有協調者通過解密消息知道各個命令/投票是什么。所以,協調者使用zk-SNARK來證明他們知道所有的投票:

對區塊鏈上的信息進行加密

對統計結果進行求和

然后,用戶可以使用SNARK來證明計票結果是正確的,但不能用它來證明任何個人的投票選擇。

三、工作流程

一般的工作流程可以分為4個不同的階段:

注冊

發布信息

處理信息

統計結果

這些階段利用了3個主要的智能合約--MACI、Poll和PollProcessorAndTallyer。這些合約可以在MACIgithub頁面上找到。MACI合約負責通過記錄每個用戶的初始公鑰來跟蹤所有用戶的注冊情況。當投票要進行時,用戶可以通過MACI.deployPoll()部署一個Poll智能合約。

最后,PollProcessorAndTallyer合約被協調者用來在鏈上證明他們正確地統計了每張投票。這個過程將在下面的處理信息和統計結果部分詳細解釋。

a.注冊

MACI的注冊過程是通過MACI.sol智能合約處理的。用戶在調用MACI.signUp()時需要發送三條信息。

公鑰

注冊守衛數據

初始語音信用代理數據

公鑰是上述章節中提到的原始公鑰,用戶需要用它來投票。正如前面幾節所解釋的,一旦投票開始,他們可以在以后改變這個公鑰。用戶用于注冊的公鑰在每次投票中都是共享的。

MACI允許合同創建者/所有者設置一個"注冊守衛"。它是指另一個智能合約的地址,它決定了簽到的規則。因此,當一個用戶調用MACI.signUp()時,該函數將調用注冊守衛數據,以檢查該用戶是否有效簽約。

MACI還允許合同創建者/所有者設置一個"initialVoiceCreditProxy"。這代表了決定一個給定用戶獲得多少票數的合同。因此,當用戶調用MACI.signUp()時,該函數將調用初始語音信用代理來檢查他們可以花費多少票數。每次新的投票,用戶的語音信用余額都會被重置為這個數字。

一旦MACI檢查到用戶是有效的,并檢索到他們有多少語音點數,MACI就會將以下用戶信息存儲到SignUpMerkleTree中。

公共密鑰

語音積分

時間戳

b.發布信息

一旦到了投票時間,MACI創建者/所有者將部署一個Poll智能合約。然后,用戶將調用Poll.publishMessage()并發送以下數據:

消息

加密密鑰

如上文各節所述,協調者將需要使用加密密鑰,以得出共享密鑰。然后,協調者可以使用共享密鑰將消息解密為一個命令,其中包含投票。

一旦用戶發布了他們的消息,投票合同將把消息和加密密鑰存儲到MessageMerkleTree中。

c.處理信息

一旦特定投票完成,協調者將使用PollProcessAndTallyer合約,首先證明他們已經正確地解密了每個消息,并應用它們來正確地創建一個更新的狀態樹。這個狀態樹記錄了所有應該被計算的有效投票。因此,在處理消息時,協調者不會在狀態樹內保留那些后來被更新的消息所覆蓋的消息。例如,如果一個用戶投票給選項A,但后來又發送了一個新消息投票給選項B,協調者將只計算選項B的投票。

協調者必須分組處理消息,以便在鏈上證明不超過數據限制。然后協調者創建一個zk-SNARK,證明他們的狀態樹正確地只包含有效的消息。一旦證明準備好了,協調者調用PollProcessorAndTallyer.processMessages(),提供狀態樹的哈希值和zk-SNARK證明作為輸入參數。

PollProcessorAndTallyer合約將把證明發送給一個單獨的驗證器合約。驗證器合約是專門用來讀取MACIzk-SNARK證明并判斷它們是否有效的。因此,如果驗證者合同返回為真,那么每個人都可以在鏈上看到協調者正確處理了那批消息。協調者重復這個過程,直到所有消息都被處理。

d.統計結果

最后,一旦所有信息都被處理,協調者就會統計有效信息的票數。協調者創建一個zk-SNARK,證明狀態樹中的有效消息包含的票數之和為既定的統計結果。然后,他們調用PollProcessorAndTallyer.tallyVotes(),用正確統計結果的哈希值和zk-SNARK證明。與processMessages函數類似,tallyVotes函數將把證明發送給一個驗證器合約,以確保它是有效的。

只有當驗證者合約返回證明是有效時,tallyVotes函數才會成功。因此,一旦tallyVotes函數成功,用戶就可以相信協調者已經正確地統計了所有的有效投票。在這一步之后,任何人都可以看到最終的計數結果,并證明這些結果是發送到Poll合約的正確結果。用戶將無法看到任何個人是如何投票的,但可以相信這些投票是被正確處理和計算的。

四、結論

MACI在防止鏈上投票的共謀方面邁出了一大步。雖然它不能防止所有共謀的可能性,但它確實使之更難。MACI已經可以在DoraHacks、clr.fund中看到并使用。如,今年2月11日開始的美國區塊鏈和Web3黑客馬拉松ETHDenver,現場共有九個賽道:ColoradoJam、DAOs&Communities、Defi、Impact、Mobile-FirstFocus、NFTs、Gaming&Metaverse、Infrastructure&Scalability、太空技術和新領域;Hackathon現場參賽者通過DoraHacks開發者激勵平臺HackerLink.io提交項目,并角逐200萬美金的Grant和超過100萬美金的Bounty任務。這個過程中,現場新增了基于零知識證明的隱私二次方投票,社區可以通過DoraHacks提供的MACI最小抗共謀基礎設施進行匿名、隱私的二次方投票,并獲得SPORK獎金池資助。

DoraHacks實現了MACI的第一次中等規模的應用。具體基于MACI隱私投票排行榜可以查看:https://hackerlink.io/grant/ethdenver22/top

當讓用戶投票決定哪些項目可以得到資助。尤其是資金數額變得非常大時,用戶和組織就有很大的動力去共謀,以獲得這些資金的一部分。這就是MACI能夠真正發揮作用的地方,保護諸如DoraHacks這樣的重要投票過程的公平性。

Tags:ACIMACDAONARACITYT-mac DAOlivedaoBinaryX (old)

比特幣行情
Gate.io GMT Deposit Competition Reward Distributed Announcement_Gate.io

Gate.ioGMTDepositCompetitionhascometoasuccessfulend!Accordingtothecriteriaofthisactivity.

1900/1/1 0:00:00
2022年的匿名幣哪個最有前景?_ERO

根據市場內所有的匿名幣投資回報率來分析投資價值和前景,下面是聚鏈網小編為大家統計出來的發展比較好的5種匿名幣: 1、XMR Monero于2014年4月18日推出,原名為BitMonero.

1900/1/1 0:00:00
XT.COM關於恢復NEAR充提的公告_TPS

尊敬的XT.COM用戶:NEAR錢包升級維護已完成,XT.COM現已恢復NEAR充提業務。給您帶來的不便,請您諒解!Waves創始人發布的VVXTNLP Token套利提案已獲得通過:金色財經報.

1900/1/1 0:00:00
幣安DeFi Staking上線BUSD高收益鎖倉活動,年化高達13.33%_DEF

親愛的用戶: 幣安DeFiStaking平臺將於2022年03月24日20:00上線BUSD高收益鎖倉活動,年化高達13參與方式:先到先得收益計算週期:鎖倉成功的次日08:00開始至贖回為止.

1900/1/1 0:00:00
Gate.io Startup:Ratio Finance (RATIO) Initial Sale Result & Listing Schedule

1RatioFinance(RATIO)TokenSaleResultTheGate.ioStartupRatioFinance(RATIO)saleresultisasfollows:RATI.

1900/1/1 0:00:00
幣生有財:不斷向上試探,今日的日線收線很關鍵_END

前言:投資有風險,操作需謹慎。文章審核需要時間,會出現延遲發布情況,文章僅供參考,歡迎閱覽!本文撰寫時間:3月25日14:15 行情回顧 昨天白盤走勢依然是一個震蕩,低點在42600一線,晚間下.

1900/1/1 0:00:00
ads