
繼續(xù)學(xué)習(xí)量子學(xué)派的區(qū)塊鏈課程,在學(xué)習(xí)了其基礎(chǔ)知識、工作原理、共識機(jī)制后,閱讀學(xué)習(xí)《世界憲章 代碼及法律》。記錄如下:
見:
? 如果代碼不可篡改,
? 就必須保證代碼沒有漏洞,
? 這是區(qū)塊鏈最糾結(jié)的地方。
?
? 區(qū)塊鏈?zhǔn)澜绲摹按a悖論”
? 代碼曾經(jīng)是自由的,越優(yōu)秀的代碼越自由。就像越好的語言擴(kuò)展性越強(qiáng)一樣,然而一旦在代碼中添加區(qū)塊鏈概念,就實(shí)現(xiàn)了不可篡改性。既然代碼不可篡改,就必須保證代碼沒有漏洞。可是,誰又能一直保證自己不犯錯誤呢?這是一個難題。
? 如果說信任的機(jī)器是區(qū)塊鏈的軀干,共識機(jī)制是區(qū)塊鏈的靈魂。而在區(qū)塊鏈的世界里,無論是軀干還是靈魂,最終都是由代碼構(gòu)成。代碼相當(dāng)于是區(qū)塊鏈的DNA。
? 在現(xiàn)實(shí)世界,法律作為一種配置社會資源的機(jī)制,被社會經(jīng)濟(jì)發(fā)展的客觀要求所決定,并直接影響著經(jīng)濟(jì)運(yùn)行的全部過程,隨著社會分工細(xì)化和人類活動范圍日益擴(kuò)張,法律逐漸變成國家制度的框架下加以確認(rèn)的一套格式化規(guī)則體系,它能夠簡化社會關(guān)系的復(fù)雜程度,節(jié)約交易成本,幫助社會成員安全規(guī)范有序的進(jìn)行交易。不管是基于社會契約論,功利主義論,暴力威懾論,還是法律正當(dāng)論,法律的約束力都從未突破人的自我意志。
? 也就是說在現(xiàn)實(shí)世界,法律的解釋是多樣性的,而在區(qū)塊鏈的世界,由代碼完成的交易輸出的解釋是唯一的,沒有歧義的。代碼的解釋是唯一性的。
?
? 法律的本質(zhì)是“合約”
? 現(xiàn)行法律的本質(zhì)上是一種合約,它是由人(生活于某一社群的)和他們的領(lǐng)導(dǎo)者所締結(jié)的,一種關(guān)于彼此該如何行動的共識。個體之間也存在著一些合約,這些合約可以理解為一種司法,相對應(yīng)的,這種司法僅對合約的參與者生效。而合同的概念可以追溯至遠(yuǎn)古時代,古希臘和古羅馬人認(rèn)為:合同是解決信任透明度和執(zhí)法問題的正式協(xié)議,如市場交易合同、企業(yè)組織生產(chǎn)經(jīng)營活動的各種內(nèi)部規(guī)章以及其它一些契約關(guān)系。
? 目前,主要依靠當(dāng)事人的忠實(shí)履約或我第三方來保障合約實(shí)行。在具體操作過程中合約會面臨著一系列的成本,比如:交易雙方在要約與承諾階段,因大量的談判而發(fā)生的簽約成本,合同簽訂過程中,雙方還可能根據(jù)不同的情況對合同條款進(jìn)行修改補(bǔ)充,以使合同更加完備而產(chǎn)生的修約成本,合同的維護(hù)和執(zhí)行過程中發(fā)生的履約成本等。
? 例如年前給某人一筆錢而簽訂了合約,但他最后決定毀約不還錢,此時你多半會將對方告上法庭,但在現(xiàn)實(shí)生活中,打官司這種事情充滿了不確定性。通常情況下將對方告上法庭,意味著你需要支付高昂的費(fèi)用,聘請律師幫你在法庭上展開辯論,這一過程基本上曠日持久,即使你最終贏得了官司,也可能會遇到一些問題,比如對方?jīng)]有財產(chǎn)可供執(zhí)行。而對你比較有利的是,當(dāng)初你和借款人把條款寫了下來,訂立了合約。
? 但法律的制定者和合約的起草者們都必須面對一個不容忽視的挑戰(zhàn):在理想情況下,法律或者合約的內(nèi)容應(yīng)該是明確而沒有歧義的,但現(xiàn)行法律和合約都是由語句構(gòu)成的,而語句,是出了名的充滿歧義。
?
? 合約:區(qū)塊鏈?zhǔn)澜绲摹胺汕爸谩?br>
? 一直以來,現(xiàn)行的法律體系存在的兩個巨大難題。第一,合約或法律是由充滿歧義的語句定義的;第二,強(qiáng)制執(zhí)行合約或法律的代價非常大。
? 隨著區(qū)塊鏈技術(shù)的誕生,這些問題將被以更友好的方式解決。由代碼組成的區(qū)塊鏈技術(shù),基于法律框架,通過預(yù)設(shè)自動執(zhí)行的智能代碼合約在約束并引導(dǎo)人們的行為時引入技術(shù)、依靠技術(shù)使信息更加透明、數(shù)據(jù)更加可追蹤、交易更加安全,且大大降低了執(zhí)行成本。這其實(shí)是一種法律前置。
? 在區(qū)塊鏈?zhǔn)澜缋?,由代碼構(gòu)成的智能合約,形成了區(qū)塊鏈的“自規(guī)則”,形成了區(qū)塊鏈的法律,話句話說:代碼即法律。
? 代碼對應(yīng)著語言中的文字,但不同于文字的“多釋義”。代碼的含義,具有唯一性。代碼作為一種核心工具,我們可以用它來構(gòu)筑并保護(hù)我們最基本價值理念的網(wǎng)絡(luò)空間,同樣也可以用代碼使其消失殆盡。斯塔福德勞倫斯萊斯格教授在《代碼》中反復(fù)強(qiáng)調(diào):基于代碼的軟件協(xié)議,能夠像任何法律規(guī)則一樣規(guī)管我們的生活。
?
? 互聯(lián)網(wǎng)的基礎(chǔ)架構(gòu)就是TCP/ IP協(xié)議,這個協(xié)議規(guī)定數(shù)據(jù)包是如何在網(wǎng)絡(luò)中進(jìn)行傳輸和交換的,而就是這個簡單的協(xié)議,保證了互聯(lián)網(wǎng)的迅猛發(fā)展。因為他沒有試圖在基礎(chǔ)的網(wǎng)絡(luò)架構(gòu)里加入太多的東西,比如安全和控制等等,從而保證了基礎(chǔ)架構(gòu)的簡單和靈活性?;ヂ?lián)網(wǎng)的這種架構(gòu),讓創(chuàng)新在網(wǎng)絡(luò)的邊緣節(jié)點(diǎn)來進(jìn)行,從而有很多的創(chuàng)新應(yīng)用得以發(fā)明出來。
? 如果當(dāng)初是按照美國電話電報公司的想法來規(guī)劃互聯(lián)網(wǎng),那么它今天就不會是這個樣子了。作為一個企業(yè),美國電話電報公司必然會在基礎(chǔ)的架構(gòu)里加入很多的功能和控制,并會對邊緣節(jié)點(diǎn)的接入應(yīng)用進(jìn)行限制,那樣的互聯(lián)網(wǎng)就不會像今天這樣的自由。
? 一開始是美好的,控制著整個互聯(lián)網(wǎng)的核心運(yùn)作的就是TCP/IP協(xié)議,它是嚴(yán)格執(zhí)行這個協(xié)議的程序代碼,在計算機(jī)網(wǎng)絡(luò)的世界里,所有的規(guī)則定義是以代碼來實(shí)現(xiàn)的,然而發(fā)展的路徑卻并不是由程序員來說了算。第一代架構(gòu)是由非商業(yè)組織研究者和黑客建立的,他們關(guān)注于如何建立一個網(wǎng)絡(luò);第二代架構(gòu)則是由商業(yè)建立的;到了第三代架構(gòu),已經(jīng)是政府的作品。現(xiàn)實(shí)社會的法律開始作用于網(wǎng)絡(luò)空間,代碼越來越不法律,反而法律開始影響網(wǎng)絡(luò)的構(gòu)架,開始影響一行行代碼,為了維護(hù)網(wǎng)絡(luò)空間的穩(wěn)定,網(wǎng)絡(luò)實(shí)名制被提上議題,新發(fā)的帖子需要通過關(guān)鍵詞審查,為了網(wǎng)絡(luò)純潔,圖片需要改變外鏈規(guī)則。在網(wǎng)絡(luò)空間內(nèi)代碼實(shí)現(xiàn)了法律所需要的效果,法律化身為代碼。
? 不過,到了區(qū)塊鏈時代,它區(qū)別于傳統(tǒng)互聯(lián)網(wǎng),有著自定共識規(guī)則和自動實(shí)施規(guī)則的能力,區(qū)塊鏈技術(shù)可以通過技術(shù)方法落實(shí)契約原則,解決信任問題,這是契約的前置,信任的鎖定,法律的嵌入,社區(qū)的共識。每一筆交易都透明公開,通過共識協(xié)議和可編程的智能代碼和運(yùn)行,是以建立互信、創(chuàng)造信用、通過共識協(xié)議和可編程的智能代碼合約運(yùn)行,是可以建立互信,創(chuàng)造信用,可以制定和執(zhí)行交易各方認(rèn)同的商業(yè)條款。引入法律規(guī)則和監(jiān)管控制節(jié)點(diǎn),確保價值交換符合契約原則和法律規(guī)范,避免無法預(yù)知的交易風(fēng)險。誰要改變這樣的代碼,就是與整個社區(qū)為敵,代碼就是法律。
?
? 代碼實(shí)現(xiàn)了哈希值的計算
? 接下來我們再來了解一下它的流程,弄明白它為什么在技術(shù)上更加可靠。
? 我們知道比特幣使用的是哈希加密算法來維護(hù)信息的安全性,那么代碼要如何實(shí)現(xiàn)這一過程呢?以Python語言為例:
? 首先打開終端,輸入Python,并單擊enter,然后你將進(jìn)入Python REPL,在這種環(huán)境下,你可以直接使用python命令,而不是在單獨(dú)的文件中編寫程序。最后輸入以下數(shù)值,在每行之后,敲擊Enter,在標(biāo)記處輸入TAB:
? import hashlib
? def hash(mystring):
? [TAB]hash_object=hashlib.md5(mystring.encode())
? [TAB]print(hash_object.hexdigest())
? [ENTER]
? 這樣你就創(chuàng)建了一個哈希函數(shù),該函數(shù)將計算出某一特定的使用md5哈希算法的字符串的哈希值。將字符串插入哈希函數(shù)的括號中,便可運(yùn)行該函數(shù)。
? 輸入字符插入括號,按ENTER鍵即可查看該字符串的哈希值隨機(jī)值。而做一點(diǎn)微小的改變,將會生成一種完全不同的哈希值。
? 代碼實(shí)現(xiàn)了哈希函數(shù)的運(yùn)行,在區(qū)塊鏈中,通過代碼就可以計算出哈希值,基于哈希算法的數(shù)字加密也才得以更好地進(jìn)行。
?
? 基于代碼編程的區(qū)塊鏈
? 想要區(qū)塊鏈自規(guī)則能夠完整運(yùn)行,少不了代碼的編程。下面從代碼的角度實(shí)際講一下如何形成一個完整的區(qū)塊鏈。
? 1、邏輯步驟決定區(qū)塊結(jié)構(gòu)。
? 這其中最必要的部分是:
? index(下標(biāo))、timestamp(時間戳)、data(數(shù)據(jù))、hash(哈希值)、和previous hash(前區(qū)塊哈希);
? 2、確保區(qū)塊鏈的這個塊中必須能找到前一個塊的哈希值,以此來保證整條鏈的完整性;
? 3、哈希加密。為了保存完整的數(shù)據(jù),需要用哈希算法計算整個區(qū)塊;
? 4、塊的生成。要生成一個塊,必須知道前一個塊的哈希值,然后創(chuàng)造其余所需的內(nèi)容,塊的資產(chǎn)部分是由終端用戶所提供的;
? 5、塊的存儲。內(nèi)存中的Jacascript數(shù)組被用于存儲區(qū)塊鏈。區(qū)塊鏈的第一個塊,通常被稱為“起源塊”,是硬編碼的;
? 6、確認(rèn)區(qū)塊完整性。在任何時候都必須確保一個區(qū)塊或者一整條鏈的區(qū)塊的完整性能夠被確認(rèn),在我們從其他節(jié)點(diǎn)接收到新的區(qū)塊,并需要決定接受或拒絕它們時,這一點(diǎn)尤為重要;
? 7、選擇下一個鏈。任何時候在鏈中都應(yīng)該只有一組明確的塊。萬一出現(xiàn)沖突,前面的主干區(qū)塊鏈會選擇有最大數(shù)目認(rèn)同的鏈;
? 8、節(jié)點(diǎn)控制,某種程度上用戶必須能夠控制節(jié)點(diǎn)。這一點(diǎn)通過搭建一個http服務(wù)器可以實(shí)現(xiàn)。
? 至此,一個區(qū)塊鏈?zhǔn)澜缫呀?jīng)創(chuàng)建完成,在200多行的代碼的編程中,這個數(shù)字世界的法律被建立,“代碼即法律”得到了很完美的詮釋。
? 但值得注意的是,以上的代碼只是最簡單的一種代碼架構(gòu),像比特幣和以太坊的代碼,經(jīng)過這么長時間的發(fā)展,已經(jīng)發(fā)生了一些變化,它們要復(fù)雜的多,架構(gòu)肯定也完整的多。
?
? 區(qū)塊鏈?zhǔn)澜绶杉軜?gòu)的確立——以太坊為例
? 以太坊是通過數(shù)字貨幣和編程語言的結(jié)合,給用戶提供了一個智能合約編寫的平臺,用戶能夠以智能代碼合約為底層系統(tǒng)確定自己區(qū)塊鏈?zhǔn)澜绲摹胺伞薄?br>
? 以太仿的智能合約,有一個完整的編程語言構(gòu)成,有時也被叫做以太腳本。我們都知道代碼語言是人類用來控制計算機(jī)工作的,而反過來計算機(jī)則無法猜透人類的意圖,因此用任何代碼語言寫好的指令,對計算機(jī)來說都是準(zhǔn)確無誤,沒有歧義的。也就是說計算機(jī)如何執(zhí)行一段代碼是不存在歧義的,除非是你的代碼編寫出了問題。在同樣的條件下,這段代碼總是會按照既定的步驟執(zhí)行,這種特征正是人類現(xiàn)行法律與合約中所缺失的,有了以太腳本之后,我們就可以建立具備這種特征的合約了!
? 考慮到大部分的合約都涉及到經(jīng)濟(jì)價值的交換,或者具有某種經(jīng)濟(jì)后果,因此我們可以在以太網(wǎng)上用代碼實(shí)現(xiàn)人類社會中各式各樣的法律與合約。用代碼實(shí)現(xiàn)合約,可以有嚴(yán)格明確的定義,并且可以自動被執(zhí)行。如此說來,有些晦澀難懂,我們還是一起來看個簡單的例子吧。
? 假如你有個古董,然后小強(qiáng)想以88888元的價格購買,同時承諾會在5月份進(jìn)行付款。按照傳統(tǒng)的交易流程,首先會與小強(qiáng)簽訂一個合約,合約里規(guī)定張某在5月份向你付款,合同簽訂完畢,你就將古董的控制權(quán)轉(zhuǎn)移到了小強(qiáng)手里,等著張某到5月份給你付款。等到了5月份,按照你對合約的理解,小應(yīng)該付款了,但這時候小強(qiáng)說,他認(rèn)為合同里的5月份指的是明年5月,而不是今年5月,這個時候你就要準(zhǔn)備好花錢,請律師去法庭上好好討論一下,合同里的5月份到底是何年何月了。
? 而如果基于以太坊,你可以用以太腳本定義出這份合同的智能代碼合約,相比于現(xiàn)有的律師們起草的合約要通俗易懂的多。如果采用這種方式,簡單的代碼合約一般的用戶就可以起草,特殊一點(diǎn)的代碼合約可能需要資深一點(diǎn)的專家。作為結(jié)果,我們得到的這份合約,完全消除了類似“我認(rèn)為,你認(rèn)為”的這種誤解,締約雙方是否依法履約的不確定性也一并被消除。也就是說,代碼腳本寫成的這份合約,既定義了合約內(nèi)容,又保證了合約內(nèi)容的執(zhí)行。
? 本質(zhì)上而言,由代碼構(gòu)成的合約是一個無歧義且無法毀約的合約,只要雙方都認(rèn)同合約,那么合約就一定會執(zhí)行,不管其中是否有人想毀約或者提出歧義,代碼就是最好的語言,代碼的自規(guī)則將自行運(yùn)轉(zhuǎn),是不以人的主觀意志為轉(zhuǎn)移的機(jī)器法律。
?
? 結(jié)語:代碼即法律
? 法律作為一種社區(qū)共識,它是以人性作為起點(diǎn),以道德作為基礎(chǔ),以利益作為條件,以暴力作為信用而形成的一個“合約”,但這個合約很容易在高收益的誘使下被破壞,然后違約者被發(fā)現(xiàn)后才會受到法律制裁,這是一種“過去式”的懲罰機(jī)制。
? 而區(qū)塊鏈代碼是一種內(nèi)在的規(guī)則,為軟件代碼定義的對應(yīng)的算法運(yùn)算規(guī)則,如果不遵守代碼的運(yùn)行機(jī)理,程序?qū)⒎祷匾粋€error并停止運(yùn)行,這是一種"進(jìn)行時"的執(zhí)行機(jī)制。代碼所組成的進(jìn)行式機(jī)制,從根本上保證了整個規(guī)則體系的運(yùn)轉(zhuǎn),如果代碼無漏洞,該體系就無法被打破。
? 因此代碼意味著規(guī)則,區(qū)塊鏈?zhǔn)澜绲膽椪戮褪谴a,代碼即法律。
? 當(dāng)然,最后的區(qū)塊鏈?zhǔn)澜鐣粫突ヂ?lián)網(wǎng)世界一樣,仍然是由法律來主宰代碼,誰也沒有辦法在這里預(yù)測。有時候我們低估了技術(shù)的力量,有時候我們也高估了人性的底線,但由于區(qū)塊鏈技術(shù)的介入,如果想要修改區(qū)塊鏈?zhǔn)澜绲膽椪拢菍⑹且粓龈ち业膽?zhàn)爭。
? 感:
? 作為執(zhí)業(yè)多年的律師,在長期的法律應(yīng)用實(shí)踐中,早已適應(yīng)了現(xiàn)今的法律體系及規(guī)則,以及它的糾紛解決機(jī)制。說實(shí)話,對于這一早已適應(yīng)了的體系,卻沒有思考過能有置身其外的視角,來審視整套體系的優(yōu)劣。
? 該文認(rèn)為現(xiàn)行的法律體系的合約和法律是充滿歧義的,且強(qiáng)制執(zhí)行合約或法律的成本巨大。細(xì)細(xì)思考,不得不承認(rèn)這是事實(shí)。
? 思:
? 現(xiàn)行的法律體系,是架構(gòu)在由文字、語句構(gòu)成的成文法中,合同合約也是由文字構(gòu)成。而文字與語句,都是很容易產(chǎn)生歧義的。解決爭端的機(jī)制需要成本,這將對于交易達(dá)成構(gòu)成影響。
? 在接觸學(xué)習(xí)區(qū)塊鏈之前,從未設(shè)想過計算機(jī)程序代碼的自動執(zhí)行,能夠產(chǎn)生自動執(zhí)行合約的作用。也由此,開闊了自己的思路,了解了“智能合約”的概念。智能合約的輸入和解釋是唯一的,執(zhí)行的結(jié)果也是唯一的。交易安全透明可追蹤,這是一種法律前置,也可以理解為是將文本意義上的合同,預(yù)先轉(zhuǎn)化為沒有歧義且交易各方均認(rèn)可的代碼,確保合同能夠自動得到執(zhí)行。不會產(chǎn)生任何歧義,也不會產(chǎn)生可能導(dǎo)致訴訟或仲裁的糾紛。
? 雖然,這還是一種前瞻性的猜想,技術(shù)的發(fā)展、人性的底線,在具體的新的變革到來后,還需要接受時間的檢驗。但對于律師而言,如果這些設(shè)想實(shí)現(xiàn)了部分,那對于生產(chǎn)關(guān)系的變革是巨大的,對于律師行業(yè)的影響也是巨大的。整個法律體系的架構(gòu)將發(fā)生巨大的變化,許多現(xiàn)行的法律及爭端解決機(jī)制將不復(fù)存在,律師的法律服務(wù)內(nèi)容及方式將會巨變。這些,都是值得每一個法律人認(rèn)真思考并在實(shí)踐中摸索前行的。
? 行:
? 參與其中,保持絕對的理性與開放,持續(xù)地學(xué)習(xí),并以寫作的方式記錄。