国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[27]以太坊-反思

這篇具有很好參考價值的文章主要介紹了北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[27]以太坊-反思。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、智能合約的反思

????????1.Is smart?contract really smart?

????????2. Irrevocability is a double edged sword.

????????3. Nothing is irrevocable.

二、語言設(shè)計上的反思

????????1.Is solidity the right programming language?

????????2.編寫智能合約的語言應(yīng)該有什么樣的表達力?

三、去中心化

????????1.What does decentralized mean?

????????2.分叉

????????3.Decentralized ≠ Distributed

????????回顧以太坊的The DAO盜幣事件,引起的反思。

一、智能合約的反思

1.Is smart?contract really smart?

? ? ? ? 智能合約真的智能嗎?首先智能合約沒有用到任何人工智能的技術(shù),所以有人認(rèn)為應(yīng)該將其稱為自動合約:按照寫好的代碼,自動執(zhí)行某些操作,ATM取款機可以看作是物理世界中的自動合約。Smart contract is anything but smart.智能合約實際上就是一段寫死的自動執(zhí)行的合約代碼,并不智能,而且寫好之后就不能修改。

2. Irrevocability is a double edged sword.

? ? ? ? 一般我們認(rèn)為不可篡改性是區(qū)塊鏈的一個優(yōu)點,有很多區(qū)塊鏈的應(yīng)用都利用了不可篡改性,如用它進行防偽、溯源等操作,但是通過The DAO的盜幣事件其實已經(jīng)能夠意識到:不可篡改性實際上是一把雙刃劍。

(1)優(yōu)點:不可篡改性增加了合約的公信力,所有人都只能按照合約中的規(guī)則來,沒有人能夠篡改這個規(guī)則。

(2)缺點:不可篡改性意味著如果規(guī)則有漏洞,想要修補漏洞或者軟件升級都是很困難的。

? ? ? ? 有傳聞?wù)f在發(fā)生盜幣事件之前,The DAO的開發(fā)團隊就已經(jīng)收到消息說智能合約存在漏洞,但是沒有來的及發(fā)布更新后的軟件。硬分叉是非常麻煩的,和傳統(tǒng)的中心化系統(tǒng)相比,沒有辦法及時發(fā)布補丁patch修復(fù),必須征得絕大多數(shù)礦工的同意才行。硬分叉的時候又需要說明理由,一旦說明理由又會泄露系統(tǒng)的安全漏洞,有惡意的攻擊者會在還沒來得及升級前搶先發(fā)動攻擊。

(3)缺點:已經(jīng)發(fā)現(xiàn)了系統(tǒng)漏洞,有人進行惡意攻擊了,想要凍結(jié)賬戶終止交易也是很困難的。

????????個人的私鑰泄露,想要凍結(jié)賬戶需要軟分叉(發(fā)行一個軟件的更新并設(shè)置凡是跟這個賬戶相關(guān)的交易都是不合法的),但是對于個人賬戶沒有辦法進行軟分叉,只能盡快把賬戶剩下的錢轉(zhuǎn)到安全的賬戶。

????????智能合約一旦發(fā)布到區(qū)塊鏈上,沒有辦法阻止對它的調(diào)用。比如The DAO的盜幣事件,1/3的錢被黑客盜走了,剩下的2/3的錢也非常危險,但是區(qū)塊鏈上沒有辦法阻止別人調(diào)用智能合約,要阻止的話就要軟分叉,唯一的辦法是用黑客的方法把錢轉(zhuǎn)到另一個安全的合約,再用安全的智能合約將來把錢退還給大家。

3. Nothing is irrevocable.

? ? ? ? 沒有什么是真的不可篡改的。分叉攻擊中,如果有人從本來已經(jīng)寫入?yún)^(qū)塊鏈的內(nèi)容的前面開始分叉,可能會導(dǎo)致后面的交易被回滾。The DAO的盜幣事件中,開發(fā)團隊強行修改數(shù)據(jù)使得交易恢復(fù)被攻擊之前的賬戶狀態(tài),所以沒有什么是絕對不可篡改的。篡改是很難,但是遇到特殊情況也是可以篡改的。

二、語言設(shè)計上的反思

1.Is solidity the right programming language?

