(網(wǎng)經(jīng)社訊)不夸張地說,智能合約是會顛覆現(xiàn)有合同立法和實踐的區(qū)塊鏈新應(yīng)用,但區(qū)塊鏈智能合約到底是怎么一回事,很多法律人云里霧里的,筆者從應(yīng)用場景、部署執(zhí)行和代碼示例三個方面,層層深入做個介紹,研究這些的目的在于分析智能合約對合同法律實務(wù)的影響,對此我的個人觀點附在最后。
一、應(yīng)用場景
智能合約可以簡單理解為能夠自動履行的合約,日常生活中最普及的智能合約當(dāng)屬自動販?zhǔn)蹤C,就像郭德綱在相聲里說的:“一放錢就出東西,一放錢就出東西,太神奇了”。
基于區(qū)塊鏈的智能合約又有什么與眾不同之處呢?接下來就是重點了:區(qū)塊鏈去中心化的記賬方式使得合約的自動履行變的成本更低、更容易實施。價值區(qū)塊鏈本身就被廣泛用于各種電子貨幣,可以將合約履行中的支付環(huán)節(jié)無縫嵌入,在確保安全的前提下,進一步降低交易成本,妥妥的按照經(jīng)濟規(guī)律辦事。
如果不是很理解,我們舉幾個例子。生活中最令人頭疼的交易之一就是買房,下面是一手房買賣的流程圖,買過房子的人都知道,這個流程也不過是簡化版,實際需要辦的手續(xù)和環(huán)節(jié)比這還要繁瑣。

為什么會出現(xiàn)這種情況?因為交易雙方誰也信不過誰,因此需要引入房產(chǎn)中介、銀行、征信中心、房管局、公證處等若干個中心化的機構(gòu)來相互印證和背書。
那么如果把房產(chǎn)放到區(qū)塊鏈上交易呢,理論上講,就可以跳過這些中間環(huán)節(jié),直接買賣,因為房產(chǎn)的權(quán)利信息和付款信息以及過戶信息全部留存在區(qū)塊鏈上,所有節(jié)點都記錄了這筆交易的備份。
然后合約程序會不斷核查買家是否已經(jīng)把購房款存放到約定的錢包里(如果需要貸款,那么就是買家和銀行達(dá)成另個區(qū)塊鏈智能合約)。當(dāng)錢包里的金額滿足合約中約定的數(shù)量,合約程序會自動將錢轉(zhuǎn)給開發(fā)商,同時自動將產(chǎn)權(quán)信息變更到買家名下并向所有節(jié)點廣播,交易完成。
當(dāng)然,這種復(fù)雜的交易場景目前還無法實現(xiàn),舉這個例子就是想讓大家看到未來的合約形態(tài),就好像之前使用金屬貨幣的時代也無法想象可以用紙幣支付,直到各類基礎(chǔ)設(shè)施完善之后便習(xí)以為常了。
再說個簡單點的應(yīng)用場景,是筆者從釋了雯所寫的《智能合約是什么》一文中看到的,講的是買飛機延誤險的例子,投保乘客信息、航班延誤險和航班實時動態(tài)均以智能合約的形式存儲在區(qū)塊鏈上,一旦航班延符合賠付標(biāo)準(zhǔn),賠償款將自動劃賬到投保乘客賬戶,理賠過程沒有人工參與,避免爭論和糾紛。
兩個例子涉及到的場景一個復(fù)雜一個簡單一些,但是可以推而廣之到幾乎所有的交易場景中去。而且,不難發(fā)現(xiàn),區(qū)塊鏈智能合約應(yīng)用能否落地的關(guān)鍵,在于人們把多少資產(chǎn)數(shù)據(jù)和行為數(shù)據(jù)放到鏈上去,就像前面的例子,投保乘客信息、航班延誤險和航班實時動態(tài)這些數(shù)據(jù)必須放到區(qū)塊鏈上,智能合約才有自動執(zhí)行的可能。
二、部署執(zhí)行
基于區(qū)塊鏈的智能合約的構(gòu)建及執(zhí)行分為如下步驟:
1、智能合約制定:由區(qū)塊鏈內(nèi)的兩個以上用戶共同制定一份智能合約,為此需要如下動作:

