如果哪一天人類的資產全面實現了數字化,完全在區塊鏈網絡上實現交易,那麼指引、規制商事行爲的法律法規必然是「智能合約」。

原文標題:《商務白話「智能合約」》
撰文:李力,執業律師,擅長投資併購、結構融資、房地產,業餘愛好寫作和編程

隨着數字人民幣大範圍測試和區塊鏈應用不斷落地,「智能合約」作爲一個與區塊鏈技術高度關聯的概念被越來越多的財經媒體、商務人士提及和討論。

什麼是智能合約?它有哪些特長和優勢?能否重述甚至替代自然語言合約?是否需要符合法律法規、監管政策的要求呢?

下面就嘗試着用商務人士易於理解的語言從不同側面來解釋一下智能合約的含義和屬性。

分佈式賬本上的會計準則

如果將區塊鏈系統比作一個分佈式電子賬本,那麼智能合約就相當於專門適用於這個電子賬本的會計準則。

能運行智能合約的區塊鏈,其數據庫構成大概可分爲兩個部分:位於邏輯上層隨交易不斷變化的狀態數據庫,以及運行於系統底層按時序單向延伸的區塊鏈。如果用會計賬簿來類比,上層的狀態數據庫相當於一個超級科目餘額表,專門負責記錄各數據對象(會計科目)的狀態信息(科目餘額);底層的區塊鏈則類似於會計憑證簿,按交易發生的時序記錄各數據對象(會計科目)此消彼長的對應關係和變動過程(會計分錄)。

每一次科目餘額的增減變化都會形成一張新的會計憑證,而每一張新的會計憑證都會對應着若干科目餘額的變動。人們需要了解企業經濟狀況時,通過報表、報告瞭解會計科目的餘額狀態或者其彙總信息,而當需要追溯某項經濟資源的來源或者某個會計數據的推導過程時,則會通過明細賬的指引到會計憑證中去審覈檢驗。

所以,從最底層的數據來源和邏輯構架來說,科目餘額表加上會計憑證簿,這兩者共同構成了現代企業會計賬簿的信息基礎,而狀態數據庫和區塊鏈則構成了區塊鏈賬簿體系的數據基礎。

那智能合約呢?

它就大致相當於會計準則和財務制度,規範、控制着記賬行爲的基本業務邏輯。就像會計實踐中人們根據會計準則填寫憑證、記明細賬一樣,區塊鏈節點根據智能合約處理、運算輸入信息,取得全網共識後再將運算結果寫入狀態數據庫、將描述數據對象變動過程的事務日誌添加到區塊鏈中。

降低交易風險的技術優勢

防範交割風險,往往是商務合同中花費大量條款來實現的目標。然而,智能合約卻天然地具備一項特殊的技能,可以從頭杜絕、消滅交割風險。

原子性(Atomic)操作,是數據庫編程的概念,講的是對數據庫進行操作時,一個事務(Transaction)所包含的所有步驟應當爲不可分割的一個整體,要麼所有步驟都執行完畢,要麼就將數據庫回滾到沒有任何一個步驟被執行的初始狀態,不能只執行一部分步驟而放棄其餘,否則將破壞數據庫業務邏輯的完整性。

用商務場景來解釋,那就是杜絕「交割風險」。

證券市場上,假設交易雙方合意採用「券款對付」的方式交割,那麼所謂「原子性操作」就需要保證交割證券和支付對價這兩個動作在一個事務中被完整執行,既不能只付款不付券,也不能只付券不付款,否則就會破壞「券款對付」這個交易雙方已經達成合意的業務邏輯。

作爲控制狀態數據庫讀寫操作流程的計算機程序,智能合約被各主流系統無一例外的設計爲滿足「原子性操作」的要求。因此,智能合約天生具備「消滅」交割風險的能力。

當然,現實生活中的交割風險並不總是「支付對價」那麼簡單,可能包括任命董事、更新股東名冊等等動作,但不論包括多少項動作,在理論上和邏輯上,它們都可以囊括在智能合約的一個事務中靠一次原子性操作在區塊鏈上實現。

