智能合約將如何在Insolar平臺(tái)上實(shí)施
智能合約已被視為引領(lǐng)未來(lái)的交易技術(shù),但它們對(duì)區(qū)塊鏈有何價(jià)值,以及它們?nèi)绾卧贗nsolar平臺(tái)上實(shí)施?
什么是智能合約?
智能合約是存儲(chǔ)在區(qū)塊鏈上的代碼,在執(zhí)行時(shí)可以改變其狀態(tài)并將結(jié)果存儲(chǔ)到區(qū)塊鏈中。 執(zhí)行可以由外部事件或另一個(gè)智能合約觸發(fā),稱為“呼叫”。 因此,智能合約可以被視為用戶呼叫的程序或服務(wù),以便與智能合約所代表的信息或能力一起操作。您可能已經(jīng)從上面的解釋中已經(jīng)意識(shí)到,如果智能合約可以“隨時(shí)隨地”添加到區(qū)塊鏈中,那么區(qū)塊鏈可以實(shí)現(xiàn)擴(kuò)展和定制以提供服務(wù)并進(jìn)行以前不能實(shí)現(xiàn)的操作。 但在我們開(kāi)始研究像Insolar區(qū)塊鏈那樣的可升級(jí)智能合約的可能性之前,讓我們來(lái)看看前幾代的智能合約。
智能合約的演變
事實(shí)上,正如任何其他區(qū)塊鏈一樣,比特幣也有兩種形式的智能合約:(1)內(nèi)置邏輯,支持地址和交易的核心功能,(2)交易的特殊腳本,指定交易 可以添加到比特幣區(qū)塊鏈。
隨著以太坊區(qū)塊鏈的出現(xiàn),智能合約的展現(xiàn)出另一個(gè)方面:區(qū)塊鏈網(wǎng)絡(luò)的行為和功能不受核心區(qū)塊鏈開(kāi)發(fā)人員的限制,并且可以由使用用戶和社區(qū)添加和使用 新的智能合約。
以太坊的出現(xiàn)是一場(chǎng)革命,它引發(fā)了以太坊為中心的的許多發(fā)展。 除了揭示以太坊開(kāi)發(fā)人員采用的原始方法的各種限制。例如保存代碼與數(shù)據(jù),復(fù)制代碼,使用非行業(yè)標(biāo)準(zhǔn),新虛擬機(jī)和語(yǔ)言等。
如何存儲(chǔ)每個(gè)數(shù)據(jù)更改的完整代碼?
隨著更多交易的執(zhí)行,流行的合約分類賬不斷增長(zhǎng),這使得與用戶合作成本提高。 這是因?yàn)楦嗟拇鎯?chǔ)空間成本更高,并且這些成本以合同執(zhí)行的價(jià)格傳遞給最終用戶。 此外,也存在用戶不需要各個(gè)方面的代碼,但是依然為它占用的存儲(chǔ)空間付費(fèi)。
雖然可以解決這些技術(shù)方面問(wèn)題,但還有一些其他設(shè)計(jì)決策使得類似以太坊的智能合約解決方案的實(shí)際應(yīng)用對(duì)于全面業(yè)務(wù)實(shí)施而言是有問(wèn)題的。
例如:如果您的智能合約呼叫其他人的智能合約,您將對(duì)由于呼叫而發(fā)生的任何更改承擔(dān)全部責(zé)任,包括所有已產(chǎn)生的費(fèi)用,無(wú)論這些費(fèi)用是由于故障還是錯(cuò)誤引起的。 這意味著用戶需要完全理解并對(duì)其所有操作負(fù)責(zé)。 從技術(shù)角度來(lái)看,這種方法清晰簡(jiǎn)單,但與我們?nèi)粘I詈蜆I(yè)務(wù)中的服務(wù)式方法完全相反。 當(dāng)有人訂購(gòu)比薩餅時(shí)- 比薩餅的價(jià)格是在交付時(shí)支付的,并且沒(méi)有必要了解整個(gè)生產(chǎn)周期,從意大利的番茄種植開(kāi)始到最后的制作和工作時(shí)間政策到最后的交貨快遞。
這些問(wèn)題是我們?cè)趧?chuàng)建Insolar區(qū)塊鏈平臺(tái)時(shí)已經(jīng)進(jìn)行了考慮
Insolar的智能合約
Insolar平臺(tái)為智能合約提供了一系列可在不同情況下實(shí)現(xiàn)高效使用的獨(dú)特功能。
首先,Insolar將智能合約視為“黑匣子”:合約不需要知道彼此的內(nèi)容,除非他們互相通訊。 智能合約使用特定版本的代碼,在使用中更新?tīng)顟B(tài),并且可以接收和生成呼叫,而其代碼和所有傳入和傳出信息都存儲(chǔ)在區(qū)塊鏈中。 這使Insolar能夠使用不同的虛擬機(jī)來(lái)運(yùn)行合同。 此外,對(duì)智能合約行為的再現(xiàn)性有嚴(yán)格的要求,在每次通訊(交易)的驗(yàn)證過(guò)程中都要檢查。
當(dāng)然,除非使用特殊類型的虛擬機(jī),否則這不能提供100%的再現(xiàn)性保證,但它可以使用戶和開(kāi)發(fā)人員能夠選擇最適合他們的方式。
此外,Insolar提供了一些不同的機(jī)制來(lái)幫助開(kāi)發(fā)人員和用戶輕松定制智能合約以滿足他們的需求:
●使用域的分層治理- 可以在域(特殊合同)中部署合同,并通過(guò)代碼版本、訪問(wèn)策略、共識(shí)規(guī)則和存儲(chǔ)要求接受對(duì)域的控制。
●智能合約的組成- 合同可以包括其他合同以重用其功能,但在某種程度上限制對(duì)它們的外部訪問(wèn)。
●復(fù)合合同的授權(quán)- 當(dāng)智能合約允許將某些功能動(dòng)態(tài)委派給嵌入式合同時(shí),將使用組合的高級(jí)版本,這樣可以動(dòng)態(tài)升級(jí)現(xiàn)有合同的功能而無(wú)需更改代碼,同時(shí)可以包含其他合同。
Insolar的目標(biāo)是建立一個(gè)智能平臺(tái),使一切都是依照合約。 這意味著從內(nèi)置函數(shù)到平臺(tái)行為擴(kuò)展的所有內(nèi)容都可以作為契約訪問(wèn)和組織,具有相同的尋址和調(diào)用方案。 甚至外部集成也表示為特殊的智能合約,它聲明了傳入和傳出外部調(diào)用的API 。
Insolar地址穩(wěn)定
每個(gè)合同都保存在分類帳中并獲得自己的地址,該地址在整個(gè)周期內(nèi)都不會(huì)更改,并且由創(chuàng)建記錄的地址定義。 智能合約狀態(tài)的每次更改也會(huì)獲得一個(gè)地址,但這些不被視為合同地址。
正如標(biāo)準(zhǔn)合同關(guān)系一樣,各方不愿向公眾披露所有細(xì)節(jié)。 因此,Insolar構(gòu)建了其平臺(tái),以便智能合約代碼和數(shù)據(jù)僅被披露給分配用于執(zhí)行合同實(shí)例的節(jié)點(diǎn)。
可升級(jí)的智能合約
我們并不是生活在一個(gè)完美的世界中:正如立法需要隨著時(shí)間的推移而修改或者法律中的錯(cuò)誤被揭露,因此需要更新智能合同代碼中的問(wèn)題以解決問(wèn)題。 因此,Insolar區(qū)塊鏈的另一個(gè)特性是能夠?yàn)橹悄芎霞s啟用代碼升級(jí)。當(dāng)智能合約的代碼在區(qū)塊鏈上發(fā)布時(shí),還會(huì)發(fā)布升級(jí)它的規(guī)則(定義更改代碼版本所需的內(nèi)容)。 這些規(guī)則通常將升級(jí)決策委托給相關(guān)域(特殊合同),但域策略可以完全控制升級(jí),例如,用戶可以采取或拒絕升級(jí)合同的決定。 通過(guò)相同的程序,可以擁有不可變和防篡改的合同,并確保合同也只能調(diào)用不可修改的合同。
在Insolar使用中,我們不強(qiáng)制執(zhí)行,但允許升級(jí)智能合約。 升級(jí)后的合同與現(xiàn)有法規(guī)一起發(fā)揮作用,允許法律授權(quán)的組織(如法院)糾正交易。 使用此機(jī)制可以輕松糾正錯(cuò)誤,這意味著可以調(diào)整合同執(zhí)行,并且無(wú)需回滾以解決問(wèn)題。
協(xié)調(diào)智能合約
與所有智能合約一樣,合約包含數(shù)據(jù)及其狀態(tài)。 訪問(wèn)契約的簡(jiǎn)單方法是通過(guò)只讀調(diào)用,其中可以同時(shí)為同一對(duì)象提供多個(gè)只讀調(diào)用。 然而,一些操作可能需要改變狀態(tài),甚至跨多個(gè)合同協(xié)調(diào)狀態(tài)變化,而每個(gè)合同都是“黑匣子”。 處理此問(wèn)題需要許多數(shù)據(jù)庫(kù)應(yīng)用程序用來(lái)實(shí)現(xiàn)的各種排序和鎖定技術(shù)。 這簡(jiǎn)化了合同創(chuàng)建,因?yàn)镮nsolar提供了更接近Insolar的基礎(chǔ)架構(gòu),提供跨多個(gè)合同的分布式事務(wù)的透明支持,以及針對(duì)區(qū)塊鏈的特定性質(zhì)量身定制的隔離概念(例如“已驗(yàn)證”和“已完成”,而不是“已提交”)。
智能合約為區(qū)塊鏈帶來(lái)了巨大價(jià)值,但在之前的區(qū)塊鏈中存在實(shí)施問(wèn)題。Insolar智能合約為流程自動(dòng)化領(lǐng)域引入了幾項(xiàng)新功能,同時(shí)降低了成本并增加了交易隱私。 這些創(chuàng)新使Insolar成為最先進(jìn)的區(qū)塊鏈平臺(tái)之一,并對(duì)其他區(qū)塊鏈提供的智能合約進(jìn)行了重大改進(jìn)。





