官术网_书友最值得收藏!

1.2 區(qū)塊鏈2.0:以太坊

區(qū)塊鏈1.0主要是“虛擬幣”的相關(guān)應(yīng)用;區(qū)塊鏈2.0是以太幣與智能合約相結(jié)合,實現(xiàn)除金融領(lǐng)域外更廣泛的場景和流程應(yīng)用,其典型代表有以太坊、超級賬本,其中以太坊由于對智能合約近乎完美的支持,而被稱為“全球計算機”。

1.2.1 區(qū)塊鏈2.0特征

區(qū)塊鏈2.0實現(xiàn)了智能合約的功能,從而使區(qū)塊鏈系統(tǒng)具有圖靈完備的計算能力,可以在區(qū)塊鏈上傳和執(zhí)行應(yīng)用程序,并且程序的有效執(zhí)行能得到保證。相對于區(qū)塊鏈1.0,區(qū)塊鏈2.0有如下優(yōu)勢。

(1)支持智能合約。區(qū)塊鏈2.0定位于應(yīng)用平臺,在這個平臺上,可以發(fā)布各種智能合約,并能與其他外部IT系統(tǒng)進(jìn)行數(shù)據(jù)交互和處理,從而實現(xiàn)各種行業(yè)應(yīng)用。

(2)交易速度更快。通過采用實用拜占庭容錯(PBFT)、權(quán)益證明(POS)、分布式權(quán)益證明(DPOS)等新的共識機制,區(qū)塊鏈2.0的交易速度有了很大的提高,峰值速度已經(jīng)超過了3 000TPS(每秒處理交易數(shù)量),遠(yuǎn)遠(yuǎn)高于區(qū)塊鏈1.0的5TPS,已經(jīng)能夠滿足大部分的金融應(yīng)用場景。

(3)支持信息加密。區(qū)塊鏈2.0因為支持完整的程序運行,可以通過智能合約對發(fā)送和接收的信息進(jìn)行自定義加密和解密,從而達(dá)到保護(hù)企業(yè)和用戶隱私的目的,同時零知識證明等先進(jìn)密碼學(xué)技術(shù)的應(yīng)用進(jìn)一步推動了其隱私性的發(fā)展。

(4)綠色環(huán)保。為了維護(hù)網(wǎng)絡(luò)共識,比特幣使用的算力超過122 029 TH/s,相當(dāng)于5 000臺天河2號A運算速度,每天耗電超過2 000MWh。區(qū)塊鏈2.0采用PBFT、DPOS、POS等新共識機制的客戶端,將不再需要通過消耗算力達(dá)成共識,使其能綠色環(huán)保地部署。

1.2.2 以太坊及關(guān)鍵支撐技術(shù)

以太坊是區(qū)塊鏈2.0的代表,由1994年出生的程序員維塔利克·布特瑞帶頭創(chuàng)建,該平臺可以通過編程來執(zhí)行任意復(fù)雜度的計算,因此可支持諸多去中心化應(yīng)用場景,很多分布式應(yīng)用均可基于該平臺來開發(fā)和部署。作為一個支持各類去中心化應(yīng)用開發(fā)的基礎(chǔ)性平臺,以太坊當(dāng)前受到區(qū)塊鏈業(yè)界非常廣泛的關(guān)注和重視,是目前區(qū)塊鏈應(yīng)用開發(fā)領(lǐng)域中最耀眼的明星之一。

以太坊沿用了區(qū)塊鏈1.0中已實踐證明行之有效的技術(shù)與機制,如非對稱加解密、散列(Hash)計算、共識機制、P2P協(xié)議等,另外也加入了一些自身的獨到創(chuàng)新,如虛擬機、智能合約。以太坊所采用的關(guān)鍵算法及技術(shù)如下。

1.非對稱加解密

非對稱加解密算法包括兩個密鑰:公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數(shù)據(jù)進(jìn)行加密,只有對應(yīng)私鑰才能解密;如果用私鑰對數(shù)據(jù)加密,那么只有對應(yīng)公鑰才能解密。加密和解密使用的是兩個不同的密鑰,這種算法稱為非對稱加解密算法。

非對稱加解密算法實現(xiàn)機密信息交換的基本過程:甲方生成一對密鑰并將其中的一個作為公用密鑰向其他方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進(jìn)行加密后再發(fā)送給甲方;甲方再用自己保存的另一個專用密鑰對加密后的信息進(jìn)行解密。區(qū)塊鏈中使用非對稱加解密來建立用戶的賬戶,并對交易和消息簽名和簽收。

2.散列算法

