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

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

這篇具有很好參考價值的文章主要介紹了《區(qū)塊鏈技術與應用》北大肖臻老師——課程筆記【6-8】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


提示:以下內容只是個人在學習過程中記錄的筆記,圖片均是肖老師課程的截圖,可供參考。如有錯誤或不足之處,請大家指正。

一、BTC網絡

比特幣網絡傳播的工作原理(the BitCoin network):
比特幣工作在應用層(application layer),底層是P2P的overlay network(覆蓋網絡)。

比特幣的P2P網絡結構非常簡單,所有節(jié)點都是對等的,沒有超級節(jié)點/主節(jié)點(super node / master node),所有節(jié)點都是平等的,要加入這個網絡,首先要知道至少有一個種子節(jié)點(seed node),然后和種子節(jié)點聯系,種子節(jié)點會告訴它所知道的節(jié)點信息。節(jié)點之間是通過TCP協議通信的,有利于穿透防火墻。節(jié)點要離開網絡不需要任何操作通知其他節(jié)點,只需要退出應用程序即可。其他節(jié)點一段時間內沒有接收到某個退出網絡的節(jié)點的消息,會自動將該節(jié)點從網絡中刪除。

比特幣網絡的設計原則:
simple(簡單),robust(魯棒) ,but not efficient(而不是高效)。

每個節(jié)點維護一個鄰近節(jié)點的集合,消息傳播在網絡中flooding采取方式。節(jié)點第一次聽到消息后,把消息傳播給其他鄰近節(jié)點,同時記錄此消息已被記錄,下次再接收到該消息就不用再轉發(fā)給鄰近節(jié)點。
鄰近節(jié)點的選取是隨機的,沒有考慮底層的拓撲結構。

現實節(jié)點網絡IP地址不同可以增強魯棒性,但是犧牲了效率。

比特幣系統中每個節(jié)點要維護等待上鏈的交易的集合。當節(jié)點第一次監(jiān)聽到某個交易時,把這個交易加入等待上鏈的交易集合中,并且轉發(fā)該交易給鄰近節(jié)點,再一次收到該交易就無需轉發(fā),可以避免交易在網絡中無限傳播。

轉發(fā)交易的前提是交易合法

新發(fā)布的區(qū)塊在網絡中傳播的方式和新發(fā)布的交易是類似的,每個節(jié)點除要檢查區(qū)塊交易內容合法性之外,還要檢查是否在最長合法鏈上

越大的區(qū)塊,傳播速度越慢(區(qū)塊大小限制:1M)。
比特幣網絡采用的傳播方式非常耗帶寬,帶寬是瓶頸。

比特幣網絡傳播屬于best effort (盡力而為)。一個交易發(fā)布到比特幣網絡上,不一定所有節(jié)點都能接收到,每個節(jié)點收到的交易順序也不一樣,網絡傳播存在延遲,有的節(jié)點不一定按照協議要求進行轉發(fā)交易,導致某些合法交易收不到,有些節(jié)點會轉發(fā)不合法交易消息,這是去中心化面臨的一個問題。

回滾交易不等于后一個交易對前一個交易的退款。

二、BTC-挖礦難度

挖礦就是不斷嘗試nonce值小于等于給定的目標預值。目標預值越小,挖礦難度越大。調整挖礦難度就是調整目標空間在整個輸出空間中所占的比例。

比特幣使用的哈希算法:SHA-256 。產生的哈希值是256位,整個輸出空間是2的256次方的可能的取值,調整這個比例,通俗的說就是哈希值前面要有多少個0。目標預值并不是哈希值前面都是0,后面從某一位是其他數字或字母。

挖礦難度和目標預值成反比。挖礦難度最小為1,對應的目標預值數很大。

區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用
不調整挖礦難度會出現的情況:總算力越來越強,挖礦難度不變,出塊時間會減短。
出塊時間太短會容易出現分叉,這種分叉會成為常態(tài),會出現多分叉,如二分叉、十分叉。
分叉出現過多不利于系統達成共識,會危害到系統的安全性。系統中總算力越強,安全性越好。

