前言:你真的知道以太坊的智能合約是什么意思嗎,比如它的功能,運行機制?它是否存在漏洞,也是否真的是去中心化的標(biāo)桿?想知道不一樣的答案嗎?在上一篇中,作者從什么是智能合約的定義闡述開始過渡到分析它的理論上的不完美和技術(shù)上的缺陷,還是讓人耳目一新的。接下來作者又會給出什么批判,又會帶給你什么反思呢?
版權(quán)聲明:本文授權(quán)BH好文好報群摘編、轉(zhuǎn)載以及相關(guān)轉(zhuǎn)授權(quán)推文行為
原文標(biāo)題:The Truth about Smart Contracts
鏈接:https://medium.com/@jimmysong/the-truth-about-smart-contracts-ae825271811f
作者:Jimmy Song
翻譯:M小新
智能合約不是真正的合約(至少在ETH上)
雖然在理論上將保證合約安全性的責(zé)任推給寫合約的人聽起來很好,但在實踐中,這已經(jīng)產(chǎn)生了一些嚴重的集中化后果。以太坊推出了“代碼就是法律”。也就是說,以太坊的合同是最終的權(quán)威,任何人都無法否決合同。這個想法是向智能合約開發(fā)者表明他們只能依靠自己,如果你搞砸了自己的智能合約,那么從某種意義上說,你活該。當(dāng)DAO事件發(fā)生時,這就停止了。 DAO代表“去中心化的自治組織”,并在以太坊創(chuàng)建了一個基金,作為展示平臺的作用。用戶可以向DAO存款并根據(jù)DAO的投資獲得回報。決策本身是眾包和去中心化的。
當(dāng)ETH交易價格在20美元左右時,DAO以ETH籌集了1.5億美元。這在理論上聽起來都不錯,但是有一個問題。代碼沒有得到很好的保護,導(dǎo)致有人找到一種方法來拿走DAO的錢。 許多人認為是“黑客”拿走DAO的錢。從某種意義上說,“黑客”找到了一種合約締造者也沒想到的方式從合同中取走錢,這是事實。但從更廣泛的意義上講,這根本不是黑客,只是有人利用智能合約中的漏洞來發(fā)揮自己的優(yōu)勢。這與注冊會計師找出稅收漏洞以節(jié)省客戶資金的方式并無太大差別。 接下來發(fā)生的事情是,以太坊決定代碼不再是法律,并將所有DAO的資金返回。換句話說,合約編寫者和投資者做了一些愚蠢的事情,以太坊開發(fā)者決定拯救他們。
這一事件的后果已有詳細記錄。以太坊經(jīng)典誕生了,保留了DAO,并保留了“代碼是法律”的原則。此外,開發(fā)人員開始回避使用以太坊的圖靈完備屬性,因為它被證明很難保證安全。ERC20和ERC721標(biāo)準(zhǔn)是以太坊中最常用的智能合約模板,特別要指出的是這兩種類型的合同都可以在沒有任何圖靈完整性的情況下編寫。
智能合約僅適用于數(shù)字承載儀器
即使沒有圖靈完備,智能合約聽起來也不錯。畢竟,誰喜歡不得不上法庭才能合理獲得本屬于他們的東西?智能合約是不是比普通合同更容易使用?例如,智能合約下的房產(chǎn)轉(zhuǎn)移?Alice可以證明她擁有這所房子。Bob可以為房子匯款并換取房子。沒有所有權(quán),去信任,機器快速執(zhí)行,無需法官,官僚或產(chǎn)權(quán)保險的問題。聽起來很棒,對嗎?
這里有兩個問題。首先,如果執(zhí)行智能合約的是一個集權(quán)的機構(gòu),那它就并非真正去信任。因為你還是通過信任這一集權(quán)的機構(gòu)執(zhí)行合約。而去信任才是關(guān)鍵特性,因此中心化的執(zhí)行方式是說不通的。為了使智能合約真正去信任,您更需要一個去中心化的平臺。
這引出了我們的第二個問題。在去中心化的環(huán)境中,只有當(dāng)數(shù)字版本和物理版本之間存在某種明確的聯(lián)系時,智能合約才有效。也就是說,每當(dāng)房屋的數(shù)字版本改變所有權(quán)時,物理版本也必須改變所有權(quán)。數(shù)字世界需要“了解”物理世界。這被稱為“oracle problem”。(oracle problem 很難用簡單的詞語表達,在后續(xù)文章會專門闡釋)
當(dāng)Alice將房子轉(zhuǎn)移給Bob時,智能合約需要知道她真的有將房子轉(zhuǎn)讓給Bob。有幾種方法可以做到這一點,但它們都有同樣的基本問題。必須有一些可信的第三方來驗證物理世界中的事件。
例如,用房子代表以太坊上的不可替代的代幣。Alice可以通過幣幣交換將房子轉(zhuǎn)移給Bob以獲得一定數(shù)量的ETH。這是問題所在。 Bob需要相信Alice的代表實際上代表了房子。必須有一些合約條件確保他收到的房屋代幣就意味著這是他的合法房屋了。
此外,即使政府認同代幣可以代表房屋,如果代幣被盜,會發(fā)生什么呢?房子現(xiàn)在屬于小偷嗎?如果代幣丟失怎么辦?房子不能再出售嗎?房屋代幣可以重新派發(fā)嗎?如果可以,由誰派發(fā)呢?
將數(shù)字資產(chǎn)與實物資產(chǎn)聯(lián)系起來存在一個棘手的問題,無論是水果,汽車還是房屋,至少要在去中心化的環(huán)境中。實物資產(chǎn)受您所在地區(qū)的管轄,這意味著除了您創(chuàng)建的智能合約之外,從某種意義上將,他們本身就是可被信任的東西。這意味著在智能合約中占有并不一定意味著在現(xiàn)實世界中擁有,普通合同也存在相同的信任問題。需要信任第三方的智能合約扼殺去信任最關(guān)鍵的特性。
即使是電子書,健康記錄或電影等數(shù)字資產(chǎn)也會遇到同樣的問題。這些數(shù)字資產(chǎn)的“權(quán)利”最終由其他權(quán)威機構(gòu)決定,而數(shù)據(jù)的獲取和調(diào)用也需要得到信任。
從這個角度來看,合約條件只是貶低了法官的屬性。您實際得到的不僅僅是機器執(zhí)行和簡化執(zhí)行,而是必須使用主觀性和人類判斷風(fēng)險對所有可能結(jié)果進行編碼的復(fù)雜性。換句話說,通過使合同變得“聰明”,使得寫作變得更加復(fù)雜,同時仍然不得不信任其它人。
不需要可信數(shù)據(jù)支撐的唯一可行性的是數(shù)字承載工具。從本質(zhì)上講,交易的雙方不僅需要數(shù)字化,還需要承載工具。也就是說,代幣的所有權(quán)不能需要智能合約之外的依賴性。只有當(dāng)智能合約包含數(shù)字承載工具,智能合約才是真正去信任的。
結(jié)論
我希望智能合約比實際更有用。不幸的是,我們認為合約的大部分內(nèi)容帶來了一大堆不需要明確說明的假設(shè)和既定的法律。
此外,事實證明利用圖靈完整性是搞砸事情并導(dǎo)致各種意外的一種簡單的方法。我們應(yīng)該將智能合約平臺標(biāo)記為圖靈脆弱,而不是圖靈完備。DAO事件也證明合約的“精神”是隱含信任的,并且比我們意識到的更有助于解決糾紛。
智能合約簡直太容易搞砸,太難以保護,太難以實現(xiàn)去信任,并且有很多事情需要太多的外部依賴關(guān)系。智能合約唯一真正添加了去信任的功能的地方是那些像比特幣等去中心化平臺上的數(shù)字承載工具。
點評:坦白講,作者后半部分的觀點我理解起來也吃力,我的理解是:ETH提出的智能合約不管是從合約觸發(fā)條件到最后被執(zhí)行,實際上并非真的智能,一方面代碼的編寫是死的,而現(xiàn)實是有太多可能的因素存在,如果合約太復(fù)雜,會影響執(zhí)行力。而編寫這些智能合約的人也存在水平不夠的問題。同時即便是很復(fù)雜的合約也會存在漏洞,這給黑客攻擊的機會。另一方面也就代幣的問題,首先合約雙方需要信任代幣,再則代幣確實能產(chǎn)生效力。最后一點就是就算合約很完美,但還是滿足不了去信任,去中心化的特性,因為在數(shù)字世界發(fā)生的事情,還是需要物理世界中心化的機構(gòu)去驗證。
溫馨提示:
如需對本文轉(zhuǎn)載,請注明原文出處,作者以及轉(zhuǎn)載出處和譯者,謝謝配合?。?!
早贊聲明:為方便早贊、避免亂贊,“BH好文好報群”為點贊者、寫作者牽線搭橋,實行“先審后贊、定時發(fā)表”的規(guī)則,也讓作品脫穎而出、速登熱門!加群微信:we01230123(天平)