首頁>城市生活 >
概念炒作的背后,“智能合約”的真相是什么? 2018-06-25 11:50:11  來源:36氪

原標題:概念炒作的背后,“智能合約”的真相是什么?

編者按:本文編譯自Medium,作者Jimmy Song,原文標題The Truth about Smart Contracts。

就像“區(qū)塊鏈”,“AI”和“云”一樣,“智能合約”也是如今收到熱捧的新概念。

試想一下,有什么能比相確信合約在未來會按照約定被執(zhí)行而不需要任何司法介入更好? 智能合約的承諾包括:

合約可以被自動地、無需信任地和公正地執(zhí)行

在合約制定,履行和強制執(zhí)行過程中取消中間人

或許不再需要律師

我能夠理解智能合約為何會被熱炒。 畢竟,如果我們不需要擔心對方是否會按照約定履行合約,那么很多事情的效率會大大提高。

話說,到底什么是智能合約? 這是源于以太坊的概念么? 這是未來合約訂立的方式么?

在這篇文章中,我將探究智能合約的種種細節(jié)以及與之相伴的“工程現(xiàn)實”問題(劇透:它并不簡單,并且很難保證可靠性)。

什么是智能合約?

正常的通常意義上的合約是雙方或多方之間的協(xié)議,將他們約束在未來發(fā)生的某些事物上。 譬如,Alice可能會向Bob支付一些錢來使用Bob的房屋(又名租金)。 Charlie可能會同意修復對Denise的汽車未來發(fā)生的任何損壞,作為回報Denise每月向Charlie支付一筆費用(又名汽車保險)。

所謂“智能”合約,其不同之處在于合約的所有條款都是由計算機代碼評估和執(zhí)行的,這使得它無需任何信用背書。 因此,如果Alice同意支付向Bob支付500購買沙發(fā),交貨期為3個月。則通過計算機代碼可以判斷合約的某些條款是否成立(Alice是否付款給了Bob?3個月的交貨期是否到期?)并執(zhí)行合約 (將托管下的沙發(fā)交付給Alice);合約雙方都沒有反悔的權(quán)利。

智能合約的關(guān)鍵特點是它的執(zhí)行力不依賴任何信用背書。 也就是說,你不需要依賴第三方來執(zhí)行各種條款。 既不需要依靠對方對合約的履行言行一致,也不需要在合約執(zhí)行出現(xiàn)問題時依靠律師和法律制度來糾正事情;智能合約可以及時客觀地執(zhí)行合約約定的各個事項。

智能合約非?!吧倒稀?

使用“智能”一詞意味著這些合約具有某種天生的智慧。 然后事情并非如此。 所謂”智能“的部分在于合約的執(zhí)行不依賴任何一方的合作。 相比把拖欠房租的租客請出房子,一個“智能”的合約會直接將沒有按時付款的租客鎖在房子外面。 對于合約約定后果的無條件執(zhí)行是智能合約顯得強大有力的原因,而不是智能合約具有天生的智慧。

一個真正意義上的智能合約應當考慮到所有情有可原的情況,著眼于契約精神,即便在情況非常不明朗的條件下也試圖做出公平的裁決。 換句話說,一個真正的智能合約就像一個非常好的法官。 與之相反,現(xiàn)實中的智能合約非常不智能。 它事實上只是基于規(guī)則并嚴格按照規(guī)則行事,不能將任何次要因素或法治精神考慮在內(nèi)。

換句話說,由于智能合約不依靠任何信用背書,同時也意味著合約的訂立不能有任何模棱兩可的空間。這一點引發(fā)了下一個問題。

擬定智能合約非常困難

由于以太坊大量的宣傳,使得人們錯誤地認為智能合約只存在于以太坊。 然而事實并非如此。 2009年伊始,比特幣就已經(jīng)擁有了一種被廣泛使用,名叫Script的語言來擬定智能合約。 事實上,智能合約的存在可以追溯到1995年,要早于比特幣。比特幣的智能合約語言同以太坊版本的區(qū)別在于以太坊的語言具有圖靈完備性。 也就是說,以太坊的Solidity語言允許更復雜的合約,其代價是會增加分析難度。

這種語言的復雜性帶來了一些重大的后果。 雖然復雜的合約可以允許更復雜的情況,但復雜的合約也很難保證安全。 即使是普通的合約,實施難度也會因為復雜性的提高而加大;因為復雜性帶來了更多的不確定性和解釋空間。 憑借智能合約,確保安全意味著處理合約可能被執(zhí)行的所有可能方式,并確保合約執(zhí)行符合擬定者的意圖。

