- 區(qū)塊鏈2.0:以太坊應(yīng)用開發(fā)指南
- 趙其剛 陸斌 趙其國
- 3315字
- 2019-09-12 15:19:24
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ǔ)。
- 社群電商:商業(yè)模式+案例分析+應(yīng)用實戰(zhàn)
- 淘寶天貓網(wǎng)店美工全能一本通:配色 摳圖 裝修 無線店鋪(視頻指導(dǎo)版)
- 秒懂視頻號:短視頻變現(xiàn)+直播帶貨+私域?qū)Я?流量運營
- 轉(zhuǎn)化率:電商運營核心思維與實操案例
- 淘寶網(wǎng)店鋪裝修寶典
- 產(chǎn)品的視角:從熱鬧到門道
- 網(wǎng)店撈錢的100個精細(xì)化絕招
- 移動互聯(lián)網(wǎng)時代的顛覆性創(chuàng)新
- 網(wǎng)店贏家
- 移動電子商務(wù)對旅游產(chǎn)業(yè)鏈的影響與對策研究
- 移動互聯(lián)網(wǎng)O2O社群微營銷:移動互聯(lián)網(wǎng)銷售業(yè)績提升手冊
- 個人信息保護(hù)問題研究:基于跨境電子商務(wù)
- 網(wǎng)站運營直通車:7天精通SEO(白金版)
- 大數(shù)據(jù)應(yīng)用:成為大數(shù)據(jù)電子商務(wù)高手
- 抖音營銷實戰(zhàn)指南