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

區(qū)塊鏈原理與基礎(chǔ)理論知識(shí)

這篇具有很好參考價(jià)值的文章主要介紹了區(qū)塊鏈原理與基礎(chǔ)理論知識(shí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


?
來源區(qū)塊鏈 - 區(qū)塊鏈基礎(chǔ)知識(shí) | Microsoft Learn,并結(jié)合自己的理解以及Chatgpt的幫助進(jìn)行了梳理和改進(jìn),使其更易讀和理解。

早在 1999 年,文件共享網(wǎng)絡(luò) Napster 就出現(xiàn)了,可方便用戶在混合對(duì)等網(wǎng)絡(luò)(之所以使用“混合”一詞是因?yàn)樗褂昧酥醒肽夸浄?wù)器)上輕松共享音頻文件(通常包含音樂)。文件共享網(wǎng)絡(luò)不僅僅可用于共享音樂文件,還允許所有用戶保留這些共享文件的副本。這樣一來,單個(gè)數(shù)字資產(chǎn)就會(huì)跨全球網(wǎng)絡(luò)生成無限個(gè)合理副本。這項(xiàng)技術(shù)簡單易用,只要有計(jì)算機(jī),任何人都可以利用它。這讓備受尊崇的淘兒唱片業(yè)績意外下滑。到 2006 年,淘兒唱片被迫關(guān)閉了它在美國國內(nèi)的所有 89 家門店。

2008 年,次貸危機(jī)爆發(fā)。在此期間,成立已久、實(shí)力強(qiáng)大的美國金融機(jī)構(gòu)和保險(xiǎn)公司紛紛宣布破產(chǎn)或?yàn)l臨破產(chǎn)邊緣。在這種情況下,聯(lián)邦政府必須立即干預(yù),以免爆發(fā)全國性乃至全球金融危機(jī)。這一重大事件讓民眾對(duì)中央銀行心存疑慮,并揭露了資金賬本不接受公眾監(jiān)督的危險(xiǎn)性。2008 年 3 月,哈特蘭支付系統(tǒng)公司數(shù)據(jù)泄露曝光了超過 1.3 億信用卡號(hào),導(dǎo)致其中許多信用卡號(hào)后來被盜用于進(jìn)行欺詐性購買。

這些事件說明了生活在數(shù)字化互聯(lián)世界的極大危險(xiǎn)性,不僅依賴交易費(fèi)用生成中間商,還易受數(shù)字攻擊、貪婪和犯罪行為影響。學(xué)術(shù)挑戰(zhàn)在于,如何創(chuàng)建脫媒數(shù)字基礎(chǔ)結(jié)構(gòu),用于在所有者之間公開可靠地轉(zhuǎn)讓(而不是復(fù)制和共享)數(shù)字資產(chǎn),既沒有腐敗或不可靠的中央集權(quán)機(jī)構(gòu),而又安全且可信任。

1.比特幣區(qū)塊鏈入門

2009 年 1 月 3 日,出現(xiàn)了一種新型基礎(chǔ)結(jié)構(gòu),似乎是在歷史背景下應(yīng)運(yùn)而生。它挖礦獲得 50 個(gè)數(shù)字幣,并將它們記錄在防篡改公用賬本上。此帳本被復(fù)制到由已聯(lián)網(wǎng)計(jì)算機(jī)組成的[[分散式對(duì)等網(wǎng)絡(luò)]]上。這 50 個(gè)加密貨幣單位就稱為“比特幣”,記錄為創(chuàng)世區(qū)塊,即被認(rèn)為是比特幣區(qū)塊鏈的第一個(gè)鏈接。

這種由區(qū)塊鏈提供技術(shù)支持的加密貨幣的非凡之處在于,不通過任何信任或監(jiān)管機(jī)構(gòu)(如銀行或政府)驗(yàn)證每筆交易。 此外,它還讓交易脫媒,即使用不涉及中間商(如代理或代理機(jī)構(gòu))的全球網(wǎng)絡(luò),在全球范圍內(nèi)轉(zhuǎn)讓數(shù)字貨幣。 由于依賴新式加密,因此區(qū)塊鏈中的數(shù)據(jù)是防篡改的匿名數(shù)據(jù)。此外,因?yàn)榻o定區(qū)塊鏈被復(fù)制到對(duì)等網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn),所以沒有單一故障點(diǎn),確保了這項(xiàng)技術(shù)的可用性和可靠性。

自比特幣推出以來,區(qū)塊鏈技術(shù)快速發(fā)展,不斷成熟完善。區(qū)塊鏈實(shí)現(xiàn)細(xì)節(jié)的差異很大,這就讓區(qū)塊鏈研究成為一項(xiàng)不斷變化且非常復(fù)雜的龐大任務(wù)。實(shí)際上,“區(qū)塊鏈”一詞不再只適用于通常所說的加密貨幣,特別是比特幣。區(qū)塊鏈正在不斷優(yōu)化和完善,旨在成為更快更智能的技術(shù)。實(shí)際上,一些區(qū)塊鏈技術(shù)允許編寫腳本來支持智能合同,這樣就可以將自定義規(guī)則應(yīng)用于交易。這樣一來,區(qū)塊鏈就已演變成一種新型可編程的防黑客存儲(chǔ)技術(shù)。 正是出于這一原因,IT 專業(yè)人士、企業(yè)、金融機(jī)構(gòu)等強(qiáng)烈要求發(fā)揮它的真正潛能。

如果一直在局外觀望區(qū)塊鏈,現(xiàn)在是時(shí)候急起直追了。這是一篇介紹性文章,不可能涵蓋所有區(qū)塊鏈技術(shù)的詳盡技術(shù)細(xì)節(jié),每項(xiàng)技術(shù)都有自己的規(guī)則、功能和自定義。不過,我在本文中介紹了許多概念,將有助于讀者了解眾多新式區(qū)塊鏈技術(shù)所依據(jù)的核心技術(shù)基礎(chǔ)。