散列算法是一種單向密碼體制,它是一個從明文到密文的不可逆映射,只有加密過程,沒有解密過程。散列函數(shù)可以將任意長度的輸入經(jīng)過變化后得到固定長度的輸出。散列函數(shù)的這種單向特征和輸出數(shù)據(jù)長度固定的特征使得它可以生成消息或者數(shù)據(jù)。散列算法將任意長度的二進(jìn)制值映射為較短的固定長度的二進(jìn)制值,這個小的二進(jìn)制值稱為散列值。散列值的數(shù)據(jù)是唯一的,且通過極其緊湊的數(shù)值來表示。如果散列一段明文而且哪怕只更改該段落的一個字母,隨后的散列都將產(chǎn)生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的,所以數(shù)據(jù)的散列值可以檢驗數(shù)據(jù)的完整性。

散列算法在區(qū)塊鏈中獲得了廣泛的應(yīng)用,如區(qū)塊、交易的編號(地址)和內(nèi)容驗證、共識機制中挖礦節(jié)點對隨機數(shù)的搜索與區(qū)塊散列驗證。常見的散列算法有SHA1、SHA256、SHA512,在以太坊中就運用了SHA256。

3.P2P網(wǎng)絡(luò)

P2P網(wǎng)絡(luò),即對等計算機網(wǎng)絡(luò),是一種在對等者(peer)之間分配任務(wù)和工作負(fù)載的分布式應(yīng)用架構(gòu),是對等計算模型在應(yīng)用層形成的一種組網(wǎng)或網(wǎng)絡(luò)形式。網(wǎng)絡(luò)的參與者共享他們所擁有的一部分硬件資源(處理能力、存儲能力、網(wǎng)絡(luò)連接能力、打印機等),這些共享資源通過網(wǎng)絡(luò)提供服務(wù)和內(nèi)容,能被其他對等節(jié)點直接訪問而無 須經(jīng)過中間實體。在此網(wǎng)絡(luò)中的參與者既是資源、服務(wù)和內(nèi)容的提供者(Server),又是資源、服務(wù)和內(nèi)容的獲取者(Client)。

區(qū)塊鏈網(wǎng)絡(luò)就是一個P2P網(wǎng)絡(luò),每個區(qū)塊鏈網(wǎng)絡(luò)節(jié)點就是一個Peer。

4.共識機制

共識機制是區(qū)塊鏈?zhǔn)聞?wù)達(dá)成分布式共識的數(shù)學(xué)算法,由于點對點網(wǎng)絡(luò)下存在較高的網(wǎng)絡(luò)延遲,各個節(jié)點所觀察到的事務(wù)先后順序不可能完全一致。因此,區(qū)塊鏈系統(tǒng)需要設(shè)計一種機制對在差不多時間內(nèi)發(fā)生的事務(wù)的先后順序進(jìn)行共識。這種對一個時間窗口內(nèi)的事務(wù)的先后順序達(dá)成共識的算法被稱為“共識機制”。區(qū)塊鏈常用的共識機制主要有工作量證明(POW)和權(quán)益證明(POS)兩種。

POW:具有算法簡單,容易實現(xiàn),節(jié)點間無須交換額外的信息,破壞系統(tǒng)需要投入極大的成本等優(yōu)點,但也具有浪費能源、區(qū)塊的確認(rèn)時間難以縮短、容易產(chǎn)生分叉、需要等待多個確認(rèn)等缺點。

POS:將POW中的算力改為系統(tǒng)權(quán)益,擁有權(quán)益越大則成為下一個記賬人的概率越大。這種機制的優(yōu)點是不像POW那么費電,但也具有容易產(chǎn)生分叉、需要等待多個確認(rèn)、需要檢查點機制來彌補最終性等缺點。DPOS在POS的基礎(chǔ)上,將記賬人的角色專業(yè)化,先通過權(quán)益來選出記賬人,然后記賬人之間再輪流記賬。

5.以太坊虛擬機

以太坊虛擬機(Ethereum Virtual Machine,EVM)是由以太坊客戶端軟件提供的具有完整系統(tǒng)功能,可靈活支持各類去中心化應(yīng)用的代碼執(zhí)行環(huán)境。它可以執(zhí)行任意復(fù)雜度的算法代碼,因而在計算機科學(xué)術(shù)語中,以太坊是圖靈完備的。開發(fā)人員能夠使用編程友好的高級語言,如類JavaScript和Python,創(chuàng)建運行在以太坊虛擬機上的應(yīng)用程序。此部分內(nèi)容將在第2章進(jìn)行詳細(xì)介紹。

6.智能合約語言——Solidity

Solidity是以太坊中用于編寫智能合約的面向?qū)ο蟮某绦蛟O(shè)計語言。Solidity可用于各類區(qū)塊鏈平臺智能合約的實現(xiàn)編程。由加文·伍德(Gavin Wood)、克瑞斯·銳偉斯勒(Christian Reitwiessner)、亞歷克斯·柏瑞扎茲(Alex Beregszaszi)、姚奇·哈瑞(Yoichi Hirai)和幾個前以太坊核心人員創(chuàng)建。Solidity是一種類JavaScript語言,編碼風(fēng)格與JavaScript的類同,支持圖靈完備的程序代碼設(shè)計。

1.2.3 以太坊:區(qū)塊鏈2.0工業(yè)開發(fā)標(biāo)準(zhǔn)

