【鏈圈知識(shí)】智能合約是什么?

合約即合同狞谱,自動(dòng)售貨機(jī)更是大家熟悉的東西,通過自動(dòng)售貨機(jī)你可以非常方便的買到水或飲料。它在我們生活中無處不在,你去超市購物雇初,超市標(biāo)出了貨物的價(jià)格善榛,你從眾多貨物中挑選中一款你認(rèn)為適合你的移盆,然后你去收銀臺(tái)付款,付款完后伤为,其實(shí)你和超市已經(jīng)形成了一種合約的存在等咒循。

大家知道嗎?一個(gè)智能合約是一套以數(shù)字形式定義的承諾(promises)绞愚,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。一旦節(jié)點(diǎn)執(zhí)行了這個(gè)代碼位衩,合約就會(huì)更新總賬(ledger)裆蒸。


以太坊聯(lián)合創(chuàng)始人Vitalik Buterin表示,很多人誤用了智能合約糖驴,智能合約的正確使用方式應(yīng)該是將其視為經(jīng)濟(jì)機(jī)制僚祷,用于制定規(guī)則,使不同的參與者可以更好地交流互動(dòng)贮缕。例如有這樣一種資金代管的想法辙谜,認(rèn)為如果雙方存在爭議,兩個(gè)人的資金都會(huì)被銷毀感昼。聽著很苛刻装哆,但它確實(shí)為當(dāng)事雙方誠實(shí)行事提供了強(qiáng)大的動(dòng)力。

  區(qū)塊鏈技術(shù)在支持可編程合約時(shí)候定嗓,還具有去中心化蜕琴、不可篡改、過程透明可追蹤等特征蜕乡,天然適合于智能合約奸绷。智能合約可以被自動(dòng)地、無需信任地和公正地執(zhí)行层玲。在合約制定号醉,履行和強(qiáng)制執(zhí)行過程中取消中間人。智能合約就像一個(gè)多米諾骨牌辛块,你需要上一個(gè)事件畔派,來執(zhí)行下一個(gè)事件。智能合約不用擔(dān)心系統(tǒng)在條件被滿足時(shí)不執(zhí)行合約润绵;然后就是去中心的不能篡改和全網(wǎng)備份线椰,完備的記錄完全可以支持支持事后的審計(jì)。

  從用戶角度來講尘盼,智能合約通常被認(rèn)為是一個(gè)自動(dòng)擔(dān)保賬戶憨愉,例如烦绳,當(dāng)特定的條件滿足時(shí),程序就會(huì)釋放和轉(zhuǎn)移資金配紫。

  從技術(shù)角度來講径密,智能合約是架設(shè)在區(qū)塊鏈上。從而可以在其上面運(yùn)行特定的合約程序躺孝。智能合約不依賴某個(gè)特定的硬件設(shè)備享扔。

條件

  智能合約就是有幾個(gè)條件:

  1.必須有價(jià)值符號(hào)參與。

  2.資產(chǎn)必須數(shù)字化植袍,而且有唯一的映射關(guān)系惧眠。

  3.資產(chǎn)必須聯(lián)網(wǎng)且絕對(duì)信任某個(gè)數(shù)據(jù)庫。

  總之于个,智能合約它必須是智能的氛魁,自動(dòng)化的,不需要人來執(zhí)行的厅篓,合約的執(zhí)行是自動(dòng)觸發(fā)的呆盖。

特征

  無需信任

  無需信任是智能合約的關(guān)鍵特征。智能合約其不同之處在于合約的所有條款都是由計(jì)算機(jī)代碼評(píng)估和執(zhí)行的贷笛,這使得它無需任何信用背書。

  圖靈完備性

  代碼的執(zhí)行是自動(dòng)的:要么成功執(zhí)行宙项,或者所有的狀態(tài)變化都撤消---在區(qū)塊鏈環(huán)境中乏苦,這尤為重要,因?yàn)闆]有辦法來撤消執(zhí)行錯(cuò)誤所帶來的不好的后果尤筐。

  2009年汇荐,比特幣就開始用Script的語言來擬定智能合約。事實(shí)上盆繁,智能合約追溯到1995年掀淘,這樣看要早于比特幣。比特幣的智能合約語言同以太坊版本的區(qū)別在于以太坊的語言具有圖靈完備性油昂。 以太坊的Solidity語言允許更復(fù)雜的合約革娄,其代價(jià)是會(huì)增加分析難度,當(dāng)然安全度也受到了考驗(yàn)冕碟。比特幣粗暴德放棄圖靈完備性拦惋。 執(zhí)行層面更容易列舉和檢查。

  以太坊DAO事件導(dǎo)致了區(qū)塊崩潰----正在利用智能合約中的瑕疵獲利的人是存在的安寺。區(qū)塊鏈安全公司PeckShield近日發(fā)現(xiàn)一種新型的智能合約安全漏洞evilReflex厕妖,攻擊者可通過公開的接口竊取合約地址賬戶中存放的Token。