2.區(qū)塊鏈的工作原理

比特幣區(qū)塊鏈?zhǔn)鞘澜缟鲜讉€(gè)區(qū)塊鏈技術(shù)實(shí)例。由于這種特質(zhì),“區(qū)塊鏈”經(jīng)常被誤解為與比特幣密不可分。不過,新式區(qū)塊鏈技術(shù)產(chǎn)品/服務(wù)跟蹤除數(shù)字貨幣外的數(shù)字資產(chǎn),此類區(qū)塊鏈的工作原理與比特幣區(qū)塊鏈大不相同。 此外,比特幣區(qū)塊鏈還推廣了一種觀念,即區(qū)塊鏈?zhǔn)翘摂M化銀行賬本的數(shù)據(jù)結(jié)構(gòu),具體是通過跟蹤借貸,同時(shí)提供有創(chuàng)意的加密解決方案,以有效禁止加密貨幣單位的雙重支出->確保每個(gè)交易只會(huì)被執(zhí)行一次。因此,“數(shù)字賬本”和“雙重支出” 術(shù)語就與加密貨幣區(qū)塊鏈關(guān)聯(lián)起來。不過,這兩個(gè)術(shù)語分別廣泛應(yīng)用于跟蹤所有權(quán)和強(qiáng)制單次轉(zhuǎn)讓數(shù)字資產(chǎn)??吹竭@兩個(gè)術(shù)語時(shí),不要以為它們只是指面向加密貨幣的區(qū)塊鏈技術(shù)。

從本質(zhì)上講,區(qū)塊鏈?zhǔn)且环N防篡改數(shù)據(jù)結(jié)構(gòu),可以跟蹤在所有者之間傳遞的有價(jià)值或感興趣內(nèi)容。這里所指的“內(nèi)容”可以是任何一種數(shù)字資產(chǎn),如數(shù)字幣、Word 文檔或 Microsoft Surface 平板電腦序列號(hào)。 實(shí)際上,只要是可以與唯一數(shù)字指紋關(guān)聯(lián)的項(xiàng),就能在區(qū)塊鏈上進(jìn)行跟蹤。 區(qū)塊鏈要求轉(zhuǎn)讓數(shù)字資產(chǎn)所有權(quán),而不是復(fù)制或共享,解決了所謂的“雙重支出”問題。 不過,區(qū)塊鏈技術(shù)的有趣之處在于,它不僅建立了協(xié)議和強(qiáng)制執(zhí)行交易規(guī)則,還能夠讓計(jì)算機(jī)分布式網(wǎng)絡(luò)中的節(jié)點(diǎn)自我監(jiān)督整個(gè)操作。 而且,它是在沒有中央服務(wù)器或信任頒發(fā)機(jī)構(gòu)的情況下,迅速在全球范圍內(nèi)完成了這一非凡壯舉。這樣的前景激起了人們的興趣,希望通過它來消除中間商、減少或停征交易費(fèi)用,同時(shí)讓企業(yè)和使用者都能提高商務(wù)效率。

區(qū)塊鏈核心組成部分

比特幣區(qū)塊鏈網(wǎng)絡(luò)是公用的。也就是說,任何人可以隨時(shí)隨地參與進(jìn)來。不過,新式區(qū)塊鏈產(chǎn)品/服務(wù)(如 Microsoft Azure 托管區(qū)塊鏈)可以配置為公用網(wǎng)絡(luò)、專用網(wǎng)絡(luò)或特權(quán)網(wǎng)絡(luò)。雖然區(qū)塊鏈?zhǔn)欠稚⒌模稚⒌暮x需要進(jìn)一步澄清。正如 Vitalik Buterin 所解釋 ,“分散式區(qū)塊鏈”是指它們“不僅在政治上是分散的(不受任何監(jiān)管),在體系結(jié)構(gòu)上也是分散的(無基礎(chǔ)結(jié)構(gòu)中心故障點(diǎn)),但它們在邏輯上并不是分散的(有一個(gè)共同商定的狀態(tài),且系統(tǒng)就像一臺(tái)計(jì)算機(jī)一樣運(yùn)轉(zhuǎn))”。 分散化提供容錯(cuò)、攻擊防御和勾結(jié)防御(稍后我將介紹工作量證明,屆時(shí)此含義就會(huì)變得清晰明了)。

若要了解如何設(shè)計(jì)公用區(qū)塊鏈,需要了解加密哈希、公鑰加密 (PKC)、二叉哈希鏈(特別是 Merkle 樹)和一致性算法。我將簡要回顧一下這些概念,并介紹區(qū)塊鏈?zhǔn)前灰坠f湹墓f湣U莆沾饲短坠f湼拍詈?,就?huì)理解區(qū)塊鏈技術(shù)的基本設(shè)計(jì)。

加密哈希

雖然有許多單向加密哈希算法變體,但通常選用的是 SHA-256。這是一種單向哈希函數(shù) ,接受最大為 (264-1)/8 字節(jié)的消息,并返回 32 字節(jié)的哈希值(64 個(gè)十六進(jìn)制字符),十進(jìn)制范圍介于 0 和約 1.16 x 1077之間。為了能夠正確看待數(shù)量級(jí),需要指出的是,一滴水大約包含 5 x 1012 個(gè)原子;可觀測宇宙的原子數(shù)估計(jì)介于 1078 和 1082 之間。調(diào)整消息中的任何字符,并重新計(jì)算 SHA-256 哈希值,就可以生成全新的哈希值,并將文件或文本校驗(yàn)和類型設(shè)置為 SHA-256。)
單向哈希函數(shù)(One-way Hash Function)是一種特殊的哈希函數(shù),它具有單向性質(zhì),即難以從哈希值反推出原始數(shù)據(jù)。
具體來說,單向哈希函數(shù)是一種只能“單向”的哈希函數(shù),即可以從輸入數(shù)據(jù)計(jì)算出固定長度的哈希值,但不能從哈希值反推出原始數(shù)據(jù)。這種單向性質(zhì)使得單向哈希函數(shù)非常適用于密碼學(xué)中的密碼驗(yàn)證和數(shù)字簽名等應(yīng)用場景。

