智能合約的真相

原文鏈接https://medium.com/@jimmysong/the-truth-about-smart-contracts-ae825271811f
文章翻譯自:蟲洞社區·獨家簽約翻譯團隊 梧桐
本文原作者:Jimmy song

正如“區塊鏈”、“人工智能”和“雲”一樣,“智能合約”也是那些被大肆宣傳的詞語之一。

畢竟,有什麼能比相信將會發生的事情而不是使用司法系統更好呢?智能合約的承諾包括:

1.自動地、誠信地、公平的執行合同
2.在合同建立、合同執行和合同施行中,去除中間人
3.(暗示)去除律師

對於以上宣傳我表示支持。

畢竟,如果我們去除信任另一方將會執行的需要,那麼做事情的效率究竟會提高多少呢?

究竟什麼是智能合約呢?這難道不是以太坊的範疇嗎?這難道不是未來要走的道路嗎?你爲什麼要阻撓進步呢?

在本文中,我將闡述什麼是智能合約以及與之相關的工程實踐(提示這不那麼簡單,很難保證)。

##什麼是智能合約呢?

一個常規的合同是雙方或多方建立的未來對各方有一定約束的協議。Alice 將付給 Bob 一些錢作爲使用 Bob 的房子的回報(也就是租金)。

Charlie 同意在未來修理Denise的車的任何損壞作爲 Denise 每月支付錢給 Charlie 的回報(也即汽車保險)。

智能合約的真相

“智能”合約的不同之處在於合約的條件是通過計算機代碼來進行評估和執行,使其去信任化。

所以如果 Alice 同意支付 Bob 500美元購買沙發,沙發三個月交貨(即沙發期貨),一些代碼可以確定條件是否正確(Alice是否已經支付給Bob?已經過去3個月了嗎?)並執行合約(從第三方託管處交付沙發),而不讓任何一方違約。

智能合約的關鍵特性是去信任化執行,也就是說,你將不在需要依賴第三方執行各種各樣的條件。

智能合約將不再依賴對方履行諾言或者更糟的依賴律師和司法系統來解決問題,而是及時、客觀的執行約定的事宜。

##智能合約是相當愚蠢的

“智能”一詞的使用意味着這些合約有一些與生俱來的智慧,但實際他們沒有。

合約的智能部分是通過不需要對方合作執行協議來體現的。智能合約不再將不按時支付房租的租客趕出房子,而是會將他們鎖在門外。已經同意的因果關係的執行,使得智能合約強大,而不是合約與生俱來的智慧。

智能合約的真相

一個真正的智能合約會考慮所有情有可原的情況,依照合約精神,即使在非常陰暗的情況下,也會做出公平的裁決

換句話說,一個真正的智能合約將扮演真正好法官的角色

反而在這種環境下“智能合約”一點也不智能。這是真正的以規則爲基礎,遵循規則到底,並且不能考慮任何次要的原因或者法律的“精神”。

換言之,使合約去信任化是指我們真正沒有任何可能造成問題的模棱兩可的地方。

##智能合約是真的很難

因爲智能合約很多來自以太坊這個中心化市場,所有這裏有一個誤解,以爲智能合約只存在於以太坊,這是不對的。在2009年初,比特幣就已經有了一個相當廣泛的智能合約語言叫做腳本(Script)。

實際上,智能合約的存在可以追溯到1995年。比特幣智能合約與以太坊的不同在於以太坊是圖靈完備。也就是說,Solidity(以太坊智能合約語言)允許更復雜的合約,但代價是讓這些合約更難分析。

爲了將智能合約的存在甚至早於比特幣表述的更清楚,我喜歡用卡通來進行描述。 這有一些複雜性的重要的結果。
智能合約的真相

雖然複雜合約允許更復雜的情況,但是一個複雜合約也很難安全。

即便在常規的合約中,合約越複雜,就越難執行,因爲複雜的合約會增加更多的不確定性和解釋的空間。而智能合約,安全就意味着合約可以按照每一個可能的方式執行,並確保符合合約作者的意圖。

智能合約的真相

在圖靈完備環境中的執行是極其棘手和難以分析。確保一個圖靈完備智能合約安全就像證明計算機程序沒有漏洞。我們知道這非常困難,因爲現今存在的所有計算機程序都有漏洞。

考慮到寫常規的合約需要多年的學習並經過嚴格的律師資格考試才能勝任。

智能合約要求至少要與常規合同相當的能力,但是目前不是,很多智能合約都是新手編寫的,他們不明白它需要非常安全。

從各種有缺陷的合約中可以清楚的看到這一點。

比特幣對於這一問題的解決方法很簡單,不具備圖靈完備性。這使得合約更容易分析,因爲程序的各種可能的狀態更容易列舉和檢測。

以太坊的解決方法是將這個責任賦予了給智能合約的編寫者。合約的編寫者要確保合約執行的是他們的意圖。

##智能合約並不是真正的合約(至少在以太坊不是)

雖然將合約安全性的責任讓作者承擔聽起來是很不錯的理論,但在實踐中,這將會導致中心化的結果。

以太坊以“代碼就是法律”理念發行,即以太坊合約是最高權威,任何人都不能推翻合約。這個理念是爲了讓智能合約的開發者清楚他們是獨立的。

如果你搞砸了自己的智能合約,從某種意義上說,你是值得的。當DAO事件發生,這種情況就會戛然而止。(DAO:去中心化自治組織)

DAO 全稱 Decentralized Autonomous Organization(去中心化自治組織),在以太坊創立了一個基金,以展示平臺可以做什麼。用戶可以將錢存入 DAO,根據 DAO 所做的投資獲得回報。