51%攻擊:惡意節(jié)點掌握系統中51%以上的節(jié)點,就會做出對系統不利的操作。
如果系統中有很多分叉,系統總算力會被分散,誠實節(jié)點根據網絡中位置的不同,可能會沿著分叉繼續(xù)擴展,某個分叉的惡意節(jié)點可能會集中算力進行拓展,逐漸拓展成最長合法鏈,當算力被分散后,51%的攻擊 的比例可能會更低。

出塊時間要有一個常數的波動范圍,不能無限地減小。
以太坊出塊時間是每隔15秒一個塊,出塊時間大大減少后,以太坊設置了ghost共識協議。

分叉產生了orphan block,這些區(qū)塊不能簡單丟棄,需要給一些獎勵uncle reward。以太坊中也需要調整出塊難度保持穩(wěn)定。
無論出塊時間設置成多少,都要保持穩(wěn)定,不能無限減少。

比特幣中調整挖礦難度
每隔2016區(qū)塊調整一次挖礦難度,大概是兩個星期。
調整目標預值公式:
區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用

如果實際調整時間超過兩個星期,說明出塊時間超過十分鐘間隔,挖礦難度應該調低;如果實際調整時間不超過兩個星期,說明出塊時間小于十分鐘間隔,速度塊,應該調高挖礦難度。

實際調整難度代碼中,上調下調難度都有四倍的限制,假如實際調整時間超過了八個星期,也按照八個星期計算調整,目標預值增大最多也只增加四倍,不會一次性超過四倍,主要是為了系統中出現意外情況導致目標預值有特別大的活動。

如何讓所有礦工同時調整目標預值?
調整計算目標預值的方法寫在比特幣系統中的代碼里,每挖到2016個區(qū)塊會自動進行調整

代碼是開源的,如果某個惡意節(jié)點不進行調整,該惡意節(jié)點發(fā)布的區(qū)塊會不被誠實節(jié)點接受。
nBits域是target編碼的版本,在塊頭沒有直接存儲target域,target域需要32字節(jié),nBits是4字節(jié),也可以說nBits是target的壓縮編碼。如果惡意節(jié)點不進行調整目標預值,檢查區(qū)塊的合法性會不能通過。因為每一個區(qū)塊要獨立驗證合法性,檢查內容包括nBits目標預值是否正確,如果不一致發(fā)布的區(qū)塊會不被其他節(jié)點接受。

以太坊調整挖礦難度是每個新出的區(qū)塊都有可能會進行調整,而且調整方法也比比特幣更為復雜。

比特幣成功,從某種意義上說是因為它更不實用,比特幣沒有任何真正法幣背書,沒有底層的保證應用,是憑空造出來的貨幣。比特幣的設計比較保守,也是后面有很多新的加密貨幣發(fā)展出來的原因之一。

2009-2018年比特幣系統總算力的變化情況(圖片來源于肖臻老師視頻截圖):區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用 2009-2018年比特幣系統挖礦難度的變化情況(圖片來源于肖臻老師視頻截圖):區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用
比特幣系統2017年11月-2018年5月半年期間的難度變化曲線(圖片來源于肖臻老師視頻截圖):
區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用

上圖說明挖礦的人越來越多,設備越來越先進,反映出大家對比特幣的熱情越來越高。
如果是相反情況,說明大家對這種幣熱情減少。

比特幣系統2010-2018年每天的出塊時間(圖片來源于肖臻老師視頻截圖):
區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用

上圖可以看出總體上出塊時間穩(wěn)定在十分鐘左右上下波動,說明難度調整達到預期目的

比特幣系統2018上半年的出塊時間(圖片來源于肖臻老師視頻截圖):
區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用

計算挖礦難度代碼:
(實際比特幣代碼中使用的是計算目標預值公式)(圖片來源于肖臻老師視頻截圖):
區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用

三、BTC-挖礦