如果輸入相同,SHA-256 算法始終生成相同的定長輸出。 對(duì)于區(qū)塊鏈技術(shù),使用 SHA-256 加密哈希的價(jià)值在于,它們是唯一的,可同時(shí)用作數(shù)字指紋和校驗(yàn)和。此外,(作為慣例)單向哈希函數(shù)不能進(jìn)行解碼。以我名字的 SHA-256 值為例:8F12D83BA54AC0EA7687AD4AFDE5E258BBFF970AA8D60C6588381784C502CA8E。由于這是哈希值,因此實(shí)際上無法使用算法反向推出我的名字。(一種黑客技術(shù)利用的是彩虹表,其中列出了已計(jì)算出的常見字符串(如“密碼”)哈希值,但這也不是通過算法來反向推出哈希。為了抵御此類攻擊,慣例做法是通過附加隨機(jī)字符串(稱為“加密鹽”值),修飾要哈希處理的字符串。)

如果沒有 SHA-256 生成器可用,請參閱圖 1 中的表,它表明不同長度的字符串始終生成 64 位十六進(jìn)制哈希值,以及對(duì)任何字符串稍作更改就會(huì)導(dǎo)致結(jié)果完全不同。

圖 1:使用 SHA-256 算法對(duì)各種長度的字符串進(jìn)行哈希處理
![[Pasted image 20230411171146.png|475]]

有時(shí),哈希值會(huì)進(jìn)行雙重哈希處理。也就是說,通過應(yīng)用第二輪 SHA-256 算法,再次對(duì)第一個(gè)哈希值進(jìn)行哈希處理。如果對(duì)圖 1 中的值進(jìn)行雙重哈希處理,最終會(huì)生成圖 2中的結(jié)果。

圖 2:對(duì)圖 1 中的值進(jìn)行雙重哈希處理
![[Pasted image 20230411171203.png|550]]

公鑰加密

回顧一下,區(qū)塊鏈的主要功能之一是,跟蹤數(shù)字資產(chǎn)的所有權(quán)。 相關(guān)數(shù)字資產(chǎn)可能一文不值,也可能價(jià)值數(shù)百萬美元。因此,所有權(quán)測試必須確保所有者是無法假冒的。為了在數(shù)字領(lǐng)域進(jìn)行此類測試,區(qū)塊鏈利用的是 PKC,以便所有者能夠?qū)Y產(chǎn)進(jìn)行數(shù)字簽名,以證明所有權(quán)和授權(quán)資產(chǎn)轉(zhuǎn)讓。與使用一個(gè)私鑰加密和解密消息的對(duì)稱密鑰加密不同,PKC 使用非對(duì)稱密鑰加密。

1.首先,數(shù)字資產(chǎn)的所有權(quán)驗(yàn)證是區(qū)塊鏈中非常重要的一項(xiàng)功能,因此需要采用高安全系數(shù)的公鑰/私鑰對(duì)生成策略來確保數(shù)字資產(chǎn)的安全。ECDSA是一種加密算法,可以用來生成密鑰對(duì),即一個(gè)公鑰和一個(gè)私鑰,用于驗(yàn)證數(shù)字資產(chǎn)的所有權(quán)。
2.ECDSA相對(duì)于DSA的優(yōu)點(diǎn)在于,它可以用較短的密鑰長度實(shí)現(xiàn)更高的加密安全系數(shù)。 用戶可以通過軟件應(yīng)用程序來生成加密密鑰對(duì),并需要妥善保管生成的私鑰備份,因?yàn)樗?strong>鑰是用來轉(zhuǎn)讓或利用數(shù)字資產(chǎn)的價(jià)值的必要條件。
3.如果只備份了密鑰對(duì)中的私鑰,可以重新生成公鑰,因?yàn)楣€和私鑰之間存在一種數(shù)學(xué)關(guān)系,但是無法通過公鑰生成私鑰。 因此,如果只備份一個(gè)密鑰,一定要備份私鑰,以確保數(shù)字資產(chǎn)的安全。

通常采用兩種方式之一使用這些密鑰。
第一個(gè)用例(見圖 3)是,希望有人向你發(fā)送只有你才能打開的加密消息。為此,請向?qū)Ψ教峁┠愕墓€,讓其使用此公鑰加密文檔,具體是通過軟件應(yīng)用加密算法,并生成已加密文本(即加密版消息)。然后,對(duì)方就會(huì)向你只發(fā)送已加密文本。由于對(duì)方使用的是公鑰來加密文檔,因此必須使用正確配對(duì)的私鑰才能解密文檔。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-KsEFxc2f-1681218494692)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure3_hires(zh-cn,msdn.10)].png “希望有人向你發(fā)送只有你才能打開的加密文檔/消息時(shí)使用 PKC”)
圖 3:希望有人向你發(fā)送只有你才能打開的加密文檔/消息時(shí)使用 PKC

第二個(gè)用例(見圖 4)是,希望加密消息并證明它確實(shí)由你發(fā)送。 為此,請使用私鑰創(chuàng)建文檔的已加密文本。然后,將此已加密文本發(fā)送給其他人。對(duì)方會(huì)使用你的公鑰來解密文檔。由于只有你的公鑰才能解密文檔,因此收件人可以認(rèn)為文檔是由你的私鑰加密。也就是說,除非私鑰被盜用,否則文檔就是由你發(fā)送。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-tEUrItJW-1681218494693)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure4_hires(zh-cn,msdn.10)].png “希望向其他人發(fā)送加密文檔/消息并證明它確實(shí)由你發(fā)送時(shí)使用 PKC”)
圖 4:希望向其他人發(fā)送加密文檔/消息并證明它確實(shí)由你發(fā)送時(shí)使用 PKC