起草并同意一份代碼版的智能合約;
對“合約使用到的外部數(shù)據(jù)源、糾紛解決途徑”等問題達(dá)成共識;
代碼審計和測試,確信不存在后門或者惡意漏洞。測試運行結(jié)果是否正確;
同意并部署到區(qū)塊鏈上。
2、智能合約上鏈:智能合約通過P2P網(wǎng)絡(luò)擴散到每個節(jié)點,并存入?yún)^(qū)塊鏈。部署智能合約同樣要交付費用,以便礦工有動力為合約提供記賬區(qū)塊。以太坊是目前公認(rèn)對智能合約提供最完善支持的區(qū)塊鏈,部署運行一段智能合約時,以太坊會收取費用,直到你的智能合約運行完畢。
3、智能合約執(zhí)行:智能合約定期進行自動機狀態(tài)檢查,將滿足條件的事務(wù)進行驗證,達(dá)成共識后自動執(zhí)行并通知用戶。
三、代碼示例
下面是太坊官方的一個示例合約,實現(xiàn)的功能就是在區(qū)塊鏈上存儲一個數(shù)字,并能夠讀取出來,存儲的數(shù)字在實際應(yīng)用場景中可以代表“錢”、“房門密鑰”、“軟件安裝許可碼”、“門票二維碼”等等,因此這段代碼類似一個將虛擬財產(chǎn)寄存和交付的合約雛形。代碼如下:
contract SimpleStorage {//存取合約程序開始
uint storedData; //定義一個存儲的數(shù)據(jù)
function set(uint x) {
storedData = x; // 通過set函數(shù)存儲一個數(shù)字在X變量中(例如手工輸入)
}
function get() constant returns (uint retVal) {
return storedData; //通過 get函數(shù)從X變量中讀取這個數(shù)字出來
}
}//存取合約程序結(jié)束
啟動以太坊私有鏈Geth和Ethereum-Wallet圖形界面,將代碼復(fù)制到合約界面中,按照流程支付部署費用(gas價格,以太幣計)即可發(fā)布,運行結(jié)果正如在下圖所示,執(zhí)行界面中輸入選擇set函數(shù),并輸入一個數(shù)值(1234),最終的結(jié)果就是在get函數(shù)的retVal一欄看到對應(yīng)的值(1234)。

本程序代碼和界面示例均選取自中國人民保險集團李赫撰寫的《區(qū)塊鏈開發(fā)(二)部署并運行第一個以太坊智能合約》一文,了解更多可以查看全文。
四、智能合約對合同法律實務(wù)的影響
1、盡管本文只是初步的在三個層面對區(qū)塊鏈智能合約做了介紹,但可以看出接下來合同律師要做的是結(jié)合代碼和區(qū)塊鏈的工作原理出發(fā)去設(shè)計合同(程序),而不僅僅是從條款本身去設(shè)計;
2、大量的合同都會有第三方做成標(biāo)準(zhǔn)的模版發(fā)布到鏈上供調(diào)用,但是會有諸多復(fù)雜、針對性的、個性化的智能需要單獨去制作,這部分工作為律師提供了發(fā)揮的空間,屆時律師有點像是產(chǎn)品經(jīng)理的角色,給程序員提需求并設(shè)計合約框架;
3、合同審查將被合同審計所取代,這個環(huán)節(jié)會有律師參與的空間,說不定重要的合同還需要律師出具法律意見,但律師要看懂這些合同的前提,是技術(shù)人員把這些代碼翻譯成律師能看明白的表述,因此,未來法律人對技術(shù)人員的依賴度會非常高;
4、區(qū)塊鏈智能合約雖然是自動執(zhí)行,但履行完畢的合同不意味著一定沒有糾紛,仍然存在外部數(shù)據(jù)源錯誤等原因?qū)е碌暮贤m紛,但顯然糾紛出現(xiàn)頻率會大大降低(設(shè)計不成熟或者審計不通過的合同很難通過區(qū)塊鏈大規(guī)模部署應(yīng)用),未來不會與那么多合同糾紛訴訟了,就算有,解決的渠道也不一定在法院(去中心化)。
張延來律師介紹:

網(wǎng)經(jīng)社電子商務(wù)研究中心高級特約研究員、浙江墾丁律師事務(wù)所主任律師、專利代理人資格、中國政法大學(xué)實踐導(dǎo)師、杭州仲裁委員會仲裁員、墾丁網(wǎng)絡(luò)法學(xué)院創(chuàng)始人
工作經(jīng)歷:
浙江大學(xué)法律碩士,具有法律和計算機雙專業(yè)學(xué)科背景,執(zhí)業(yè)以來完全專注于互聯(lián)網(wǎng)法律實務(wù)工作,擔(dān)任數(shù)十家知名一線互聯(lián)網(wǎng)公司常年法律顧問,并代理多個代表性互聯(lián)網(wǎng)訴訟案件。
立法與學(xué)術(shù)
曾多次參加網(wǎng)絡(luò)相關(guān)立法工作,是國家工商總局《網(wǎng)絡(luò)交易管理辦法》、杭州市《網(wǎng)絡(luò)交易管理辦法》立法小組成員,曾多次參與中國《電子商務(wù)法》的立法研討工作。
個人專著《法眼電商》《網(wǎng)絡(luò)法戰(zhàn)記筆記》已由法律出版社出版。


































