通用圖靈機和智能合約之間的關係是什麼

2020-11-22 電子發燒友

通用圖靈機和智能合約之間的關係是什麼

發表於 2019-02-15 14:06:42

在Kadena我們經常談論區塊鏈設計決策。我最近遇到的一個特別深刻的設計決策是關於圖靈完備的,它在我們的一個開發人員最近的一篇文章中引發了爭論。作為團隊的非技術成員,我想了解圖靈完備的真正含義,為什麼區塊鏈社區在這個問題上存在分歧,為什麼我們的工程師在努力教育其他人安全智能合約編程的缺點。

以下是我為揭開和理解智能合約安全這一核心屬性而進行探索的簡要總結。所以,如果你像我一樣,被區塊鏈系統的開發所吸引,尤其是被智能合約語言所吸引,那麼希望這個故事能夠提高你對圖靈完備如何影響智能合約安全的理解。

圖靈機促進圖靈完備

20世紀30年代,艾倫·圖靈提出了通用圖靈機的概念。請注意,圖靈機不同於二戰期間用來解決Enigma代碼的設備。這就是炸彈機。圖靈機實際上是一種理論設備,一種數學計算模型,描述了我們今天所知道的最強大的機械計算機。

這可以歸結為「圖靈完備」,它是一個屬性,用於描述可以用來模擬圖靈機器的程式語言。事實上,現存的絕大多數程式語言都是圖靈完備的。圖靈完備智能合約機最著名的例子是Ethereum虛擬機(EVM)。

「一種圖靈完備的程式語言,理論上能夠表達計算機完成的所有任務;如果忽略有限內存的限制,幾乎所有的程式語言都是圖靈完備的。

這在實踐中意味著什麼呢?程式語言能夠表達每一個可計算的算法是好是壞?

起初,這聽起來像是一個強大的特性。智能合約語言對於構建任何類型的應用程式都是普遍適用和靈活的,這當然是有好處的。讓我們考慮一下其影響。

圖靈完備應用於區塊鏈智能合約

不幸的是,我並不是智能合約設計領域的思想領袖,所以我求助於網際網路。初步的研究從StackOverflow或者像這樣的圖靈機上的深入論文中得到了完全沒有幫助的答案。這兩種方法都沒有通過編程智能合約的上下文來檢查所討論的屬性。

幸運的是,我有幸請到了一位非常有資格並且在這個主題上領先的的人物Emily Pillmore,她是Kadena的高級程式設計師。我問她:「在區塊鏈的中,圖靈完備和圖靈不完備有什麼區別?」」她的反應:圖靈不完備與區塊鏈並沒有太多直接關係。在計算機科學中,抽象重寫系統的一個特性是確保系統中的所有表達式都可以用正態形式表示(即可以被簡化)……圖靈不完備表現為在一種不可簡化的語言中的表達式。「這只是全部答案的一小部分!」對於像我這樣的人來說,其餘的回答同樣令人費解。我問了一下「這個東西是如何工作的」問題,得到了一個全面而技術性的答案。很好。所以我想我會從不同的角度來看待這個問題。也許如果我問一個「這件事能做什麼」的問題,我就能更具體地了解它的行為。

我問:「有沒有一些例子可以說明:圖靈不完備可以在區塊鏈上使用?」」 Emily的回答是:「沒有。我想不出一個需要圖靈完備的區塊鏈用例。EVM不使用圖靈完備的任何屬性,因為它限制了通過gas模型進行的所有遞歸,這將強制遞歸在gas耗盡之前終止,或者在gas耗盡時終止程序。所以實際上,EVM的gas模型模擬了圖靈不完備,但不是真的。這就是為什麼我說他們採用了圖靈完備的所有缺陷(副作用、難以理解和不合理的代碼、任意循環),但是沒有使用它的任何好處(不允許無限遞歸)。「啊哈,我明白了!」也就是說當你有能力做更多的事情,這也意味著更多的事情可能出錯。圖靈完備天生就更強大,但是如果您不能利用這種強大的優勢,那麼您就不必要地將自己暴露在更多的攻擊向量中,因為增加的表面積帶來了如此多的額外特性。