此外,區塊鏈的記賬流程強調「對賬前置」,也就是在全網節點達成共識的基礎上,纔可能將一筆新的交易寫進區塊鏈。而「資產數字化」,在終極意義上則意味着將所有利害關係方所有可能的權利主張都描述到數字化資產的屬性信息中去。到那個時候,如果一筆交易獲得了全網共識,那就意味着所有利害關係方均對交易不持異議,也就是說標的資產在法律意義上不存在權利瑕疵。

所以,在資產全面數字化的時代,區塊鏈的「對賬前置」再加上智能合約的「原子性操」,基本上就可以「消滅」目前商業活動中「權利瑕疵」和「交割風險」這兩項最重要、最常見的交易風險了

豐富且準確的表達能力

既然智能合約有那麼多的好處,那它的表達能力足夠強、足夠豐富麼?能像自然語言合約那樣準確、充分的描述商務活動的商業目標和業務邏輯嗎?

這就需要聊聊「圖靈完備」這個稍微艱澀的話題了。

跟會計賬簿類似,人們用筆和紙算題,其實也可以用「狀態及其改變過程」的思路來抽象和模擬。二十世紀偉大的數學家圖靈將這一模擬方案和實施步驟撰寫成了論文,描述了一種抽象的計算模型,被稱爲「圖靈機」。

假設存在一條無限長的帶格子的紙帶、一套編碼,以及一個帶讀寫頭、寄存器的可按既定算法和指令改變寄存器中狀態信息並控制讀寫頭沿紙帶往復運動、定點讀寫的機器。人類的計算過程就被抽象爲這個機器從紙帶上讀取信息、經運算改變寄存器狀態,然後再控制讀寫頭在紙帶上移動、定點寫入或擦除中間結果,然後再讀取信息、運算、改變寄存器狀態、再定點輸出結果,這樣一個不斷循環往復的過程。

圖靈機在現實世界最典型的實現就是電子計算機。由於並不存在無限長的「紙帶」,因此,電子計算機通常被稱爲「有限狀態機」,而可以控制計算機實現「圖靈機」所有必要屬性的編程語言就被稱爲「圖靈完備」。

所有不包含人類情感、好惡、審美等主觀因素的、可用數學抽象的可計算問題,都能通過圖靈機來運算。逆否命題就是,圖靈機沒法運算的問題,都是不可計算問題,也就是人類通過筆和紙在人腦控制下無法計算、推演的問題。

從以太坊開始,智能合約便採用圖靈完備的腳本語言來控制、描述業務邏輯。理論上講,一切可以用數學模型抽象爲可計算問題的業務場景都能用智能合約來描述和實現。

那自然語言合約可以用智能合約來重述麼?

筆者認爲可以,不但可以,而且會更準確、更清晰、更沒有歧義。

從合同內容來看,不論是合同標的、數量、質量、對價、期限、條件還是流程,基本上用數據對象、邏輯流程來抽象和描述都不是問題;對於簽約主體,用電子簽名、數字證書等方法來識別身份、校驗權限也已是比較普及的技術。只有違約責任、爭議解決等權利救濟條款,與「對賬前置」等區塊鏈的技術特徵存在一些本質矛盾,可能需要在正常的履約渠道之外,通過類似於「跨鏈」的技術才能實現。但話說回來,如果真是到了資產全面數字化、智能合約直接處分財產權利的那一天,是不是還需要事後的權利救濟,如何評判、解決爭議,可能還都是需要深入探討的問題。

除了能充分表達自然語言合約的內容和邏輯以外,智能合約還有個特別需要強調的特點,那就是它語義的準確性和確定性。智能合約本質上是計算機程序,需要在計算機上運行,無論是多複雜的數據對象,最終都需要序列化成二進制編碼,不管是多麼複雜的算法,最終的進程走向都是個確定的路徑。所以,智能合約不會像自然語言合同那樣產生語義模糊問題,不會因爲不同主體對條款含義的理解不同而發生糾紛,當然也就不會有「規避監管」或者「美化報表」的語義解釋空間。

