17021211254
轉(zhuǎn)載自:http://36kr.com/p/5140120.html
嵌牛導(dǎo)讀:就像“區(qū)塊鏈”,“AI”和“云”一樣寡壮,“智能合約”也是如今收到熱捧的新概念贩疙。
嵌牛鼻子:智能合約
嵌牛提問:“智能合約”的真相是什么?
就像“區(qū)塊鏈”况既,“AI”和“云”一樣这溅,“智能合約”也是如今收到熱捧的新概念。
試想一下棒仍,有什么能比相確信合約在未來會按照約定被執(zhí)行而不需要任何司法介入更好悲靴? 智能合約的承諾包括:
合約可以被自動地、無需信任地和公正地執(zhí)行
在合約制定莫其,履行和強(qiáng)制執(zhí)行過程中取消中間人
或許不再需要律師
我能夠理解智能合約為何會被熱炒癞尚。 畢竟耸三,如果我們不需要擔(dān)心對方是否會按照約定履行合約,那么很多事情的效率會大大提高浇揩。
話說仪壮,到底什么是智能合約? 這是源于以太坊的概念么胳徽? 這是未來合約訂立的方式么积锅?
在這篇文章中,我將探究智能合約的種種細(xì)節(jié)以及與之相伴的“工程現(xiàn)實”問題(劇透:它并不簡單养盗,并且很難保證可靠性)缚陷。
什么是智能合約?
正常的通常意義上的合約是雙方或多方之間的協(xié)議往核,將他們約束在未來發(fā)生的某些事物上箫爷。 譬如,Alice可能會向Bob支付一些錢來使用Bob的房屋(又名租金)铆铆。 Charlie可能會同意修復(fù)對Denise的汽車未來發(fā)生的任何損壞蝶缀,作為回報Denise每月向Charlie支付一筆費用(又名汽車保險)。
所謂“智能”合約薄货,其不同之處在于合約的所有條款都是由計算機(jī)代碼評估和執(zhí)行的翁都,這使得它無需任何信用背書。 因此谅猾,如果Alice同意支付向Bob支付500購買沙發(fā)柄慰,交貨期為3個月。則通過計算機(jī)代碼可以判斷合約的某些條款是否成立(Alice是否付款給了Bob税娜?3個月的交貨期是否到期坐搔?)并執(zhí)行合約 (將托管下的沙發(fā)交付給Alice);合約雙方都沒有反悔的權(quán)利敬矩。
智能合約的關(guān)鍵特點是它的執(zhí)行力不依賴任何信用背書概行。 也就是說,你不需要依賴第三方來執(zhí)行各種條款弧岳。 既不需要依靠對方對合約的履行言行一致凳忙,也不需要在合約執(zhí)行出現(xiàn)問題時依靠律師和法律制度來糾正事情;智能合約可以及時客觀地執(zhí)行合約約定的各個事項禽炬。
智能合約非辰眩“傻瓜“
使用“智能”一詞意味著這些合約具有某種天生的智慧。 然后事情并非如此腹尖。 所謂”智能“的部分在于合約的執(zhí)行不依賴任何一方的合作柳恐。 相比把拖欠房租的租客請出房子,一個“智能”的合約會直接將沒有按時付款的租客鎖在房子外面。 對于合約約定后果的無條件執(zhí)行是智能合約顯得強(qiáng)大有力的原因乐设,而不是智能合約具有天生的智慧讼庇。
一個真正意義上的智能合約應(yīng)當(dāng)考慮到所有情有可原的情況,著眼于契約精神伤提,即便在情況非常不明朗的條件下也試圖做出公平的裁決巫俺。 換句話說认烁,一個真正的智能合約就像一個非常好的法官肿男。 與之相反,現(xiàn)實中的智能合約非常不智能却嗡。 它事實上只是基于規(guī)則并嚴(yán)格按照規(guī)則行事舶沛,不能將任何次要因素或法治精神考慮在內(nèi)。
換句話說窗价,由于智能合約不依靠任何信用背書如庭,同時也意味著合約的訂立不能有任何模棱兩可的空間。這一點引發(fā)了下一個問題撼港。
擬定智能合約非常困難
由于以太坊大量的宣傳坪它,使得人們錯誤地認(rèn)為智能合約只存在于以太坊。 然而事實并非如此帝牡。 2009年伊始往毡,比特幣就已經(jīng)擁有了一種被廣泛使用,名叫Script的語言來擬定智能合約靶溜。 事實上开瞭,智能合約的存在可以追溯到1995年,要早于比特幣罩息。比特幣的智能合約語言同以太坊版本的區(qū)別在于以太坊的語言具有圖靈完備性嗤详。 也就是說,以太坊的Solidity語言允許更復(fù)雜的合約瓷炮,其代價是會增加分析難度葱色。
這種語言的復(fù)雜性帶來了一些重大的后果。 雖然復(fù)雜的合約可以允許更復(fù)雜的情況娘香,但復(fù)雜的合約也很難保證安全苍狰。 即使是普通的合約,實施難度也會因為復(fù)雜性的提高而加大茅主;因為復(fù)雜性帶來了更多的不確定性和解釋空間舞痰。 憑借智能合約,確保安全意味著處理合約可能被執(zhí)行的所有可能方式诀姚,并確保合約執(zhí)行符合擬定者的意圖响牛。
執(zhí)行具有圖靈完備性的上下文中是極其棘手和難以分析的。 安全可靠地執(zhí)行圖靈完備的智能合約相當(dāng)于證明一個計算機(jī)程序沒有錯誤。 我們知道這是非常困難的呀打,因為幾乎所有現(xiàn)存的計算機(jī)程序都或多或少存在缺陷矢赁。
考慮到需要多年的學(xué)習(xí)和非常過硬的考核才能夠勝任編寫普通合約的工作這樣一個事實。 智能合約的編寫至少需要與之相當(dāng)?shù)哪芰Ρ岽裕壳斑€有的合約是由很多不懂得如何確保其安全性的新手編寫的撩银。 從當(dāng)前很多存在缺陷的智能合約中可以清楚地看出這一點。
比特幣的解決方案簡單地放棄圖靈完備性豺憔。 這使合約更容易分析额获,因為合約可能的結(jié)果更容易列舉和檢查。
以太坊的解決方案是將確惫вΓ可靠性的責(zé)任托付給智能合約的起草者抄邀。 合約的起草者應(yīng)確保合約按照他們的意圖進(jìn)行昼榛。
智能合約并非真正的合約(至少在以太坊)
雖然在理論上將確保合約可靠性的責(zé)任交給起草者是個不錯的辦法境肾,但實際操作中這已經(jīng)產(chǎn)生了一些嚴(yán)重的集權(quán)后果。
以太坊以“代碼即法律”的觀點發(fā)起胆屿。 也就是說环鲤,在以太坊合約是最終的權(quán)威唇兑,沒有人可以否決合約扎附。 這個觀點向智能合約開發(fā)者表達(dá)的意思是他們必須依靠自己。 如果你搞砸自己的智能合約,那么從某種意義上講,你是咎由自取钦讳。 當(dāng)DAO事件發(fā)生時缚去,這導(dǎo)致了崩潰琼开。
DAO是“分散的自治組織(Decentralized Autonomous Organization)”的簡稱滋尉,他們在以太坊創(chuàng)建了一個基金,以此來展示該平臺可以做什么碌识。 用戶可以將資金存入DAO,并根據(jù)DAO投資收益獲得回報牡拇。 投資決策會由去中心化的眾包形式做出。 DAO在以太幣價值20美元時募集了大約1.5億美金矫付。上述的這些事情看上去很美好妨马,不過千里之堤潰于蟻穴瞻佛。 因為代碼的可靠性沒有很好地保護(hù)娇钱,最終導(dǎo)致有人想出了一個途徑盜取了DAO所有的資金伤柄。
許多人將盜走DAO的人稱為“黑客”常挚。 在這種意義上奄毡,這個“黑客”找到了一種方法吼过,以智能合約起草者沒有考慮的方式從合約中盜取了資金揖闸,這是個真實的例子。 但從更廣泛的意義上講令蛉,此人根本不能為稱作黑客聚霜,他只是一個正在利用智能合約中的瑕疵獲利的人。 這與有想法的注冊會計師(CPA)利用稅務(wù)漏洞為其客戶節(jié)稅并無太大區(qū)別珠叔。
在此之后蝎宇,以太坊決定不再視代碼為法律,并將存入DAO的所有資金歸還祷安。 換句話說姥芥,智能合約的起草者和投資者做了一些愚蠢的事情,而以太坊的開發(fā)者決定將他們解救出來汇鞭。
這起事件的影響完全有據(jù)可查凉唐。 Ethereum Classic平臺因此誕生,保留了DAO并延續(xù)“代碼即法律”的原則虱咧。 除此之外熊榛,開發(fā)人員開始回避使用以太坊圖圖靈完備屬性的智能合約,因為它證明很難保證可靠性腕巡。 當(dāng)前ERC20和ERC721標(biāo)準(zhǔn)是以太坊中使用最為頻繁的智能合約模板,需要著重指出的是血筑,這兩種合約都可以在沒有任何圖靈完備性的情況下編寫绘沉。
智能合約只是用于數(shù)字化的無記名票據(jù)(digital bearer instruments)
即使不具備圖靈完備性,智能合約仍然聽起來不錯豺总。 畢竟车伞,誰喜歡不得不去法庭上獲得本就該屬于他們的東西呢? 相比普通合約喻喳,使用智能合約來實現(xiàn)這一點不是更容易么另玖?
例如,房地產(chǎn)行業(yè)不就能因為智能合約受益么表伦? Alice可以證明她擁有房子谦去, Bob可以為房子付款并獲得它。 沒有所有權(quán)問題蹦哼,機(jī)器可以快速鳄哭、無需信任地執(zhí)行合約,不需要法官纲熏,行政機(jī)構(gòu)或產(chǎn)權(quán)保險妆丘。 聽起來很棒锄俄,不是么?
這里有兩個問題勺拣。 首先奶赠,由中心化組織負(fù)責(zé)執(zhí)行智能合約并不是真的不可靠。 你仍然需要信任這個中心化組織才能執(zhí)行合約药有。 無需信任是智能合約的關(guān)鍵特征毅戈,因此中心化的執(zhí)行機(jī)構(gòu)使得只呢呢合約失去了意義。 為了讓智能合約真的無需信任機(jī)制塑猖,你需要一個真正的無中心的平臺竹祷。
第二個問題就此引出。 在去中心的環(huán)境下羊苟,智能合約只有在數(shù)字版本與實體之間存在某種明確的聯(lián)系時才能有效代替普通合約塑陵。 也就是說,只要房子的數(shù)字版本改變所有權(quán)蜡励,其實體必須改變所有權(quán)令花。 數(shù)字世界需要聯(lián)系物質(zhì)世界。 這被稱為“測試準(zhǔn)則問題”(oracle problem)凉倚。
當(dāng)Alice將房子轉(zhuǎn)讓給Bob時兼都,智能合約需要獲知她實際上將房子轉(zhuǎn)讓給了Bob。 有幾種方法可以做到這一點稽寒,但它們都有相同的基本問題扮碧。 那就是有一個被信任的第三方在現(xiàn)實世界中驗證轉(zhuǎn)讓行為的發(fā)生。
例如杏糙,房子可以在以太坊上表現(xiàn)為一枚不可替代的令牌慎王。 Alice可以通過原子交換(Atomic Swap)將房子轉(zhuǎn)移給Bob以獲得一定數(shù)量的以太幣。 問題在于宏侍,Bob需要相信這枚令牌實際上代表了房子赖淤。這里必須有一些測試準(zhǔn)則確保代表房子的令牌的轉(zhuǎn)讓在實際上意味著該房子實際所有權(quán)的合法轉(zhuǎn)讓。
此外谅河,即使政府當(dāng)局承認(rèn)令牌實際代表房屋咱旱,那么如果令牌被盜,情況又會怎樣绷耍, 這房子現(xiàn)在屬于小偷嗎吐限? 加入令牌丟失怎么辦? 房子不能再出售了嗎锨天? 代表房屋的令牌可以重新簽發(fā)么毯盈? 如果可以的話,應(yīng)該由誰來執(zhí)行呢病袄?
在去中心化的的背景下搂赋,將數(shù)字與實物資產(chǎn)聯(lián)系起來是一個棘手的問題赘阀,無論它是水果,汽車還是房屋脑奠。 實物資產(chǎn)受您所處區(qū)域的政府或其他機(jī)構(gòu)管轄基公,這意味著除了你創(chuàng)建的智能合約之外,他們還需要相信一些其他的東西宋欺。 這意味著轰豆,智能合約中的所有權(quán)并不一定等于現(xiàn)實世界中對同一事物的所有權(quán),并且會像普通合約一樣面臨信任問題齿诞。 需要信任第三方才能履行的智能合約也就不再具有無需信任任何人這個其最大功能(或者說優(yōu)點)酸休。
即使是電子書,健康記錄或電影等數(shù)字化資產(chǎn)也會遇到同樣的問題祷杈。 這些數(shù)字資產(chǎn)的“權(quán)利”最終由其他一些權(quán)威機(jī)構(gòu)決定斑司,而測試準(zhǔn)則需要被信任。
從這個角度來看但汞,測試準(zhǔn)則只是現(xiàn)實中法官的簡化版本宿刮。 除了獲得僅依靠機(jī)器來履行合約和簡化的強(qiáng)制執(zhí)行規(guī)則的好的,你實際要面臨的復(fù)雜工作是用代碼將合約所有的可能情況以及主觀性和人為判斷的風(fēng)險全都考慮在內(nèi)私蕾。 換句話說僵缺,簽訂一份“智能”的合約意味著你需要編寫復(fù)雜的代碼,同時還需要信任某個人或組織踩叭。
唯一不需要測試準(zhǔn)則的合約標(biāo)的就是數(shù)字化的無記名票據(jù)磕潮。 本質(zhì)上,交易雙方不僅僅需要數(shù)字化的容贝,而且合約標(biāo)的必須是無記名票據(jù)揉抵。 也就是說,令牌的所有權(quán)不能在智能合約簽訂平臺之外擁有依賴關(guān)系嗤疯。 只有當(dāng)智能合約的標(biāo)題是數(shù)字化的無記名票據(jù)是,智能合約能在無需信任的基礎(chǔ)上被執(zhí)行闺兢。
結(jié)論
我非常希望智能合約可以比它目前看起來更加實用茂缚。 不幸的是,我們?nèi)祟悓τ诤霞s的理解包含了大量的假設(shè)和無需清楚說明的判例法屋谭。
此外脚囊,事實證明,利用圖靈完備性是一種破壞智能合約的簡單方法桐磁,并導(dǎo)致各種意想不到的行為悔耘。 我們應(yīng)該標(biāo)記那些不具備圖靈完完備性的智能合約平臺,而不是有圖靈完備性的那些我擂。 DAO事件也證明了被隱隱相信和幫助解決爭端的契約精神確實存在衬以,這點超乎我們的想象缓艳。
智能合約簡直太容易搞砸,難以保證可靠性看峻,很難廣泛地做到無需信任阶淘、并且依賴太多外部事物使它適用于大多數(shù)場景。 智能合約唯一具有無需信任這一特點的場景是比特幣這樣的基于去中心化平臺的數(shù)字化的無記名票據(jù)互妓。