為進一步明確區分特徵:

· 圖靈完備語言總是有條件重複或條件跳轉的形式

· 根據區塊鏈的設計,區塊鏈可以通過像gas這樣的機制來阻止這些無休止的循環。

· 因此,圖靈完備帶來了一個不必要的、繁重的攻擊表面。風險高,回報低,如下圖所示。

在發布時,已知有16種針對Solidity的攻擊向量,Solidity是用於智能合約的最流行的特定領域的程式語言,碰巧是圖靈完備。如果圖靈機不完整,那麼這些攻擊中代價最高的攻擊甚至都不可能發生。最值得注意的是,2016年的DAO攻擊——圖靈完備支持的可重入攻擊,從該基金中抽走了360萬ETH(約5000萬美元),導致以太坊社區對整個網絡進行了硬分叉,以恢復他們喜歡的歷史版本。最近在2019年,君士坦丁堡升級暫停,因為它引入了一種新的重入攻擊形式。

在設計像智能合約這樣的規避風險技術時,最好避免將開發人員和用戶暴露在不必要的潛在風險中,這樣他們也許有一天就可以提出一個用例來享受它所帶來的好處。畢竟,智能合約只不過是運行在區塊鏈上的電腦程式。他們是按要求去做的。在使用它們時,您將自己暴露在對所有可能的輸入的風險中。與其信任一個未知程式設計師的邏輯,不如考慮信任一個圖靈不完備的程式語言,使用這種語言甚至不可能有危險的錯誤和漏洞。為了獲得更多的安全性,請考慮信任一種圖靈不完備語言,該語言在設計時考慮了智能合約安全性。

