比特幣區(qū)塊鏈面向轉(zhuǎn)賬場(chǎng)景,支持簡(jiǎn)單的腳本計(jì)算。如果引入更多復(fù)雜的計(jì)算邏輯,將能支持更多應(yīng)用場(chǎng)景,即智能合約(Smart Contract)。智能合約可以提供除了貨幣交易功能外更靈活的合約功能,執(zhí)行更為復(fù)雜的操作。
引入智能合約的區(qū)塊鏈,已經(jīng)超越了單純數(shù)據(jù)記錄功能;可以為區(qū)塊鏈加入權(quán)限管理,高級(jí)編程語言支持等,實(shí)現(xiàn)更強(qiáng)大的、支持更多商用場(chǎng)景的分布式賬本系統(tǒng)。
區(qū)塊鏈技術(shù)的三種典型演化場(chǎng)景如下:
根據(jù)參與者的不同,區(qū)塊鏈可以分為公有(Public)鏈、聯(lián)盟(Consortium)鏈和私有(Private)鏈。
公有鏈,即任何人都可以參與使用和維護(hù),參與者多為匿名。典型的如比特幣和以太坊區(qū)塊鏈,信息是完全公開的。
如果進(jìn)一步引入許可機(jī)制,可以實(shí)現(xiàn)私有鏈和聯(lián)盟鏈兩種類型。
私有鏈,由集中管理者進(jìn)行管理限制,只有內(nèi)部少數(shù)人可以使用,信息不公開,跟傳統(tǒng)中心化記賬系統(tǒng)的差異不明顯。
聯(lián)盟鏈則介于兩者之間,由若干組織一起合作(如供應(yīng)鏈機(jī)構(gòu)或銀行聯(lián)盟等)維護(hù)一條區(qū)塊鏈,該區(qū)塊鏈的使用必須是帶有權(quán)限的限制訪問,相關(guān)信息會(huì)得到保護(hù),典型如超級(jí)賬本項(xiàng)目。在架構(gòu)上,現(xiàn)有大部分區(qū)塊鏈在實(shí)現(xiàn)都至少包括了網(wǎng)絡(luò)層、共識(shí)層、智能合約和應(yīng)用層等分層結(jié)構(gòu),聯(lián)盟鏈實(shí)現(xiàn)往還會(huì)引入額外的權(quán)限管理機(jī)制。
目前來看,公有鏈信任度最高,也容易引發(fā)探討,但短期內(nèi)更多的應(yīng)用會(huì)首先在聯(lián)盟鏈上落地。公有鏈因?yàn)橐嫦蚰涿_的場(chǎng)景,面臨著更多的安全挑戰(zhàn)和風(fēng)險(xiǎn);同時(shí)為了支持互聯(lián)網(wǎng)尺度的交易規(guī)模,需要更高的可擴(kuò)展性,性能瓶頸在短期內(nèi)很難得到解決。
對(duì)于信任度和中心化程度的關(guān)系,通常非中心化程度越高,信任度會(huì)越好。隨著節(jié)點(diǎn)數(shù)增加,前期的信任度往往會(huì)增長(zhǎng)較快,達(dá)到一定程度后,信任度隨節(jié)點(diǎn)數(shù)增多并不會(huì)得到明顯改善。因?yàn)殡S著成員數(shù)的增加,要實(shí)現(xiàn)共謀作惡的成本會(huì)指數(shù)上升。
根據(jù)使用目的和場(chǎng)景的不同,可以分為以數(shù)字貨幣為目的的貨幣鏈,以記錄產(chǎn)權(quán)為目的的產(chǎn)權(quán)鏈,以眾籌為目的的眾籌鏈等,也有不局限特定應(yīng)用場(chǎng)景的所謂通用鏈。通用鏈因?yàn)橐骖櫜煌瑘?chǎng)景下的應(yīng)用特點(diǎn),在設(shè)計(jì)上需要考慮更加全面。
區(qū)塊連常見共識(shí)算法包括Paxos、Raft、PBFT、POW、POS、DPOS等,但隨著區(qū)塊鏈技術(shù)的發(fā)展,不同區(qū)塊鏈項(xiàng)目在不同應(yīng)用場(chǎng)景下通過對(duì)基礎(chǔ)的共識(shí)算法的相互融合、改進(jìn),誕生了多種新的共識(shí)算法,如DBFT、BFT-DPoS、SBFT、VBFT、Tendermint等。
(1)DBFT
DBFT(Delegated Byzantine Fault Tolerant),即代理拜占庭容錯(cuò)算法,是基于PBFT改進(jìn)的區(qū)塊鏈共識(shí)算法。
DBFT的算法中,參與記賬的是超級(jí)節(jié)點(diǎn),普通節(jié)點(diǎn)可以看到共識(shí)過程,并同步賬本信息,但不參與記賬??偣瞡個(gè)超級(jí)節(jié)點(diǎn)分為一個(gè)議長(zhǎng)和n-1個(gè)議員, 議長(zhǎng)會(huì)輪流當(dāng)選。每次記賬時(shí),先有議長(zhǎng)發(fā)起區(qū)塊提案(擬記賬的區(qū)塊內(nèi)容), 一旦有至少(2n+1)/3個(gè)記賬節(jié)點(diǎn)(議長(zhǎng)加議員)同意提案,那么提案就成為最終發(fā)布的區(qū)塊,并且該區(qū)塊是不可逆的,所有里面的交易都是百分之百確認(rèn)的,區(qū)塊不會(huì)分叉。
為了便于在區(qū)塊鏈開放系統(tǒng)中應(yīng)用,DBFT將PBFT中的將C/S(客戶機(jī)/服務(wù)器)架構(gòu)的請(qǐng)求響應(yīng)模式,改進(jìn)為適合P2P網(wǎng)絡(luò)的對(duì)等節(jié)點(diǎn)模式,并將靜態(tài)的共識(shí)參與節(jié)點(diǎn)改進(jìn)為可動(dòng)態(tài)進(jìn)入、退出的動(dòng)態(tài)共識(shí)參與節(jié)點(diǎn),使其適用于區(qū)塊鏈的開放節(jié)點(diǎn)環(huán)境。
由于BFT算法存在的擴(kuò)容性問題,DBFT算法由權(quán)益持有者投票選舉產(chǎn)生代理記賬人,由代理人驗(yàn)證和生成區(qū)塊,以此大幅度降低共識(shí)過程中的節(jié)點(diǎn)數(shù)量,解決了BFT算法固有的擴(kuò)容性問題。
NEO項(xiàng)目使用了DBFT共識(shí)算法,NEO共識(shí)機(jī)制下只設(shè)置了7個(gè)超級(jí)節(jié)點(diǎn),以一種弱中心化的模式實(shí)現(xiàn)較高的共識(shí)效率。目前,超級(jí)節(jié)點(diǎn)是靜態(tài)選出的,并完全由項(xiàng)目方部署。
DBFT的優(yōu)點(diǎn)如下:
A、效率高。
NEO每15~20秒生成一個(gè)區(qū)塊,交易吞吐量可達(dá)到約1000TPS,優(yōu)化后性能可達(dá)10000TPS;
B、良好的最終性。
區(qū)塊不會(huì)分叉,以此來驗(yàn)證參與者的身份,保護(hù)網(wǎng)絡(luò)安全,使區(qū)塊鏈能夠適用于對(duì)交易確認(rèn)實(shí)時(shí)性要求高的真實(shí)金融場(chǎng)景。
DBFT的缺點(diǎn)如下:
A、較低的容錯(cuò)率。
當(dāng)有1/3或以上超級(jí)節(jié)點(diǎn)為惡意節(jié)點(diǎn)或宕機(jī)后,系統(tǒng)將無法提供服務(wù)。
B、超級(jí)節(jié)點(diǎn)數(shù)量過少,中心化程度高。
(2)BFT-DPOS
BFT-DPOS(Byzantine Fault Tolerance - Delegated Proof of Stake),即帶拜占庭容錯(cuò)的股份授權(quán)證明算法,是EOS項(xiàng)目通過引入PBFT算法對(duì)DPOS進(jìn)行改進(jìn)而來的共識(shí)算法。
在傳統(tǒng)DPOS共識(shí)機(jī)制中,每個(gè)受托人在出塊時(shí)向全網(wǎng)廣播新創(chuàng)建區(qū)塊,但即使其它受托人收到目前的新區(qū)塊,也無法對(duì)新區(qū)塊進(jìn)行確認(rèn),需要等待輪到自己出塊時(shí),才能通過生產(chǎn)區(qū)塊來確認(rèn)之前的區(qū)塊。
BFT-DPOS共識(shí)機(jī)制下,每個(gè)受托人出塊時(shí)依然全網(wǎng)廣播,其它受托人收到新區(qū)塊后,立即對(duì)此區(qū)塊進(jìn)行驗(yàn)證,并將驗(yàn)證簽名完成的區(qū)塊立即返回出塊受托人,不需等待其它受托人自己出塊時(shí)再確認(rèn)。因此,出塊受托人生產(chǎn)了一個(gè)區(qū)塊,并全網(wǎng)廣播,然后陸續(xù)收到了其它受托人對(duì)此區(qū)塊的確認(rèn),在收到2/3受托人確認(rèn)的瞬間,區(qū)塊(包括其中的交易)就不可逆。
在EOS中有21個(gè)超級(jí)節(jié)點(diǎn),主要有兩方面原因:一是由于用戶很難對(duì)較多數(shù)量的超級(jí)節(jié)點(diǎn)充分了解,所以過多的超級(jí)節(jié)點(diǎn)會(huì)降低用戶投票的活躍度;二是規(guī)模為20的節(jié)點(diǎn)數(shù)目可以在拜占庭問題中以更低的資源成本來獲得高效的共識(shí)。
超級(jí)節(jié)點(diǎn)的主要職責(zé)是:提供相關(guān)計(jì)算資源和網(wǎng)絡(luò)資源,保證節(jié)點(diǎn)的正常運(yùn)行;當(dāng)輪到某超級(jí)節(jié)點(diǎn)擁有出塊權(quán)時(shí),超級(jí)節(jié)點(diǎn)收集該時(shí)段內(nèi)的所有交易,并對(duì)交易驗(yàn)證后打包成區(qū)塊廣播至其它超級(jí)節(jié)點(diǎn),其它超級(jí)節(jié)點(diǎn)驗(yàn)證后把區(qū)塊添加到自己的數(shù)據(jù)庫(kù)中。在EOS中,每個(gè)出塊間隔定義為3秒,由于在當(dāng)前的網(wǎng)絡(luò)環(huán)境下,一個(gè)超級(jí)節(jié)點(diǎn)打包區(qū)塊并將其廣播,絕大多數(shù)其它超級(jí)節(jié)點(diǎn)收到該區(qū)塊的過程耗時(shí)最多3秒。只有下一個(gè)超級(jí)節(jié)點(diǎn)收到了上一個(gè)超級(jí)節(jié)點(diǎn)廣播的區(qū)塊時(shí),再進(jìn)行新區(qū)塊的生成才不會(huì)造成對(duì)某個(gè)超級(jí)節(jié)點(diǎn)產(chǎn)生區(qū)塊的忽略。而一個(gè)區(qū)塊要成為不可逆區(qū)塊需要超過三分之二的超級(jí)節(jié)點(diǎn)進(jìn)行確認(rèn),在DPOS中只有超級(jí)節(jié)點(diǎn)產(chǎn)生一個(gè)新區(qū)塊,才能對(duì)之前收到的區(qū)塊鏈進(jìn)行確認(rèn),所以一個(gè)區(qū)塊產(chǎn)生后,其后續(xù)串聯(lián)14(21個(gè)超級(jí)節(jié)點(diǎn)的2/3)個(gè)區(qū)塊才表明該區(qū)塊是不可逆區(qū)塊,區(qū)塊中的交易是不可逆交易,整個(gè)確認(rèn)過程需要45秒(包括出塊節(jié)點(diǎn)的區(qū)塊生成時(shí)間)。
為了挖掘EOS系統(tǒng)的性能,Daniel Larimer對(duì)BFT-DPOS進(jìn)行了優(yōu)化,將出塊速度由3秒縮短至0.5秒,理論上可以極大提升系統(tǒng)性能,但帶來網(wǎng)絡(luò)延遲問題:0.5秒的確認(rèn)時(shí)間會(huì)導(dǎo)致下一個(gè)出塊者還沒有收到上一個(gè)出塊者的區(qū)塊,就要生產(chǎn)下一個(gè)區(qū)塊,那么下一個(gè)出塊者會(huì)忽略上一個(gè)區(qū)塊,導(dǎo)致區(qū)塊鏈分叉(相同區(qū)塊高度有兩個(gè)區(qū)塊)。
為解決網(wǎng)絡(luò)延遲問題,Daniel Larimer將原先的隨機(jī)出塊順序改為由受托人商議后確定的出塊順序,網(wǎng)絡(luò)連接延遲較低的受托人之間就可以相鄰出塊,大大降低受托人之間的網(wǎng)絡(luò)延遲,使得0.5秒的出塊速度具備理論上的可能。
為了保證萬無一失,不讓任何一個(gè)受托人因?yàn)榫W(wǎng)絡(luò)延遲的意外而被跳過,Daniel Larimer讓每個(gè)受托人連續(xù)生產(chǎn)6個(gè)區(qū)塊,即每個(gè)見證人還是負(fù)責(zé)3秒的區(qū)塊生產(chǎn),但由最初的只生產(chǎn)1個(gè)變成生產(chǎn)6個(gè)。最惡劣的情況下,6個(gè)區(qū)塊中,最后一個(gè)或兩個(gè)有可能因?yàn)榫W(wǎng)絡(luò)延遲或其它意外被下一個(gè)受托人略過,但6 個(gè)區(qū)塊中的前幾個(gè)會(huì)有足夠的時(shí)間傳遞給下一個(gè)受托人。
BFT-DPoS的交易確認(rèn)時(shí)間問題:每個(gè)區(qū)塊生產(chǎn)后立即進(jìn)行全網(wǎng)廣播,區(qū)塊生產(chǎn)者一邊等待0.5秒生產(chǎn)下一個(gè)區(qū)塊,同時(shí)會(huì)接收其它受托人對(duì)于上一個(gè)區(qū)塊的確認(rèn)結(jié)果。新區(qū)塊的生產(chǎn)和舊區(qū)塊確認(rèn)的接收同時(shí)進(jìn)行。大部分的情況下,交易會(huì)在1秒(包括0.5秒的區(qū)塊生產(chǎn)和要求其它受托人確認(rèn)的時(shí)間)之內(nèi)確認(rèn)(不可逆)。
EOS系統(tǒng)規(guī)定,一旦區(qū)塊達(dá)到不可逆狀態(tài)(2/3受托人確認(rèn)),就無法在此之前進(jìn)行分叉,保證交易的永久可信。即使多數(shù)見受托人想分叉區(qū)塊鏈,也只能以相同的速度(0.5秒)與主鏈競(jìng)爭(zhēng),就算主鏈只剩下一個(gè)受托人,分叉鏈也永遠(yuǎn)不會(huì)追上主鏈,保證了系統(tǒng)的穩(wěn)定。
EOS項(xiàng)目解決的區(qū)塊鏈痛點(diǎn)如下:
A、應(yīng)用性能低?
比特幣和以太坊都面臨應(yīng)用性能低的瓶頸。隨著交易量和應(yīng)用的增長(zhǎng),網(wǎng)絡(luò)擁堵和手續(xù)費(fèi)飛漲的問題日益凸顯。從交易速度方面看,比特幣為每秒7筆,以太坊交易速度為每秒30-40筆,而EOS則可以達(dá)到每秒數(shù)百萬筆交易,可以滿足商業(yè)級(jí)別應(yīng)用的需要。
EOS基于石墨烯技術(shù),通過并行鏈的方式達(dá)到毫秒級(jí)的確認(rèn)速度和數(shù)百萬TPS。
B、安全性差 (DPOS共識(shí)算法)
EOS采用的是DPOS算法,分叉基本不可能發(fā)生,。解決了比特幣和以太坊的鏈分叉問題,從而保障了全網(wǎng)運(yùn)行的安全性。因?yàn)閴K生產(chǎn)者生產(chǎn)區(qū)塊的方式是合作性的而不是競(jìng)爭(zhēng)性的。如果發(fā)生區(qū)塊分叉,DPOS共識(shí)將自動(dòng)切換到最長(zhǎng)的鏈條。此外,不會(huì)發(fā)生塊生產(chǎn)者同時(shí)在兩個(gè)區(qū)塊鏈分叉上生產(chǎn)塊的情況。如果有,就可能被投票出局。
C、開發(fā)難度高
比特幣只能作為貨幣交付使用,只滿足交易的功能;以太坊實(shí)現(xiàn)了智能合約,突破了比特幣的貨幣功能,向非金融領(lǐng)域邁出了一步,但由于其模塊的復(fù)雜性,無法使得開發(fā)者輕松自如地創(chuàng)建自己想創(chuàng)建的應(yīng)用;EOS處理了額外的復(fù)雜性,為開發(fā)者們提供了用戶友好的底層模塊,可以支持多種編程語言。
D、手續(xù)費(fèi)高
EOS為用戶提供了免費(fèi)服務(wù),相比較比特幣和以太坊高昂的轉(zhuǎn)賬手續(xù)費(fèi),EOS公鏈用戶無需支付手續(xù)費(fèi)。開發(fā)者依據(jù)用戶規(guī)模,創(chuàng)建對(duì)應(yīng)的盈利模式。
(3)SBFT
SBFT(Simpled BFT),即簡(jiǎn)化拜占庭容錯(cuò)算法,是PBFT算法的簡(jiǎn)化版本。
在Fabric的提案中,采用SBFT(Simple BFT)算法。但Fabric0.6版本采用PBFT,F(xiàn)abric1.0中移出了PBFT,而是使用Kafka、Solo進(jìn)行排序,作為共識(shí)節(jié)點(diǎn)。Fabric應(yīng)該會(huì)在后期版本實(shí)現(xiàn)SBFT。
(4)Tendermint
Tendermint是一個(gè)模塊化的區(qū)塊鏈應(yīng)用框架,能夠?qū)崿F(xiàn)拜占庭容錯(cuò) (BFT)。Tendermint主要包括兩部分:
A、Tendermint Core
Tendermint Core實(shí)現(xiàn)了P2P網(wǎng)絡(luò),在節(jié)點(diǎn)之間共享區(qū)塊和交易,實(shí)現(xiàn)了拜占庭容錯(cuò)的共識(shí)算法,確定了不可更改的交易順序;
B、ABCI Interface
ABCI Interface負(fù)責(zé)處理具體的邏輯處理層,可以基于不同的語言 (Golang,JS) 來實(shí)現(xiàn),可以實(shí)現(xiàn)交易的驗(yàn)證處理以及查詢等操作。
Tendermint地址:https://github.com/tendermint/tendermint
Tendermint官方網(wǎng)站:https://tendermint.com/
(5)VBFT
VBFT算法融合POS、VRF以及BFT的思想。在VBFT算法中,節(jié)點(diǎn)需要通過權(quán)益抵押來申請(qǐng)參與網(wǎng)絡(luò)共識(shí)。此后,系統(tǒng)通過可驗(yàn)證隨機(jī)函數(shù)來隨機(jī)從所有備選的共識(shí)節(jié)點(diǎn)中選擇n個(gè)節(jié)點(diǎn),并提出、驗(yàn)證備選區(qū)塊,最終通過對(duì)驗(yàn)證結(jié)果進(jìn)行背書投票來完成區(qū)塊共識(shí)。
共識(shí)節(jié)點(diǎn)構(gòu)成共識(shí)網(wǎng)絡(luò),負(fù)責(zé)對(duì)網(wǎng)絡(luò)中的事務(wù)請(qǐng)求進(jìn)行共識(shí),生成區(qū)塊;而備選的共識(shí)節(jié)點(diǎn)構(gòu)成候選網(wǎng)絡(luò),不參與共識(shí),但保持與共識(shí)網(wǎng)絡(luò)同步的狀態(tài)。此外,候選網(wǎng)絡(luò)對(duì)共識(shí)網(wǎng)絡(luò)進(jìn)行監(jiān)控,并對(duì)共識(shí)區(qū)塊進(jìn)行驗(yàn)證。
VBFT算法流程如下:
A、根據(jù)VRF從共識(shí)網(wǎng)絡(luò)中選擇備案提案節(jié)點(diǎn),各個(gè)備選節(jié)點(diǎn)獨(dú)立提出備選區(qū)塊。
B、根據(jù)VRF從共識(shí)網(wǎng)絡(luò)中選擇多個(gè)驗(yàn)證節(jié)點(diǎn),每個(gè)驗(yàn)證節(jié)點(diǎn)將從網(wǎng)絡(luò)中收集備選區(qū)塊,進(jìn)行驗(yàn)證,然后對(duì)最高優(yōu)先級(jí)的備選區(qū)塊進(jìn)行投票。
C、根據(jù)VRF從共識(shí)網(wǎng)絡(luò)中選擇多個(gè)確認(rèn)節(jié)點(diǎn),對(duì)上述驗(yàn)證節(jié)點(diǎn)的投票結(jié)果進(jìn)行統(tǒng)計(jì)驗(yàn)證,并決定最終的共識(shí)結(jié)果。
D、所有節(jié)點(diǎn)接受確認(rèn)節(jié)點(diǎn)的共識(shí)結(jié)果,開始下一輪共識(shí)流程。
在VBFT算法中,每一輪區(qū)塊的VRF值都基于上一輪共識(shí)區(qū)塊的易變信息,并通過計(jì)算該信息的哈希值來作為下一輪共識(shí)區(qū)塊的VRF值。由此,每一個(gè)區(qū)塊的VRF值都是可驗(yàn)證的。
根據(jù)VBFT文中介紹,依據(jù)VRF選定節(jié)點(diǎn)的同時(shí),也確定了節(jié)點(diǎn)的排序順序,即節(jié)點(diǎn)的優(yōu)先級(jí)順序。優(yōu)先級(jí)順序的存在,為節(jié)點(diǎn)應(yīng)對(duì)主鏈分叉提供了參考方案。由于惡意分叉很難一直維持最高優(yōu)先級(jí),從而達(dá)到遏制惡意分叉的目的。
在區(qū)塊鏈網(wǎng)絡(luò)中,由于應(yīng)用場(chǎng)景的不同,所設(shè)計(jì)的目標(biāo)各異,不同的區(qū)塊鏈系統(tǒng)采用了不同的共識(shí)算法。通常,在私有鏈和聯(lián)盟鏈情況下,對(duì)一致性、正確性有很強(qiáng)的要求,要采用強(qiáng)一致性的共識(shí)算法;而在公有鏈情況下,對(duì)一致性和正確性通常沒法做到百分之百,通常采用最終一致性(Eventual Consistency)的共識(shí)算法。
共識(shí)算法的選擇與應(yīng)用場(chǎng)景高度相關(guān),可信環(huán)境使用Paxos算法或者Raft算法,帶許可的聯(lián)盟可使用PBFT算法,非許可鏈可以使用POW,POS,Ripple共識(shí)等,根據(jù)對(duì)手方信任度分級(jí),自由選擇共識(shí)機(jī)制。
隱私保護(hù)一直是分布式系統(tǒng)領(lǐng)域十分關(guān)鍵的問題。在分布式場(chǎng)景下,因?yàn)槿狈Κ?dú)立的管理機(jī)制,參與網(wǎng)絡(luò)的各方無法保證嚴(yán)格遵守協(xié)議,甚至?xí)室庠噲D獲取網(wǎng)絡(luò)中他人的數(shù)據(jù),對(duì)于隱私的竊取行為都很難進(jìn)行約束。
而分布式賬本要在共享協(xié)同信息和隱私保護(hù)之間達(dá)到合適的平衡,是個(gè)不小的挑戰(zhàn),特別隨著公有賬本系統(tǒng)屢屢出現(xiàn)安全漏洞,動(dòng)輒造成數(shù)千萬美金的風(fēng)險(xiǎn)。隨著《一般數(shù)據(jù)保護(hù)條例》(General Data Protection Regulation,GDPR)的落地,隱私保護(hù)的合規(guī)要求愈加嚴(yán)格。傳統(tǒng)的信息安全技術(shù)、形式化驗(yàn)證技術(shù)在應(yīng)對(duì)新的需求時(shí)暴露出實(shí)踐性不強(qiáng)的缺陷,都亟待解決。尤其以醫(yī)療健康領(lǐng)域,對(duì)數(shù)據(jù)的隱私性需求最為強(qiáng)烈,要求嚴(yán)格控制數(shù)據(jù)的來源、所有權(quán)和使用范圍,傳統(tǒng)手段很難滿足隱私保護(hù)特性需求,需要有機(jī)結(jié)合零知識(shí)證明、同態(tài)加密等新的密碼學(xué)手段,但新技術(shù)在實(shí)際應(yīng)用中還存在不少問題。
共識(shí)是分布式系統(tǒng)領(lǐng)域經(jīng)典的技術(shù)難題,學(xué)術(shù)界和業(yè)界都已有大量的研究成果(包括Paxos、BFT系列算法等)。
分布式共識(shí)問題的核心在于確保某個(gè)變更在分布式網(wǎng)絡(luò)中得到一致的執(zhí)行結(jié)果,是被參與多方都承認(rèn)的,同時(shí)信息是不可推翻的。
分布式共識(shí)在公開匿名場(chǎng)景下和帶權(quán)限管理的場(chǎng)景下需求差異較大,從而導(dǎo)致了基于概率的算法和確定性算法兩類思想。
最初,比特幣區(qū)塊鏈考慮的是公開匿名場(chǎng)景下的最壞保證。通過引入了POW工作量證明策略來規(guī)避少數(shù)人的惡意行為,并通過概率模型保證最后參與方共識(shí)到最長(zhǎng)鏈。POW算法的核心思想是基于經(jīng)濟(jì)利益的博弈,讓惡意破壞的參與者損失經(jīng)濟(jì)利益,從而保證大部分人的合作。同時(shí),確認(rèn)必須經(jīng)過多個(gè)區(qū)塊的生成后達(dá)成,從概率上進(jìn)行保證。概率性算法的主要問題在于效率的低下和能源的浪費(fèi),如POW,POS和DPOS算法等。
區(qū)塊鏈技術(shù)(如超級(jí)賬本)在帶權(quán)限許可的場(chǎng)景下,開始考慮支持更多的確定性的共識(shí)機(jī)制,包括BFT系列算法等,可以解決快速確認(rèn)的問題。
共識(shí)問題在很長(zhǎng)一段時(shí)間內(nèi)都將是極具學(xué)術(shù)價(jià)值的研究熱點(diǎn),核心的指標(biāo)將包括容錯(cuò)的節(jié)點(diǎn)比例、決策收斂速度、出錯(cuò)后的恢復(fù)、動(dòng)態(tài)特性等。POW等基于概率的系列算法理論上允許少于一半的不合作節(jié)點(diǎn),BFT等確定性算法理論上則允許不超過1/3的不合作節(jié)點(diǎn)。
通常,區(qū)塊鏈并不適用于高頻交易的場(chǎng)景,但由于金融系統(tǒng)的需求,業(yè)界目前十分關(guān)心如何盡量提高區(qū)塊鏈系統(tǒng)的交易性能,包括吞吐量和確認(rèn)延遲兩個(gè)方面。
目前,公開的比特幣區(qū)塊鏈只能支持平均每秒約7 筆的吞吐量,安全的交易確認(rèn)時(shí)間為一個(gè)小時(shí)左右;以太坊區(qū)塊鏈的吞吐量略高,能達(dá)到幾十筆每秒,但交易性能也是較大的瓶頸。
為了提高處理性能,一方面可以提升單個(gè)節(jié)點(diǎn)的性能(如采用高配置的硬件),同時(shí)設(shè)計(jì)優(yōu)化的策略和算法,提高性能;另外一方面可將交易處理卸載(off-load)到鏈下。只用區(qū)塊鏈記錄最終交易信息,如比特幣社區(qū)提出的閃電網(wǎng)絡(luò)等設(shè)計(jì)。側(cè)鏈(side chain)、影子鏈(shadow chain)等思路在當(dāng)前階段也有一定的借鑒意義,可將整體性能提升1~2個(gè)數(shù)量級(jí)。
聯(lián)盟鏈場(chǎng)景下,參與多方存在一定的信任前提和利益約束,可以采取更優(yōu)化的設(shè)計(jì),換來性能的提升。以Hyperleger Fabric項(xiàng)目為例,在普通虛擬機(jī)配置下,單客戶端每秒可以達(dá)到數(shù)百次(Transactions per second,TPS)的交易吞吐量;在有一定工程優(yōu)化或硬件加速情況下可以達(dá)到每秒數(shù)千次的吞吐量。
目前開源區(qū)塊鏈系統(tǒng)已經(jīng)可以滿足不少應(yīng)用場(chǎng)景的性能需求,但離大規(guī)模交易系統(tǒng)每秒穩(wěn)定數(shù)萬筆的吞吐性能還有較大差距。根據(jù)公開的數(shù)據(jù),VISA系統(tǒng)的處理均值為2000 TPS,峰值為56,000TPS;某金融支付系統(tǒng)的處理峰值超過85,000TPS;大型證券交易所的處理均值在 80,000TPS左右。
常見的分布式系統(tǒng),可以通過橫向增加節(jié)點(diǎn)來擴(kuò)展整個(gè)系統(tǒng)的處理能力。
大部分區(qū)塊鏈系統(tǒng)的性能很大程度上取決于單個(gè)節(jié)點(diǎn)的處理能力,節(jié)點(diǎn)需要滿足高性能、安全、穩(wěn)定、硬件輔助加解密能力。例如,對(duì)于比特幣和以太坊區(qū)塊鏈,網(wǎng)絡(luò)中每個(gè)參與維護(hù)的核心節(jié)點(diǎn)都要保持一份完整的存儲(chǔ),并且進(jìn)行智能合約的處理。此時(shí),整個(gè)網(wǎng)絡(luò)的總存儲(chǔ)和計(jì)算能力,取決于單個(gè)節(jié)點(diǎn)的能力。甚至當(dāng)網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)過多時(shí),可能會(huì)因?yàn)楣沧R(shí)延遲而降低整個(gè)網(wǎng)絡(luò)的性能。尤其在公有網(wǎng)絡(luò)中,由于大量低性能處理節(jié)點(diǎn)的存在,問題將更加明顯。
要解決區(qū)塊鏈系統(tǒng)的擴(kuò)展能力,根本上是放松對(duì)每個(gè)節(jié)點(diǎn)都必須參與完整處理的限制(網(wǎng)絡(luò)中節(jié)點(diǎn)要能合作完成完整的處理),已經(jīng)在超級(jí)賬本項(xiàng)目中得到應(yīng)用;同時(shí)盡量減少核心層的處理工作,甚至采用多層處理結(jié)構(gòu)來分散交易。
在聯(lián)盟鏈模式下,可以專門采用高性能的節(jié)點(diǎn)作為核心節(jié)點(diǎn),用相對(duì)較弱的節(jié)點(diǎn)作為代理訪問節(jié)點(diǎn)。
另外,未來必然會(huì)涉及到不同賬本之間互通的跨鏈需求。超級(jí)賬本的Quilt項(xiàng)目和W3C的Interledger Payments工作組已對(duì)此問題開展研究。
區(qū)塊鏈目前最熱門的應(yīng)用場(chǎng)景是金融相關(guān)的服務(wù),安全自然是最敏感也是挑戰(zhàn)大的問題。
區(qū)塊鏈網(wǎng)絡(luò)中的大量信息需要寫到文件和數(shù)據(jù)庫(kù)中進(jìn)行持久化存儲(chǔ)。
區(qū)塊鏈的應(yīng)用需要進(jìn)行大量的讀寫操作、Hash計(jì)算和驗(yàn)證操作,跟傳統(tǒng)數(shù)據(jù)庫(kù)的行為十分不同。
LevelDB、RocksDB 等鍵值數(shù)據(jù)庫(kù),具備很高的隨機(jī)寫和順序讀、寫性能,以及相對(duì)較差的隨機(jī)讀的性能,被廣泛應(yīng)用到了區(qū)塊鏈信息存儲(chǔ)中。但目前來看,面向區(qū)塊鏈的數(shù)據(jù)庫(kù)技術(shù)仍然是需要突破的技術(shù)難點(diǎn)之一,特別是如何支持更豐富語義的操作。未來將可能出現(xiàn)更具針對(duì)性的區(qū)塊鏈數(shù)據(jù)庫(kù),專門服務(wù)區(qū)塊鏈新型數(shù)據(jù)業(yè)務(wù),其中每條記錄將包括一個(gè)完整的區(qū)塊信息,并天然地跟歷史信息進(jìn)行關(guān)聯(lián),一旦寫入確認(rèn)則無法修改。所有操作的最小單位將是一個(gè)塊。需要原生支持高效的簽名和加解密處理。
大部分企業(yè)內(nèi)和企業(yè)之間都已經(jīng)存在一些信息化產(chǎn)品和工具,例如處于核心位置的數(shù)據(jù)庫(kù)、企業(yè)信息管理系統(tǒng)、通訊系統(tǒng)等。企業(yè)在采用新的產(chǎn)品時(shí),往往會(huì)重點(diǎn)考察與已有商業(yè)流程和信息系統(tǒng)進(jìn)行集成時(shí)的平滑度。
兩種系統(tǒng)如何共存,如何分工,彼此的業(yè)務(wù)交易如何進(jìn)行合理傳遞,出現(xiàn)故障如何排查和隔離,已有數(shù)據(jù)如何在不同系統(tǒng)之間進(jìn)行遷移和災(zāi)備,都是很迫切要解決的實(shí)際問題。解決不好,將是區(qū)塊鏈技術(shù)落地的不小阻礙。
雖然大部分區(qū)塊鏈系統(tǒng)在平臺(tái)層面都支持了非中心化機(jī)制,在運(yùn)營(yíng)和治理層面確往往做不到非中心化。以比特幣網(wǎng)絡(luò)為例,歷史上多次發(fā)生過大部分算力集中在少數(shù)礦池的情況,同時(shí)軟件的演化路線集中在少數(shù)開發(fā)者手中。運(yùn)營(yíng)和治理機(jī)制是現(xiàn)有區(qū)塊鏈系統(tǒng)中普遍缺失的,但在實(shí)際應(yīng)用中又十分重要。
如何進(jìn)行合理的共識(shí)、高效的治理仍屬于尚未解決的問題。公有鏈中試圖通過將計(jì)算機(jī)系統(tǒng)中的令牌與經(jīng)濟(jì)利益掛鉤,維護(hù)系統(tǒng)持續(xù)運(yùn)行;聯(lián)盟鏈中通過商業(yè)合作和投票等方式,推舉聯(lián)盟治理機(jī)構(gòu),進(jìn)行聯(lián)盟網(wǎng)絡(luò)的維護(hù)管理。但相關(guān)機(jī)制仍需在實(shí)踐過程中不斷完善和改進(jìn)。以供應(yīng)鏈場(chǎng)景為例,動(dòng)輒涉及到數(shù)百家企業(yè),上下游幾十個(gè)環(huán)節(jié),而且動(dòng)態(tài)性較強(qiáng),都需要分布式賬本平臺(tái)能提供很強(qiáng)的治理投票和權(quán)限管控機(jī)制。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁名稱:區(qū)塊鏈快速入門(五)——區(qū)塊鏈技術(shù)的演化-創(chuàng)新互聯(lián)
文章出自:http://chinadenli.net/article40/dgjgeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站制作、網(wǎng)站內(nèi)鏈、電子商務(wù)、網(wǎng)站收錄、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容