Agrello專案白皮書中文導讀

買賣虛擬貨幣

引言


隨著2015年以太坊專案的釋出,區塊鏈+智慧合約(Smart Contract)的模式開闊了人們對於區塊鏈技術的想象;以太坊支援圖靈完備的程式語言Solidity(包含Java、Python、Lisp——都是圖靈等價的),在編寫智慧合約時迴圈與遞迴邏輯上不再受限,因此智慧合約可應用範圍幾乎覆蓋所有領域。


2016年12月,由智慧合約聯盟支援下編寫的數字商務商會白皮書介紹了 12 項商業合約和其他合約的使用案例,包含數字身份認證、記錄、安全、貿易金融、衍生品、金融資料記錄、借貸抵押、土地所有權記錄、供應鏈、汽車保險、臨床試驗、腫瘤研究等


智慧合約本質上仍是由計算機語言所編寫的程式,這使得目前在編寫智慧合約會遇到兩個難題:


1.編寫非機讀(non-machine)合約很困難。對於一些傳統合約,特別是涉及法律條文解讀的合約,程式碼難以全面覆蓋其中含有“人性”的部分,缺乏準確執行傳統合約的能力,智慧合約的合法性成為應用上一桎梏。


2.只有少數人有能力完成並部署一份智慧合約。智慧合約的編寫需要依靠大量程式碼實現合約的邏輯性,即使是經驗豐富的開發者都不能保證其寫出的智慧合約不出現Bug,對於沒有接觸過程式語言的人來說,即使只是想實現基礎功能,編寫智慧合約也是困難重重。


以下討論Agrello如何透過AI技術實現的具有法律效力的智慧合同,提供使用者更簡易的智慧合約編寫工具。


Agrello的核心價值


Agrello是由愛沙尼亞律師、區塊鏈專家和資訊科技專家組成的團隊,他們共同的願景是建立一個終端使用者導向的智慧合約框架,提供模組化的功能將傳統合約對映到智慧合約語言,使得編寫智慧合約成為一項簡單的事,降低智慧合約編寫門檻;同時保障編寫出的智慧合約具備合法性。

如圖1所示,Agrello系統的概念源於電子採購關聯架構(e-Sourcing ReferenceArchitecture, eSRA),這是一種具有過程意識的企業間合作的系統;在企業或個人雙方合作間所涉及到的合約,都可以透過Agrello智慧合約樣板庫轉移到對應區塊鏈上,保障在P2P網路中實現避免衝突的通訊合作。


白皮書中強調Agrello系統中的智慧合約不僅僅是多程式語言的集合,而是一種具有自我意識的合約(Self-Aware Contract, SAC)。


“自我意識意味著傳統合約和法律顧問的結合,成為包含一切合同邏輯並生成機器可讀形式的代理人軟體。更確切地來說,這個代理人軟體可以debug,例如你錯過合約執行時限,代理人軟體會替你管理並執行該合約;如果傳統合約不符合Agrello基於法律邏輯設定的框架,代理人軟體也會進行報錯或自動匹配成合理合規的智慧合約形式。”


舉例來說:

圖2描述一個租賃協議的過程,我們假設John是出租方,Mary是承租方。租賃合同的週期通常分為以下階段:

①準備(preparatory)②協商(negotiations)③合同執行(contract execution)④回滾(rollback)


由圖中可知,租賃合同因為Mary的租房需求而觸發。在準備階段,合約的某些標準必須在John和瑪利亞進行協商合同條款之前確定。Mary和需要知道公寓資訊,而John需要知道有關Mary的財務狀況的資訊。John和Mary的名字、身份證號,地址等都必須包含並記錄在合同中。


傳統上,Mary必須自己從網上尋找租房及其他附加資訊,或是僱用經紀人來談和John進行合同協商。這意味著她必須付出更多與租房這件行為本身無關的附加成本。