????????Solidity語言設(shè)計上有什么問題?為什么會有重入攻擊?Solidity的語言特性是反自然的,一般的理解,我給你轉(zhuǎn)賬,你是一個被動的接受者,你不可能反過來調(diào)用我,但是Solidity的語言特性是說我給你轉(zhuǎn)賬的操作等于隱性地調(diào)用了你的fallback函數(shù),結(jié)果你就可以再來調(diào)用我。這個和生活常識不同所以安全漏洞容易被忽略。

????????有人提出應(yīng)該用函數(shù)式的編程語言,函數(shù)式語言(如:Ocaml,圖靈完備的編程語言)比較安全不容易出現(xiàn)這種漏洞,而且從長遠(yuǎn)看要實現(xiàn)的是對智能合約功能的理論上要證明他的正確性。formal verification:理想化能夠證明這一段智能合約語言的編寫只能實現(xiàn)我們想讓他實現(xiàn)的功能,現(xiàn)實中是不存在的。

2.編寫智能合約的語言應(yīng)該有什么樣的表達力?

????????Solidity 語言是圖靈完備的(凡是計算機能完成的任務(wù),圖靈完備的語言都能實現(xiàn)),但是會有漏洞;比特幣腳本語言比較簡單,目前沒有發(fā)現(xiàn)任何漏洞。能不能找到一個比比特幣的腳本語言復(fù)雜又比Solidity簡單的語言?符合這樣要求的編程語言很難找到。

????????未來發(fā)展:可以向常用的智能合約提供一些模板,也有可能有專門編寫智能合約的機構(gòu)(就像律師事務(wù)所一樣)。

代碼開源的雙刃劍

????????去中心化的系統(tǒng)像如區(qū)塊鏈一般都是開源的,也就是透明的,因為必須要讓所有的節(jié)點都執(zhí)行同樣的內(nèi)容才能達成共識。開源的一個好處就是增加合約的公信力,接受群眾的監(jiān)督。

????????有些人認(rèn)為開源的另外一個好處是安全,因為全世界的人都在看著這些代碼,但是已經(jīng)看到智能合約代碼出現(xiàn)漏洞,全世界這么多雙眼睛看著開源代碼,怎么會出現(xiàn)錯誤呢?這種現(xiàn)象叫做many eyeball fallacy,錯誤認(rèn)知,相當(dāng)于misbelief。理論上,代碼開源,任何人想看都可以去看,好像更安全,但實際上是真正有時間看代碼的人少之又少,看的人不是很多,也不一定能看得懂。所以并不能認(rèn)為開源軟件比不開源軟件安全,也不能認(rèn)為開源軟件就沒有安全漏洞,歷史上有很多開源軟件的安全漏洞是很多年之后才被發(fā)現(xiàn)的。

三、去中心化

1.What does decentralized mean?

????????區(qū)塊鏈的追隨者一般都是去中心化理念的追隨者。以太坊的硬分叉是以太坊的開發(fā)團隊說了算的嗎?不是,以太坊的團隊升級軟件之后,也是90%絕大多數(shù)的礦工用行動支持了硬分叉,而剩下的一小部分雖然沒有支持,但是也依然在舊鏈上繼續(xù)挖礦,以太坊團隊也沒有辦法強制所有人都升級軟件。去中心化并不是全自動化,不是說不能修改已經(jīng)制定的規(guī)則,而是修改規(guī)則要用去中心化的方式進行。硬分叉的成功是因為90%的礦工認(rèn)為以太坊團隊的措施是符合公眾利益的

2.分叉

????????分叉正好是去中心化系統(tǒng)的體現(xiàn),因為只有去中心化系統(tǒng),用戶才可以選擇分叉,中心化系統(tǒng)只能選擇繼續(xù)或者放棄。存在分叉的現(xiàn)象恰恰是民主的體現(xiàn),比如系統(tǒng)私自增多以太幣供給量,使得以太幣貶值,礦工就可以選擇分叉繼續(xù)維護原來的以太幣。

3.Decentralized ≠ Distributed

????????一個去中心化的系統(tǒng)一定是分布式的,如果這個系統(tǒng)只運行在一臺計算機上,顯然不能叫去中心化;但是分布式系統(tǒng)不一定是去中心化的,即使這個系統(tǒng)運行在成千上萬的計算機上,如果計算機都是由同一個組織管轄的,也不是去中心化的,比如谷歌的search engine;在一個分布式的平臺上可以運行一個中心化的應(yīng)用,也可以運行一個去中心化的應(yīng)用。

