科普:什么是區(qū)塊鏈智能合約?

加密嘻哈
智能合約是一種旨在以信息化方式傳播、驗證或執(zhí)行合同的計算機協(xié)議。智能合約允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉(zhuǎn)。

關(guān)于區(qū)塊鏈智能合約的第一件事是它們不是合約、智能合約,也不一定在區(qū)塊鏈上。

要了解區(qū)塊鏈智能合約的第一件事是它們不是合約、智能合約,也不是必須在區(qū)塊鏈上。事實上,它們的名字很奇怪。

讓我們以相反的順序解決這些問題,我們應(yīng)該在此過程中確切地找出智能合約實際上是什么。首先,介紹什么是交易,什么不是交易。

1.jpg

交易和非交易簡介

最著名的區(qū)塊鏈?zhǔn)窍癖忍貛胚@樣的加密貨幣。2關(guān)于貨幣的事情——無論是虛擬的還是非虛擬的——是你主要想做的是使用它們買賣東西。你想要的是一個簡單的交易模型:“一旦我為你提供這項服務(wù),你就會給我這個數(shù)量的貨幣。”我們知道這是如何運作的,因為每次我們在商店或網(wǎng)上購買東西時,都會發(fā)生這樣的情況:起始狀態(tài)是“我有x數(shù)量”,交易完成后的狀態(tài)是“我有xy數(shù)量,并且你有y數(shù)量。”4這是在你完成交易之前你關(guān)心的從一種狀態(tài)轉(zhuǎn)移到另一種狀態(tài)。大多數(shù)加密貨幣都被設(shè)置為支持這種類型的構(gòu)造。

這很好,但一些聰明的人意識到實際上有很多不同的方法可以做到這一點。以太坊是非交易結(jié)構(gòu)大獲成功的地方,Solidity是最著名的例子。我很高興地說,兩者都是開源項目。為什么不在我交出我正在交出的任何東西之前需要滿足一組更復(fù)雜的條件?而且——這是一個聰明的地方——為什么不寫那些可以被計算機執(zhí)行的代碼呢?你可能希望貨幣——或其他任何東西——只在一段時間后釋放,或者如果股票價格保持在一組特定的范圍內(nèi),或者如果某個人繼續(xù)擔(dān)任總理,5或者如果沒有意外eclipse在接下來的五天內(nèi)。6你也可能有復(fù)雜的依賴關(guān)系:只有當(dāng)我連續(xù)三周寫一篇新文章并且沒有人對其中任何一個寫令人不快的評論時才完成。7編寫這段代碼,如果條件滿足,然后進入下一個狀態(tài)。

不僅適用于區(qū)塊鏈

開始解決那些“非”陳述。

現(xiàn)在,在區(qū)塊鏈中,重要的是一旦狀態(tài)發(fā)生變化,您就確保將其記錄在區(qū)塊鏈上,以便它是公開的,沒有人可以更改或挑戰(zhàn)它。但是區(qū)塊鏈技術(shù)還有其他用途,正如我在“區(qū)塊鏈?zhǔn)且粋€安全主題嗎?”中解釋的那樣。無許可系統(tǒng),通常被稱為分布式賬本技術(shù)(DLT),非常適合非交易狀態(tài)模型,主要是因為對它們感興趣的人是封閉的組織團體,他們希望以前滿足復(fù)雜的條件集他們移動到下一個狀態(tài)。根據(jù)最嚴(yán)格的定義,這些不是區(qū)塊鏈。銀行和其他金融機構(gòu)可能是DLT獲得吸引力的最明顯例子,但它們在供應(yīng)鏈領(lǐng)域非常有用,例如,您可能會遇到有關(guān)不斷變化的市場利率、可用性和運輸時間或成本的條件,這可能所有這些都會影響所提供的商品或服務(wù)的最終價格。

沒那么聰明

智能合約可以是智能的,但對我來說,這意味著復(fù)雜并且能夠?qū)σ馔饣虿惶赡艿那闆r做出反應(yīng)。我認(rèn)為人們稱它們?yōu)?ldquo;智能”是因為它們體現(xiàn)在代碼中,而不是出于我上面建議的原因。

我認(rèn)為這實際上是一件非常好的事情,因為我認(rèn)為我們不希望他們表達我的意思。我所知道的“智能合約”的大多數(shù)用法是兩個或多個組織根據(jù)一組已知且受充分約束的條件就系統(tǒng)的一組可能結(jié)果達成一致。這就是合同的一般含義,雖然我也即將與命名法的那部分爭論,但在這種情況下它是相當(dāng)合適的。