區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用
驗證其合法性三方面:

  • 區(qū)塊內每個交易都要合法
  • 每兩周調整挖礦難度
  • 檢查區(qū)塊是在延伸最長合法鏈

區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用
輕節(jié)點無法檢測鏈上區(qū)塊都是合法的。
輕節(jié)點假設礦工都是有理智的,不會沿著不合法的鏈挖下去。

挖礦過程(缺省情況下):
1、沿著最長合法鏈挖下去
2、選擇最先監(jiān)聽的分叉

在挖礦過程中,如果監(jiān)聽到其他節(jié)點發(fā)布了一個區(qū)塊,這個區(qū)塊是合法的,也是在延伸最長合法鏈,此時應該停止已有的挖礦,在本地重新組裝一個候選區(qū)塊,然后重新進行挖礦。
原因:沿著新發(fā)布區(qū)塊往下挖,本地所組裝的區(qū)塊中所包含的交易就會發(fā)生變化,有些區(qū)塊可能已經被包含在新發(fā)布區(qū)塊中,塊頭也會發(fā)生變化。

挖礦的性質是無記憶性,無論是停止挖礦重新組裝后重新挖礦還是繼續(xù)挖礦,只要還未找到符合的nonce值,成功的概率都是一樣的,對最后的結果沒有影響。

比特幣是如何保證安全性的?
從兩方面保證,一是密碼學上的保證,另一方面是共識機制。
密碼學上的保證是別人沒有自己的私鑰就沒有辦法偽造自己的簽名,前提是系統中擁有的大多數礦工是好的,是遵守協議的,不會接受沒有合法簽名的協議。

挖礦的演化趨勢
1、挖礦設備趨于專業(yè)化,從通用變成越來越專用
(1)CPU、通用計算機:性價比太低
(2)GPU:用于通用并行計算
(3)ASIC芯片

ASIC:專門為挖礦設計的芯片,沒有多余的電路邏輯,就是為了計算哈希值,比特幣挖礦而設計。(性價比最高,ASIC芯片研發(fā)周期很長)
為某一種加密貨幣設計的芯片只能挖那一種加密貨幣,不能挖其他的,除非都是使用同一種mining puzzle,可以吸引更多人挖礦(merge mining)。
設計alternative puzzle的出發(fā)點:抗ASIC芯片化resistance,目的是為了讓通用的計算機也能參與挖礦。

2、挖礦的另一個趨勢是大型礦池的出現。單個礦工的收入是不穩(wěn)定的。單個礦工還要承擔全節(jié)點的其他責任。

礦池是把礦工組織起來作為一個整體。礦池的架構是一個全節(jié)點會驅動很多礦主pool manager ,礦機礦主下連著很多礦工,礦工只負責計算哈希值,全節(jié)點的其他職責都由pool manager承擔,把交易組織打包成候選區(qū)塊,監(jiān)聽其他節(jié)點有沒有發(fā)布新區(qū)塊。
礦池出現的另一個目的:解決收入不穩(wěn)定

挖礦收益該如何分配?
一般來說,礦池有兩種組織形式。一種是像大型數據中心那樣,另一種是分布式,礦工和礦主不在一個地方,礦工要加入礦池就是按照礦池規(guī)定的通訊協議與礦主進行聯系,礦主把要計算哈希值的任務分配給礦工,礦工計算完后把結果返回給礦主,有出塊獎勵時一起參與分紅。

如果礦工是來自世界各地,收益該如何分配?
按照礦工貢獻大小分配,工作量證明。
降低挖礦難度后挖到的叫做share(almost valid block)。礦工挖到share后提交給
礦主,礦主記錄礦工提交的share數目,可以用這個證明礦工的工作量,等挖到新
的區(qū)塊后,用share數目分配收益。

每個礦工挖到的概率取決于挖到的nonce數,和share成正比。
如果礦工挖到后不提交給礦主發(fā)不出去,收款地址是礦主的地址,礦工無法取出
收益,是無用的。只要礦工按照礦主分配的任務分區(qū)塊獎勵,就不可能能偷出塊
獎勵。
如果礦工搗亂,不提交真正挖到的結果,這樣對礦工沒有經濟上的好處。