????????比特幣和以太坊都是交易驅(qū)動的狀態(tài)機,State Machine,特點是讓系統(tǒng)中幾千臺機器重復(fù)做同一組操作,付出很大的代價來維護狀態(tài)的一致性,這個并不是分布式系統(tǒng)常用的工作模式,大多數(shù)的分布式系統(tǒng)是讓每臺機器做不同的事情,然后再把各臺機器的工作結(jié)果匯總起來,目的是比單機速度快。

????????狀態(tài)機的目的是為了比一臺計算機的處理速度快,而是為了容錯。狀態(tài)機最早的應(yīng)用場景:mission critical application。應(yīng)用程序必須無間斷的對外提供服務(wù),哪怕宕機一分鐘都會造成很大的損失,所以他才有好幾組計算機重復(fù)同一組操作,這樣即使有一臺計算機故障,剩下的計算機也可以對外提供服務(wù),如: airtraffic control; stock exchange; space shuttle。這樣付出的代價是效率很低,幾臺機器合在一起比一臺機器慢,因為需要同步狀態(tài),而且集群里的數(shù)目越多速度越慢,所以傳統(tǒng)利用狀態(tài)機的應(yīng)用,機器的數(shù)目都是比較少的,可能就是個位數(shù)字。像比特幣和以太坊這樣上千個機器重復(fù)同一組操作,以前是沒有出現(xiàn)過的。

????????智能合約是編寫控制邏輯的,只有那些互不信任的實體之間建立共識的操作才需要寫在智能合約里。大規(guī)模存儲和計算不適用,又慢又貴,因為要耗汽油費,云服務(wù)更好。如果需要大規(guī)模計算服務(wù),可以使用亞馬遜的云服務(wù)平臺。文章來源地址http://www.zghlxwxcb.cn/news/detail-809542.html