第三個(gè)用例使用 PKC 通過數(shù)字簽名流程來證明數(shù)字資產(chǎn)所有權(quán)。 在此用例(見圖 5)中,假設(shè) Bill 已編寫具有法律約束力的 Word 文檔,他需要通過電子郵件方式將文檔發(fā)送給 Susan。Susan 希望確定她從 Bill 處收到的文檔副本確實(shí)是由 Bill 發(fā)送,而且在途中尚未被篡改。Bill 先創(chuàng)建 Word 文檔的 SHA-256 哈希,并將值記錄為 H(W)。接下來,他使用自己的私鑰對(duì)文檔哈希進(jìn)行加密,生成 Enc(H(W)),再向 Susan 發(fā)送 Word 文檔(可視情況加密)和 Enc(H(W)) 值(這是 Bill 對(duì)文檔 W 的數(shù)字簽名)。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-CyjUBxP5-1681218494693)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure5_hires(zh-cn,msdn.10)].png “使用 PKC 和加密哈希對(duì)文檔/消息進(jìn)行數(shù)字簽名”)
圖 5:使用 PKC 和加密哈希對(duì)文檔/消息進(jìn)行數(shù)字簽名

Susan 通過她收到的 Word 文檔副本重新計(jì)算 H(W) 值,再使用 Bill 的公匙解密 Enc(H(W)) 值(見圖 6)。如果 Susan 計(jì)算的哈希值等于解密的 H(W) 值,Susan 可以得出下列結(jié)論:Bill 對(duì)文檔進(jìn)行了簽名,并且她收到的副本與 Bill 簽名的文件完全相同。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-zaAFKd5F-1681218494694)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure6_hires(zh-cn,msdn.10)].png “使用 PKC 和加密哈希驗(yàn)證文檔/消息是否由預(yù)期方進(jìn)行簽名”)
圖 6:使用 PKC 和加密哈希驗(yàn)證文檔/消息是否由預(yù)期方進(jìn)行簽名

使用哈希和 PKC,區(qū)塊鏈維護(hù)了數(shù)字資產(chǎn)所有權(quán)的交易歷史記錄。
交易數(shù)據(jù)對(duì)象相互鏈接,形成稱為“哈希鏈”的數(shù)據(jù)結(jié)構(gòu)。工作原理是,每個(gè)交易記錄都會(huì)構(gòu)成消息 (m),此類消息先通過函數(shù) (H) 進(jìn)行哈希處理,再通過所有者私鑰 (s) 進(jìn)行簽名。(慣例做法是,使用“secret”的首字母“s”表示私鑰,以免與表示公鑰的“p”混淆。) 這就生成了簽名 (sig):

sig = signature(H(m), s)

在數(shù)字資產(chǎn)從一個(gè)所有者轉(zhuǎn)讓給另一個(gè)所有者后,新所有者會(huì)檢查、驗(yàn)證它的數(shù)字簽名并進(jìn)行數(shù)字簽名,再將它注冊為哈希鏈上的新節(jié)點(diǎn)。 盡管實(shí)現(xiàn)細(xì)節(jié)因區(qū)塊鏈技術(shù)和版本差異很大,但對(duì)于所有這些技術(shù)和版本,基本概念是相同的。例如,如圖 7 所示,Bill 是數(shù)字資產(chǎn)的所有者,他使用私鑰發(fā)起向 Susan 轉(zhuǎn)讓數(shù)字資產(chǎn)。Susan 的交易記錄使用 Bill 的公鑰來驗(yàn)證他的簽名。在此之后,Susan 使用公鑰對(duì)數(shù)字資產(chǎn)進(jìn)行簽名,讓 Susan 成為新所有者。這就會(huì)新建交易記錄,即交易哈希鏈上的新鏈接。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Vo7vcHUg-1681218494694)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure7_hires(zh-cn,msdn.10)].png “交易哈希鏈?zhǔn)褂脭?shù)字簽名轉(zhuǎn)讓數(shù)字資產(chǎn)所有權(quán);每個(gè)交易記錄都保留有對(duì)哈希鏈中上一個(gè)交易的加密反向鏈接”)
圖 7:交易哈希鏈?zhǔn)褂脭?shù)字簽名轉(zhuǎn)讓數(shù)字資產(chǎn)所有權(quán);每個(gè)交易記錄都保留有對(duì)哈希鏈中上一個(gè)交易的加密反向鏈接

此交易哈希鏈?zhǔn)芗用鼙Wo(hù),并且防篡改。對(duì)交易 0 的任何更改都會(huì)導(dǎo)致 Sig0 變化,要求更新在交易 1 中存儲(chǔ)的哈希值,以及哈希鏈上的每個(gè)后續(xù)交易。

在不同的區(qū)塊鏈實(shí)現(xiàn)中,每個(gè)交易所包含的具體數(shù)據(jù)可能會(huì)有所不同。為了理解區(qū)塊鏈的工作原理,需要知道哈希鏈?zhǔn)且环N加密鏈接的交易鏈。具體來說,每個(gè)交易記錄都會(huì)包含上一個(gè)所有者的交易記錄的哈希值,從而形成一個(gè)鏈條。