當然,從另一個角度來說,語義的準確性和確定性也讓智能合約缺乏彈性,爲了邏輯周延,人們可能不得不花費大量的語句來窮舉、遍歷各種可能性,從而使得智能合約看起來內容冗長,不如自然語言合同那麼概括和靈活。

受應用場景決定的法律屬性

智能合約是否也需要像日常合同一樣,符合法律要求呢?

要回答這個問題,就不得不聊一聊著名的「The DAO」 事件。

智能合約最初是由「以太坊」(Ethereum)引入到區塊鏈領域的,由於它可以表達比「比特幣」更豐富的業務邏輯,並且可以在全網節點自動運行,因此給「以太坊」贏得了「區塊鏈 2.0」的美名。

在去中心化的公有鏈上自動運行,可以表達豐富的業務邏輯,這兩點曾經給人帶來無窮的遐想,似乎所有能想得到的事情都可以交給智能合約去辦,從此可以徹底杜絕內部人作惡、對手方風險等等由於人爲干擾而帶來的商業問題。一夜之間,衆多以以太坊爲基礎平臺或技術內核的項目如雨後春筍般湧現,直至出現了人類歷史上規模最大的衆籌項目「The DAO」。

「The DAO」的英文全名翻譯過來可以叫「去中心化自制組織」,通過 ICO 籌集到了當時價值 1.5 億美元的以太幣和比特幣,其目的旨在讓參與者可以通過投票方式共同決定被投資的項目,整個組織完全自治,所有行動和決策依靠代碼編寫的智能合約來實現。

The DAO 的立意和初衷是美好的,用一種絕對民主化的方式來管理基金,依靠「不可篡改、無法阻攔、不可抵賴」的計算機代碼來自動執行決策,一切似乎很完美。然而,讓人扼腕的是,成立不到 20 天,The DAO 就遭遇到了攻擊。黑客利用一個函數漏洞,在不到 3 小時的時間裏從資產池中轉出了市值近 6 千萬美元的以太幣。爲了挽回損失,以太坊最終以「硬分叉」的方式將整個區塊鏈回滾到攻擊之前的狀態,而這種強力介入、硬性修改的做法卻違背了區塊鏈「去中心化、不可篡改」的基本原則,從而導致以太坊分裂爲新鏈和舊鏈兩條並行的鏈條。

The DAO 事件發生後,人們開始用更審慎的態度看待區塊鏈技術,開始深入的思考,智能合約是否應當符合法律的要求?利用漏洞來執行合約的攻擊行爲,與全面推翻共識機制的「硬分叉」,到底哪個違背了契約精神?

所以,智能合約需要符合法律要求麼?

這個問題的答案其實取決於智能合約的應用場景、規制對象和執行方式。

這就好比用空白的本子記賬,如果賬上記錄的僅僅是方便個人進行自我財務管理的日常收支開銷,那記賬的規則基本不會影響他人,自然不需要滿足法律法規的要求;如果賬上的記錄將作爲納稅憑證和依據,用於申報、徵繳個人所得稅,那麼記賬的規則就需要滿足稅法的要求,否則會影響國家的稅收利益;如果這個賬本記錄的是具備法律效力的房屋產權,那麼記賬的規則就相當於一部《房屋登記管理辦法實施細則》,任何記錄的變化都意味着對房屋產權的直接處分,可能牽涉到所有權人、抵押權人、居住權人,甚至信託受益人、共同產權人、遺產繼承人等等若干利害關係方。

「CODE IS LAW」。

說到這裏,是不是對這句程序員的信條有了更加直觀的認識?
沒錯。如果哪一天人類的資產和財富全面實現了數字化,完全在區塊鏈網絡上實現交易,那麼指引、規制商事行爲的法律法規就必然是計算機程序,或者更具體的說,必然是「智能合約」。

