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