在加密貨幣區(qū)塊鏈中,每個(gè)交易對(duì)象通常包含以下數(shù)據(jù):
1. 數(shù)字貨幣輸入列表: 這是指該交易的所有者將其數(shù)字貨幣從之前的交易輸出中導(dǎo)入到此交易中。例如,如果Alice收到了來自Bob的數(shù)字貨幣,她可以將這些數(shù)字貨幣輸入到她自己的交易中,并將其作為交易的輸入列表。
2. 數(shù)字貨幣輸出列表: 這是指該交易的所有者將其數(shù)字貨幣輸出到下一個(gè)所有者的交易輸入中。例如,如果Alice想要將其數(shù)字貨幣發(fā)送給Charlie,她可以將這些數(shù)字貨幣作為交易的輸出列表,并將其發(fā)送到Charlie的交易輸入中。
3. 時(shí)間戳: 每個(gè)交易都包括一個(gè)時(shí)間戳,用于記錄交易發(fā)生的時(shí)間。
4. 可選的交易費(fèi)用: 這是指交易所有者可以選擇支付的一筆額外費(fèi)用,用于鼓勵(lì)礦工驗(yàn)證和打包交易。通常情況下,支付更高的交易費(fèi)用會(huì)導(dǎo)致交易更快地被處理。
通過這些數(shù)據(jù),可以精確地記錄每個(gè)數(shù)字貨幣的所有權(quán)變更。當(dāng)一個(gè)所有者將數(shù)字貨幣發(fā)送到另一個(gè)所有者時(shí),該交易的輸入列表將減少,輸出列表將增加,從而反映出數(shù)字貨幣所有權(quán)的變更。 這些交易被存儲(chǔ)在區(qū)塊鏈中,并且由于區(qū)塊鏈的不可篡改性,所有者的數(shù)字貨幣所有權(quán)變更記錄將得到完全保護(hù)和準(zhǔn)確記錄,形成一個(gè)可信的財(cái)務(wù)賬本。

Merkle 樹

一些區(qū)塊鏈?zhǔn)褂昧硪环N哈希鏈捆綁交易,即二叉哈希鏈或 Merkle 樹。 完整的 Merkle 樹稱為“二叉樹結(jié)構(gòu)”,因?yàn)樗鼜母_始每個(gè)級(jí)別都有兩個(gè)分支,如圖 8 所示。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-LY08d5g3-1681218494695)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure8_hires(zh-cn,msdn.10)].png “Merkle 樹是一種生成 Merkle 根哈希的二叉哈希樹;此數(shù)據(jù)結(jié)構(gòu)可以有效添加葉節(jié)點(diǎn),并計(jì)算新 Merkle 根,而無需完全重新計(jì)算”)
圖 8:Merkle 樹是一種生成 Merkle 根哈希的二叉哈希樹;此數(shù)據(jù)結(jié)構(gòu)可以有效添加葉節(jié)點(diǎn),并計(jì)算新 Merkle 根,而無需完全重新計(jì)算

Merkle 樹的創(chuàng)建方式和特點(diǎn):

  1. Merkle 樹的創(chuàng)建方式是將每個(gè)交易對(duì)象中的數(shù)據(jù)進(jìn)行 SHA-256 哈希運(yùn)算,生成一系列葉節(jié)點(diǎn)。對(duì)于比特幣區(qū)塊鏈而言,還會(huì)對(duì)每個(gè) Merkle 節(jié)點(diǎn)進(jìn)行雙重哈希處理,以強(qiáng)化哈希結(jié)果中的加密值。
  2. Merkle 樹要求必須有偶數(shù)個(gè)葉節(jié)點(diǎn),如果初始葉節(jié)點(diǎn)數(shù)量為奇數(shù),則會(huì)復(fù)制最后一個(gè)葉節(jié)點(diǎn)來保證數(shù)量為偶數(shù)。
  3. 每一對(duì)葉節(jié)點(diǎn)會(huì)進(jìn)行一次哈希運(yùn)算,生成一個(gè)新的哈希值作為其父節(jié)點(diǎn)的值。這個(gè)模式會(huì)一直應(yīng)用到根節(jié)點(diǎn),即最終的哈希值是所有其他哈希值的加密哈希和。
  4. Merkle 樹的一個(gè)重要特點(diǎn)是,對(duì)于任何一個(gè)葉節(jié)點(diǎn)中數(shù)據(jù)的任何更改,都會(huì)導(dǎo)致重新計(jì)算整個(gè) Merkle 樹的哈希值,即根哈希值會(huì)發(fā)生變化。這個(gè)特點(diǎn)使得 Merkle 樹可以被用來驗(yàn)證數(shù)據(jù)的完整性和真實(shí)性。

Merkle 樹中的葉節(jié)點(diǎn)代表每個(gè)交易的哈希,每個(gè)非葉節(jié)點(diǎn)代表它的兩個(gè)子節(jié)點(diǎn)的哈希的哈希值。在比特幣中,每個(gè)葉節(jié)點(diǎn)代表一個(gè)交易,而每個(gè)非葉節(jié)點(diǎn)代表其子節(jié)點(diǎn)的哈希的哈希值。 這種結(jié)構(gòu)可以幫助驗(yàn)證某個(gè)交易是否屬于一個(gè)特定的區(qū)塊鏈,而不需要訪問該區(qū)塊鏈的所有交易。

在比特幣的區(qū)塊鏈中,每個(gè)區(qū)塊包含多個(gè)交易。當(dāng)需要驗(yàn)證某個(gè)交易是否包含在某個(gè)區(qū)塊中時(shí),可以通過以下步驟來完成驗(yàn)證:

  1. 從該區(qū)塊的頭信息中獲取 Merkle 樹的根節(jié)點(diǎn)哈希值。
  2. 獲取需要驗(yàn)證的交易的哈希值。
  3. 通過哈希算法,從交易哈希值計(jì)算出該交易所在的葉節(jié)點(diǎn)哈希值。
  4. 通過對(duì)葉節(jié)點(diǎn)哈希值和兄弟節(jié)點(diǎn)哈希值的遞歸哈希運(yùn)算,計(jì)算出 Merkle 樹的根節(jié)點(diǎn)哈希值。
  5. 比較計(jì)算得到的根節(jié)點(diǎn)哈希值和區(qū)塊頭中記錄的根節(jié)點(diǎn)哈希值是否相等。

