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