以太坊合約分析之選舉算法

選舉雖然在名義上標榜一人一票皮官,但是選舉的計票機卻是黑箱的,誰也看不到实辑。要是選舉服務里面有個漏洞或者后門捺氢,美國的歷史也就要因此改變了。

區(qū)塊鏈將算法公開到區(qū)塊上剪撬,人人可見摄乒,有沒有漏洞就可以提前被億萬民眾發(fā)現(xiàn)。選舉過程也可以使用區(qū)塊鏈合約來實現(xiàn)残黑。

我們看下面最簡單的選舉合約代碼馍佑。

該選舉合約不是簡單的一人一票,還具備人大代表機制萍摊,也就是代碼中的delegation挤茄。

普通用戶可以將投票權交給人大代表冰木,人大代表的選擇代表里對應所有用戶的一致選擇穷劈。

Voter結構代表廣大屁民。屁民的weight默認是1踊沸,表示一人一票歇终,如果被代表了,weight就變成0逼龟,對應人大代表的weight就是代表的所有屁民數(shù)量评凝,包括自己。delegate字段指向人大代表腺律,如果沒有被代表這個字段就是0奕短。

Proposal結構代表候選人宜肉。每個候選人都有一個名字和票數(shù)。

chairman是選舉主席翎碑,是選舉活動的發(fā)起人谬返,有些操作只有它可以做。正因為它的權利很大日杈,所以主席很容易被私下賄賂遣铝。同樣代表的投票權重很大,所以代表也容易私下被賄賂莉擒。

本算法做不到防止賄賂酿炸,畢竟這是物理世界的事,數(shù)字世界和物理世界如陰陽兩隔涨冀。

選舉步驟如下

主席通過Ballot()構造器初始化選舉活動填硕,傳入候選人名稱數(shù)組。因為主席也算屁民蝇裤,所以它也可以投票廷支,權重為1,跟屁民一樣栓辜,這樣似乎還挺民主的恋拍。

然后主席通過giveRightToVote()調(diào)用給屁民授權,只有被授權過的屁民才有資格投票藕甩。這是個漏洞施敢,不過不是數(shù)字世界的漏洞,而是物理世界的漏洞狭莱,它給賄賂開了個口子僵娃。

屁民可以通過delegate()方法調(diào)用將自己的投票權交給代表。因為代表還可以被代表腋妙,代表是一個級聯(lián)結構默怨,所以為了防治代表鏈循環(huán),代碼需要進行循環(huán)檢測骤素。

屁民通過vote()方法調(diào)用進行投票匙睹,這里的屁民也可以是代表。

所有人都可以通過winningProposal()和winnerName()方法查看選舉結果济竹。

這是一個最簡單的選舉合約痕檬,復雜一點得還得考慮選舉的開始和結束時間,還有選舉的不同階段和層次送浊,可以做的跟世界杯比賽一樣復雜梦谜。還可以讓投票付費,這樣就可以減少大量僵尸用戶利用一人一票等權重的漏洞給候選人刷票。

閱讀相關文章唁桩,關注微信公眾號/知乎專欄/頭條號【碼洞】

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闭树,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子朵夏,更是在濱河造成了極大的恐慌蔼啦,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仰猖,死亡現(xiàn)場離奇詭異,居然都是意外死亡奈籽,警方通過查閱死者的電腦和手機饥侵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衣屏,“玉大人躏升,你說我怎么就攤上這事±浅溃” “怎么了膨疏?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钻弄。 經(jīng)常有香客問我佃却,道長,這世上最難降的妖魔是什么窘俺? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任饲帅,我火速辦了婚禮,結果婚禮上瘤泪,老公的妹妹穿的比我還像新娘灶泵。我一直安慰自己,他們只是感情好对途,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布赦邻。 她就那樣靜靜地躺著,像睡著了一般实檀。 火紅的嫁衣襯著肌膚如雪惶洲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天劲妙,我揣著相機與錄音湃鹊,去河邊找鬼。 笑死镣奋,一個胖子當著我的面吹牛币呵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼余赢,長吁一口氣:“原來是場噩夢啊……” “哼芯义!你這毒婦竟也來了?” 一聲冷哼從身側響起妻柒,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤扛拨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后举塔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绑警,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年央渣,在試婚紗的時候發(fā)現(xiàn)自己被綠了计盒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡芽丹,死狀恐怖北启,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拔第,我是刑警寧澤咕村,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站蚊俺,受9級特大地震影響懈涛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜春叫,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一肩钠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧暂殖,春花似錦价匠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晨横,卻和暖如春洋腮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背手形。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工啥供, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人库糠。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓伙狐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贷屎,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容