這些決定本身將是衆籌和去中心化的。當以太坊交易價爲20美元的時候,DAO 籌集到1.5億美元。這些聽起來都是不錯的理論,但有一個問題。代碼沒有得到很好的安全保證,導致有人計算出一種方式可以把錢從 DAO 抽走。

許多人把“抽錢的人”稱爲“×××”。

從某種意義上說,“×××”找到了一種非創建者意願的從合約中獲取資金的方式,這是真的。

但從更廣泛的意義上來說,這根本不是一個×××,只是一個利用了智能合同的特點轉化爲他們的優勢。

這和一個富有創造力的註冊會計師並沒有什麼不同,他們想要找到一個稅收漏洞來節省他們的客戶的錢。

接下來發生了什麼呢?以太坊決定代碼不再是法律,並將進入DAO所有的資金進行了恢復,也就是說,合約作者和投資者做了一些愚蠢的事情,開發人員決定幫他們擺脫困境。

智能合約的真相

這一事件的附帶後果被真實記錄。以太坊經典誕生時,保留了DAO作爲書寫,保存了“代碼就是法律”的原則。而且,開發者開始規避使用以太坊的圖靈完備特性,因爲它被證實很難保證安全。

ERC20和ERC721標準是以太坊中使用最頻繁的智能合約模板,必須指出的是兩種類型的合約都可以在沒有任何圖靈完備性的情況下編寫。

##智能合約只適用於數字承載儀器

即使沒有圖靈完整性,智能合約聽起來也不錯。

畢竟誰也不喜歡不得不上法庭才能合理的獲得屬於他們自己的東西?難道使用智能合約不比常規合同簡單的多?

例如,智能合約不會使房地產受益嗎?Alice 可以證明她擁有這套房子。Bob可以支付款項來換取房子。沒有所有權、去信任的問題,無需法官、官僚或者產權保險。聽起來很棒,對嗎?

這裏有兩個問題。第一,集中進行智能合約的執行並不是真正的信任化。你仍然需要向信任集中的執行方。去信任化是關鍵特性,因此集中執行並沒有真正的意義。爲了使智能合約真正的去信任化,你需要一個真正卻中心化的平臺。

這引出了我們第二個問題。在去中心化的環境中,只有在數字信息和實物存在某種明確關係時,智能合約纔會有效。也就是說,每當房子的數字信息改變所有權時,實物也必須改變所有權。

數字世界需要“瞭解”物理世界。這被稱爲“預言家問題”。

當 Alice 將房子轉交給 Bob 時,智能合約需要知道她實際確實將房子交給了 Bob。

有好幾種方法可以做到這一點,但是他們都有同樣的關鍵問題,必須有一定信任程度的第三方來驗證覈實現實世界的物質。

智能合約的真相

舉個例子,房子可以被以太坊上的不可替代的代幣代表。Alice 可以將房子轉交給 Bod 同時獲得一定數量的以太坊,這就是問題所在。Bob 需要相信這代幣實際上真的代表了房子。必須有一些聖人(預言家)保證房子代幣轉移給他實際就意味着他合法的獲得了房子。

此外,即使政府表示代幣實際就代表房子,但當代幣被盜後悔發生什麼呢?房子現在就屬於小偷的了嗎?如果代幣丟失了怎麼辦?房子就不能再出售了嗎?房子的代幣可以重新簽發嗎?如果可以,由誰簽發呢?

將數字資產和物質資產聯繫起來是一個很棘手的問題,至少在去中心化的環境中國是這樣,無論這物質是水果、汽車還是房子。

物質資產是受你所在區域的司法管轄,這意味着除了你創建的智能合約外,他們在某種程度上相信這些事物。

這意味着智能合約中的佔有並不一定意味着現實世界中的佔有,同樣面臨和常規合約一樣的信任問題。需要信任第三方的智能合約就不在具備去信任化殺手的特徵。

即使是電子書、健康記錄或者電影等數字資產,也面臨同樣的問題。這些數字資產的“權利”最終需要其他權威機構決定,預言需要被信任。

從這角度來講,預言家只是法官版本的降低。你實際得到的不是機器執行和簡化實施,而是不得不編碼帶有人類主觀判斷風險的所有可能的結果。

換句話說,通過是合約變得“智能”,你將合約的編寫變得更加複雜,而且仍舊需要信任一些人。

可以無預言進行的唯一事情就是數字承載設備。從本質上講,交易雙方不僅需要數字化,也需要數字承載的設備。也就是說,代幣的所有權不能有在智能合約平臺之外的依賴性。只有當智能合約具有數字承載設備時,智能合約才能真正的去信任化。

##結論

我希望智能合約能比實際更有用。不幸的是,我們人類所認爲的合約增加了一大堆的不需要明確闡明的假設和既定的例法。

此外,事實證明利用圖靈完備是一種極易被×××並引起各種意外行爲的方式。我們應該將智能合約平臺標記爲圖靈脆弱而不是圖靈完備。DAO事件也證明合約的“精神”是隱含信任的,並比我們認識到更有助於解決糾紛。

智能合約太容易被×××,太難以保護,難以去信任化,並且在處理大多數事務時有太多的外部依賴。智能合約真正實際增加去信任化的地方是類似比特幣那樣的帶有數字承載設備的去中心化平臺。

——————————————————
這篇文章非常深度,希望能給大家帶來一些幫助。

相關閱讀推薦:

以太坊智能合約OPCODE逆向之理論基礎篇
零知識證明中的超級新星:zk-SNARKs
我的區塊鏈第一性原理

添加微信(cdong1024),加入區塊鏈開發者技術交流羣

蟲洞社區:https://www.uzanapp.com/ ——中美區塊鏈開發學習社區

在<br/>![在這裏插入圖片描述](述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章