日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理解区块链

發(fā)布時間:2025/3/15 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解区块链 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文基本上是收集的內容匯總,略微全面一點

1、區(qū)塊鏈的誕生

互聯(lián)網上的貿易,幾乎都需要借助可資信賴的第三方信用機構來處理電子支付信息。這類系統(tǒng)仍然內生性地受制于“基于信用的模式”。區(qū)塊鏈技術是構建比特幣區(qū)塊鏈網絡與交易信息加密傳輸?shù)幕A技術。它基于密碼學原理而不基于信用,使得任何達成一致的方直接支,從而不需要第三方中介的參與。

定義:

區(qū)塊鏈是一個分布式賬本,一種通過去中心化去信任的方式集體維護一個可靠數(shù)據(jù)庫的技術方案。

從數(shù)據(jù)的角度來看:區(qū)塊鏈是一種幾乎不可能被更改的分布式數(shù)據(jù)庫。這里的“分布式”不僅體現(xiàn)為數(shù)據(jù)的分布式存儲,也體現(xiàn)為數(shù)據(jù)的分布式記錄(即由系統(tǒng)參與者共同維護)。

從技術的角度來看:區(qū)塊鏈并不是一種單一的技術,而是多種技術整合的結果。這些技術以新的結構組合在一起,形成了一種新的數(shù)據(jù)記錄、存儲和表達的方式。


區(qū)塊鏈目前還處在早期階段,一些嗅到商機的大企業(yè),技術牛人都對此開展了研究。初期階段,想想有木有好興奮....


2、區(qū)塊鏈技術的特征

2.1、開放,共識

任何人都可以參與到區(qū)塊鏈網絡,每一臺設備都能作為一個節(jié)點,每個節(jié)點都允許獲得一份完整的數(shù)據(jù)庫拷貝。節(jié)點間基于一套共識機制,通過競爭計算共同維護整個區(qū)塊鏈。任一節(jié)點失效,其余節(jié)點仍能正常工作。

2.2、去中心,去信任

區(qū)塊鏈由眾多節(jié)點共同組成一個端到端的網絡,不存在中心化的設備和管理機構。節(jié)點之間數(shù)據(jù)交換通過數(shù)字簽名技術進行驗證,無需互相信任,只要按照系統(tǒng)既定的規(guī)則進行,節(jié)點之間不能也無法欺騙其它節(jié)點。

2.3、交易透明,雙方匿名

區(qū)塊鏈的運行規(guī)則是公開透明的,所有的數(shù)據(jù)信息也是公開的,因此每一筆交易都對所有節(jié)點可見。由于節(jié)點與節(jié)點之間是去信任的,因此節(jié)點之間無需公開身份,每個參與的節(jié)點都是匿名的。

2.4、不可篡改,可追溯

單個甚至多個節(jié)點對數(shù)據(jù)庫的修改無法影響其他節(jié)點的數(shù)據(jù)庫,除非能控制整個網絡中超過51%的節(jié)點同時修改,這幾乎不可能發(fā)生。區(qū)塊鏈中的每一筆交易都通過密碼學方法與相鄰兩個區(qū)塊串聯(lián),因此可以追溯到任何一筆交易的前世今生。


3、區(qū)塊鏈中的關鍵技術原理

區(qū)塊鏈的整個架構如下圖所示

3.1、數(shù)字簽名

數(shù)字簽名涉及到一個哈希函數(shù)、發(fā)送者的公鑰、發(fā)送者的私鑰。數(shù)字簽名有兩個作用,一是能確定消息確實是由發(fā)送方簽名并發(fā)出來的。二是數(shù)字簽名能確定消息的完整性。

工作原理

發(fā)送報文時,發(fā)送方用一個哈希函數(shù)從報文文本中生成報文摘要,然后用自己的私鑰對摘要進行加密,加密后的摘要將作為報文的數(shù)字簽名和報文一起發(fā)送給接收方,接收方首先用與發(fā)送方一樣的哈希函數(shù)從接收到的原始報文中計算出報文摘要,接著再用發(fā)送方的公鑰來對報文附加的數(shù)字簽名進行解密,如果這兩個摘要相同、那么接收方就能確認該數(shù)字簽名是發(fā)送方的。


3.2、SHA256

一種求Hash值的加密算法。

工作原理

將任何一串數(shù)據(jù)輸入到SHA256將得到一個256位的Hash值(散列值)。其特點:相同的數(shù)據(jù)輸入將得到相同的結果。輸入數(shù)據(jù)只要稍有變化(比如一個1變成了0)則將得到一個千差萬別的結果,且結果無法事先預知。正向計算(由數(shù)據(jù)計算其對應的Hash值)十分容易。逆向計算(俗稱“破解”,即由Hash值計算出其對應的數(shù)據(jù))極其困難,在當前科技條件下被視作不可能。


3.3、Merkle Tree

