區(qū)塊鏈協(xié)議是什么及其如何工作的?
Genesis Hack中的協(xié)議跟蹤邀請開發(fā)人員為現(xiàn)有 區(qū)塊鏈 協(xié)議的性能和可伸縮性問題構(gòu)建解決方案,或者從頭構(gòu)建全新的協(xié)議。在本文中,我們將試圖通過兩個示例區(qū)塊鏈協(xié)議來理解什么是區(qū)塊鏈協(xié)議,從而推斷其基本特征。
什么是協(xié)議?
我們都知道,協(xié)議在計算機科學(xué)中是一組規(guī)則或程序,用來控制兩個或更多電子設(shè)備之間的數(shù)據(jù)傳輸。協(xié)議有助于確定為了使計算機交換信息,必須對信息進行結(jié)構(gòu)化,以及各方將如何發(fā)送和接收信息。
常見的互聯(lián)網(wǎng)協(xié)議有TCP/IP、HTTPS和DNS。
區(qū)塊鏈中的協(xié)議
區(qū)塊鏈?zhǔn)怯啥鄠€設(shè)備(節(jié)點)組成的網(wǎng)絡(luò),這些設(shè)備(節(jié)點)都是同等重要的,它們通過互聯(lián)網(wǎng)相互連接。從本質(zhì)上說,區(qū)塊鏈?zhǔn)且粋€分類帳,它以分布式p2p方式存儲交易并在被所有參與節(jié)點驗證后才進行記錄。
這種分布式賬本工作在預(yù)先定義的規(guī)則上,這些規(guī)則是網(wǎng)絡(luò)中所有參與節(jié)點(對等點)都同意的。這些規(guī)則包括:
- 如何管理和驗證交易,
- 定義所有參與節(jié)點相互交互機制的算法,
- (在某些情況下),應(yīng)用程序編程接口。
這些控制區(qū)塊鏈網(wǎng)絡(luò)的規(guī)則稱為協(xié)議。它本質(zhì)上是網(wǎng)絡(luò)所遵循的通用通信規(guī)則。
區(qū)塊鏈協(xié)議的必備術(shù)語
分布式分類賬: 分布式分類賬是一種數(shù)據(jù)庫類型,分布在多個對等點上,記錄一個接一個地存儲在一個連續(xù)的分類賬中。
智能合約:一組編碼腳本形式的邏輯規(guī)則,可以嵌入到區(qū)塊鏈中來管理事務(wù)。
共識算法:定義在網(wǎng)絡(luò)上達成協(xié)商一致以驗證事務(wù)的算法。
Coin和Token:每個區(qū)塊鏈協(xié)議都需要一個數(shù)字資產(chǎn)來保持網(wǎng)絡(luò)的運行。這些也被用來激勵參與網(wǎng)絡(luò)的同伴。這需要Coin和Token等數(shù)字資產(chǎn)的出現(xiàn)。在區(qū)塊鏈領(lǐng)域,這兩個術(shù)語經(jīng)?;Q使用,但兩者之間有微妙的區(qū)別。
實際上,Coin和Token是用于為區(qū)塊鏈網(wǎng)絡(luò)提供動力的數(shù)字資產(chǎn)。它們的功能或多或少也是相同的。只有在協(xié)議中定義它們的級別才能區(qū)分它們。
Coin由協(xié)議本身在最低級別定義。,Coin是區(qū)塊鏈網(wǎng)絡(luò)的最新數(shù)字資產(chǎn)。例如,比特幣協(xié)議的原生貨幣是比特幣。
Token是在更高層次上由智能合約而不是協(xié)議定義的數(shù)字資產(chǎn)。例如,以太坊協(xié)議有一個本地的以太幣。以太坊允許開發(fā)人員在其協(xié)議上構(gòu)建dApp。一個dApp的節(jié)點通信規(guī)則可能與另一個由智能和人與人定義的dApp不同。因此,Token是dApp的原生數(shù)字資產(chǎn)。
51%攻擊: 某人控制超過50%的網(wǎng)絡(luò)節(jié)點修改交易歷史和沉溺于雙倍消費的能力。
示例:區(qū)塊鏈網(wǎng)絡(luò)上的節(jié)點應(yīng)該向整個網(wǎng)絡(luò)廣播它們形成的塊。如果一個節(jié)點或一組節(jié)點開始控制網(wǎng)絡(luò)的50%以上,它就可以單獨形成塊,而不向網(wǎng)絡(luò)廣播這些塊。網(wǎng)絡(luò)仍然遵循區(qū)塊鏈的公共版本,節(jié)點可以通過先在公共區(qū)塊鏈上花錢,然后在私有區(qū)塊鏈上花錢,從而實現(xiàn)重復(fù)支出。
之后,由于他們控制了51%的網(wǎng)絡(luò),他們可以廣播他們的私有的區(qū)塊鏈,并形成更長的鏈。由于最長鏈規(guī)則是最合法的鏈,其他參與者會認(rèn)為這是正確的鏈。以前沒有包含在這個鏈中的事務(wù)(因為它是私有的)將被逆轉(zhuǎn),讓惡意節(jié)點訪問其他人的錢。
區(qū)塊鏈協(xié)議的例子
比特幣網(wǎng)絡(luò)將世界引入了區(qū)塊鏈。根據(jù)設(shè)想的不同目標(biāo)和用例,設(shè)計了不同的協(xié)議。我們將研究三種主要區(qū)塊鏈協(xié)議的關(guān)鍵特性。
比特幣協(xié)議
設(shè)計目標(biāo):允許通過分散的網(wǎng)絡(luò)加密支付交易。
- 任何人都可以加入的公開的、未經(jīng)許可的區(qū)塊鏈。
- 底層技術(shù)組件:加密哈希函數(shù)、數(shù)字簽名、p2p網(wǎng)絡(luò)、公私密鑰加密和工作證明(PoW)共識算法。
- 每個節(jié)點都可以訪問區(qū)塊鏈上的完整信息。因此,具有去中心化特性。
- 用戶可以進行不可逆的事務(wù),而不需要信任第三方。
- 本機加密貨幣--比特幣
以太坊協(xié)議
設(shè)計目標(biāo):為開發(fā)者提供一個區(qū)塊鏈平臺,讓他們可以啟動自己的區(qū)塊鏈項目和分散的應(yīng)用程序。
- 公共區(qū)塊鏈
- 底層技術(shù):密碼學(xué)哈希函數(shù)、數(shù)字簽名、p2p網(wǎng)絡(luò)、公私密鑰加密、以及工作證明共識算法。
- 每個節(jié)點都可以訪問區(qū)塊鏈上的完整信息。因此,具有去中心化的特性。
- 用戶可以執(zhí)行不可逆的事務(wù),而不需要信任第三方。
- 本機加密貨幣--以太幣。
以太坊區(qū)塊鏈提供了一個更大,更廣闊的視野,以達到區(qū)塊鏈可以服務(wù)的目標(biāo)。以太坊平臺啟動了VeChain和OmiseGo等多個加密貨幣項目。它也成為了dApp開發(fā)的平臺,并開發(fā)了Cryptokitties、Brave、PundiX等dApp。
在這個創(chuàng)新之后,多個協(xié)議與一個或另一個創(chuàng)新一起啟動。例如,區(qū)塊鏈的所有節(jié)點驗證特性使其運行緩慢,從而導(dǎo)致了可伸縮性問題。Zilliqa、EOS和Cardano是嘗試為可伸縮性問題構(gòu)建解決方案的區(qū)塊鏈的一些例子。
區(qū)塊鏈協(xié)議的另一個創(chuàng)新是不同的共識性算法模型。利用比特幣,引入了PoW算法。但是后來的發(fā)展產(chǎn)生了一些算法,如權(quán)益證明(PoS)、委托關(guān)系證明(dPoS)等。
Hyperledger是一個區(qū)塊鏈,它試圖通過一個被許可的協(xié)議來解決企業(yè)采用區(qū)塊鏈的問題,在這個協(xié)議中,只有受信任的實體才能加入網(wǎng)絡(luò)并驗證交易。
區(qū)塊鏈協(xié)議的基本特性
交易及智能合約
區(qū)塊鏈實質(zhì)上是進行記錄交易的賬簿。關(guān)于區(qū)塊鏈的交易是指根據(jù)區(qū)塊鏈的規(guī)則(智能合約)管理資產(chǎn)的交易。
共識
區(qū)塊鏈網(wǎng)絡(luò)上的所有對等點都一致同意驗證事務(wù)。這種共識性是由輸入到區(qū)塊鏈協(xié)議層的算法控制的。區(qū)塊鏈為所有對等點提供了每個事務(wù)的相同副本,從而消除了信任,形成了一個不可信的分布式網(wǎng)絡(luò)。
區(qū)塊鏈協(xié)議的基本特征可以總結(jié)為:
- 去中心化 :區(qū)塊鏈必須以一種可以訪問和復(fù)制的方式存儲網(wǎng)絡(luò)上的任何節(jié)點。
- 不可變性: 區(qū)塊鏈永久記錄所有事務(wù)。記錄一旦添加,就不能更改。
- 共識: 區(qū)塊鏈上的事務(wù)只有在所有參與節(jié)點達成協(xié)商一致后才進行驗證。