智能合約工作原理

  開發(fā)人員會(huì)為智能合約撰寫代碼挑庶。智能合約可用于交易和(或)兩方/多方之間的任何交換行為言秸。一旦編碼完成软能,智能合約就會(huì)被上傳到區(qū)塊鏈網(wǎng)絡(luò)上,即它們被發(fā)送到所有連接到網(wǎng)絡(luò)的設(shè)備上举畸。然后更新數(shù)據(jù)庫以記錄合約的執(zhí)行情況查排,并監(jiān)督合約的條款以檢查合規(guī)性。這樣一來俱恶,單獨(dú)一方就無法操縱合約雹嗦,因?yàn)閷?duì)智能合約執(zhí)行的控制權(quán)不在任何單獨(dú)一方的手中。

場景

數(shù)字身份合是;

允許用戶賬戶信息與企業(yè)共享了罪,用戶可以有決定權(quán)彤灶。

證券械馆;

簡化資本表管理涛舍,能夠繞開證券保管鏈中的中間人匣沼,便于自動(dòng)支付股息拣展,股票分割和債務(wù)管理票编,同時(shí)陷遮,降低了操作風(fēng)險(xiǎn)挠乳。

抵押蛾茉;

智能合約鏈接各方來完成合同的執(zhí)行讼呢。

貿(mào)易金融;

自動(dòng)化信用證和貿(mào)易支付流程谦炬,提高各方的融資效率悦屏。

智能合約面臨的問題

  智能合約目前還處在初級(jí)階段,尚未有任何實(shí)質(zhì)進(jìn)展键思。關(guān)鍵問題是信任度的問題础爬。

? ? ? ? 合約可能有漏洞,能夠轉(zhuǎn)移證券吼鳞,但卻無法轉(zhuǎn)移貨幣看蚜。

  在現(xiàn)實(shí)生活中,這些事情可以通過中心化的系統(tǒng)來撤消赔桌。但是如果是去中心化的系統(tǒng)供炎,則只能自己承擔(dān)風(fēng)險(xiǎn)。

  同樣地纬乍,也有欺詐的問題:某人需要設(shè)計(jì)(編程)合約碱茁,在合約設(shè)計(jì)時(shí)就會(huì)需要確保沒有欺詐的問題。

? ? ? ? 至少參與者要確保:

  高層級(jí)(例如Solidity)的代碼中需要充分描述合約參與方的目的

  代碼中的字節(jié)碼實(shí)際上相當(dāng)于高層級(jí)的代碼仿贬,需要在進(jìn)入合約之前進(jìn)行審核纽竣。

井通區(qū)塊鏈智能合約的基礎(chǔ)

? ? ? ?國際唯一分層(5層)的區(qū)塊鏈底層技術(shù)


  對(duì)應(yīng)于TCP/IP網(wǎng)絡(luò)協(xié)議架構(gòu)分層,井通區(qū)塊鏈信任棧通過5個(gè)層次:網(wǎng)絡(luò)層、區(qū)塊層蜓氨、數(shù)據(jù)層聋袋、價(jià)值層以及合約層,保障了區(qū)塊鏈可信任的特點(diǎn)在整個(gè)架構(gòu)里各層次的覆蓋穴吹,從底層有效保護(hù)數(shù)據(jù)安全幽勒,每一個(gè)層次都可以為一定的應(yīng)用服務(wù),滿足不同的應(yīng)用的需求港令,為個(gè)人或企業(yè)快速安全的實(shí)現(xiàn)各種應(yīng)用場景和商業(yè)模式提供保障啥容。區(qū)塊鏈的發(fā)展成熟是也是多層次的發(fā)展成熟,不是一個(gè)單一的成熟路徑顷霹。區(qū)塊鏈本身基于分層設(shè)計(jì)咪惠,每一個(gè)層次的成熟度不一樣,可以根據(jù)每個(gè)層次的成熟情況淋淀,推出相應(yīng)的區(qū)塊鏈產(chǎn)品遥昧。