Agrello提供了一種創新的方法。在協商階段,John已經確定了合同的基本條款(包含租賃物件的特點,承租的時間,報價和承租人評級),並根據這些資訊自動尋找最佳匹配的租賃請求。在Agrello系統中,一旦發生匹配,表示John和Mary之間簽下租賃契約的可能性很大。假設Mary希望就部分合同細則進行協商,她可以表示不同意的是哪些條件。根據這個資訊,John修改條件以更好地匹配Mary的要求。最終合同的締結意味著合同雙方已經表達了自己的意願,即各方都簽署了合同,此時合同就被部署上區塊鏈。從開始執行到合同終止,這個過程不能被任何第三方改變。


這些過程都可以在Agrello提供的智慧合約編寫平臺上模組化的操作如圖3,大大降低編寫難度,同時又可以享受到區塊鏈技術基於去中心化、資訊公開透明的益處。

Agrello語言(AgrelloLanguage)


為了實現上述功能,Agrello團隊基於eSoucing可擴充套件標記語言(eSML),開發出滿足業務需求的Agrello語言。


Agrello語言保留可擴充套件標記語言的特性,可以用來標記資料、定義資料型別,是一種允許使用者對自己的標記語言進行定義的源語言。 圖4表示了Agrello語言在SAC中的架構,將Agrello語言內容構建到Who,Where和What塊中。


圖5展示的是Agrello系統以Agrello語言生成的月租付款智慧合約程式碼示例:


Agrello合約


Agrello智慧合約能順利在區塊鏈上部署,除了要求進行轉置的傳統合約由兩方以上共同簽署,還具有以下特徵:


身份:合約中必須明確的標識所有身份。特別是對出租人來說,最希望能得到保證,保證出租的標的物的確被承租人使用。


簽名:傳統合約需要手寫簽名,在智慧合約中以數字密碼學簽名取代。


事件:獲取與合約內容相關的外部事物在智慧合約自動執行中至關重要。如果合約中某些觸發條件要從外部獲得,比如從其他區塊鏈上獲得資訊,要保證Agrello平臺能夠查詢到相應的鏈資訊。


時間戳記:為了保障合約開始、終止和某些觸發結果順利進行,需要在合約中標註時間戳記。如果有需要獲取聯外的資訊,也需要保證兩者在同一個時間維度下。


合約原始碼:合約程式碼以機器可讀形式解釋其業務邏輯,同時為了保證合約執行的不變性,合約原始碼和雜湊值需要轉移到區塊鏈上。萬一合約其中一方要求執行有缺陷的原始碼,則必須有合約原始碼副本才能避免此衝突。


圖6是一個SAC合約完整的週期。淡棕色區域是準備(preparation),包含合約集合、合約模板選擇、置換SAC合約等過程,主要是SAC合約準備工作;青色區域是啟動(initiation),就是當SAC透過代理人軟體編寫完成後將要部署到區塊鏈上的過程(圖中以分散式治理措施表示decentralized governance infrastructure , DGI),過程中Agrello平臺提供CMA監控合約的不正常變動並給出反饋;綠色區域是執行(execution),代表合約已經上鍊並開始執行,過程中合約受到區塊鏈特性保護,無法被第三方篡改或停止;淡粉色區域是回滾(rollback),合約執行過程中如果任一方退出合約,或是執行過程發生錯誤,可以經由回滾機制重置合約而無需重新建立;灰色區域是終止(termination),代表合約執行完畢,如果合約在一開始轉置為SAC合約就發生錯誤,也會直接進入終止狀態。


總結


這份白皮書提供了一種創新的、對等協作的,跨組織區塊鏈連結框架,同時參考常用場景,將智慧合約編寫過程簡化,提供更多人能夠體驗區塊鏈技術為日常生活帶來的便利性及安全性。從文中闡述的租房合約案例可以看到,雖然將傳統合約轉置到區塊鏈上執行能節省許多成本,但現有的基於區塊塊鏈的智慧合約,缺乏具有法律約束力的機器可讀合約的結構,因此Agrello所做的研究工作是有其必要性及前瞻性的。


未來團隊的目標是建立Agrello語言與較底層語言的對映關係,比如允許由Solidity編寫的合約也能直接在Agrello系統執行。另外也將開放更多系統介面,提供不同的專家群體,最佳化Agrello合約,在保證其合法性的同時儘可能做到人人可寫可讀。

詳情見官網:https://www.agrello.org/

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;