執(zhí)行具有圖靈完備性的上下文中是極其棘手和難以分析的。 安全可靠地執(zhí)行圖靈完備的智能合約相當于證明一個計算機程序沒有錯誤。 我們知道這是非常困難的,因為幾乎所有現(xiàn)存的計算機程序都或多或少存在缺陷。

考慮到需要多年的學習和非常過硬的考核才能夠勝任編寫普通合約的工作這樣一個事實。 智能合約的編寫至少需要與之相當?shù)哪芰?,但目前還有的合約是由很多不懂得如何確保其安全性的新手編寫的。 從當前很多存在缺陷的智能合約中可以清楚地看出這一點。

比特幣的解決方案簡單地放棄圖靈完備性。 這使合約更容易分析,因為合約可能的結(jié)果更容易列舉和檢查。

以太坊的解決方案是將確??煽啃缘呢熑瓮懈督o智能合約的起草者。 合約的起草者應確保合約按照他們的意圖進行。

智能合約并非真正的合約(至少在以太坊)

雖然在理論上將確保合約可靠性的責任交給起草者是個不錯的辦法,但實際操作中這已經(jīng)產(chǎn)生了一些嚴重的集權(quán)后果。

以太坊以“代碼即法律”的觀點發(fā)起。 也就是說,在以太坊合約是最終的權(quán)威,沒有人可以否決合約。 這個觀點向智能合約開發(fā)者表達的意思是他們必須依靠自己。 如果你搞砸自己的智能合約,那么從某種意義上講,你是咎由自取。 當DAO事件發(fā)生時,這導致了崩潰。

DAO是“分散的自治組織(Decentralized Autonomous Organization)”的簡稱,他們在以太坊創(chuàng)建了一個基金,以此來展示該平臺可以做什么。 用戶可以將資金存入DAO,并根據(jù)DAO投資收益獲得回報。 投資決策會由去中心化的眾包形式做出。 DAO在以太幣價值20美元時募集了大約1.5億美金。上述的這些事情看上去很美好,不過千里之堤潰于蟻穴。 因為代碼的可靠性沒有很好地保護,最終導致有人想出了一個途徑盜取了DAO所有的資金。

許多人將盜走DAO的人稱為“黑客”。 在這種意義上,這個“黑客”找到了一種方法,以智能合約起草者沒有考慮的方式從合約中盜取了資金,這是個真實的例子。 但從更廣泛的意義上講,此人根本不能為稱作黑客,他只是一個正在利用智能合約中的瑕疵獲利的人。 這與有想法的注冊會計師(CPA)利用稅務漏洞為其客戶節(jié)稅并無太大區(qū)別。

在此之后,以太坊決定不再視代碼為法律,并將存入DAO的所有資金歸還。 換句話說,智能合約的起草者和投資者做了一些愚蠢的事情,而以太坊的開發(fā)者決定將他們解救出來。



這起事件的影響完全有據(jù)可查。 Ethereum Classic平臺因此誕生,保留了DAO并延續(xù)“代碼即法律”的原則。 除此之外,開發(fā)人員開始回避使用以太坊圖圖靈完備屬性的智能合約,因為它證明很難保證可靠性。 當前ERC20和ERC721標準是以太坊中使用最為頻繁的智能合約模板,需要著重指出的是,這兩種合約都可以在沒有任何圖靈完備性的情況下編寫。

智能合約只是用于數(shù)字化的無記名票據(jù)(digital bearer instruments)

即使不具備圖靈完備性,智能合約仍然聽起來不錯。 畢竟,誰喜歡不得不去法庭上獲得本就該屬于他們的東西呢? 相比普通合約,使用智能合約來實現(xiàn)這一點不是更容易么?

例如,房地產(chǎn)行業(yè)不就能因為智能合約受益么? Alice可以證明她擁有房子, Bob可以為房子付款并獲得它。 沒有所有權(quán)問題,機器可以快速、無需信任地執(zhí)行合約,不需要法官,行政機構(gòu)或產(chǎn)權(quán)保險。 聽起來很棒,不是么?

這里有兩個問題。 首先,由中心化組織負責執(zhí)行智能合約并不是真的不可靠。 你仍然需要信任這個中心化組織才能執(zhí)行合約。 無需信任是智能合約的關(guān)鍵特征,因此中心化的執(zhí)行機構(gòu)使得只呢呢合約失去了意義。 為了讓智能合約真的無需信任機制,你需要一個真正的無中心的平臺。