一種哈希二叉樹,使用它可以快速校驗大規(guī)模數(shù)據(jù)的完整性。在比特幣網絡中,Merkle 樹被用來歸納一個區(qū)塊中的所有交易信息,最終生成這個區(qū)塊所有交易信息的一個統(tǒng)一的哈希值,區(qū)塊中任何一筆交易信息的改變都會使得使得Merkle 樹改變。

作原理

網上大都稱為Merkle Hash Tree,這是因為 它所構造的Merkle Tree的所有節(jié)點都是Hash值。Merkle Tree具有以下特點:

1. 它是一種樹,可以是二叉樹,也可以多叉樹,無論是幾叉樹,它都具有樹結構的所有特點;

2. Merkle樹的葉子節(jié)點上的value,是由你指定的,這主要看你的設計了,如Merkle Hash Tree會將數(shù)據(jù)的Hash值作為葉子節(jié)點的值;

3 非葉子節(jié)點的value是根據(jù)它下面所有的葉子節(jié)點值,然后按照一定的算法計算而得出的。如Merkle Hash Tree的非葉子節(jié)點value的計算方法是將該節(jié)點的所有子節(jié)點進行組合,然后對組合結果進行hash計算所得出的hash value。


3.4、時間戳服務器

大多用來進行比對以及驗證處理,時間戳服務器是一款基于PKI(公鑰密碼基礎設施)技術的時間戳權威系統(tǒng),對外提供精確可信的時間戳服務。它采用精確的時間源、高強度高標準的安全機制,以確認系統(tǒng)處理數(shù)據(jù)在某一時間的存在性和相關操作的相對時間順序,為信息系統(tǒng)中的時間防抵賴提供基礎服務。


4、區(qū)塊鏈的第一個成功應用


比特幣是區(qū)塊鏈技術的第一個應用,它的生態(tài)圈如下:


任何機器都可以運行一個完整的比特幣節(jié)點,一個完整的比特幣節(jié)點包括如下功

1.包,允許用戶區(qū)塊鏈網絡上進行交 2.整區(qū)塊鏈,記錄了所有交易歷史,通過特殊的結構保證歷史交易的安全性,并且用來驗證新交易的合法 3.工,通過記錄交易及解密數(shù)學題來生成新區(qū)塊,如果成功可以賺取獎 4.由功能,把其它節(jié)點傳送過來的交易數(shù)據(jù)等信息再傳送給更多的節(jié)


第1步:所有者A利用他的私鑰對前一次交易(比特貨來源)和下一位所有者B簽署一個數(shù)字簽名,并將這個簽名附加在這枚貨幣的末尾,制作成交易單

要點:B作為接收方地址

第2步:A將交易單廣播至全網,比特幣就發(fā)送給了B,每個節(jié)點都將收到的交易信息納入一個區(qū)塊中

要點:B而言,該枚比特幣會即時顯示在比特幣錢包中,但直到區(qū)確認成功后才可用。目前一筆比特幣從支付到最終確認成功,得6區(qū)塊認之后才能真正確認到帳。

第3步:每個節(jié)點通過解一道數(shù)學難題,從而去獲得創(chuàng)建新區(qū)塊權利,并爭取得到比特幣的獎勵(新比特幣會在此過程中產生)

要點:節(jié)點反復嘗試尋找個數(shù)值,使將該數(shù)值、區(qū)塊鏈中最后一區(qū)塊Hash及交單三部分送入SHA256法后能計算出散列值X256)滿足一定條件(比如前20位均為0),即找到數(shù)學難題的解。由此可見,答案并不唯一

第4步:當一個節(jié)點找到解時,它就向全網廣播該區(qū)塊記錄的所有蓋時間戳交易,并由全網其他節(jié)點核對

要點:戳用來證實特定區(qū)塊必然于某特定時間是的確存在的。比特幣網絡采取從5個以上節(jié)點獲取時間,然后取中間值的方式作為時間戳。

第5步:全網其他節(jié)點核對該區(qū)塊記賬的正確,沒有錯誤后他們將在該合法區(qū)塊之后競爭下一個區(qū)塊,這樣就形成了一個合法記賬的區(qū)塊鏈。

要點:每個區(qū)塊的創(chuàng)建時間大約在10分鐘。隨著全網算力的不斷變化,每個區(qū)塊的產生時間會隨算力增強而縮短、隨算力減弱而延長。其原理是根據(jù)最近產生的2016年區(qū)塊的時間差(約兩周時間),自動調整每個區(qū)塊的生成難度(比如減少或增加目標值中0的個數(shù)),使得每個區(qū)塊的生成時間是10分鐘。




5、主要的數(shù)據(jù)結構

區(qū)塊鏈以區(qū)塊為單位組織數(shù)據(jù)。全網所有的交易記錄都以交易單的形式存儲在全網唯一的區(qū)塊鏈中。


區(qū)塊是一種記錄交易的數(shù)據(jù)結構。每個區(qū)塊由區(qū)塊頭和區(qū)塊主體組成,區(qū)塊主體只負責記錄前一段時間內的所有交易信息,區(qū)塊鏈的大部分功能都由區(qū)塊頭實現(xiàn)。


