最近媒體報(bào)道比較多的一個(gè)項(xiàng)目叫 Algorand 疫赎,是一幫來自 MIT 還有別的學(xué)校教授搞的,項(xiàng)目亮點(diǎn)就是它的共識(shí)算法檬姥。Peter 看了看他們的網(wǎng)站:algorand.com/ 曾我,還有官方博客的文章:https://medium.com/algorand ,發(fā)現(xiàn)他們總是拿 POW 算法當(dāng)靶子健民,于是我就很不爽抒巢,寫篇文章站在 POW 的一方辯論一下,從 Algorand 嘗試解決的比特幣的所謂的三大問題去反擊秉犹。其中我一個(gè)很核心的立論點(diǎn)就是蛉谜,Algorand 只討論技術(shù)稚晚,但是對(duì)經(jīng)濟(jì)激勵(lì),或者說市場(chǎng)博弈的思考嚴(yán)重不足型诚,而這一點(diǎn)是區(qū)塊鏈共識(shí)算法的一個(gè)根本特征客燕。
POW 受礦池控制中心化程度高
先來看 POW 被攻擊的第一個(gè)點(diǎn),就是挖礦帶來了礦機(jī)礦池俺驶,造成了算力壟斷幸逆,客觀造成了網(wǎng)絡(luò)中心化程度變高棍辕。
在為 POW 辯駁之前暮现,我們先來看看,Algorand 的核心思路楚昭。目前業(yè)內(nèi)有一個(gè)基本的共識(shí)就是要達(dá)成小范圍的共識(shí)栖袋,那么 BFT 也就是拜占庭容錯(cuò)算法,是非常好用的抚太,因?yàn)椴簧婕巴诘V塘幅,所以速度會(huì)非常快尿贫。而對(duì)于大范圍共識(shí)电媳,或者說全球的無準(zhǔn)入門檻的共識(shí),POW 是唯一一個(gè)被驗(yàn)證可行的算法庆亡,但是 POW 的確比較昂貴和低效匾乓。 Alogorand 要打破的就是這個(gè)矛盾,要做出又快又廣的共識(shí)又谋。共識(shí)要想快拼缝,基本思路就是要先選取出委員會(huì),例如 EOS 項(xiàng)目就是靠事先選舉好一個(gè)21個(gè)成員組成的委員會(huì)進(jìn)行表決的彰亥,我們可以明顯看到這種做法中心度是比較高的咧七,需要我們對(duì)這21個(gè)公司有足夠的信任,另外委員如果都是固定的任斋,不管是去進(jìn)行 DOS 攻擊還是進(jìn)行賄賂继阻,其實(shí)都是比較容易的。而 Algorand 采用的是非固定委員會(huì)制度废酷,號(hào)稱能達(dá)成真正的去中心化穴翩。具體做法的核心就是通過隨機(jī)數(shù),這就難怪項(xiàng)目名字中就有 rand 锦积,也就是“隨機(jī)”這個(gè)詞的簡(jiǎn)寫了芒帕。每次出塊前,網(wǎng)絡(luò)會(huì)隨機(jī)選舉出一個(gè)很小的委員會(huì)來丰介,沒有任何人能夠事先知道委員組成背蟆,然后在委員會(huì)內(nèi)通過拜占庭容錯(cuò)算法達(dá)成共識(shí)鉴分。
我得聲明我沒有仔細(xì)看 Algorand 的白皮書。但是當(dāng)我看到白皮書上:https://arxiv.org/pdf/1607.01341.pdf 带膀,寫著他們的算法已經(jīng)申請(qǐng)專利了志珍,而且代碼也不開源,我就知道這個(gè)項(xiàng)目不是我特別喜歡的那種垛叨,因?yàn)檫@種做法本身就是中心化極高的伦糯。但是不要緊,下面我們的討論嗽元,不會(huì)基于我的無知來進(jìn)行敛纲,而是我們對(duì) Algorand 進(jìn)行最優(yōu)的假設(shè),我們假設(shè)它真的能很快的在一個(gè)去中心化網(wǎng)絡(luò)上達(dá)成安全的隨機(jī)數(shù)剂癌,雖然這個(gè)任務(wù)其實(shí)非常非常難淤翔。同時(shí) Algorand 其實(shí)是基于 POS 的,也就是如果攻擊者持有了 Algorand 項(xiàng)目的三分之一的代幣佩谷,那么拜占庭算法可能也就失效了旁壮,但是這個(gè)我們也暫時(shí)忽略。換句話說谐檀,我們假定 Algorand 就是一個(gè)很快抡谐,按照官方的說法就是一秒,就能達(dá)成全球共識(shí)的系統(tǒng)桐猬。那么其實(shí)在這個(gè)基礎(chǔ)上麦撵,我依然不認(rèn)為 POW 就一無是處。
鋪墊有點(diǎn)長(zhǎng)了课幕,回到我們要討論的第一個(gè)點(diǎn)厦坛,那就是 Algorand 真的能避免 POW 出現(xiàn)的算力集中問題嗎?首先 Peter 認(rèn)為反礦機(jī)是一個(gè)基本不可能的任務(wù)乍惊,不管軟件的算法怎么設(shè)計(jì)杜秸,不管你是 CPU 挖礦,內(nèi)存挖礦润绎,帶寬硬盤挖礦撬碟,還是用任何狗屁東西挖礦,只要有足夠的經(jīng)濟(jì)利益莉撇,礦工總會(huì)能夠設(shè)計(jì)出專門用來挖礦的設(shè)備的呢蛤。再退一步,即使沒有礦機(jī)棍郎,只要 Algorand 是一個(gè)公開的規(guī)則其障,任何參與的機(jī)器都有平等的機(jī)會(huì)被隨機(jī)數(shù)選中而獲得代幣獎(jiǎng)勵(lì),那礦池公司就干脆多買 PC 就行了涂佃,反正花了錢就有回報(bào)励翼,具體花錢買礦機(jī)還是買 PC 蜈敢,真的有區(qū)別嗎?所以說礦池的算力壟斷我覺得一方面是不可避免的汽抚,另外一方面也沒有普通人說的那么危險(xiǎn)抓狭。51%攻擊的意思,不是說一個(gè)公司有51%的算力系統(tǒng)就不安全了造烁,而是要同時(shí)保證這個(gè)公司的人都是瘋子否过,可以不顧自己的投資,一心想干掉系統(tǒng)惭蟋。同時(shí)苗桂,大礦池雖然存在,但是整個(gè)系統(tǒng)其實(shí)還是保留了強(qiáng)有力的去中心化特點(diǎn)的敞葛,比如個(gè)別礦池癱瘓了誉察,其實(shí)不會(huì)太影響整個(gè)網(wǎng)絡(luò)的安全与涡,這只會(huì)意味著其他礦工會(huì)挖的更開心一些惹谐。
綜上,我們可以總結(jié)一下第一個(gè)點(diǎn)驼卖。首先一方面氨肌,不管用什么算法,其實(shí)只要有利益驅(qū)動(dòng)酌畜,就會(huì)有大礦池公司的產(chǎn)生怎囚,Algorand 也不能避免這個(gè)問題。其次第二個(gè)方面桥胞,只要保證礦池作惡不會(huì)獲得比不作惡更多的利益恳守,那么整個(gè)網(wǎng)絡(luò)就是安全的。而對(duì)于第二個(gè)方面贩虾,其實(shí)只有 POW 能保證催烘,POS 下是保證不了的,而 Algorand 就是基于 POS 的缎罢。
POW 交易確認(rèn)巨慢
接下來我們討論第二個(gè)點(diǎn)伊群,就是 POW 交易慢的問題。
先來說說 POW 為何會(huì)很慢策精。我在知乎的一個(gè)帖子上:https://www.zhihu.com/question/59648250 舰始,看到 maxdeath 同學(xué)的一個(gè)說法,覺得很有道理:不管是 POW 還是 POS 本質(zhì)上就是找一個(gè)隨機(jī)數(shù)咽袜。其實(shí)只要網(wǎng)絡(luò)上能保證丸卷,沒有任何人知道下一個(gè)生成區(qū)塊的人是誰,那么就能保證網(wǎng)絡(luò)是安全的询刹。但是以比特幣為例谜嫉,為何系統(tǒng)要設(shè)定10分鐘才能出一個(gè)塊呢抽莱?答案就是系統(tǒng)要等待數(shù)據(jù)能夠觸及到盡可能多的網(wǎng)絡(luò)上的節(jié)點(diǎn)。同時(shí)還是因?yàn)榫W(wǎng)絡(luò)延時(shí)骄恶,其實(shí)一個(gè)塊出來后食铐,這個(gè)礦工對(duì)于出下一個(gè)塊還是有先發(fā)優(yōu)勢(shì)的,所以要保證整個(gè)過程真正是公平隨機(jī)的僧鲁,還需要等六個(gè)確認(rèn)虐呻。很多人認(rèn)為比特幣的共識(shí)時(shí)間是十分鐘,其實(shí)不對(duì)的寞秃,真正的共識(shí)是需要一個(gè)小時(shí)才能達(dá)成斟叼。
說回 Algorand 的算法,它的1S達(dá)成共識(shí)春寿,是如何做到的呢朗涩?Algorand 文檔上說,比特幣慢是因?yàn)楸忍貛旁O(shè)置了十分鐘的猜謎時(shí)間绑改,但是要知道比特幣不是吃飽了撐的非要設(shè)置這個(gè)十分鐘的谢床,而是要等待數(shù)據(jù)的擴(kuò)散。Algorand 的隨機(jī)數(shù)產(chǎn)生是算法直接生成的厘线,這個(gè)肯定比較快识腿,但是其實(shí)問題的根本不在這里,比特幣要一個(gè)小時(shí)才能達(dá)成的真正的數(shù)據(jù)的擴(kuò)展造壮,Algorand 真的能在1秒鐘完成嗎渡讼?難道大家不都是在同一互聯(lián)網(wǎng)里運(yùn)行嗎?同時(shí)如果 Algorand 如此之快耳璧,那么真正上線后成箫,處理的數(shù)據(jù)量必然也比比特幣大很多倍,那么這樣對(duì)網(wǎng)速豈不是要求更高旨枯。
好蹬昌,因?yàn)?Peter 的事先功課做的并不扎實(shí),我們還是對(duì) Algorand 做最善意的假設(shè)召廷。我們認(rèn)定它1S內(nèi)就能完美的完成交易的確認(rèn)凳厢,但是即使這樣,難道就能滿足企業(yè)級(jí)的速度要求了嗎竞慢?明顯依然不夠先紫。所以區(qū)塊鏈項(xiàng)目要想真正的快起來,真正滿是實(shí)際項(xiàng)目的需求筹煮,答案明顯不在自身遮精。而應(yīng)該從第二層方案去考慮解決。還是以比特幣的 POW 為例,難道就沒有優(yōu)化的空間了嗎本冲?當(dāng)然有准脂,首先可以通過縮短猜謎時(shí)間來提高處理速度,實(shí)際中的例子就是萊特幣檬洞,或者可以通過增大每個(gè)區(qū)塊的容量狸膏,來提高單位時(shí)間內(nèi)的處理能力,例子就是比特幣現(xiàn)金添怔。但是為什么比特幣沒有采用這兩種方式進(jìn)行擴(kuò)容呢湾戳?這是因?yàn)椋瑥?qiáng)行提高處理速度广料,就會(huì)降低整個(gè)系統(tǒng)的安全性砾脑。而有全球共識(shí)能力的區(qū)塊鏈,應(yīng)該把自己看做是整個(gè)網(wǎng)絡(luò)的第一層艾杏,全力關(guān)注安全韧衣。而對(duì)于性能的提升,應(yīng)該放到第二層去做购桑,例如通過閃電網(wǎng)絡(luò)畅铭,或者其他的側(cè)鏈方案,這個(gè)我們就不展開了其兴。目前世界上顶瞒,通過第二層來解決處理速度這個(gè)思路基本上是個(gè)共識(shí)了夸政,很多公司和項(xiàng)目都采用了這樣的思路元旬。例如國(guó)內(nèi)的 Nervos 項(xiàng)目,它的 CTO Jan 同學(xué)守问,原來是以太坊項(xiàng)目核心開發(fā)者匀归,專門研究 POS 共識(shí)算法的,但是到了自己創(chuàng)業(yè)開發(fā) Nervos 的時(shí)候耗帕,依然選擇了 POW 作為第一層公鏈的算法穆端,全力保證安全,而把性能提升的工作放到了第二層去進(jìn)行仿便。
第二點(diǎn)体啰,關(guān)于 POW 慢的問題,我們也來總結(jié)一下嗽仪。不管用什么算法荒勇,其實(shí)真正公平的全球共識(shí)本身就會(huì)很慢,這是網(wǎng)絡(luò)速度決定的闻坚。即使優(yōu)化后沽翔,也不可能達(dá)成真實(shí)世界中需要的毫秒級(jí)的響應(yīng)速度。所以說 POW 的慢也不是錯(cuò),因?yàn)橐WC全球共識(shí)的安全仅偎,而快的問題跨蟹,應(yīng)該放到第二層去解決。
POW 耗能是浪費(fèi)
最后進(jìn)入第三點(diǎn)橘沥,這個(gè)是 Peter 自己最喜歡跟朋友討論的一個(gè)點(diǎn)窗轩,也是 Algorand 以及其他 POS 項(xiàng)目最樂于用來攻擊 POW 的一個(gè)點(diǎn): POW 的能源消耗問題。引用 Nervos 團(tuán)隊(duì)的 CEO Terry 的一句話來表明我自己的態(tài)度:我們認(rèn)為挖礦的能耗不是浪費(fèi)座咆,是有意義的品姓。
我自己有一個(gè)觀點(diǎn),只要是自由的市場(chǎng)箫措,那么生產(chǎn)成本跟價(jià)格永遠(yuǎn)會(huì)無限趨近的腹备。以目前比特幣為例,一枚比特幣的價(jià)格是6000美金左右斤蔓,那么用來挖礦的電力和硬件成本植酥,其實(shí)也差不多就是這個(gè)數(shù)。Algorand 會(huì)說這就是 POW 最大的問題啊弦牡,電力資源都用來算一些無聊的數(shù)學(xué)題了友驮。但是其實(shí)實(shí)際情況是,這個(gè)生產(chǎn)一枚加密幣的成本驾锰,跟算法沒有一毛錢關(guān)系卸留。比特幣不值錢的時(shí)候,同樣是這套算法椭豫,一個(gè)人用自己的手提電腦就能挖出很多比特幣來耻瑟。而試想當(dāng)比特幣的價(jià)格到了1000美金一枚,而挖礦成本低于這個(gè)價(jià)格赏酥,那自由的市場(chǎng)中喳整,就會(huì)涌入很多新的礦工,大家比拼算力裸扶,挖礦難度于是就會(huì)自動(dòng)調(diào)整框都,挖礦成本也就一路提升直到趨近一千美金『浅浚回到 Algorand 的情況魏保,只能有兩種可能,一種是系統(tǒng)只干活摸屠,不發(fā)幣谓罗,這樣的結(jié)果就是大家都會(huì)把自己的電腦關(guān)掉,沒有人會(huì)參與共識(shí)餐塘。另外一種可能就是算法會(huì)公平的隨機(jī)的給每一臺(tái)機(jī)器發(fā)放代幣獎(jiǎng)勵(lì)妥衣,這樣,只有還有利潤(rùn)空間,大家肯定會(huì)買更多的機(jī)器前來提高獲得代幣的概率税手,最終也會(huì)達(dá)成跟挖礦一樣的成本平衡蜂筹。所以說,只要是想在一個(gè)無準(zhǔn)入門檻的網(wǎng)絡(luò)中達(dá)成全球共識(shí)芦倒,資源的消耗就不可避免艺挪。
另外,前面說了礦池并沒有想象的那么邪惡兵扬,這里同樣的道理麻裳,耗能這個(gè)事情其實(shí)也沒有很多環(huán)保主義暴徒所宣揚(yáng)的那樣邪惡。首先說挖礦花的錢跟我們?nèi)ワ埖瓿灶D飯是一樣的器钟,都拉動(dòng)了消費(fèi)津坑。吃飯的錢,讓種菜的農(nóng)民和餐館服務(wù)員都有了收入傲霸。而挖礦花的錢疆瑰,其實(shí)很多都讓芯片生產(chǎn)商賺去了,對(duì)硬件技術(shù)進(jìn)步是有推動(dòng)作用的昙啄。然后再說電能穆役。其實(shí)礦場(chǎng)永遠(yuǎn)是建設(shè)在邊遠(yuǎn)地區(qū),什么四川啊西藏啊蒙古啊梳凛。因?yàn)檫@些地方人少耿币,但是自然資源豐富,如果礦場(chǎng)不來韧拒,那么其實(shí)每年水庫都要開閘放水淹接,把很多能源廢棄掉,也就是所謂的棄能叭莫。挖礦過程會(huì)利用起這些能源蹈集,給當(dāng)?shù)貛砹硕愂蘸途蜆I(yè)。底層的邏輯相當(dāng)于把用不了的電能的價(jià)值雇初,存儲(chǔ)到了加密貨幣中。幣圈的寶二爺提到過一個(gè)詞叫“能源貨幣”减响,我想大概就是這個(gè)意思靖诗。
好,關(guān)于比特幣被攻擊的第三點(diǎn)支示,總結(jié)起來我的觀點(diǎn)就是:只要你想通過全球共識(shí)來生產(chǎn)一種有價(jià)格的貨幣刊橘,那么消耗區(qū)塊鏈以外的能量和價(jià)值是一個(gè)必要條件。斯坦福大學(xué)教授颂鸿,華人物理學(xué)家張首晟有一個(gè)觀點(diǎn):系統(tǒng)內(nèi)的熵減促绵,必然伴隨著系統(tǒng)外的熵贈(zèng),說的就是這個(gè)意思。
總結(jié)
最后來總結(jié)一下全文败晴。Algorand 項(xiàng)目提出了一個(gè)基于隨機(jī)數(shù)共識(shí)算法浓冒,號(hào)稱可以不耗能,同時(shí)快速安全的達(dá)成全球共識(shí)尖坤。我個(gè)人覺得是不可能的稳懒,但是整個(gè)的思路還是非常能激發(fā)我們的思考的,于是伴隨著 Algorand 和 POW 兩種算法的爭(zhēng)論慢味,我們有認(rèn)真思考了 POW 中心化程度高场梆,處理速度慢以及耗能高三個(gè)問題的本質(zhì)。我個(gè)人認(rèn)為以后這三個(gè)問題肯定會(huì)隨著技術(shù)的進(jìn)步而不斷的優(yōu)化纯路,但是想要一下子徹底消失是不可能的或油,因?yàn)槿蚬沧R(shí)本身就應(yīng)該是相對(duì)比較慢并且昂貴的。