EOS 的直接競爭對手是以太坊逼肯。
文章介紹的卡爾達(dá)諾(Cardano)的目標(biāo)就更加遠(yuǎn)大了耸黑,他要同時鎖定比特幣和以太坊。但大家去網(wǎng)上搜索卡爾達(dá)諾相關(guān)資料時就會發(fā)現(xiàn)基本沒有吐槽點篮幢,一致的信任與好評崎坊。到底是什么樣的項目得到大家這么高的認(rèn)可度呢? 這篇文章為大家揭開其神秘的面紗洲拇。
卡爾達(dá)諾對標(biāo)比特幣與以太坊奈揍,從本質(zhì)上來說曲尸,針對的是數(shù)字貨幣和智能合約,也就是現(xiàn)在圈子里說的很多的區(qū)塊鏈 1.0 及 2.0男翰。未來的互聯(lián)網(wǎng)是價值互聯(lián)網(wǎng)另患,在其上流通的不是信息的拷貝,而是真實價值的轉(zhuǎn)移蛾绎。比特幣的出現(xiàn)使我們能夠?qū)①Y產(chǎn)數(shù)字化以及點對點轉(zhuǎn)讓昆箕,以太坊在比特幣的基礎(chǔ)上更近一步,能夠以合同的形式進(jìn)行自動化資產(chǎn)轉(zhuǎn)移等操作租冠,可以說我們已經(jīng)在向價值網(wǎng)絡(luò)邁進(jìn)了鹏倘。但正如同計算機(jī)剛有了 UI,新奇但是簡陋顽爹。比特幣和以太坊在面臨大規(guī)模使用的時候纤泵,就開始歇菜擺爛了,規(guī)木翟粒化程度很低捏题。而且基于 PoW 共識算法的平臺也會經(jīng)常因為升級、意見不同而產(chǎn)生分叉肉渴,破壞社區(qū)團(tuán)結(jié)公荧。
這些都是比特幣和以太坊面臨的主要問題,卡爾達(dá)諾(Cardano)就是為解決諸如區(qū)塊鏈規(guī)耐妫化循狰、可持續(xù)發(fā)展等問題而出現(xiàn)的區(qū)塊鏈 3.0 解決方案∪祝卡爾達(dá)諾(Cardano)的研發(fā)流程非常嚴(yán)謹(jǐn)晤揣,它沒有如其他區(qū)塊鏈平臺使用白皮書定義技術(shù)路線,而是由一群科學(xué)家們帶頭發(fā)起朱灿,先有論文之后再同行審閱昧识,在數(shù)理邏輯層次上趨近完美,之后由 IOHK 的工程師們編寫代碼盗扒,而且為了避免程序 Bug 引起的程序崩潰或者區(qū)塊鏈分叉跪楞,軟件開發(fā)人員使用函數(shù)式編程語言 Haskell 構(gòu)建平臺,可見團(tuán)隊對項目的用心程度侣灶。
卡爾達(dá)諾團(tuán)隊
現(xiàn)階段甸祭,主要有三個組織支持卡爾達(dá)諾的發(fā)展,卡爾達(dá)諾基金會褥影、Emurgo 以及 IOHK池户。基金會的主要工作是規(guī)范,保護(hù)和推廣卡爾達(dá)諾協(xié)議校焦,也就是制定生態(tài)法規(guī)和標(biāo)準(zhǔn)以及社區(qū)建設(shè)等赊抖。Emurgo 公司的主要工作是孵化基于卡爾達(dá)諾生態(tài)的初創(chuàng)企業(yè)以及協(xié)助商業(yè)企業(yè)接入卡爾達(dá)諾生態(tài)圈。最后的 IOHK 是由前以太坊核心開發(fā)人員 Charles Hoskinson 成立的區(qū)塊鏈技術(shù)公司寨典,主要負(fù)責(zé)卡爾達(dá)諾平臺的搭建氛雪。
卡爾達(dá)諾技術(shù)
為了更精準(zhǔn)的對標(biāo)比特幣和以太坊,卡爾達(dá)諾將項目進(jìn)行拆分耸成,主要分成了結(jié)算層(數(shù)字貨幣)和計算層(智能合約)报亩。卡爾達(dá)諾結(jié)算層(Cardano SL)是由 IOHK 聯(lián)合愛丁堡大學(xué)井氢,雅典大學(xué)和康涅狄格大學(xué)共同設(shè)計開發(fā)的一種加密貨幣弦追,代號 ADA。而卡爾達(dá)諾計算層(Cardano CL)還在研發(fā)中花竞,因此這里我們著重介紹結(jié)算層的相關(guān)知識劲件。
卡爾達(dá)諾結(jié)算層(ADA)
卡爾達(dá)諾結(jié)算層對飚的是比特幣,雖同屬于數(shù)字加密貨幣左胞,但是二者之間有很多不同之處。最重要的區(qū)別就是 BTC 是基于工作量證明(PoW)的數(shù)字貨幣举户,而 ADA 使用權(quán)益證明(PoS)烤宙。BTC 采用的 PoW 共識以及競爭出塊機(jī)制使得能源消耗越來越多,礦工挖礦難度越來越大俭嘁,這也是為什么最近大家熱衷于研究 BFT 類以及 PoS 類共識算法的原因躺枕。
ADA 采用的 PoS 共識算法被稱為烏洛波洛斯(Ouroboros),是目前為止唯一一個基于科學(xué)證明的安全的區(qū)塊鏈權(quán)益證明算法供填,它不需要浪費電力資源拐云,而是隨機(jī)選取任意節(jié)點作為區(qū)塊生產(chǎn)者,被選中的概率跟該節(jié)點權(quán)益成正比近她。在 ADA 中叉瘩,所謂權(quán)益是指節(jié)點持幣的相對價值,可簡單的認(rèn)為是節(jié)點持幣價值 / 全網(wǎng)總價值粘捎。如果某個節(jié)點的權(quán)益>0薇缅,則被稱為是權(quán)益所有人,而如果被選作為區(qū)塊生產(chǎn)者攒磨,該節(jié)點也被稱為 SLOT 領(lǐng)導(dǎo)者泳桦,也就相當(dāng)于比特幣的礦工。
?烏洛波洛斯(Ouroboros)協(xié)議
烏洛波洛斯協(xié)議將時間分片娩缰,稱為 epochs灸撰。每個 epoch 又劃分為多個 slot,在一個 slot 時間段(20 秒)內(nèi),有且只有一個領(lǐng)導(dǎo)者浮毯,由他負(fù)責(zé)產(chǎn)生一個區(qū)塊完疫。如果領(lǐng)導(dǎo)者在他的 slot 期間因為一些原因未能產(chǎn)生區(qū)塊,那么他就浪費了這次機(jī)會亲轨,除非再次被選做領(lǐng)導(dǎo)者趋惨。也就是說可以有一個或多個 slot 是空的(不產(chǎn)生區(qū)塊),但是在一個 epoch 期間惦蚊,必須由大部分的 slot(50%+1)都有區(qū)塊產(chǎn)生器虾,也就是需要大部分的節(jié)點都是誠實的。
那么 slot 領(lǐng)導(dǎo)者是怎么被選出來的呢蹦锋?基本條件是權(quán)益所有人兆沙,但并不是所有的權(quán)益所有人都能被選舉,有準(zhǔn)入門檻莉掂,比如節(jié)點權(quán)益占比全網(wǎng)權(quán)益的 2%葛圃。如果按 2% 的準(zhǔn)入門檻,那么整個 ADA 網(wǎng)絡(luò)中憎妙,能夠成為候選人的節(jié)點不會超過 50 個库正。隨著權(quán)益分散,候選人會越來越少厘唾,權(quán)利會更加集中褥符,而且權(quán)益所有人擁有的權(quán)益越多,它被選舉為 slot 領(lǐng)導(dǎo)者的可能性也就越大抚垃,所以也可以說 PoS 是富人的游戲喷楣,但是 ADA 中又有一個權(quán)益委派的功能,簡單的說可以將多個賬戶的權(quán)益集中起來使之成為候選人鹤树,每個賬戶可以按照比例獲得分紅铣焊。
在確立了候選人之后,如何選舉出在下一個 epoch 階段的 slot 領(lǐng)導(dǎo)者呢罕伯?選舉的根本是隨機(jī)性曲伊,在 ADA 中,采用多方計算(multiparty computation)方法來實現(xiàn)選舉的隨機(jī)性追他,每個候選人都獨立的產(chǎn)生自己的隨機(jī)結(jié)果熊昌,但經(jīng)過多方協(xié)調(diào)后,他們最終得到相同的隨機(jī)種子湿酸。在對應(yīng)的 epoch 開始后婿屹,所有的候選人節(jié)點根據(jù)“追隨中本聰(follow-the-satoshi)”算法,輸入隨機(jī)種子和 slot 的索引推溃,就可以知道當(dāng)前對應(yīng) slot 的領(lǐng)導(dǎo)者了昂利。如果是節(jié)點自己,那么就將自己收到的交易打包成塊,跟比特幣類似蜂奸;而如果當(dāng)前 slot 的領(lǐng)導(dǎo)者不是自己犁苏,那就等待著區(qū)塊廣播,如果超過 slot 時間后還未收到區(qū)塊扩所,則認(rèn)為該區(qū)塊跳過围详。以上就是 ADA 的出塊流程,這里描述的很淺顯祖屏,感興趣的朋友可以閱讀參考列表中的資料助赞,深入理解其精髓。
?賬戶模型
因為結(jié)算層對標(biāo)的是比特幣袁勺,相對來說是比較單純的數(shù)字貨幣(所謂單純是指未附加智能合約之類的設(shè)計)雹食,所以很多設(shè)計沿用了比特幣的做法,比如賬戶模型就采用了 UTXO 模型期丰。所謂 UTXO群叶,就是指未花費的交易輸出,每一筆交易都應(yīng)該有 N 個交易輸入钝荡,同時產(chǎn)生 M 個交易輸出(N 與 M 可以不等)街立。其中交易輸入是前序任意交易的未花費的交易輸出,如果當(dāng)前交易成交埠通,該前序交易的輸出也就變成了成交的交易輸出赎离,也就失去了成為交易輸入的資格。因此在網(wǎng)絡(luò)中的每個 slot 領(lǐng)導(dǎo)者不僅僅接收交易植阴,還會驗證交易輸入的合法性蟹瘾。為了驗證交易圾浅,每個節(jié)點都必須保持對未花費交易輸出的跟蹤掠手,這樣就可以驗證當(dāng)前交易中的輸入是否還未被花費,如果所有的交易輸入都是未花費的狸捕,那么該交易就被證明是合法的喷鸽,會被當(dāng)前領(lǐng)導(dǎo)者接收,打包成塊灸拍。UTXO 模型能夠追蹤數(shù)字貨幣的流向: 未花費的交易輸入告知貨幣是從哪里來的做祝,未花費的交易輸出告知貨幣往哪里去。
?網(wǎng)絡(luò)架構(gòu)
典型的區(qū)塊鏈中的節(jié)點間是對等的鸡岗,隨著數(shù)據(jù)量的增多混槐,才漸漸出現(xiàn)了全節(jié)點輕節(jié)點的區(qū)別。而 ADA 在網(wǎng)絡(luò)架構(gòu)層次上就對節(jié)點分了層轩性,現(xiàn)階段声登,主要有以下三組節(jié)點:
核心節(jié)點,是整個網(wǎng)絡(luò)的重中之重,所有的權(quán)益都集中在核心節(jié)點悯嗓,只有核心節(jié)點才可以是權(quán)益所有人件舵。也可以說這么說,只有核心節(jié)點是區(qū)塊鏈節(jié)點脯厨,其余兩種節(jié)點只是輔助節(jié)點铅祸。而且為了加強核心節(jié)點的安全性,完全可以將核心節(jié)點與公網(wǎng)隔離合武,只通過中繼節(jié)點與外界通信临梗;
中繼節(jié)點,是公網(wǎng)與核心節(jié)點的通信代理眯杏,由于中繼節(jié)點是不隔離的夜焦,所以他可能被攻擊。但是中繼節(jié)點被設(shè)計成無狀態(tài)的岂贩,因此可以使用負(fù)載均衡分散流量茫经。中繼節(jié)點即便被攻擊,對核心節(jié)點的影響幾乎為零萎津;
邊緣節(jié)點卸伞,可簡單的認(rèn)為是與區(qū)塊鏈交互的客戶端,主要負(fù)責(zé)發(fā)起交易锉屈,而核心節(jié)點和中繼節(jié)點沒有權(quán)利創(chuàng)建交易荤傲。從名字就可以看出來,邊緣節(jié)點是沒有機(jī)會直接與核心節(jié)點交流的颈渊,必須通過中繼節(jié)點轉(zhuǎn)接遂黍。
?交易確認(rèn)
在 ADA 中,領(lǐng)導(dǎo)者出塊因為有區(qū)塊擴(kuò)散的過程俊嗽,因此不是一個確定性的共識算法雾家,在某個 slot 段內(nèi),其領(lǐng)導(dǎo)者因為網(wǎng)絡(luò)或故意為之绍豁,并不一其前置區(qū)塊作為其區(qū)塊的 parent芯咧,因此產(chǎn)生了分叉。官方給出了一個交易安全確認(rèn)的等級表竹揍,攻擊者的比例越高敬飒,需要確認(rèn)的區(qū)塊數(shù)越多;確認(rèn)水平越高芬位,相對應(yīng)的需要的區(qū)塊數(shù)也越多无拗。
卡爾達(dá)諾與 EOS
卡爾達(dá)諾與 EOS 都被認(rèn)為是區(qū)塊鏈 3.0 的代表,經(jīng)常被放在一起比較昧碉。而且不僅是媒體英染、信仰者阴孟,EOS 的核心開發(fā)者 BM 也公開發(fā)表文章數(shù)落卡爾達(dá)諾的不足,卡爾達(dá)諾官方就此也做了一個回應(yīng)税迷,這里就他們爭論的關(guān)鍵點做個總結(jié):
DPoS
我們都知道永丝,卡爾達(dá)諾和 EOS 都使用了 DPoS 作為其共識算法,但是 D 的含義卻是不同箭养。在 EOS 中慕嚷,D 指的是 Delegated,也就是委托毕泌;而卡爾達(dá)諾中的 D 指的是 Dynamic喝检,意思是動態(tài)。EOS 通過投票委托見證人代表自己生產(chǎn)區(qū)塊撼泛,而卡爾達(dá)諾是通過動態(tài)隨機(jī)的選取權(quán)益候選人作為區(qū)塊的生產(chǎn)者挠说。
出塊時間
BM 認(rèn)為卡爾達(dá)諾 20 秒的出塊時間太長,根本不能滿足高性能的需要愿题,而與之對應(yīng)的 EOS 只需要 0.5 秒即可(白皮書中是 3 秒损俭,之后有所變更,在節(jié)點出塊的 3 秒鐘時間內(nèi)潘酗,連續(xù)出 6 塊杆兵,因此單個區(qū)塊是 0.5 秒)。而卡爾達(dá)諾團(tuán)隊認(rèn)為仔夺,出塊時間間隔應(yīng)該與完成信息交換的時間基本一致琐脏,而且 20 秒是一個相對保守的估值「淄茫考慮到節(jié)點的真實地理位置日裙,比這個時間更短的全球化區(qū)塊擴(kuò)散在現(xiàn)有的網(wǎng)絡(luò)環(huán)境下是不太可能的。他們認(rèn)為 EOS 所謂的高性能惰蜜,要么是錯誤的昂拂,要么只是低去中心化的解決方案。
在我看來蝎抽,EOS 的高性能現(xiàn)在還是未知數(shù)政钟,可能是噱頭也可能是殺手锏路克,而且卡爾達(dá)諾提出的網(wǎng)絡(luò)傳輸問題也是不能忽視的樟结,EOS 確實在這方面有所夸大。另一方面精算,卡爾達(dá)諾說 EOS 是低去中心化瓢宦,這點難以認(rèn)同,因為按照卡爾達(dá)諾的設(shè)計灰羽,只有占全網(wǎng) 2% 權(quán)益以上的節(jié)點才可以作為 slot 領(lǐng)導(dǎo)者驮履,正如上文所提到的鱼辙,最多只有 50 個(但永遠(yuǎn)不可能有 50 個)節(jié)點作為候選者,實際可能更少玫镐,而且節(jié)點權(quán)益越高倒戏,成為領(lǐng)導(dǎo)者的概率越高,節(jié)點間的權(quán)利是不對等的恐似,而 EOS 在同一選舉周期里杜跷,只有 21 個區(qū)塊生產(chǎn)者,且權(quán)利對等矫夷。我認(rèn)為是互有利弊葛闷,孰優(yōu)孰劣只有等實際運行后才能比較。
激勵機(jī)制
ADA 的激勵機(jī)制跟現(xiàn)有的大多數(shù)公有鏈類似双藕,“礦工”收取交易手續(xù)費淑趾。與比特幣不同,交易手續(xù)費是 ADA 礦工的唯一收入來源忧陪。而且交易手續(xù)費不僅是給礦工的激勵扣泊,也是一種防止 DDoS 攻擊的手段,當(dāng)攻擊者試圖用大量偽造交易沖擊網(wǎng)絡(luò)時嘶摊,必須付出足夠多的手續(xù)費旷赖。而 EOS 的激勵機(jī)制則完全不同,EOS 每年增發(fā) 5% 作為“礦工”的獎勵更卒,因為“礦工”的權(quán)利是一致的等孵,所以獎勵應(yīng)該是與其被選中的次數(shù)正相關(guān)。
二者都明確一件事蹂空,那就是“礦工”是需要被激勵的俯萌,只是手段不一樣,ADA 雁過拔毛上枕,EOS 無中生有咐熙。如果以人民幣作為參考系,假設(shè) ADA 和 EOS 的都是升值的辨萍,那么使用 ADA 的成本肯定會逐漸增加棋恼,且?guī)艤p少;而 EOS 如果整個生態(tài)價值的增長每年超過 5%锈玉,扣除增發(fā)爪飘,用戶手中的幣不變,價值卻依然增長了拉背,當(dāng)然一切的前提是生態(tài)發(fā)展师崎。
另一方面,ADA 聲稱手續(xù)費可以防止 DDoS 攻擊椅棺,不可否認(rèn)這是一種方法犁罩,但我認(rèn)為 EOS 的按持幣比例分享網(wǎng)絡(luò)資源是一種更好的選擇齐蔽,它讓資源的競爭變成了一種市場行為而不是強制的規(guī)則。如果 DAPP 開發(fā)者想要獲得更多的資源床估,那么他必須從二級市場囤積更多的 EOS含滴,因此勢必會抬高幣價,但是囤積的 EOS 并不會被大量消耗丐巫,因為交易都是免費的蛙吏。當(dāng) DAPP 開發(fā)者放棄當(dāng)前業(yè)務(wù)時,可以將囤積的 EOS 再次流入二級市場鞋吉,這是一個良好的生態(tài)循環(huán)鸦做。
尾聲
BM 在他的文章中這么說:“卡爾達(dá)諾是一個重達(dá) 400 磅的防彈背心,即便能防彈谓着,又有什么用呢泼诱?”,言外之意就是說即便卡爾達(dá)諾的設(shè)計是無懈可擊的赊锚,但是在實踐面前治筒,太臃腫的設(shè)計不見得是好用的∠掀眩卡爾達(dá)諾是一次典型的由學(xué)術(shù)派發(fā)起的技術(shù)革命耸袜,項目都是先有論文,再“雙盲(匿名提交牲平、匿名評審)”評審堤框,最后才有技術(shù)實現(xiàn),與 EOS 的實踐派形成鮮明對比纵柿。未來到底如何蜈抓,我也不敢妄自定論,但可以確信的是昂儒,這兩個項目一定會推進(jìn)區(qū)塊鏈技術(shù)的落地沟使。
參考列表:
《Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol》 2017
《Cardano Settlement Layer Documentation》 2017
《Cardano(ADA)的共識算法 Ouroboros》2018
《區(qū)塊鏈中的隨機(jī)數(shù)》2018
《用密碼學(xué)玩暗軍棋 -- 閑聊多方計算》 2017
《Peer Review of Cardano's Ouroboros》 2018
《On the Ouroboros Design: How rigour and engineering are essential for critical infrastructure》2018