? ? ? ? 底層平臺(tái)分層設(shè)計(jì)

  對(duì)應(yīng)于TCP/IP網(wǎng)絡(luò)協(xié)議架構(gòu)分層,將區(qū)塊鏈底層平臺(tái)分為網(wǎng)絡(luò)層朵纷,數(shù)據(jù)層炭臭,價(jià)值層,合約層袍辞,各層相互協(xié)同鞋仍。

  TX層--底層系統(tǒng)稱為TX層,負(fù)責(zé)處理最基本的TX搅吁,合約層:在TX層之上增加一個(gè)合約層凿试,負(fù)責(zé)處理合約。

  合約要素分層管理:合約的要素(code似芝,state,storage,transaction)transaction的執(zhí)行下傳到TX層板甘,其他部分的執(zhí)行在合約層實(shí)現(xiàn)党瓮。合約的執(zhí)行速度和TX層的ledgerclose的速度去耦合。合約的狀態(tài)變化可以以合約節(jié)點(diǎn)的共識(shí)速度完成盐类。

  共識(shí)節(jié)點(diǎn)中引入分片技術(shù)

  對(duì)每個(gè)交易自動(dòng)隨機(jī)選擇處理此交易的節(jié)點(diǎn)寞奸。利用了眾多節(jié)點(diǎn)的處理能力,同時(shí)維持足夠的容錯(cuò)空間;“規(guī)劃”網(wǎng)絡(luò)間信息流量在跳,提高網(wǎng)絡(luò)的整體效率枪萄。

  用戶可以標(biāo)識(shí)需要的合約節(jié)點(diǎn)個(gè)數(shù)和共識(shí)達(dá)成的條件。創(chuàng)建合約時(shí)猫妙,一方面用戶可以靈活控制付出的花費(fèi)和可靠性之間的平衡瓷翻,另一方面使得合約層能夠更加高效的處理更多的合約。

  基于智能合約的快速交易可以看成是一個(gè)分片技術(shù)的特例。從更通用的概念講齐帚,對(duì)智能合約執(zhí)行節(jié)點(diǎn)的選擇性執(zhí)行妒牙,就是一個(gè)分片技術(shù)的實(shí)現(xiàn)。

  除以上所述的快速交易外对妄,如果多個(gè)智能合約節(jié)點(diǎn)之間通過預(yù)定義的協(xié)議(BFT)來實(shí)現(xiàn)之間的信息同步湘今,那么他們之間就實(shí)現(xiàn)了一個(gè)BFT的共識(shí)。當(dāng)然剪菱,采用這樣的公識(shí)之后摩瞎,對(duì)智能合約的處理效率會(huì)降低,但是比通常的全部節(jié)點(diǎn)同時(shí)處理一個(gè)合約的情況孝常,仍然大大提高了旗们。

  共識(shí)節(jié)點(diǎn)外概率抽樣

  保障合約系統(tǒng)的安全性。

井通區(qū)塊鏈采用自主產(chǎn)權(quán)的智能合約體系

  A,自有知識(shí)產(chǎn)權(quán)的具備高效自適應(yīng)特征的隨機(jī)BFT共識(shí)算法保證交易的連續(xù)性和可溯源性茫因。

  B,井通區(qū)塊鏈實(shí)現(xiàn)全球首個(gè)異步合約調(diào)用以及亞秒級(jí)拜占庭容錯(cuò)的快速合約調(diào)用,不會(huì)阻塞系統(tǒng)共識(shí)和其他創(chuàng)異步調(diào)用合約機(jī)制蚪拦。

  C,支持智能合約的授權(quán)訪問控制,滿足不同應(yīng)用的數(shù)據(jù)安全性要求冻押。

  D,設(shè)計(jì)自動(dòng)觸發(fā)的合約執(zhí)行驰贷,讓合約具有更強(qiáng)大的應(yīng)用價(jià)值,提供真實(shí)的智能合約洛巢。

  E,井通智能合約具有類似于閃電網(wǎng)絡(luò)的快速秒級(jí)確認(rèn)功能括袒。