通常,您想要的不是意外或不太可能的情況以及人工智能/機器學(xué)習(xí)類型的智能處理,因為如果您這樣做了,那么結(jié)果可能會令人驚訝,并且可能會讓一個或多個人不高興當(dāng)事人。簡單——或者至少很容易定義——是你想要內(nèi)置到系統(tǒng)中的一個關(guān)鍵屬性。例如,Solidity項目似乎至少意識到了其中的一些陷阱,并建議使用智能合約的人采用形式驗證,但正如我們將在下面看到的,這只是觸及了問題的表面。

不是合同

當(dāng)然,有一些合同——“在現(xiàn)實生活中”的合同——用于管理復(fù)雜和意外的情況。它們存在于明確的法律管轄范圍內(nèi)。構(gòu)成它們的單詞和短語受特定和明確定義的過程的約束,當(dāng)合同條件不滿足或違反時,會受到已知的制裁和懲罰。經(jīng)常有挑戰(zhàn)這些的情況,但同樣存在應(yīng)對此類挑戰(zhàn)的明確機制。

目前,“智能合約”不符合對合約的這種描述。將法律合同措辭映射到計算機代碼是一個非常復(fù)雜的過程,并且代碼處理容易出現(xiàn)的錯誤類型在司法系統(tǒng)中沒有一個很好的類比。還有管轄權(quán)的問題。這通常在合同條款中描述,但如果“智能合同”的處理發(fā)生在與相關(guān)方不同的司法管轄區(qū),甚至是未知的司法管轄區(qū),該怎么辦?這應(yīng)該重要嗎?這有關(guān)系嗎?我不知道,我也不知道一旦人們開始以具有法律強制力的方式依賴這些結(jié)構(gòu),我也不知道還有什么其他問題會從木制品中爬出來,但我懷疑它們會受到歡迎。

同樣,當(dāng)IT人員談?wù)撥浖贤瑫r,他們談?wù)摰氖峭耆煌臇|西:這是系統(tǒng)在已知輸入和啟動條件的上下文中所宣傳的行為,這對我們也沒有幫助。

這和安全有什么關(guān)系?

一旦交易——或“智能合約”——完成并進入?yún)^(qū)塊鏈或分布式賬本,它幾乎是不可變的,根據(jù)定義。但是在它完成之前呢?好吧,本文開頭描述的這種類型的簡單交易是原子的——它們發(fā)生或不發(fā)生,用行話來說,它們是“不可分割和不可約的”。對于大多數(shù)目的,它們是瞬時的。

“智能合約”并非如此。它們需要處理,因此會隨著時間的推移而存在。這意味著在處理它們時,它們會受到任何系統(tǒng)都可能容易受到攻擊的各種攻擊。標(biāo)準(zhǔn)清單是:

保密。“智能合約”的狀態(tài)可能會受到窺探,這可能導(dǎo)致不對稱的知識或泄露給未經(jīng)批準(zhǔn)的各方。

正直。這是許多“智能合約”的噩夢。如果一個實體——無論是基礎(chǔ)合同的一方與否——可以(有意或無意地)改變執(zhí)行“智能合約”的代碼的內(nèi)部狀態(tài),那么該“智能合約”的結(jié)果將不會像它們一樣預(yù)期是這樣,并且任何相關(guān)方都可能有充分的理由對結(jié)果提出異議。更重要的是,這樣的糾紛甚至可能不依賴于喪失誠信的證據(jù),而只是依賴于懷疑。在執(zhí)行上下文中證明運行時完整性——更不用說在它被證明丟失時進行緩解——是極其困難的。

可用性。如果一方發(fā)現(xiàn)與“智能合約”相關(guān)的條件對他們不利,他們可能會試圖影響構(gòu)成“智能合約”的系統(tǒng)任何部分的可用性,無論是代碼本身、系統(tǒng)的輸入或系統(tǒng)的輸出。其中任何一個都可能對現(xiàn)實生活的結(jié)果產(chǎn)生重大影響。

這篇文章的開頭似乎是對命名約定的迂腐攻擊。我想可能會很清楚,8我對“智能合約”這個詞感到不舒服,這主要是因為我認(rèn)為它讓一些人認(rèn)為這些結(jié)構(gòu)是他們所不具備的。反過來,這可能意味著人們會在不合適的情況下使用它們。

人們還擔(dān)心,因為文字會帶來包袱,這會導(dǎo)致人們沒有充分考慮安全性對這些結(jié)構(gòu)的影響。我認(rèn)為影響可能非常大。所以,如果你正在研究這些結(jié)構(gòu),請睜大眼睛。我在這篇文章中沒有過多地談?wù)摼徑獯胧?,但存在一些緩解措施?/p>

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論