礦池在各個國家的分布比例:

礦池的算力的分布比例(2014年6月12日):
區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用
區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用

礦工轉換礦池很容易。
大型礦池會使得51%的攻擊更加容易。

占據51%以上算力的礦池可以發(fā)布的攻擊:(不是只要達到51%預值就可以發(fā)動攻擊。)
1、分叉攻擊。
區(qū)塊鏈肖臻筆記,區(qū)塊鏈技術與應用
2、封鎖禁令boycott:把封鎖的賬戶的有關系的交易都不讓上鏈,當其他節(jié)點把這個交易發(fā)布到區(qū)塊上,會立刻分叉,讓這個交易所在的鏈不能成為最長合法鏈。(和回滾的區(qū)別:不用等多個區(qū)塊被確認 )
3、盜幣(不可能實現的,沒有其他賬戶的私鑰)

強行把不合法的交易打包到區(qū)塊,會造成分叉。文章來源地址http://www.zghlxwxcb.cn/news/detail-801438.html


到了這里,關于《區(qū)塊鏈技術與應用》北大肖臻老師——課程筆記【6-8】的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • 北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[20]以太坊-權益證明

    北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[20]以太坊-權益證明

    目錄 一、為什么要轉入權益證明 ????????1.比特幣系統的相關數據? ????????2.以太坊的統計數據 ????????3.比特幣和以太坊當成一個國家 二、思考 ????????1.礦工為什么要挖礦? ????????2.為什么要給礦工這些收益,這些出塊獎勵呢? ????????3.礦工具體

    2023年04月25日
    瀏覽(22)
  • 北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[17]以太坊-GHOST協議

    北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[17]以太坊-GHOST協議

    目錄 一、以太坊的出塊時間及可能帶來的問題 ????????1.以太坊的出塊時間 ????????2.以太坊與比特幣系統的平均出塊時間對比 ????????3.帶來的問題 二、GHOST協議 ????????1.GHOST協議的核心思想 ????????2.GHOST協議的缺陷 ????????3.改進后的GHOST協議 ???

    2024年02月09日
    瀏覽(27)
  • 北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[25]以太坊-智能合約-5

    北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[25]以太坊-智能合約-5

    智能合約-1 智能合約-2 智能合約-3 智能合約-4 網上競拍第二版:由投標者自己取回出價 (1)存在的問題 ????????重入攻擊,如果有黑客寫了一個如下方程序會怎么樣? ????????這個hack_bid跟前面的那個黑客合約hack_bid合約是一樣的,通過調用拍賣bid函數參與競拍,ha

    2024年03月11日
    瀏覽(26)
  • 北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[22]以太坊-智能合約-2

    北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[22]以太坊-智能合約-2

    智能合約-1 目錄 一、智能合約的創(chuàng)建和運行 ????????1.智能合約的創(chuàng)建 ????????2.汽油費 ????????3.錯誤處理 ????????4.嵌套調用 二、思考 ????????1.GasLimit和GasUsed ????????2.以太坊中的GasLimit跟比特幣的區(qū)別 1.智能合約的創(chuàng)建 ? ? ? ? 智能合約 由一個外

    2024年02月19日
    瀏覽(26)
  • 北大肖臻老師《區(qū)塊鏈技術與應用》系列課程學習筆記[23]以太坊-智能合約-3

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

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

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

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

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

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

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

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

    2024年02月05日
    瀏覽(21)
  • 北大肖臻老師<<區(qū)塊鏈技術>>筆記1

    課程的大綱 密碼學基礎 比特幣的數據結構 共識協議和系統實現 挖礦算法和難度調整 比特幣的腳本 軟分叉和硬分叉 匿名和隱私保護 以太坊是后面的 首先是密碼學基礎的學習: crypto-currency(虛擬貨幣) 是不加密的,區(qū)塊鏈上所有的教以都是公開的。其中有轉賬金額和地址。

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

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

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

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

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

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

    2024年02月08日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包