到了這里,關(guān)于北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[27]以太坊-反思的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[23]以太坊-智能合約-3

    北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[23]以太坊-智能合約-3

    智能合約-1 智能合約-2 1.假設(shè)某個全節(jié)點要打包一些交易到一個區(qū)塊里,這些交易里有一些是對智能合約的調(diào)用,那么這個全節(jié)點應(yīng)該先執(zhí)行完智能合約再挖礦,還是先挖礦獲得記賬權(quán)再執(zhí)行這些智能合約? ? ? ? ? 在區(qū)塊鏈中,如果有一筆轉(zhuǎn)賬交易發(fā)布上去,需要所有的全

    2023年04月23日
    瀏覽(22)
  • 北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[21]以太坊-智能合約-1

    北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[21]以太坊-智能合約-1

    目錄 一、什么是智能合約 二、智能合約的代碼結(jié)構(gòu) ????????1.Solidity語言 ????????2.bid函數(shù) ????????3.fallback()函數(shù) ?二、外部賬戶如何調(diào)用智能合約 三、一個合約如何調(diào)用另一個合約中的函數(shù) ????????1.直接調(diào)用 ????????2.使用address類型的call()函數(shù) ?????

    2024年02月05日
    瀏覽(25)
  • 北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[15]以太坊-交易樹和收據(jù)樹

    北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[15]以太坊-交易樹和收據(jù)樹

    ?目錄 一、以太坊中的三種樹 二、狀態(tài)樹、交易樹和收據(jù)樹的區(qū)別 三、交易樹和收據(jù)樹的用途 ????????1.交易樹和收據(jù)樹的用途 ????????2.如何實現(xiàn)復(fù)雜的查詢操作 ????????3.以太坊中Bloom Filter的用途 四、以太坊的運行過程 ? ? ? ?在以太坊中,存在三種基于樹的

    2024年02月05日
    瀏覽(21)
  • 《區(qū)塊鏈技術(shù)與應(yīng)用》北大肖臻老師——課程筆記【19-20】

    《區(qū)塊鏈技術(shù)與應(yīng)用》北大肖臻老師——課程筆記【19-20】

    提示:以下內(nèi)容只是個人在學(xué)習(xí)過程中記錄的筆記,圖片均是肖老師課程的截圖,可供參考。如有錯誤或不足之處,請大家指正。 Block chain is secured by mining. 對于基于工作量證明的系統(tǒng)來說,挖礦是保障區(qū)塊鏈安全的一個重要手段。 比特幣的挖礦算法總的來說比較成功,沒有

    2024年02月09日
    瀏覽(34)
  • 《區(qū)塊鏈技術(shù)與應(yīng)用》北大肖臻老師——課程筆記【21-23】

    《區(qū)塊鏈技術(shù)與應(yīng)用》北大肖臻老師——課程筆記【21-23】

    提示:以下內(nèi)容只是個人在學(xué)習(xí)過程中記錄的筆記,圖片均是肖老師課程的截圖,可供參考。如有錯誤或不足之處,請大家指正。 權(quán)益證明proof of stake 比特幣和 以太坊目前都是使用基于工作量的證明,這種共識機制受到一個普遍的批評——浪費電。 Y軸是TWH=Terawatt hours 10的

    2023年04月08日
    瀏覽(24)
  • 《區(qū)塊鏈技術(shù)與應(yīng)用》北大肖臻老師——課程筆記【11-12】

    《區(qū)塊鏈技術(shù)與應(yīng)用》北大肖臻老師——課程筆記【11-12】

    提示:以下內(nèi)容只是個人在學(xué)習(xí)過程中記錄的筆記,圖片均是肖老師課程的截圖,可供參考。如有錯誤或不足之處,請大家指正。 1. 轉(zhuǎn)賬交易時如果接收者不在線(沒有連接到比特幣網(wǎng)絡(luò)上)怎么辦? 轉(zhuǎn)賬交易不需要接收者在線,這個交易只是在區(qū)塊鏈上記錄一下,把發(fā)送

    2024年01月22日
    瀏覽(23)
  • 《區(qū)塊鏈技術(shù)與應(yīng)用》北大肖臻老師——課程筆記【6-8】

    《區(qū)塊鏈技術(shù)與應(yīng)用》北大肖臻老師——課程筆記【6-8】

    提示:以下內(nèi)容只是個人在學(xué)習(xí)過程中記錄的筆記,圖片均是肖老師課程的截圖,可供參考。如有錯誤或不足之處,請大家指正。 比特幣網(wǎng)絡(luò)傳播的工作原理(the BitCoin network): 比特幣工作在應(yīng)用層(application layer),底層是P2P的overlay network(覆蓋網(wǎng)絡(luò))。 比特幣的 P2P網(wǎng)絡(luò)

    2024年01月18日
    瀏覽(25)
  • 北大肖臻老師<<區(qū)塊鏈技術(shù)>>筆記1

    課程的大綱 密碼學(xué)基礎(chǔ) 比特幣的數(shù)據(jù)結(jié)構(gòu) 共識協(xié)議和系統(tǒng)實現(xiàn) 挖礦算法和難度調(diào)整 比特幣的腳本 軟分叉和硬分叉 匿名和隱私保護 以太坊是后面的 首先是密碼學(xué)基礎(chǔ)的學(xué)習(xí): crypto-currency(虛擬貨幣) 是不加密的,區(qū)塊鏈上所有的教以都是公開的。其中有轉(zhuǎn)賬金額和地址。

    2024年02月02日
    瀏覽(24)
  • [北大肖臻-區(qū)塊鏈技術(shù)與應(yīng)用筆記]第八節(jié)課——BTC 腳本

    [北大肖臻-區(qū)塊鏈技術(shù)與應(yīng)用筆記]第八節(jié)課——BTC 腳本

    比特幣系統(tǒng)中使用的腳本語言很簡單, 唯一能訪問的內(nèi)存空間就是一個棧 ,這點和通用腳本語言的區(qū)別很大。 這個交易有一個輸入和兩個輸出,其中一個輸出已經(jīng)被花出去了,另一個沒有被花出去。 輸入腳本 輸入腳本包含兩個操作,分別將兩個很長的數(shù)壓入棧中。 輸出腳

    2024年01月21日
    瀏覽(29)
  • [北大肖臻-區(qū)塊鏈技術(shù)與應(yīng)用筆記]第八節(jié)課——BTC 分叉

    [北大肖臻-區(qū)塊鏈技術(shù)與應(yīng)用筆記]第八節(jié)課——BTC 分叉

    state fork 如果兩個節(jié)點差不多同時挖到一個區(qū)塊,這兩個區(qū)塊都是掛在當(dāng)前的區(qū)塊上的,不同節(jié)點先收到的區(qū)塊不同,就會各自沿著先收到的區(qū)塊往下擴展,這種時候就會出現(xiàn)臨時性的分叉,稱為 state fork ,即由于對區(qū)塊鏈當(dāng)前的狀態(tài)有意見分歧而產(chǎn)生的分叉。 分叉攻擊(

    2024年02月08日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包