井通公鏈智能合約創(chuàng)新:分層實(shí)現(xiàn)+異步調(diào)用

  智能合約指合約的編寫可以通過代碼的形式預(yù)先編寫。一旦代碼運(yùn)行稿茉,執(zhí)行無法干預(yù)锹锰。為了實(shí)現(xiàn)智能合約的功能,通常需要在共識(shí)機(jī)制里面添加支持漓库。一般實(shí)現(xiàn)的方式可以是腳本語言或者是圖靈完備的程序語言恃慧。后者通常需要單獨(dú)的虛擬機(jī)執(zhí)行來隔絕與其他模塊的相關(guān)性。以太坊主要特色是支持圖靈完備的智能合約渺蒿。它采用了POW的共識(shí)方式痢士,加快了區(qū)塊生成的速度,并通過vm來執(zhí)行合約茂装,使得合約的執(zhí)行也能修改共識(shí)的輸出怠蹂。

  a) 我們采用TX驅(qū)動(dòng)的做法,合約的創(chuàng)建少态,合約功能的調(diào)用城侧,都由TX發(fā)起,如果執(zhí)行的過程中需要修改用戶的余額彼妻,則會(huì)發(fā)起交易并發(fā)到下層的TX嫌佑,所有這些交易都將在TX執(zhí)行驗(yàn)證并記錄在底層的區(qū)塊鏈中

  b)TX層的交易不受合約的影響

  c)TX層的跟合約相關(guān)的交易以單獨(dú)的TX的方式保存合約的代碼和狀態(tài)豆茫,合約的具體狀態(tài)對(duì)應(yīng)于對(duì)合約相關(guān)功能的調(diào)用及參數(shù),TX層的狀態(tài)hash保證信息的一致性歧强。

  d)合約層的執(zhí)行由多個(gè)合約節(jié)點(diǎn)contractvalidator執(zhí)行澜薄,以確定性的方式分別執(zhí)行并進(jìn)行共識(shí)

  e)每個(gè)合約節(jié)點(diǎn)采用VM執(zhí)行代碼。

  f)合約節(jié)點(diǎn)保存合約執(zhí)行的storage在這樣的分層設(shè)計(jì)下摊册,我們進(jìn)一步優(yōu)化了井通系統(tǒng)肤京,使得合約的調(diào)用采用異步的方式,在此基礎(chǔ)上茅特,實(shí)現(xiàn)合約的快速調(diào)用和返回忘分,同時(shí)支持用戶選擇分片的方式來執(zhí)行智能合約,不需要所有的節(jié)點(diǎn)都做同樣的事情白修,提高了整個(gè)系統(tǒng)的處理能力妒峦。

智能合約的異步調(diào)用

  現(xiàn)有的智能合約的執(zhí)行采用同步方式,利用交易觸發(fā)或者自動(dòng)觸發(fā)合約調(diào)用兵睛,合約在具體執(zhí)行的時(shí)候肯骇,區(qū)塊鏈的共識(shí)機(jī)制必須等待合約執(zhí)行完,返回結(jié)果后才能繼續(xù)操作祖很,從而完成對(duì)當(dāng)前區(qū)塊的共識(shí)笛丙。

  這樣的智能合約執(zhí)行方式具有以下缺陷:

  (1)合約執(zhí)行的速度嚴(yán)重影響區(qū)塊生成的時(shí)間:

  因?yàn)閰^(qū)塊共識(shí)依賴于合約執(zhí)行的結(jié)果,每個(gè)節(jié)點(diǎn)必須對(duì)合約的結(jié)果的一致性達(dá)成共識(shí)假颇,因此胚鸯,合約的執(zhí)行速度的快慢,直接影響區(qū)塊后續(xù)操作笨鸡,導(dǎo)致區(qū)塊生成時(shí)間的延遲姜钳。

  (2)合約執(zhí)行的速度嚴(yán)重影響區(qū)塊鏈能夠支持的合約執(zhí)行并發(fā)量:

  在區(qū)塊鏈生成的頻率通常大致固定的情況下,在同樣的時(shí)間段內(nèi)形耗,一個(gè)合約執(zhí)行的快慢哥桥,將直接影響到同區(qū)塊其他合約的執(zhí)行,極端情況下激涤,一個(gè)惡意的合約可能導(dǎo)致系統(tǒng)無法處理其他的合約泰讽,導(dǎo)致處理合約的并發(fā)量大大降低。

  (3)合約執(zhí)行過程中的容錯(cuò)能力受限:

  由于采用同步執(zhí)行的方式昔期,合約執(zhí)行時(shí)針對(duì)各種錯(cuò)誤情況的處理需要全面考慮,并且實(shí)現(xiàn)對(duì)各種時(shí)間敏感的操作的快速處理佛玄,比如需要對(duì)各種操作的超時(shí)情況作相應(yīng)的處理硼一。

  一些現(xiàn)有的解決方案,如以太坊梦抢,采用GAS的方式般贼,對(duì)每個(gè)合約進(jìn)行運(yùn)算量的估算,并且利用一個(gè)系統(tǒng)總GAS量來控制當(dāng)前區(qū)塊能支持的總運(yùn)算量,來保證共識(shí)的按時(shí)完成哼蛆。但是系統(tǒng)能支持的合約總數(shù)受到這個(gè)總量GAS的限制蕊梧,如果合約的代碼越來越復(fù)雜,整個(gè)系統(tǒng)能支持的合約數(shù)就越來越少;另外腮介,以太坊共識(shí)時(shí)間有限肥矢,GAS的最高值并不能大幅增加。