1.號,標示軟件及協(xié)議的相關版本信 2.父區(qū)塊哈希值,引用的區(qū)塊鏈中父區(qū)塊頭的哈希值,通過這個值每個區(qū)塊才首尾相連組成了區(qū)塊鏈,并且這個值對區(qū)塊鏈的安全性起到了至關重要的作 3.Merkle根,這個值是由區(qū)塊主體中所有交易的哈希值再逐級兩兩哈希計算出來的一個數(shù)值,主要用于檢驗一筆交易是否在這個區(qū)塊中存 4.時間戳,記錄該區(qū)塊產生的時間,精確到 5.難度值,該區(qū)塊相關數(shù)學題的難度目 6.隨機數(shù)(Nonce)記錄解密該區(qū)塊相關數(shù)學題的答案的


在當前區(qū)塊加入?yún)^(qū)塊鏈后,所有礦工就立即開始下一個區(qū)塊的生成工作。

1.把在本地內存中的交易信息記錄到區(qū)塊主體中 2.在區(qū)塊主體中生成此區(qū)塊中所有交易信息的 Merkle 樹,把 Merkle 樹根的值保存在區(qū)塊頭中 3.把上一個剛剛生成的區(qū)塊的區(qū)塊頭的數(shù)據(jù)通過 SHA256 算法生成一個 哈希值填入到當前區(qū)塊的父哈希值中 4.把當前時間保存在時間戳字段中 5.難度值字段會根據(jù)之前一段時間區(qū)塊的平均生成時間進行調整以應對整個網絡不斷變化的整體計算總量,如果計算總量增長了,則系統(tǒng)會調高數(shù)學題的難度值,使得預期完成下一個區(qū)塊的時間依然在一定時間內


6、核心問題

6.1工作量證明

區(qū)塊頭包含一個隨機數(shù),使得區(qū)塊的隨機散列值出現(xiàn)了所需的0個數(shù)。節(jié)點通過反復嘗試來找到這個隨機數(shù),這樣就構建了一個工作量證明機制。工作量證明機制的本質是CPU票,“大多數(shù)”的決定表達為最長的鏈,因為最長的鏈包含了最大的工作量。如果大多數(shù)的CPU為誠實的節(jié)點控制,那么誠實的鏈條將以最快的速度延長,并超越其他的競爭鏈條。如果想要修出現(xiàn)的區(qū)塊,攻擊者必須重新完成該區(qū)塊的工作量外加該區(qū)塊之后所有區(qū)塊的工作量,并最終趕上和超越誠實節(jié)點的工作量。


6.2分叉

同一時間段內全網不止一個節(jié)點能計算出隨機數(shù),即會有多個節(jié)點在網絡中廣播它們各自打包好的臨時區(qū)塊(都是合法的)。

某一節(jié)點若收到多個針對同一前續(xù)區(qū)塊的后續(xù)臨時區(qū)塊,則該節(jié)點會在本地區(qū)塊鏈上建立分支,多個臨時區(qū)塊對應多個分支。該僵局的打破要等到下一個工作量證明被發(fā)現(xiàn),而其中的一條鏈條被證實為是較長的一條,那么在另一條分支鏈條上工作的節(jié)點將轉換陣營,開始在較長的鏈條上工作。其他分支將會被網絡徹底拋棄


6.3雙花

雙花,即二重支付,指攻擊者幾乎同時將同一筆錢用作不同交易。

每當節(jié)點在把新收到的交易單加入?yún)^(qū)塊之前,會順著交易的發(fā)起方的公鑰向前遍歷檢查,檢查當前交易所用的幣是否確實屬于當前交易發(fā)起方,此檢查可遍歷到該幣的最初誕生點(即產生它的那塊區(qū)塊源)。雖然多份交易單可以任意序的廣播,但是它們最終被加入?yún)^(qū)塊時必定呈現(xiàn)一定的順序。區(qū)塊之間以Hash值作為時間戳則區(qū)塊,這決定了任意一筆交易資金來源都可以被確定的回溯。

7、應用場景

從需求端來看,金融、醫(yī)療、公證、通信、供應鏈、域名、投票等領域都開始意識到區(qū)塊鏈的重要性并開始嘗試將技術與現(xiàn)實社會對接。

從投資端來看,區(qū)塊鏈的投資資金供給逐步上升,風投的投資熱情也不斷高漲,投資密度越來越大,供給端的資金供給有望推動技術的進一步發(fā)展。

從市場應用來看區(qū)塊鏈能成為一種市場工具,幫助社會削減平臺成本,讓中間機構成為過去;區(qū)塊鏈將促使公司現(xiàn)有業(yè)務模式重心的轉移,有望加速公司的發(fā)展。


8、資料來源

http://www.doc88.com/p-3843131640343.html ? 區(qū)塊鏈技術發(fā)展現(xiàn)狀和展望

其他網頁收集

總結

以上是生活随笔為你收集整理的理解区块链的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。