一個合理的估計是,隨着法定數字貨幣的正式實施和資產數字化的深入發展,區塊鏈技術與實體經濟活動的耦合程度必然會不斷加深,而智能合約作爲直接描述、控制業務邏輯的規則載體,其法律屬性也必然會隨之發生深刻的變化。

初創期,區塊鏈可能僅僅會被用來記錄履約痕跡,與實體經濟以「全脫耦」或「松耦合」的方式並行,智能合約則僅需以「記賬規則」的方式出現,只要能準確無誤的記錄履約痕跡即可,合法性問題實質上還是指向自然語言合約和實體經濟活動本身。

成長期,區塊鏈逐步承擔數字化資產的簿記功能,區塊鏈賬簿中的數據對象將逐漸擁有「財產權利」的法律屬性,智能合約就可能從自然語言合約的「交割手段」、「履約方式」逐步過渡到全面替代自然語言合約,成爲直接體現當事人契約意願的載體和處分財產權利的規則。到了那個時候,智能合約的程序模塊將類似於標準合同模板、資產簿記規則、組織章程等法律文件中的契約條款,供商業活動的參與方根據商業目的來選擇適用,那麼它不但需要符合法律法規的要求,而且在某種意義上將可能成爲法律法規本身。

成熟期,區塊鏈技術將推動商業模式發生深刻變化,信用證、支付寶這種依靠第三方主體信用解決貿易信任問題的商業模式將走下歷史舞臺,盡職調查、財務審計等對於歷史記錄真實性、合法性的校驗工作可能不再需要,利害關係方之間的信任成本、交易成本將顯著降低,貿易、投資、金融等商業活動的效率將獲得革命性的提高。與之相適應,法律法規就需要不斷修正以適應人類社會信用環境和商業模式的改變,物權法、合同法、組織法、證券法、票據法、訴訟法、破產法…難以計數的法律領域都可能面臨着主動或被動的調整。在這個歷史性變革的過程中,智能合約很可能成爲推動或引導立法的重要因素和參考依據,智能合約中描述的商業模式、實施方案可能成爲規範或標準,被納入到法律法規的修正案當中。

讓我們回過頭來再審視一下「The DAO」事件。其實,它就是人們在沒有做好技術、法律、救濟措施等各方面準備之前,用區塊鏈技術推動的財產組織法意義上的數字化資產試驗。所謂「試驗」,其重點並不在於創造了一種新的代幣,而是在支付功能的基礎上給代幣添加了表決權屬性,讓代幣持有者可以投票來影響基金的投資決策。

添加一項屬性,看似很簡單的業務邏輯,其實裏面蘊含着很多的風險因素。代碼有漏洞,這當然是導致失敗的直接原因,但更深層次的原因也不容忽視。

當虛擬資產獲得了社會公認的價值,那就必然需要考慮它的法律屬性。代碼所反映的業務邏輯是否準確、是否周延、是否安全、是否公正?代碼錯誤的責任由誰承擔?錯誤後果如何救濟?這一系列的問題其實都需要給與充分的重視並事先獲得法律上和技術上的解決方案。

不同行業的關注重點是不一樣的,有時差別會非常之大。傳參、校驗、加密、解密、編碼方案、吞吐效率…代碼邏輯的注意力往往在技術領域,而智能合約恰恰需要兼顧甚至更加重視業務邏輯和法律邏輯。這可能是未來程序員、律師、會計師和各界商務人士需要共同面對的一次革命性挑戰。

最後,嘗試着給智能合約下個定義。

所謂智能合約,是指在區塊鏈節點上運行的以圖靈完備的編程語言開發的旨在通過控制、調整數據對象的狀態信息來實現業務邏輯的計算機程序,它可能隨着資產數字化的進程而獲得越來越直接的法律屬性,成爲規制財產權利登記、流轉、組織、交易等法律行爲的規則載體。