跨區(qū)塊異步調(diào)用合約系統(tǒng)

  目標(biāo):

  該系統(tǒng)的區(qū)塊共識(shí)不依賴于合約執(zhí)行結(jié)果叠洗,可提高合約執(zhí)行的并發(fā)量以及區(qū)塊能支持的合約數(shù)量甘改,提高系統(tǒng)容錯(cuò)能力。

  優(yōu)勢

  井通的區(qū)塊鏈系統(tǒng)以異步調(diào)用作為后臺(tái)核心技術(shù)灭抑,與現(xiàn)有智能合約執(zhí)行技術(shù)相比具有以下優(yōu)勢:

  (1) 隔絕了合約執(zhí)行和系統(tǒng)共識(shí)單元十艾,合約的執(zhí)行可以在遠(yuǎn)端,使得合約的執(zhí)行不再占有系統(tǒng)共識(shí)的資源;

  (2) 合約執(zhí)行單元和系統(tǒng)共識(shí)單元的去耦合腾节,使得合約執(zhí)行模塊和共識(shí)模塊相對(duì)獨(dú)立忘嫉,支持熱插拔;

  (3)在共識(shí)驗(yàn)證單元和合約執(zhí)行單元之間設(shè)立合約執(zhí)行緩存單元,在整個(gè)合約執(zhí)行過程中創(chuàng)造性地采用了異步調(diào)用執(zhí)行方式案腺,使得合約的調(diào)用和執(zhí)行結(jié)果在跨區(qū)(區(qū)塊i和區(qū)塊(i+k)之間分別實(shí)現(xiàn)庆冕,同時(shí)又能保證各個(gè)驗(yàn)證節(jié)點(diǎn)之間完成共識(shí);該種合約異25步調(diào)用執(zhí)行模式提高了合約執(zhí)行的并發(fā)量,共識(shí)的過程無需要等待合約的執(zhí)行結(jié)果救湖,大大提高了區(qū)塊能支持的合約數(shù)量愧杯。

  (4)高了整個(gè)系統(tǒng)的容錯(cuò)能力,一方面系統(tǒng)可以設(shè)置合適的超時(shí)處理機(jī)制來處理合約延時(shí)的情況鞋既,另一方面力九,用戶可以在合約調(diào)用中配置合適的k值來保證長時(shí)執(zhí)行的合約得到正確處理。


  單元

  井通的異步調(diào)用合約系統(tǒng)邑闺,包括以下單元:

  1. 分布式系統(tǒng)驗(yàn)證單元:包括一個(gè)或多個(gè)服務(wù)節(jié)點(diǎn)以及若干個(gè)驗(yàn)證節(jié)點(diǎn)跌前,用于接收用戶遞交的交易請(qǐng)求集合{TX},包括合約調(diào)用請(qǐng)求TX和支付請(qǐng)求TX;

  2. 2.分布式合約執(zhí)行單元:位于本地或遠(yuǎn)端的分布式系統(tǒng)驗(yàn)證單元陡舅,與分布式系統(tǒng)驗(yàn)證單元之間通過預(yù)定義協(xié)議進(jìn)行通訊抵乓,用以獲取合約執(zhí)行所需信息,并在合約執(zhí)行完畢后靶衍,將結(jié)果返回至驗(yàn)證節(jié)點(diǎn);

  3. 合約執(zhí)行緩存單元:包括用于接收來自驗(yàn)證節(jié)點(diǎn)的合約調(diào)用請(qǐng)求灾炭,發(fā)送合約調(diào)用請(qǐng)求至分布式合約執(zhí)行單元,接收合約執(zhí)行結(jié)果颅眶,返回當(dāng)前合約執(zhí)行狀態(tài)至驗(yàn)證節(jié)點(diǎn)蜈出,以實(shí)現(xiàn)合約的異步調(diào)用;

  實(shí)現(xiàn)方法

  服務(wù)節(jié)點(diǎn)接收用戶遞交的交易請(qǐng)求TX,每個(gè)驗(yàn)證節(jié)點(diǎn)收集上述TX并匯集成交易請(qǐng)求集合{TX}i;

  1. {TX}i中包含的合約調(diào)用請(qǐng)求發(fā)送至合約執(zhí)行緩存單元涛酗,合約執(zhí)行緩存單元在收到上述請(qǐng)求后立即返回當(dāng)前合約執(zhí)行狀態(tài);

  2. 在所有驗(yàn)證節(jié)點(diǎn)收到{TX}i后铡原,{TX}i在所有驗(yàn)證節(jié)點(diǎn)完成共識(shí)偷厦,區(qū)塊i生成,驗(yàn)證節(jié)點(diǎn)對(duì)共識(shí)后的{TX}i進(jìn)行驗(yàn)證燕刻,驗(yàn)證后的狀態(tài)寫入?yún)^(qū)塊i;同時(shí)每個(gè)驗(yàn)證節(jié)點(diǎn)創(chuàng)建一個(gè)查詢合約TXq只泼,并將其加入到區(qū)塊(i+k)的交易請(qǐng)求集合{TX}(i+k)中;

  3. 在進(jìn)行1~2時(shí),合約執(zhí)行緩存單元采用異步調(diào)用的方式將合約調(diào)用請(qǐng)求發(fā)送至分布式合約執(zhí)行單元卵洗,于后臺(tái)執(zhí)行合約请唱,執(zhí)行完畢后,合約執(zhí)行緩存單元獲得合約執(zhí)行的最后結(jié)果忌怎,等待處理;

  4. 區(qū)塊(i+k)處理周期開始籍滴,{TX}(i+k)中包含的合約調(diào)用請(qǐng)求發(fā)送至合約執(zhí)行緩存單元,合約執(zhí)行緩存單元立即返回當(dāng)前合約執(zhí)行狀態(tài)榴啸,同時(shí)孽惰,驗(yàn)證節(jié)點(diǎn)從查詢合約TXq中取出合約相關(guān)信息,并向合約執(zhí)行緩存單元發(fā)出查詢請(qǐng)求鸥印,合約執(zhí)行緩存單元向驗(yàn)證節(jié)點(diǎn)返回區(qū)塊i的合約調(diào)用請(qǐng)求的執(zhí)行結(jié)果勋功,并更新查詢合約TXq;

  5. 在所有驗(yàn)證節(jié)點(diǎn)收到{TX}(i+k)后,更新后的查詢合約TXq和{TX}(i+k)合在一起形成一個(gè)新的集合库说,在所有驗(yàn)證節(jié)點(diǎn)完成共識(shí)狂鞋,區(qū)塊(i+k)生成,驗(yàn)證節(jié)點(diǎn)對(duì)共識(shí)過的TX進(jìn)行驗(yàn)證潜的,驗(yàn)證后的狀態(tài)寫入?yún)^(qū)塊(i+k)骚揍。