目前區(qū)塊鏈2.0的技術(shù)架構(gòu)主要有以太坊和Linux基金會于2015年發(fā)起的超級賬本(Hyperledger)。以太坊由于技術(shù)架構(gòu)的清晰定義、行業(yè)的廣泛支持與生態(tài)系統(tǒng)的成熟,已逐步成為區(qū)塊鏈上的工業(yè)開發(fā)標(biāo)準(zhǔn),是區(qū)塊鏈從業(yè)者應(yīng)該首選的學(xué)習(xí)內(nèi)容之一。

從體系結(jié)構(gòu)上來看,以太坊共包括6層結(jié)構(gòu),如圖1.1所示。

1.數(shù)據(jù)層

以太坊數(shù)據(jù)層是一個“區(qū)塊”+“鏈”的數(shù)據(jù)結(jié)構(gòu),本質(zhì)是一個分布式區(qū)塊鏈,以非對稱加解密、散列計算等技術(shù)為基礎(chǔ),確保一個區(qū)塊鏈數(shù)據(jù)賬本決定一個網(wǎng)絡(luò),每個區(qū)塊鏈的數(shù)據(jù)不易篡改。

圖1.1 以太坊體系結(jié)構(gòu)

2.網(wǎng)絡(luò)層

以太坊網(wǎng)絡(luò)層遵循P2P協(xié)議,確保網(wǎng)絡(luò)的開放和穩(wěn)定服務(wù),互聯(lián)網(wǎng)用戶的自由、平等參與和區(qū)塊鏈數(shù)據(jù)的同步等。

3.共識層

共識層決定區(qū)塊鏈的記賬權(quán)獲取機制。采用POW,電腦的性能越好,封裝區(qū)塊越容易成功并獲得“虛擬幣”獎勵;采用POS,類似股份公司股權(quán)的概念,會根據(jù)持有的“虛擬幣”數(shù)量和時間,由“股權(quán)”擁有者按其“權(quán)益”比例獲得區(qū)塊封裝權(quán)利,并根據(jù)封裝區(qū)塊獲得挖礦獎勵。

4.激勵層

激勵層即以太坊的挖礦機制,是對為網(wǎng)絡(luò)提供計算及驗證服務(wù)的礦工的獎勵措施。當(dāng)前以太坊對成功封裝并被網(wǎng)絡(luò)確認(rèn)一個區(qū)塊的獎勵是系統(tǒng)通過增發(fā)授予礦工5個“虛擬幣”,同時礦工獲得當(dāng)前區(qū)塊所有交易所發(fā)送的燃料。此外,以太坊對成功挖礦并成功封裝區(qū)塊但未被納入主鏈的“叔區(qū)塊”也有獎勵,獎勵金額為正常區(qū)塊的87.5%。

5.合約層

在區(qū)塊鏈1.0中是沒有這一層的(或者這一層功能很弱,僅能執(zhí)行一些簡單功能),所以區(qū)塊鏈1.0只能進(jìn)行“虛擬幣”的相關(guān)應(yīng)用,而無法用于其他領(lǐng)域或說是無法進(jìn)行其他的邏輯處理。合約層的出現(xiàn),使得在“虛擬幣”以外的其他領(lǐng)域使用區(qū)塊鏈有了可能,比如用于物聯(lián)網(wǎng)(IOT)。在以太坊中,本部分包括了以太坊虛擬機和智能合約兩個組成部分。

6.應(yīng)用層

區(qū)塊鏈的展示層與業(yè)務(wù)層,以太坊通過使用Web3等應(yīng)用接口,使各類應(yīng)用與區(qū)塊鏈集成,區(qū)塊鏈的應(yīng)用層可以是移動端、Web端,或是直接融合進(jìn)現(xiàn)有的業(yè)務(wù)服務(wù)器,把當(dāng)前的業(yè)務(wù)服務(wù)器當(dāng)成應(yīng)用層。

以太坊通過6層技術(shù)架構(gòu)的清晰分工協(xié)作,有效地保證了區(qū)塊鏈技術(shù)體系的系統(tǒng)性、完整性、靈活性與開放性,將為區(qū)塊鏈技術(shù)不斷發(fā)展、演變和廣泛應(yīng)用奠定堅實的基礎(chǔ)。

主站蜘蛛池模板: 松原市| 江阴市| 民丰县| 兴宁市| 花垣县| 嘉善县| 循化| 苏尼特左旗| 望城县| 吉林市| 惠州市| 乌海市| 留坝县| 额尔古纳市| 娄烦县| 上犹县| 尉氏县| 乐业县| 中山市| 宜宾县| 无极县| 历史| 贵州省| 贵阳市| 浦江县| 西青区| 灵川县| 高青县| 正蓝旗| 丰镇市| 桂阳县| 天镇县| 德清县| 拜泉县| 灯塔市| 柳江县| 葵青区| 永定县| 尤溪县| 文登市| 阿尔山市|