Merkle 二叉哈希樹結(jié)構(gòu)具有一些優(yōu)點(diǎn)。例如,它可以輕松更新交易中的數(shù)據(jù),并計(jì)算新 Merkle 根哈希,而無需從頭開始生成整個(gè) Merkle 樹。 例如,如果(圖 8中突出顯示的)交易 E 發(fā)生了變化,只需高效地為樹中每個(gè)級(jí)別反向計(jì)算一次新哈希,一直計(jì)算到 Merkle 根即可。因此,先計(jì)算新葉哈希 HE;再計(jì)算 HEF ,依據(jù)為 HE 和 HF;再計(jì)算 HEFGH ,依據(jù)為 HEF和 HGH;再計(jì)算新 Merkle 根哈希,依據(jù)為 HABCD 和 HEFGH。更新 Merkle 根哈希只需進(jìn)行 4 次計(jì)算,而從頭開始生成 Merkle 樹則需要進(jìn)行 15 次計(jì)算!

3.生成區(qū)塊鏈

區(qū)塊鏈的生成過程以及其中的信任問題
首先,要生成一個(gè)區(qū)塊鏈,需要將包含交易的二叉哈希鏈數(shù)據(jù)對(duì)象提交到一個(gè)公用的防篡改數(shù)據(jù)存儲(chǔ)中,這個(gè)存儲(chǔ)是公開的,任何節(jié)點(diǎn)都可以對(duì)其執(zhí)行讀取或?qū)懭氩僮鳌?br> 盡管Merkle樹具有防篡改的特性,但在數(shù)字資產(chǎn)轉(zhuǎn)讓等交易處理過程中,[[必須依賴于中央節(jié)點(diǎn)、代理機(jī)構(gòu)或服務(wù)來處理交易請求,以及維護(hù)哈希結(jié)構(gòu)的服務(wù)器。]] 如果沒有中央節(jié)點(diǎn)來處理新交易,或者沒有中央集權(quán)機(jī)構(gòu)來委托處理事務(wù),任何節(jié)點(diǎn)都可以處理掛起的交易。
中央節(jié)點(diǎn)將導(dǎo)致控制權(quán)集中,如果沒有中央節(jié)點(diǎn)又可能導(dǎo)致無效或欺詐性交易的發(fā)生。

為了解決這些問題,區(qū)塊鏈?zhǔn)褂靡恢滦运惴▉泶_保交易的有效性和安全性,這個(gè)算法會(huì)隨機(jī)分配一個(gè)節(jié)點(diǎn)來處理交易,并確保該節(jié)點(diǎn)處理的交易得到全網(wǎng)節(jié)點(diǎn)的確認(rèn)。 這種方法可以減少控制權(quán)的集中,同時(shí)增加區(qū)塊鏈的可靠性和安全性。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-bvkOtx1V-1681218494696)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure9_hires(zh-cn,msdn.10)].png “區(qū)塊鏈由區(qū)塊組成,這些區(qū)塊繼而包含交易哈希樹;區(qū)塊鏈上的區(qū)塊反向鏈接到前面的區(qū)塊,并通過工作量證明算法進(jìn)行驗(yàn)證”)
圖 9:區(qū)塊鏈由區(qū)塊組成,這些區(qū)塊繼而包含交易哈希樹;區(qū)塊鏈上的區(qū)塊反向鏈接到前面的區(qū)塊,并通過工作量證明算法進(jìn)行驗(yàn)證

一致性算法

區(qū)塊鏈技術(shù)通過遵循規(guī)定如何添加和維護(hù)區(qū)塊的協(xié)議,杜絕了集中數(shù)據(jù)存儲(chǔ)和信任授權(quán)問題。 為此,它們強(qiáng)制執(zhí)行區(qū)塊鏈生成一致性算法。一致性算法有多種不同的種類,我將介紹的是工作量證明 (PoW) 算法工作原理。

PoW 的依據(jù)是,網(wǎng)絡(luò)上的一個(gè)節(jié)點(diǎn)需要通過產(chǎn)生的費(fèi)用和解決計(jì)算難題所需的耗時(shí),證明它的合理意圖。 為了讓節(jié)點(diǎn)參與此類系統(tǒng)并遵守規(guī)則,網(wǎng)絡(luò)提供激勵(lì)(通常是金錢獎(jiǎng)勵(lì))。也就是說,節(jié)點(diǎn)運(yùn)算符向區(qū)塊鏈添加區(qū)塊時(shí)就會(huì)得到報(bào)酬。為了贏取金錢獎(jiǎng)勵(lì),節(jié)點(diǎn)必須驗(yàn)證所有交易(以確保它們符合區(qū)塊鏈的特定規(guī)則),再解決加密難題。