基于智能合約的快速交易

  缺陷

  現(xiàn)有基于區(qū)塊鏈的分布式交易方式因區(qū)塊鏈共識(shí)方式、區(qū)塊鏈生成時(shí)間啰挪、區(qū)塊的生成時(shí)間信不、區(qū)塊的大小而受到很大的限制。

  基于區(qū)塊鏈的交易速度一般都在秒級(jí)亡呵、甚至分鐘級(jí)以上下硕,此外梭姓,還存在如下缺陷:

  1.交易請(qǐng)求在分布式系統(tǒng)中的傳播過程存在延遲嫩码,從某個(gè)發(fā)起節(jié)點(diǎn)到信息傳播至其他所有節(jié)點(diǎn)之間存在信息延遲;2.共識(shí)過程存在時(shí)間延遲:數(shù)據(jù)的更新必須在共識(shí)完成后才能寫入賬本中誉尖,這種寫入是間歇性的没咙,每個(gè)驗(yàn)證周期更新一次墙牌,用戶對(duì)數(shù)據(jù)更新的請(qǐng)求必須在更新周期之后才能得到響應(yīng)并返回;3.現(xiàn)有的基于智能合約不僅受到以上兩點(diǎn)的影響虽风,還受到合約執(zhí)行延遲的影響厂抖。

  一些現(xiàn)有的解決方案耕蝉,如閃電網(wǎng)絡(luò)谈为、比特幣網(wǎng)絡(luò)采用通道的辦法來加快對(duì)交易請(qǐng)求的處理秕脓,但上述方案的協(xié)議或者比較復(fù)雜拣挪,或者采用了非拜占庭容錯(cuò)的方式,限制了其更廣泛的應(yīng)用辙喂。

  井通公鏈方案:基于區(qū)塊鏈合約的快速交易系統(tǒng)

  在異步調(diào)用合約的基礎(chǔ)上渐排,對(duì)合約節(jié)點(diǎn)分成兩種:普通合約節(jié)點(diǎn)和快速交易合約節(jié)點(diǎn)。普通交易合約節(jié)點(diǎn)與驗(yàn)證節(jié)點(diǎn)之間通過預(yù)定義協(xié)議進(jìn)行通訊驮俗,獲取合約執(zhí)行所需信息垒拢,合約執(zhí)行完畢后脖捻,將結(jié)果返回至驗(yàn)證節(jié)點(diǎn);快速交易合約節(jié)點(diǎn)執(zhí)行快速交易請(qǐng)求并將執(zhí)行結(jié)果返回至合約接入服務(wù)器。

  目標(biāo)

  井通系統(tǒng)分為獨(dú)立的合約層和底層共識(shí)層抱完,快速交易對(duì)合約層發(fā)起調(diào)用叁征,在合約層實(shí)現(xiàn)快速交易,其快速執(zhí)行結(jié)果周期性或非周期性返回底層共識(shí)層進(jìn)行驗(yàn)證確認(rèn)并寫入?yún)^(qū)塊鏈逛薇,使得交易的執(zhí)行28不受區(qū)塊關(guān)閉的時(shí)間和區(qū)塊大小的影響捺疼,也不受分布式網(wǎng)絡(luò)傳遞的影響,同時(shí)具備分布式區(qū)塊鏈固有的優(yōu)點(diǎn)永罚,克服了現(xiàn)有區(qū)塊鏈交易方式在交易傳播啤呼、共識(shí)過程以及和合約執(zhí)行過程中存在的延遲現(xiàn)象,以接近實(shí)時(shí)的方式實(shí)現(xiàn)對(duì)交易的快速支持呢袱,維持了交易系統(tǒng)的拜占庭容錯(cuò)性官扣,可實(shí)現(xiàn)對(duì)交易細(xì)節(jié)的隱藏和加密,同時(shí)保持了分布式系統(tǒng)的數(shù)據(jù)的一致性和完整性羞福。

  實(shí)現(xiàn)方法

  快速調(diào)用的具體實(shí)現(xiàn)方法如下:



 (1)快速交易初始化:

  兩個(gè)或多個(gè)需實(shí)現(xiàn)快速交易的用戶之間達(dá)成一致并創(chuàng)建一個(gè)合約惕蹄,發(fā)起一個(gè)快速交易初始化請(qǐng)求tx,合約接入服務(wù)器經(jīng)服務(wù)節(jié)點(diǎn)將該tx發(fā)送至驗(yàn)證節(jié)點(diǎn)形成交易集,驗(yàn)證節(jié)點(diǎn)對(duì)該交易集進(jìn)行共識(shí);完成共識(shí)后卖陵,驗(yàn)證節(jié)點(diǎn)將該交易集發(fā)送所有合約節(jié)點(diǎn)遭顶,依據(jù)預(yù)定義協(xié)議通過分布式隨機(jī)算法在其中隨機(jī)且確定性地選取一個(gè)快速交易合約節(jié)點(diǎn);

  (2)快速交易實(shí)現(xiàn):

  用戶發(fā)起快速交易執(zhí)行請(qǐng)求,合約接入服務(wù)器經(jīng)服務(wù)節(jié)點(diǎn)將該請(qǐng)求發(fā)送至快速交易合約節(jié)點(diǎn)泪蔫,于該節(jié)點(diǎn)執(zhí)行交易請(qǐng)求棒旗,直接返回快27速交易結(jié)果至合約接入服務(wù)器,同時(shí)該服務(wù)器記錄交易狀態(tài)撩荣,并保存自上一次確認(rèn)后的所有快速交易歷史;該快速交易合約節(jié)點(diǎn)的交易執(zhí)行方式可以通過非對(duì)稱加密方式或者其他方式(例如對(duì)稱加密方式)運(yùn)行铣揉,使得合約/交易的執(zhí)行是保密的,僅對(duì)用戶和當(dāng)前合約節(jié)點(diǎn)可見餐曹。

  用戶可通過合約接入服務(wù)器查詢交易的歷史記錄;

  (3)快速交易歷史的分布式確認(rèn):

  用戶可在各方簽名驗(yàn)證的情況下老速,對(duì)可未確認(rèn)的交易主動(dòng)周期(比如10分鐘、1天凸主、1周)或非周期性發(fā)起確認(rèn)交易請(qǐng)求tx,也可以根據(jù)實(shí)現(xiàn)定義的合約定時(shí)對(duì)發(fā)起確認(rèn)交易請(qǐng)求tx;發(fā)起的確認(rèn)交易請(qǐng)求tx與上述未確認(rèn)的交易歷史合并额湘,產(chǎn)生一個(gè)自上次確認(rèn)后到當(dāng)前狀態(tài)的變換交易;合約接入服務(wù)器經(jīng)服務(wù)節(jié)點(diǎn)將該變換交易發(fā)送至驗(yàn)證節(jié)點(diǎn)卿吐,驗(yàn)證節(jié)點(diǎn)對(duì)交易集進(jìn)行共識(shí),再將其發(fā)送至所有合約節(jié)點(diǎn)進(jìn)行合約執(zhí)行锋华,合約執(zhí)行結(jié)果經(jīng)驗(yàn)證節(jié)點(diǎn)驗(yàn)證并確認(rèn)嗡官,與其他交易信息(普通交易或普通合約執(zhí)行信息)一起寫入?yún)^(qū)塊鏈,同時(shí)該合約執(zhí)行結(jié)果返回給客戶毯焕,通過共識(shí)節(jié)點(diǎn)對(duì)歷史交易記錄進(jìn)行確認(rèn)衍腥,從而實(shí)現(xiàn)交易確認(rèn)的拜占庭容錯(cuò)。

  當(dāng)用戶重復(fù)步驟(2)纳猫,選取下一個(gè)快速交易合約節(jié)點(diǎn)后婆咸,原來的快速交易合約節(jié)點(diǎn)的交易歷史將被清空。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末芜辕,一起剝皮案震驚了整個(gè)濱河市尚骄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侵续,老刑警劉巖倔丈,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異状蜗,居然都是意外死亡需五,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門轧坎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宏邮,“玉大人,你說我怎么就攤上這事∈癫” “怎么了边琉?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長记劝。 經(jīng)常有香客問我变姨,道長,這世上最難降的妖魔是什么厌丑? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任定欧,我火速辦了婚禮,結(jié)果婚禮上怒竿,老公的妹妹穿的比我還像新娘砍鸠。我一直安慰自己,他們只是感情好耕驰,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布爷辱。 她就那樣靜靜地躺著,像睡著了一般朦肘。 火紅的嫁衣襯著肌膚如雪饭弓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天媒抠,我揣著相機(jī)與錄音弟断,去河邊找鬼。 笑死趴生,一個(gè)胖子當(dāng)著我的面吹牛阀趴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苍匆,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼刘急,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了浸踩?” 一聲冷哼從身側(cè)響起排霉,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎民轴,沒想到半個(gè)月后攻柠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡后裸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年瑰钮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片微驶。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浪谴,死狀恐怖开睡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苟耻,我是刑警寧澤篇恒,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站凶杖,受9級(jí)特大地震影響胁艰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜智蝠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一腾么、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧杈湾,春花似錦解虱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拖陆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留署驻,地道東北人奋献。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像旺上,于是被迫代替她去往敵國和親瓶蚂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容