為何需要設(shè)計(jì)一條多鏈多共識(shí)的公鏈
EKT是一個(gè)模塊化的區(qū)塊鏈底層框架,將構(gòu)建一個(gè)基于多鏈架構(gòu)的公有鏈生態(tài)系統(tǒng),致力于成為支持大量應(yīng)用落地的商用公鏈。能夠?yàn)槠髽I(yè)提供易用、靈活且高效的通用型基礎(chǔ)技術(shù),共同推動(dòng)區(qū)塊鏈應(yīng)用場(chǎng)景落地。
?
“放棄”區(qū)塊鏈2.0?
比特幣、以太坊分別作為區(qū)塊鏈1.0與2.0時(shí)代的殺手級(jí)應(yīng)用和平臺(tái)得到快速的發(fā)展和普及,使區(qū)塊鏈技術(shù)呈現(xiàn)出爆發(fā)式增長(zhǎng)。從比特幣到以太坊,區(qū)塊鏈公鏈生態(tài)一直在進(jìn)化。最開(kāi)始中本聰只想設(shè)計(jì)一個(gè)可信記賬的賬簿,幾年之后Vtalik創(chuàng)造性的將預(yù)言機(jī)與區(qū)塊鏈結(jié)合,誕生了區(qū)塊鏈2.0。
以太坊創(chuàng)始人VitalikButerin的初衷是做一個(gè)“全球分布式計(jì)算機(jī)器”——一個(gè)可以用來(lái)計(jì)算一切的分布式圖靈完備機(jī)器,一個(gè)去中心化的應(yīng)用平臺(tái),一個(gè)解決金融/財(cái)務(wù)紛爭(zhēng)的預(yù)言機(jī)。然而以太坊沒(méi)有scalability的架構(gòu),難以進(jìn)行資源隔離。Vtalik和以太坊開(kāi)發(fā)者們也意識(shí)到了這個(gè)問(wèn)題,他們給出的解決方案是分片(Sharding)。Vitalik堅(jiān)信,以太坊擴(kuò)容的解決方案是分片技術(shù)。
以太坊接下來(lái)應(yīng)用的Plasma技術(shù),將整個(gè)網(wǎng)絡(luò)的計(jì)算用更簡(jiǎn)單的方式完成,同時(shí),讓以太坊能夠在現(xiàn)有的區(qū)塊鏈上使用PoS算法。這些都是為了對(duì)抗現(xiàn)在其他新興基礎(chǔ)鏈不得不采取的舉措。在基礎(chǔ)鏈技術(shù)還不成熟的現(xiàn)在,技術(shù)創(chuàng)新、更新?lián)Q代的腳步是不會(huì)停下的。競(jìng)爭(zhēng)的激烈不言而喻,雖然目前絕大部分Dapp建立在以太坊之上,但是開(kāi)發(fā)者們已經(jīng)對(duì)以太坊產(chǎn)生了越來(lái)越多的抱怨。在改進(jìn)現(xiàn)有底層鏈技術(shù)難題問(wèn)題上,還是有許多創(chuàng)新技術(shù)和項(xiàng)目出現(xiàn)。
在區(qū)塊鏈行業(yè)生態(tài)當(dāng)中,一個(gè)能夠滿(mǎn)足商業(yè)需求、高效的區(qū)塊鏈公共應(yīng)用平臺(tái)是必不可少,并占有極其重要的地位。
何為“多鏈”?為何“多鏈”?
多鏈,即拋棄了“一鏈治所有”的傳統(tǒng)方案,采用“一鏈一合約”的新方案重新設(shè)計(jì)了一個(gè)保障每個(gè)合約都能正常運(yùn)行的公鏈。這一創(chuàng)新極大程度上簡(jiǎn)化了架構(gòu),降低了數(shù)據(jù)處理壓力,確保一條鏈上流量激增不會(huì)影響到另一條鏈的效率,在鏈上進(jìn)行的任何業(yè)務(wù)都不會(huì)收到其他業(yè)務(wù)干擾,有效實(shí)現(xiàn)了資源隔離。
現(xiàn)有區(qū)塊鏈技術(shù)在單鏈架構(gòu)下存在性能、容量、隱私、隔離性、擴(kuò)展上的瓶頸。
想象一個(gè)用戶(hù)數(shù)以?xún)|計(jì)的類(lèi)VISA的支付應(yīng)用,每秒交易請(qǐng)求高達(dá)幾萬(wàn)筆,每日交易筆數(shù)高達(dá)幾億筆,用戶(hù)交易達(dá)到秒級(jí)響應(yīng)體驗(yàn)。在現(xiàn)有區(qū)塊鏈技術(shù)下,數(shù)據(jù)存儲(chǔ)采用鏈?zhǔn)奖镜卮鎯?chǔ),導(dǎo)致無(wú)法平行擴(kuò)展,共識(shí)機(jī)制采用同步式狀態(tài)機(jī)模型導(dǎo)致無(wú)法高效處理交易,同時(shí)受限于網(wǎng)絡(luò)中單節(jié)點(diǎn)的性能極限,因此單鏈架構(gòu)無(wú)法滿(mǎn)足應(yīng)用的性能、容量、用戶(hù)體驗(yàn)及其他要求。另外一些應(yīng)用內(nèi)部需要根據(jù)業(yè)務(wù)功能的需要對(duì)數(shù)據(jù)做平行切分,以達(dá)到數(shù)據(jù)隔離的業(yè)務(wù)要求和安全要求,由于當(dāng)前區(qū)塊鏈技術(shù)體系中的單鏈中的每個(gè)全節(jié)點(diǎn)都擁有全網(wǎng)所有數(shù)據(jù),因此無(wú)法滿(mǎn)足此類(lèi)應(yīng)用要求。
另外區(qū)塊鏈的互操作性本身就是一些應(yīng)用的基礎(chǔ)需求。想象一個(gè)理財(cái)應(yīng)用,用戶(hù)可以用某項(xiàng)資產(chǎn)交換不同機(jī)構(gòu)的理財(cái)產(chǎn)品,不同的資產(chǎn)就需要在多條鏈上做轉(zhuǎn)移、交換。還有一些ORACLE應(yīng)用同樣需要多鏈間的跨鏈喂入交互,譬如匯率牌價(jià)、天氣、股價(jià)、特定指標(biāo)等等。
區(qū)塊鏈的某些應(yīng)用在單鏈上無(wú)法完整實(shí)現(xiàn),需要在多鏈架構(gòu)下的可擴(kuò)展性、隔離性、高性能、互操作等特性的幫助下實(shí)現(xiàn)。因此,EKT進(jìn)行了“多鏈多共識(shí)”架構(gòu)的設(shè)計(jì)。
在 EKT 多鏈技術(shù)的生態(tài)中,實(shí)行的是“多鏈多共識(shí)”機(jī)制。EKT主鏈?zhǔn)瞧渲凶钪匾慕M成部分。基于EKT提供的多鏈機(jī)制,其他項(xiàng)目可以基于EKT運(yùn)行一條獨(dú)立的主鏈。這條獨(dú)立的主鏈可以根據(jù)需求靈活的配置代幣的種類(lèi)、數(shù)量以及共識(shí)算法,同時(shí)也可以方便的接入 EKT 多鏈技術(shù)的生態(tài)并共享 EKT 多鏈技術(shù)生態(tài)的資源。
一、EKT 的多鏈架構(gòu)
EKT 多鏈技術(shù)生態(tài)是一個(gè)并行多主鏈的結(jié)構(gòu),設(shè)計(jì)了一套獨(dú)特的多鏈架構(gòu),分為的Token鏈和DApp鏈。在這套多鏈架構(gòu)中,除了 EKT 的主鏈外還支持多條并行的主鏈。每條主鏈中都會(huì)有一個(gè)主幣。不同的主鏈可以采用不同的共識(shí)機(jī)制,默認(rèn)的共識(shí)機(jī)制為 DBFT。 開(kāi)發(fā)者可以通過(guò)主鏈提供的 Consensus 接口創(chuàng)建并完成自己節(jié)點(diǎn)的部署。
多鏈?zhǔn)瞧叫蠩KT所在的鏈?zhǔn)怯涗浰墟満蛅oken信息的。EKT 主鏈維護(hù)一套統(tǒng)一的用戶(hù)系統(tǒng)?;谶@套用戶(hù)系統(tǒng),無(wú)論是主鏈、多鏈還是 DApp 應(yīng)用,都可以快速的利用主鏈已有的用戶(hù)體系進(jìn)行開(kāi)發(fā)并獲取用戶(hù)。也極大的降低了用戶(hù)在不同 DApp 間的切換成本。另外用戶(hù)可以修改公私鑰對(duì)以及使用的加密算法,這使得 EKT 的用戶(hù)體系的安全度會(huì)一直跟隨時(shí)代的發(fā)展。即使量子計(jì)算機(jī)普及,用戶(hù)也可以相應(yīng)的把算法更換為抗量子攻擊的新算法。
如果一條基于 EKT代碼運(yùn)行的主鏈想要加入到 EKT 多鏈技術(shù)生態(tài)的話(huà),他該如何操作呢?EKT 多鏈技術(shù)會(huì)提供一個(gè)統(tǒng)一的客戶(hù)端。這個(gè)客戶(hù)端可以看做是其他主鏈和 EKT 主鏈進(jìn)行連接的入口。其他主鏈可以在這個(gè)客戶(hù)端里提交自己的主鏈信息,包括部署節(jié)點(diǎn)、代幣名稱(chēng)、代幣數(shù)量以及共識(shí)算法等信息。在向 EKT 主鏈注冊(cè)成功以后,這條主鏈就可以共享 EKT 通用積分生態(tài)的資源了。
每一條基于 EKT 代碼運(yùn)行的主鏈都需要有自己的代幣,即所謂的“一鏈一主幣”。主幣可以充當(dāng)該鏈上的交易手續(xù)費(fèi)。另外由于 DApp 開(kāi)發(fā)也可以基于主鏈,是主鏈的上層應(yīng)用。主幣的功能及消費(fèi)都可以在 DApp 里進(jìn)行定義。
二、多鏈的資產(chǎn)交換
上面提到在 EKT 多鏈技術(shù)生態(tài)里,每條主鏈都需要有一個(gè)主幣?;?EKT 提供的錢(qián)包,不同主鏈的代幣可以同時(shí)存在于一個(gè)賬戶(hù)下,這就是為用戶(hù)的跨鏈資產(chǎn)交換提供了基礎(chǔ)。只有加入到 EKT 多鏈技術(shù)生態(tài)的主鏈才可以分享生態(tài)的用戶(hù)資源并且把自己主鏈的代幣在全網(wǎng)中流通。
不同主鏈上的代幣進(jìn)行交易時(shí)所消耗的手續(xù)費(fèi)根據(jù)交易發(fā)生在的主鏈來(lái)決定。比如 A 鏈向 B 鏈轉(zhuǎn)發(fā)了一筆資產(chǎn),這筆交易是記錄在 A 鏈上的,因此需要消耗 A 鏈的主幣作為手續(xù)費(fèi)。
跨鏈轉(zhuǎn)賬分為兩種:
1、內(nèi)部跨鏈,因?yàn)槎噫湽蚕碛脩?hù)系統(tǒng),所以只是有了一個(gè)大錢(qián)包,而不是真正的跨鏈。由于所有的鏈共享了同一套用戶(hù)系統(tǒng),所以 EKT 天然支持資產(chǎn)的跨鏈轉(zhuǎn)移。
2、跨公鏈,兩條獨(dú)立的公鏈如果想要進(jìn)行跨鏈的資產(chǎn)交易,首先需要對(duì)用戶(hù)達(dá)成共識(shí),即在一個(gè)公鏈上的地址轉(zhuǎn)移到另外一條公鏈時(shí)需要雙方都對(duì)對(duì)方的公鏈先進(jìn)行注冊(cè)。然后進(jìn)行跨公鏈轉(zhuǎn)賬。
跨公鏈也是有兩種的:
1、通過(guò)跨鏈協(xié)議實(shí)現(xiàn)。
2、為了兼容大多數(shù)公鏈,其他類(lèi)別的跨鏈也會(huì)通過(guò)側(cè)鏈方式實(shí)現(xiàn),關(guān)于跨鏈協(xié)議的具體內(nèi)容,詳見(jiàn)跨鏈報(bào)文協(xié)議。
三、多鏈多共識(shí)
區(qū)塊鏈可以看做是一本記錄所有交易的分布式公開(kāi)賬簿,而區(qū)塊鏈中每個(gè)節(jié)點(diǎn)都是對(duì)等的。這就帶來(lái)一個(gè)問(wèn)題:誰(shuí)有權(quán)往這個(gè)賬本錄入數(shù)據(jù)?如果有好幾個(gè)節(jié)點(diǎn)同時(shí)對(duì)區(qū)塊鏈進(jìn)行數(shù)據(jù)寫(xiě)入,最終以誰(shuí)的為準(zhǔn)?這就是一個(gè)在分布式網(wǎng)絡(luò)中如何保持?jǐn)?shù)據(jù)一致性的問(wèn)題。共識(shí)就是在一個(gè)分布式的網(wǎng)絡(luò)中,讓各個(gè)參與網(wǎng)絡(luò)的節(jié)點(diǎn)達(dá)成數(shù)據(jù)上的一致性。在區(qū)塊鏈中,共識(shí)算法的作用還包括區(qū)塊生產(chǎn)、區(qū)塊驗(yàn)證以及系統(tǒng)的經(jīng)濟(jì)激勵(lì)等功能。不同的共識(shí)算法適用于不同的應(yīng)用場(chǎng)景,不同的應(yīng)用場(chǎng)景對(duì)共識(shí)算法也有不同的需求。這就要求一個(gè)區(qū)塊鏈應(yīng)用開(kāi)發(fā)平臺(tái)能夠提供不同的共識(shí)算法供開(kāi)發(fā)者進(jìn)行選擇。
EKT 主鏈采用的共識(shí)算法是DBFT,這是一種兼顧效率和去中心化的解決方案。默認(rèn)情況下,基于 EKT 生成的其他主鏈的共識(shí)機(jī)制也是 DBFT。但是不同的共識(shí)算法的適用場(chǎng)景也各有不同,而共識(shí)算法自身也在進(jìn)化,每年都有許多新的共識(shí)算法被提出。因此如果能提供一種機(jī)制,能夠 EKT 生態(tài)支持的共識(shí)算法根據(jù)技術(shù)的發(fā)展而不斷擴(kuò)展,這對(duì)基于 EKT 主鏈進(jìn)行開(kāi)發(fā)的開(kāi)發(fā)者是一個(gè)非常大的優(yōu)勢(shì)。
在項(xiàng)目初期,EKT 除了默認(rèn)提供的DBFT 共識(shí)算法以外,還會(huì)陸續(xù)支持工作量證明(POW)以及股權(quán)證明機(jī)制(POS)。 用戶(hù)在基于 EKT 主鏈的代碼部署自己的主鏈時(shí),可以選擇使用哪種共識(shí)算法。在部署完以后再去 EKT 的客戶(hù)端中進(jìn)行注冊(cè)。共識(shí)算法一旦選定就會(huì)記入 EKT 主鏈,不可更改。
EKT 多鏈技術(shù)生態(tài)是一個(gè)開(kāi)放的系統(tǒng),任何開(kāi)發(fā)者都可以向 EKT 主鏈提交自己實(shí)現(xiàn)的新的共識(shí)算法。如果用戶(hù)想要使用的共識(shí)算法暫時(shí)不被 EKT 所支持,那用戶(hù)也可以基于 EKT 開(kāi)源的代碼進(jìn)行開(kāi)發(fā),引入自己想要使用的共識(shí)算法。我們鼓勵(lì)并歡迎開(kāi)發(fā)者向 EKT 項(xiàng)目提交自己實(shí)現(xiàn)的共識(shí)算法。
四、多鏈多共識(shí)的優(yōu)勢(shì)
相比較目前大多區(qū)塊鏈應(yīng)用平臺(tái)只能提供一種默認(rèn)的共識(shí)機(jī)制,EKT 的‘一鏈一主幣,多鏈多共識(shí)“ 的機(jī)制為后來(lái)的區(qū)塊鏈項(xiàng)目開(kāi)發(fā)提供了很大的便利,可以使用于任何區(qū)塊鏈適用的應(yīng)用場(chǎng)景。 EKT 提供了一套低層的區(qū)塊鏈機(jī)制,其他的區(qū)塊鏈項(xiàng)目可以很容易的基于 EKT 的主鏈代碼部署一套自己的主鏈。在部署主鏈時(shí)可可以靈活的發(fā)行自己主鏈的代幣以及選擇共識(shí)算法。新部署的主鏈也可以加入到 EKT 多鏈技術(shù)的整個(gè)生態(tài),共享 EKT 生態(tài)的用戶(hù)資源,代幣也可以和EKT 主幣以及其他主鏈的代幣進(jìn)行交換和流通。
在多鏈多共識(shí)的機(jī)制下,EKT區(qū)塊鏈將充分利用跨鏈技術(shù)的優(yōu)勢(shì),對(duì)多條鏈的應(yīng)用場(chǎng)景進(jìn)行整合并統(tǒng)一進(jìn)行管理,形成多共識(shí)應(yīng)用場(chǎng)景生態(tài)。此項(xiàng)技術(shù)將在各大平臺(tái)領(lǐng)域都能得到充分的應(yīng)用和落地。EKT 區(qū)塊鏈的多鏈結(jié)構(gòu)能夠滿(mǎn)足應(yīng)用場(chǎng)景的使用多樣性,這增加了多功能平臺(tái)的多重整合的可能,同時(shí),多鏈結(jié)構(gòu)和跨鏈價(jià)值交換又能保持整個(gè)生態(tài)系統(tǒng)的良性運(yùn)轉(zhuǎn)。在多個(gè)代幣形成的架構(gòu)中,主鏈將維持著所有代幣的平衡和使用,使得所有代幣都能正常的運(yùn)轉(zhuǎn),帶動(dòng)子鏈生態(tài)的和諧發(fā)展。