為了構(gòu)造交易區(qū)塊,節(jié)點(diǎn)需要獲取在網(wǎng)絡(luò)上存儲(chǔ)的未處理交易,并生成Merkle樹來計(jì)算Merkle根哈希。 [[候選區(qū)塊包含交易列表]]和區(qū)塊標(biāo)頭,其中標(biāo)頭包括Merkle根哈希值、當(dāng)前時(shí)間戳和PoW難度級(jí)別(有時(shí)還附加有標(biāo)頭數(shù)據(jù))。然后,它必須解決PoW難題,這涉及計(jì)算雙重哈希的整個(gè)256位區(qū)塊哈希值,再找到32位數(shù)字nonce。 可以將此數(shù)字與哈希值連接,生成288位數(shù)字的哈希,這樣結(jié)果中就帶有一定數(shù)量的前導(dǎo)零。因此,慣常做法不是直接嘗試猜測nonce,而是從nonce 0 開始,生成SHA-256哈希,并確定它是否有目標(biāo)數(shù)量的前導(dǎo)零(也就是說,生成的哈希值小于目標(biāo)值);如果沒有,節(jié)點(diǎn)會(huì)增加nonce值,并再次嘗試。如果節(jié)點(diǎn)嘗試了所有nonce值都節(jié)點(diǎn)生成的哈希值必須滿足一定數(shù)量的前導(dǎo)零(這個(gè)數(shù)量取決于 PoW 難度級(jí)別),以便被其他節(jié)點(diǎn)接受并添加到區(qū)塊鏈中。為了找到符合要求的哈希值,節(jié)點(diǎn)需要不斷嘗試不同的 nonce 值,直到找到一個(gè)符合要求的哈希值。這個(gè)過程是一種計(jì)算密集型的工作,需要消耗大量的計(jì)算資源和能源。

一旦節(jié)點(diǎn)找到了符合要求的哈希值,它就會(huì)將這個(gè)哈希值與交易列表和其他元數(shù)據(jù)一起組成一個(gè)新的區(qū)塊,并將其廣播到整個(gè)網(wǎng)絡(luò)中。其他節(jié)點(diǎn)將驗(yàn)證這個(gè)新的區(qū)塊是否有效,如果有效,就將其添加到它們各自的本地區(qū)塊鏈中。這個(gè)過程被稱為“共識(shí)”,因?yàn)樗WC了整個(gè)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都達(dá)成了共識(shí),即認(rèn)為這個(gè)新的區(qū)塊是有效的并可以添加到區(qū)塊鏈中。

通過 PoW 算法,區(qū)塊鏈網(wǎng)絡(luò)實(shí)現(xiàn)了分布式的共識(shí)機(jī)制,不需要信任中心或中介機(jī)構(gòu)。每個(gè)節(jié)點(diǎn)都可以參與到共識(shí)過程中,并通過消耗大量的計(jì)算資源和能源來證明自己的合法性。 這種機(jī)制使得區(qū)塊鏈網(wǎng)絡(luò)具有了高度的安全性和可靠性,防止了數(shù)據(jù)篡改和攻擊。同時(shí),由于沒有中心機(jī)構(gòu)控制網(wǎng)絡(luò),區(qū)塊鏈網(wǎng)絡(luò)也具有很高的去中心化程度,使得數(shù)據(jù)的控制和管理更加公正和民主。