第二個問題就此引出。 在去中心的環(huán)境下,智能合約只有在數(shù)字版本與實體之間存在某種明確的聯(lián)系時才能有效代替普通合約。 也就是說,只要房子的數(shù)字版本改變所有權(quán),其實體必須改變所有權(quán)。 數(shù)字世界需要聯(lián)系物質(zhì)世界。 這被稱為“測試準則問題”(oracle problem)。

當Alice將房子轉(zhuǎn)讓給Bob時,智能合約需要獲知她實際上將房子轉(zhuǎn)讓給了Bob。 有幾種方法可以做到這一點,但它們都有相同的基本問題。 那就是有一個被信任的第三方在現(xiàn)實世界中驗證轉(zhuǎn)讓行為的發(fā)生。

例如,房子可以在以太坊上表現(xiàn)為一枚不可替代的令牌。 Alice可以通過原子交換(Atomic Swap)將房子轉(zhuǎn)移給Bob以獲得一定數(shù)量的以太幣。 問題在于,Bob需要相信這枚令牌實際上代表了房子。這里必須有一些測試準則確保代表房子的令牌的轉(zhuǎn)讓在實際上意味著該房子實際所有權(quán)的合法轉(zhuǎn)讓。

此外,即使政府當局承認令牌實際代表房屋,那么如果令牌被盜,情況又會怎樣, 這房子現(xiàn)在屬于小偷嗎? 加入令牌丟失怎么辦? 房子不能再出售了嗎? 代表房屋的令牌可以重新簽發(fā)么? 如果可以的話,應該由誰來執(zhí)行呢?

在去中心化的的背景下,將數(shù)字與實物資產(chǎn)聯(lián)系起來是一個棘手的問題,無論它是水果,汽車還是房屋。 實物資產(chǎn)受您所處區(qū)域的政府或其他機構(gòu)管轄,這意味著除了你創(chuàng)建的智能合約之外,他們還需要相信一些其他的東西。 這意味著,智能合約中的所有權(quán)并不一定等于現(xiàn)實世界中對同一事物的所有權(quán),并且會像普通合約一樣面臨信任問題。 需要信任第三方才能履行的智能合約也就不再具有無需信任任何人這個其最大功能(或者說優(yōu)點)。

即使是電子書,健康記錄或電影等數(shù)字化資產(chǎn)也會遇到同樣的問題。 這些數(shù)字資產(chǎn)的“權(quán)利”最終由其他一些權(quán)威機構(gòu)決定,而測試準則需要被信任。

從這個角度來看,測試準則只是現(xiàn)實中法官的簡化版本。 除了獲得僅依靠機器來履行合約和簡化的強制執(zhí)行規(guī)則的好的,你實際要面臨的復雜工作是用代碼將合約所有的可能情況以及主觀性和人為判斷的風險全都考慮在內(nèi)。 換句話說,簽訂一份“智能”的合約意味著你需要編寫復雜的代碼,同時還需要信任某個人或組織。

唯一不需要測試準則的合約標的就是數(shù)字化的無記名票據(jù)。 本質(zhì)上,交易雙方不僅僅需要數(shù)字化的,而且合約標的必須是無記名票據(jù)。 也就是說,令牌的所有權(quán)不能在智能合約簽訂平臺之外擁有依賴關(guān)系。 只有當智能合約的標題是數(shù)字化的無記名票據(jù)是,智能合約能在無需信任的基礎上被執(zhí)行。

結(jié)論

我非常希望智能合約可以比它目前看起來更加實用。 不幸的是,我們?nèi)祟悓τ诤霞s的理解包含了大量的假設和無需清楚說明的判例法。

此外,事實證明,利用圖靈完備性是一種破壞智能合約的簡單方法,并導致各種意想不到的行為。 我們應該標記那些不具備圖靈完完備性的智能合約平臺,而不是有圖靈完備性的那些。 DAO事件也證明了被隱隱相信和幫助解決爭端的契約精神確實存在,這點超乎我們的想象。

智能合約簡直太容易搞砸,難以保證可靠性,很難廣泛地做到無需信任、并且依賴太多外部事物使它適用于大多數(shù)場景。 智能合約唯一具有無需信任這一特點的場景是比特幣這樣的基于去中心化平臺的數(shù)字化的無記名票據(jù)。

編譯組出品。編輯:郝鵬程

關(guān)鍵詞:

相關(guān)閱讀:
熱點
圖片 圖片