iT邦幫忙

2025 iThome 鐵人賽

DAY 13
1

「為什麼以太坊要突然在 2020 年轉成押金制呢?」特務 K 問。

「這並不是突然轉換的,早在以太坊主網上線前的 2014 年,就已經 考慮 押金制了」小雨說「探討這段歷史也是蠻有趣的技術決策討論。」

1998 年左右,密碼龐克的人正在思考一種不被銀行家控制的貨幣。但如果帳本總是得交由某個人或單位保管,終不免這個人最後腐敗。戴維提倡 [^digicash] 使用點對點網路去設計這套貨幣系統。但那只是概念而已,最後中本聰完成了能夠使用的系統,關鍵是加入了工作量證明。

在點對點網路中,帳本是每個節點都會複製,或備份一份。但寫帳的權力必須被分散。

「如果我可以獨佔這個寫帳權的話,我能夠河蟹某個我不喜歡的人」特務 K 思考「或甚至河蟹所有人,這樣就等於系統被癱瘓掉了」

分散到人頭

理想上,寫帳的權力希望盡量分配到全世界不同的個人身上。但要達成這件事情有點難。

「為什麼有點難呢?」特務 K 問

「剛好有人 [^compressed] 嘗試了這件事,剛好可以示範要分散給個人有什麼挑戰」小雨說。

在數位的世界裡,要辨識出人和機器是有點困難的。機器總是會極力想要模仿人。

要能夠區分出人和機器,就是對他們考試,並祈禱有血有肉有靈魂的肉體能考贏沒血沒淚沒靈魂的磚塊。

2019 上線的 Idena 專案,設計出了一系列的考試,應試者要排序四格漫畫。要能正確答對,需要能辨認出漫畫裡的敘事細節。

ChatGPT 還要再三年才會出現,所以那個考試還是有些鑒別度。

出塊的節點需要不時參加考試,證明自己是人類,取得出塊機會,並領取區塊獎勵。

結局:俄羅斯的人頭池,用很便宜的價格讓一堆埃及小朋友參加考試,大多的利潤歸人頭池的創建者。出塊權力實質集中於少數人。

「聽起來即使有完美的方式可以辨別人和機器,因為貧富和資訊的差距,有錢人可以用很低成本取得人頭數」特務 K 說。

「很多人想到貧富差距都是想著國內的,但國際間的其實更巨大」小雨說。

「因此只能退而求其次,也許我們可以選擇一些資產,這些資產足夠分散在全世界不同人身上,也能用一些數位的方法證明其持有」小雨說。「算力制就是這種思路。」

分散到硬體

考試考人行不通,可以考機器。

工作量證明實現了算力制,也就是把寫帳權力分散給算力的持有者,也就是一般電腦的持有者。

使用者可以用 CPU,努力運算產出符合條件的雜湊值。其他節點看到這個雜湊值可以很快檢驗,並決定是否收下區塊。符合條件的雜湊值是一種 CPU 曾經努力工作出來的產物,故名曰工作量證明(Proof of Work)。

2009 年比特幣問世的時候,的確早期還有人是使用 CPU 取得產出區塊機會。但後來能夠 客製化晶片 ASIC 出現,能夠更有效率產出雜湊值。產出區塊已經變成高度專業化,需要擁有大量電力和硬體的人才有辦法做的事。

「因為專業化,產出區塊的權力集中到少數人身上」特務 K 說。

「對,但那不是唯一的問題」小雨說。

第一顯而易見的是消耗電力造成的環境污染,只為了維護一個帳本,需要消耗一整個都市級別的電力,本身說不是很過去。

第二是安全性的問題。算力制假設系統中,好人掌握半數的算力以上的算力。如果壞人掌握半數以上,他們可以產出一條分岔鏈並能追贏其他人支持的鏈。這種作法可以發動以下的攻擊:

  • 雙花攻擊(Double Spending):發了一筆交易(買某種實體的東西),事後產出另外一條分岔鏈,不承認這筆帳。一錢兩花。
  • 河蟹(Censorship):可以藉由贏得分岔去排除想河蟹的交易。

廣義的來說,算力制只是硬體制的其中一種。算力制其實是分散權力到可以「算」的硬體,但也能設計出針對記憶體或硬碟這些「存」的硬體,只要能證明有用到儲存空間即可。 [^space]

所有分散機制都會有這種多數問題,但硬體制最大的問題是系統 沒有從災難恢復的空間 。掌握多數的壞人可以一而再再而三破壞系統,而且不會付出代價。

分散到虛擬資產

算力制本身,對持有硬體的礦工來說,是礦工花錢買硬體,硬體工作取得出塊機會及區塊獎勵,最後變成利潤。但對於一個自帶資產紀錄系統的電腦,為什麼不能礦工直接把資產放在鏈上,然後依然產出區塊,依然取得區塊獎勵作為利潤?

如果持有硬體的目的是為了把寫帳權力分散給持有資產的人,直接持有鏈上的資產是更合理的吧?

一個顯而易見的好處是:不再有消耗電力造成的污染。

以太坊的設計者看到了另外一種:儲存在鏈上的資產,只是帳本裡的數字,可以被歸零。現實中的礦機你拿他沒辦法,但放在鏈上的資產,就像是某種 可以被燒掉的礦機

可以消滅鏈上資產,代表可以實現懲罰!在面臨壞人持有半數資產時,有辦法消滅壞人的半數,並讓系統復原到好人過半的狀況。

「但 ... 」特務 K 敏感的察覺事情沒那麼簡單。

「在以太坊出現之前那個時期,人們普遍認為能用的押金制是做不出來的。有些天然的難度。」小雨說。

和證明曾經使用過算力不同,人們講的權益證明(Proof of Stake):要證明持有資產只是裡面最簡單的步驟,只要在區塊裡附上出塊者的數位簽章即可。

真正天然的難度是 無本行為(Nothing at Stake) 問題。

在算力制裡面,產出一個區塊,必須把整個硬體近 10 分鐘的算力用在該區塊上面,那段時間沒辦法再產出其他區塊了;但押金制裡面,驗證者附上一個簽章,一秒鐘以下就能產出區塊。他可以在很短的時間產出大量區塊。

不像算力制一樣,在押金制產出區塊不需成本。


以太坊的設計者先選擇了一種修改過的算力制作為暫時方案,在 2015 年先讓以太坊上線了。這種算力制會需要用到大量的記憶體,對一般家用電腦來說是很容易產出工作量證明,但對比特幣既有的客製化礦機很難。

上線後的以太坊,有內建的「冰河時期」,系統要求的算力難度會隨時間變高,讓區塊產出速度變慢,迫使人們做出協議升級的決定。希望在面對漸凍的時刻到來之時,換成押金制。

押金制需要花點時間完備。

[^digicash]: 感電出版的 數位貨幣烏托邦 有談到這段時期的歷史。
[^compressed]: https://stanford-jblp.pubpub.org/pub/compressed-to-0-proof-personhood/release/5
[^space]: https://en.wikipedia.org/wiki/Proof_of_space


上一篇
會玩數支的電腦
系列文
那個有好多好多節點的電腦調查報告13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言