PS:
每個(gè)區(qū)塊都包含了一系列的交易記錄。事實(shí)上,一個(gè)區(qū)塊鏈網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都維護(hù)著一個(gè)完整的區(qū)塊鏈副本,這意味著每個(gè)節(jié)點(diǎn)都包含了整個(gè)區(qū)塊鏈中的所有交易記錄。
當(dāng)一個(gè)新的交易被提交到網(wǎng)絡(luò)中時(shí),每個(gè)節(jié)點(diǎn)都會(huì)接收到該交易,并將其驗(yàn)證。如果交易被驗(yàn)證通過,那么它將被添加到該節(jié)點(diǎn)的交易池中等待打包成新的塊。當(dāng)一個(gè)節(jié)點(diǎn)成功地挖出一個(gè)新的塊時(shí),它會(huì)將交易池中的所有交易打包到該塊中,并將其廣播給整個(gè)網(wǎng)絡(luò)。其他節(jié)點(diǎn)接收到這個(gè)新塊后,會(huì)驗(yàn)證其有效性,并將其添加到自己的區(qū)塊鏈中。
因此,每個(gè)區(qū)塊都包含了一系列的交易記錄,并且這些交易記錄在整個(gè)網(wǎng)絡(luò)中是完全一致的。這也是區(qū)塊鏈技術(shù)的一個(gè)重要特點(diǎn)之一:所有節(jié)點(diǎn)都維護(hù)著相同的狀態(tài),因此不存在中心化的機(jī)構(gòu)來控制和操縱數(shù)據(jù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-739980.html

到了這里,關(guān)于區(qū)塊鏈原理與基礎(chǔ)理論知識(shí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 區(qū)塊鏈基礎(chǔ)理論模擬試卷四

    1、擴(kuò)容是為了解決什么問題 正確答案:D A、網(wǎng)絡(luò)擁堵,信息傳輸慢 B、電腦內(nèi)存有限 C、網(wǎng)速太慢,需要加大區(qū)塊的容量 D、比特幣網(wǎng)絡(luò)擁堵,交易確認(rèn)慢 2、_______是指任何人都可以隨時(shí)進(jìn)入到系統(tǒng)中讀取數(shù)據(jù)、發(fā)送可確認(rèn)交易、競爭記賬的區(qū)塊鏈。需要用代幣激勵(lì)參與者競

    2023年04月23日
    瀏覽(24)
  • 區(qū)塊鏈基礎(chǔ)理論模擬試卷六

    1、區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)包括?正確答案:A A、計(jì)算機(jī) B、事件 C、交易ID D、記錄 2、公鑰和私鑰是成對(duì)生成的,主要的用途,說法錯(cuò)誤的是 正確答案:D ?A、私鑰加密,公鑰解密 B、公鑰加密,私鑰解密 C、數(shù)字簽名 D、公私鑰對(duì)是由對(duì)稱加密算法生成的 3、下列選項(xiàng)中不屬于區(qū)

    2024年02月01日
    瀏覽(20)
  • 音視頻入門基礎(chǔ)理論知識(shí)

    音視頻入門基礎(chǔ)理論知識(shí)

    本節(jié)介紹了音視頻的基本原理知識(shí)以及編碼相關(guān)概念。 視頻(Video) 泛指將一系列靜態(tài)影像以電信號(hào)的方式加以捕捉、 紀(jì)錄、 處理、 儲(chǔ)存、 傳送與重現(xiàn)的各種技術(shù)。 連續(xù)的圖像變化 每秒超過 24 幀(frame,fps) 畫面以上時(shí), 根據(jù) 視覺暫留原理 , 人眼無法辨別單幅的靜態(tài)畫

    2024年02月09日
    瀏覽(37)
  • fMRI基礎(chǔ)理論知識(shí)學(xué)習(xí)

    fMRI基礎(chǔ)理論知識(shí)學(xué)習(xí)

    時(shí)隔多年,再次上線,重新經(jīng)營csdn。自讀研以來,不是干飯就是擺爛,實(shí)在頹廢,能重新開始寫博客,已然不易。在這里立下flag,爭取以后每周都能寫點(diǎn)什么東西,一來鍛煉文筆,二來記錄學(xué)習(xí)歷程 我的研究方向與功能磁共振成像fMRI有關(guān),此前從未接觸過該領(lǐng)域,完全是從

    2024年02月09日
    瀏覽(22)
  • 學(xué)測試必看!測試?yán)碚撝R(shí)之測試基礎(chǔ)

    學(xué)測試必看!測試?yán)碚撝R(shí)之測試基礎(chǔ)

    1.1什么是質(zhì)量 美國著名的質(zhì)量管理專家朱蘭(J.M.Juran)博士從顧客的角度出發(fā),提出了產(chǎn)品 質(zhì)量就是產(chǎn)品的適用性 質(zhì)量:反映實(shí)體滿足明確或隱含需要能力的特性總和。 1.2軟件質(zhì)量 軟件質(zhì)量就是:“軟件與明確的和隱含的定義的需求相一致的程度” 衡量軟件質(zhì)量的標(biāo)準(zhǔn):

    2023年04月08日
    瀏覽(14)
  • C語言基礎(chǔ)知識(shí)理論版(很詳細(xì))

    C語言基礎(chǔ)知識(shí)理論版(很詳細(xì))

    C語言是一門編程語言,在大學(xué)中很多專業(yè)都會(huì)學(xué)習(xí),考研中部分專業(yè)會(huì)有涉及,工作中也仍有應(yīng)用。 以下是chatgpt對(duì)c語言的簡單介紹: C語言是一種廣泛應(yīng)用于系統(tǒng)編程和應(yīng)用程序開發(fā)的高級(jí)編程語言。以下是對(duì)C語言的簡單介紹: 發(fā)展歷史 :C語言由貝爾實(shí)驗(yàn)室的Dennis Ritc

    2024年02月09日
    瀏覽(19)
  • 【知識(shí)存儲(chǔ)】用于深度學(xué)習(xí)研究的 ☆ 概率論和數(shù)理統(tǒng)計(jì)☆ 基礎(chǔ)理論知識(shí),用時(shí)查閱,靈活運(yùn)用,很基礎(chǔ)很重要

    隨機(jī)事件和概率 1.事件的關(guān)系與運(yùn)算 (1) 子事件: A ? B A subset B A ? B ,若 A A A 發(fā)生,則 B B B 發(fā)生。 (2) 相等事件: A = B A = B A = B ,即 A ? B A subset B A ? B ,且 B ? A B subset A B ? A 。 (3) 和事件: A ? B Abigcup B A ? B (或 A + B A + B A + B ), A A A 與 B B B 中至少有一個(gè)發(fā)生

    2024年02月16日
    瀏覽(17)
  • Unity中Shader的PBR的基礎(chǔ)知識(shí)與理論

    Unity中Shader的PBR的基礎(chǔ)知識(shí)與理論

    Unity中Shader的PBR的基礎(chǔ)知識(shí)與理論 PBR(Physically Based Rendering),中文譯為基于物理的渲染 PBR是一種渲染方式 ,是使用基于物理原理和微微、平面理論的光照模型,以及使用從現(xiàn)實(shí)中測量的表面參數(shù)來準(zhǔn)確表示真實(shí)世界材質(zhì)的渲染理念 PBR是一系列技術(shù)的集合 ,包含GI、PBS等。 P

    2024年04月26日
    瀏覽(19)
  • 【《機(jī)器學(xué)習(xí)和深度學(xué)習(xí):原理、算法、實(shí)戰(zhàn)(使用Python和TensorFlow)》——以機(jī)器學(xué)習(xí)理論為基礎(chǔ)并包含其在工業(yè)界的實(shí)踐的一本書】

    【《機(jī)器學(xué)習(xí)和深度學(xué)習(xí):原理、算法、實(shí)戰(zhàn)(使用Python和TensorFlow)》——以機(jī)器學(xué)習(xí)理論為基礎(chǔ)并包含其在工業(yè)界的實(shí)踐的一本書】

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)已經(jīng)成為從業(yè)人員在人工智能時(shí)代必備的技術(shù),被廣泛應(yīng)用于圖像識(shí)別、自然語言理解、推薦系統(tǒng)、語音識(shí)別等多個(gè)領(lǐng)域,并取得了豐碩的成果。目前,很多高校的人工智能、軟件工程、計(jì)算機(jī)應(yīng)用等專業(yè)均已開設(shè)了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的課程,此外,為

    2024年02月16日
    瀏覽(26)
  • 分布式理論基礎(chǔ):BASE理論

    BASE 是指基本可用(Basically Available)、軟狀態(tài)( Soft State)、最終一致性( Eventual Consistency),核心思想是即使無法做到強(qiáng)一致性(CAP 的一致性就是強(qiáng)一致性),但應(yīng)用可以采用適合的方式達(dá)到最終一致性。 分布式系統(tǒng)在出現(xiàn)故障時(shí),允許損失部分可用性,即保證核心可用。

    2024年02月04日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包