以太坊作為區(qū)塊鏈的一個較為成熟的平臺,以其安全可靠和易用性被很多開發(fā)者和公司所信任世曾。以太坊整體架構(gòu)如圖所示虱歪。
以太坊最底層主要包括p2p協(xié)議,這是一種不存在中心服務(wù)器熬词、兩個節(jié)點之間直接進行網(wǎng)絡(luò)通信的協(xié)議旁钧,只有基于p2p吸重,區(qū)塊鏈才能提供去中心化的服務(wù)。共識算法是區(qū)塊鏈平臺的核心組成部分歪今,是不同節(jié)點之間達成一致性的算法和策略嚎幸,目前以太坊最重要的兩種共識算法是pow和pos。evm即以太坊虛擬機寄猩,是去中心化應(yīng)用運行的容器嫉晶,智能合約被編譯成字節(jié)碼后可以運行在evm中。LevelDB是以太坊底層的數(shù)據(jù)庫田篇,是有谷歌實現(xiàn)的非常高效的鍵值數(shù)據(jù)庫替废,目前很多基于企業(yè)級的區(qū)塊鏈平臺底層也是使用Le velDB進行存儲的。多種不同的非對稱加密泊柬、哈希算法從密碼學(xué)角度保證了在以太坊平臺上的賬戶安全和交易信息安全椎镣,并使用數(shù)字簽名和驗證簽名等機制保證了數(shù)據(jù)的不可篡改。Solidity是目前編寫智能合約的主要語言是以太坊推薦的旗艦語彬呻,也是最流行的智能合約語言之一衣陶。RPC遠(yuǎn)程過程調(diào)用是以太坊提供給外界訪問的接口,上層應(yīng)用可以用JSON-RPC的方式和以太坊進行交互闸氮,來調(diào)用合約或者發(fā)送以太幣剪况,所有的業(yè)務(wù)邏輯通過智能合約來實現(xiàn)。
## 以太坊共識機制
共識機制是多個節(jié)點之間達成一致性的 一種數(shù)學(xué)算法蒲跨。在區(qū)塊鏈中译断,共識機制的作用顯得尤為重要。由于區(qū)塊鏈中的每個節(jié)點都是相互獨立的或悲,而每一個極點都存有分布式賬本的完全備份孙咪,如何對這些賬本數(shù)據(jù)進行一致性驗證就是共識機制需要考慮的問題。換句話說巡语,共識機制就是在不同節(jié)點之間建立信任翎蹈,獲取權(quán)益的數(shù)學(xué)算法。它允許關(guān)聯(lián)機器連接起來進行工作男公,并在某些成員失效的情況下仍能正常運行荤堪。
常見的共識機制有工作量證明算法、權(quán)益證明枢赔、股份授權(quán)證明和拜占庭容錯澄阳,基于不同的應(yīng)用場景和共識機制等特性,可以通過以下緯度來拼價共識機制的優(yōu)劣踏拜。
(1)合規(guī)監(jiān)管: 是否支持超級權(quán)限節(jié)點對全網(wǎng)節(jié)點碎赢、數(shù)據(jù)進行監(jiān)管。
(2)性能效率:交易達成共識并且確認(rèn)的效率速梗。
(3)容錯性:防攻擊肮塞、防欺詐的能力襟齿。
(4)資源消耗:共識過程中的資源消耗,如CPU峦嗤、網(wǎng)絡(luò)IO蕊唐、存儲等計算資源屋摔。
下面就幾種常見的共識機制介紹如下烁设。
(1)PoW:工作量證明。依賴于機器進行數(shù)學(xué)運算來獲取記賬權(quán)钓试,資源消耗相比其他共識機制高装黑,可監(jiān)管性弱。并且每次達成共識都需要全網(wǎng)共同參與運算弓熏,性能效率相對較低恋谭,在容錯性方面,允許全網(wǎng)50%的節(jié)點出錯挽鞠,也就是51%攻擊疚颊。目前以太坊采用的就是這種PoW共識機制。
(2)PoS:權(quán)益證明信认。屬于PoW的升級版本材义。根據(jù)每個節(jié)點所占代幣的比例和時間,等比例地降低計算難度嫁赏,從而加快查找隨機數(shù)的速度其掂。PoS在一定程度上縮短了共識達成的時間,但是還是需要消耗時間潦蝇,本質(zhì)上沒有解決商業(yè)應(yīng)用的痛點款熬,在容錯性方面于pow類似。以太坊之后將會轉(zhuǎn)為pos算法攘乒。
(3)DPoS:股份授權(quán)證明機制贤牛。于PoS不同之處在于投票選舉一定數(shù)量的節(jié)點,進行代理驗證和記賬则酝。DPoS大幅縮減參與驗證和記賬的節(jié)點的數(shù)量殉簸,可以達到妙級的共識驗證,但是整個共識機制還依賴于代幣堤魁,而很多商業(yè)應(yīng)用是不需要代幣存在的喂链。
(4)Paxos:一種基于選舉領(lǐng)導(dǎo)者的共識機制。領(lǐng)導(dǎo)者節(jié)點擁有絕對權(quán)限妥泉,并允許強監(jiān)管節(jié)點參與椭微。性能高,資源消耗盲链。選舉過程中不允許有作惡節(jié)點蝇率,不具備容錯性迟杂。
(5)PBFT:拜占庭容錯。與Paxos類似本慕,也是一種采用許可投票排拷、少數(shù)服從多數(shù)來選舉領(lǐng)導(dǎo)者進行記賬的共識機制。該共識機制允許拜占庭容錯锅尘,允許強監(jiān)管節(jié)點參與监氢,具備權(quán)限分級能力,性能更高藤违,耗能更低浪腐,允許33%的節(jié)點作惡,不具備容錯性顿乒。
與以太坊有關(guān)的是PoW 和Pos算法议街。以太坊項目分為Frontier、Homestead璧榄、Metropolis和Serenity四個階段特漩。在前面三個階段,以太坊共識算法采用的是PoW,在第四個階段會轉(zhuǎn)移到PoS骨杂。
PoW共識機制已經(jīng)非常成熟涂身,但它的實現(xiàn)需要消耗大量的電力成本,PoS雖然仍處于發(fā)展階段腊脱,但在效率和成本方面有諸多優(yōu)勢访得,不再需要為了安全產(chǎn)生區(qū)塊而消耗大量電能。未來一點時間陕凹,PoS將會得到快速發(fā)展悍抑。