隨著我對這個主題的不斷了解,我很想知道您是否認為圖靈完備裡有我沒有提到的關鍵含義。您在您的智能合約中發現使用圖靈完備的好處了嗎?

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 商務白話「智能合約」
    隨著數字人民幣大範圍測試和區塊鏈應用不斷落地,「智能合約」作為一個與區塊鏈技術高度關聯的概念越來越頻繁的出現在財經媒體,被越來越多的商務人士提及和討論。  什麼是智能合約?它跟自然語言合約之間有什麼關係?將如何影響商務活動和人們的日常生活?是否需要符合法律法規、監管政策的要求呢?
  • 人工智慧的突破需要顛覆圖靈機嗎?
    在深度學習和神經形態工程學界有著廣泛的共識——理解大腦的工作原理和建造類腦計算機都需要在保留「圖靈機」的基礎上徹底改變「馮·諾依曼架構」。 但是,這種觀點是站不住腳的,原因在於:計算機架構只是計算模型的物理實施方案,而計算模型本質上是一種數學構建。因此,要真正改變馮·諾依曼計算架構, 就必然要改變圖靈計算模型。那麼什麼時候會出現模型上或者架構上的根本性變革?
  • 圖靈機與控制論之分歧,一切為了人類心智的榮耀!
    ,本文討論了AI發展過程中的主要困難,特別是解釋了圖靈的人工智慧方法和維納的人工智慧方法之間的關鍵區別,啟發現有AI方法的未來研究方向。),作為一種用於判定機器是否具有智能的測試方法,即圖靈測試。至今,每年都有試驗的比賽。此外,圖靈提出的著名的圖靈機模型為現代計算機的邏輯工作方式奠定了基礎。
  • 帶你深入理解圖靈機--天才所在的時代
    這幾年由於區塊鏈的大熱,以太坊獨特的solidity語言實現智能合約功能,圖靈完備這個詞走進大家的視線。沒有計算機專業知識的同學其實很難理解這個詞的意思,其實計算機專業的同學都沒有深入理解圖靈機,圖靈完備,圖靈測試等概念包含的內涵。
  • 圖靈測試介紹 圖靈機的工作原理詳解
    進行多次測試後,如果有超過30%的測試者不能確定出被測試者是人還是機器,那麼這臺機器就通過了測試,並被認為具有人類智能。圖靈測試一詞來源於計算機科學和密碼學的先驅阿蘭·麥席森·圖靈寫於1950年的一篇論文《計算機器與智能》,其中30%是圖靈對2000年時的機器思考能力的一個預測,目前我們已遠遠落後於這個預測。
  • 圖靈完備 | 來自天才少年的三個思考
    實際上,圖靈機並不指具體的計算機,而是一種數學計算模型,用於解決任何可計算問題。比如說判斷一個數是基數還是偶數,一加一等於幾……這種能夠通過計算得出結果的問題,圖靈機都可以解決。那圖靈機有沒有解決不了的問題呢?比如說「今天晚飯吃什麼」,這不是一個純粹的可以計算的問題,圖靈機就解決不了。
  • 天才的思維殿堂——圖靈和圖靈機
    最近幾年人工智慧話題很火熱,從圖靈「人工智慧之父」的稱號,我們似乎就嗅到了這位大神不一般的意味,不過今天要聊的不是圖靈在人工智慧方面的貢獻,要知道圖靈還有一個稱號是「計算機科學之父」,為什麼呢,這就要從圖靈提出的一個有趣的概念——「圖靈機」說起了。
  • 神經圖靈機深度講解:從圖靈機基本概念到可微分神經計算機
    正如現代計算機一樣,其思想中也包含了一個外部存儲器和某種處理器。本質上,圖靈機包含上面寫有指令的磁帶和能夠沿著磁帶讀取的設備。根據從磁帶上讀取到的指令,計算機能夠決定在磁帶上不同的方向上移動以寫入或者擦除新符號等等。那什麼又是神經圖靈機(Neural Turing Machine)呢?
  • 未來的人工智慧不是圖靈機
    圖靈機的算法和程序是外來的,無法自己生成程序,我們的大腦則不然,可以發明算法和程序。這就是是否具有創新能力的區別。所以圖靈機實現的是通用計算,而不是大腦那樣的普適性。真正的人工智慧需要具備自主進化能力,才能做到普適性。自主進化需要有突發或者偶發,可以形成新信息概念。而突發或者偶發需要耗能,所以信息存儲部分需要實現均勻耗能,也就是分布式。
  • 什麼是圖靈機
    本文目錄:什麼是圖靈一個例子說明圖靈的運行原理圖靈機有什麼意義以下是正文:1.什麼是圖靈機 1936年,英國數學家阿蘭-圖靈在《論數字計算在決斷難題中的應用》提出了「圖靈機「的概念。他不但存儲當前自身狀態,還包含一個讀寫頭,用來讀,寫和更改存儲帶上的方格的內容。然後這貨可以根據讀到的字母或者數字來變化自身的狀態,例如上圖的狀態是4,那麼下一次可能就會變成5了。所以存儲帶一格一格的左右移動時,可以更改紙帶上的內容和改變的自身的狀態。細心的朋友已經發現在那個盒子上面有一張紙,其實上面就是最最最原始代碼了。那麼它到底是什麼東西,請往下看!
  • 圖靈機
    有膽帶著你的孩子來挑戰圖靈機,成為新生代碼農,但請提前充值足夠的智商。2017-06-16   TAG:圖靈機  兒童玩具  他,有著TuringOS的內置,屬於多模態的交互,具有思維引擎、情感引擎和自學習引擎的功能。
  • 圖靈機與計算理論
    前言圖靈機和計算理論是人工智慧乃至整個計算機科學的理論基礎,邱奇-圖靈論題告訴我們一切可計算過程都可以用圖靈機模擬。
  • 計算熱力學:尋找運行圖靈機成本的方法
    從較高的角度上看,這樣的系統與現實世界中的現代計算機相似,因為它們具有用於存儲數字數據和程序(有點像硬碟),少量中央處理器進行計算的功能,並且可以從其計算機中讀取程序存儲、運行它們、產生輸出。令人驚訝的是,圖靈在現實世界的電子計算機存在之前就提出了他的這樣的模型。從某種意義上講,任何系統所進行的任何計算都可以由圖靈機完成,圖靈機被普遍認為是通用的。
  • 從圖靈機開始
    人們為了紀念他,專門設置了圖靈獎,學計算機的不會不知道圖靈獎。       圖靈先後提出了圖靈機和圖靈測試,我們這裡只關注圖靈機,看看它究竟有什麼神奇之處,又是如何與我們現代的計算機關聯起來的。       圖靈機是圖靈提出的一種思想模型,是抽象的,是存在於大腦之中、存在於想像之中的。也就是說圖靈並沒有做出他所描述中的這種物理機器。那麼這種機器是什麼樣子呢?它到底能做些什麼呢?
  • 艾倫·圖靈——計算機的祖師爺
    這概括了圖靈的偉大貢獻以及悲劇的結局。1936年到1938年24歲的圖靈用三篇重量級論文搭建起了現代計算機的數學基礎。在《論數字計算在決斷難題中的應用》中,首次提出「圖靈機」的設想。這臺抽象的計算機由四部分組成:一個無限長的紙帶上面表示0和1的方格,一個可移動的讀寫頭,一個可以記錄當前狀態的存儲器,並且有一個特殊狀態「停機狀態」,一套程序可以控制讀寫器的邏輯動作。
  • 圖靈機是現代計算機誕生的源頭
    .圖靈)在1937年首次提出了一個通用計算機設備的設想。他設想所有的計算都可能在一種特殊的機器上執行,這就是現在所說的圖靈機.儘管圖靈對這樣一種機器進行了數學上的描述,但他還是更有興趣關注計算的哲學定義,而不是建造一臺真實的機器,他將該模型建立在人們計算過程的行為上,並將這些行為抽象到用於計算的機器的模型中,這才真正改變了世界。
  • 火龍果財經:區塊鏈智能合約與傳統合同有什麼區別
    人與人之間需要信任,但是很多時候,人與人之間缺乏信任,這該怎麼辦呢?有人給出一個答案:「一定要籤合同!具有法律效力的合同可以約束雙方的行為,從而確保這種『信任』能在人與人之間發揮作用!」現實中,似乎只有「籤合同」這一條路可選,而合同也是人類活動中重要的一個東西。
  • 人民創投 | 區塊鏈之後火起來的智能合約到底是什麼?【新知】
    什麼是智能合約智能合約,簡而言之就是一套以數字形式定義的承諾,包括合約參與方可以在上面執行這些承諾的協議。其中,一套承諾指的是合約參與方同意的權利和義務。這些承諾定義了合約的本質和目的。數字形式則意味著合約不得不寫入計算機可讀的代碼中。
  • 從圖靈機到物聯網,開發者需要的是什麼? | 獵雲網
    當前,物聯網浪潮來襲,形式多樣的智能硬體也逐步進入人們的視野。那麼,能不能針對物聯網做一個作業系統呢?MiCO就是這樣做的。近日,去年獲得金球獎、奧斯卡等多項提名及獎項的《模仿遊戲》,終於在中國大陸上映了。很多人知道艾倫·圖靈是源於他提出了著名的「圖靈測試」,驗證機器是否具備人工智慧的標準。通過這部電影,則更豐滿地了解了圖靈傳奇又短暫的一生。
  • 搜狗輸入法之父馬佔凱:進化論、圖靈機和信息輸入
    搜狗輸入法之父馬佔凱老師,他給大家帶來的是《從圖靈機信息輸入原理,談產品變革》的精彩分享,本文為現場分享內容整理。二、圖靈與馮·諾伊曼結構計算機1936年,計算機之父、人工智慧之父圖靈提出了圖靈機的概念。他提出的觀點兩次改變了歷史:一是提前結束了二戰,避免了1500萬人的生命損失——圖靈破譯了德國的密碼機。二是圖靈機的概念啟發了後來的計算機設計——馮·諾伊曼結構計算機,這才有了我們今天的網際網路行業。