web3 區塊鏈技術與用

#53

敲點算法題

瑞吉外賣day4

調整心態 睡眠 及精神

web3

以下是應北京大學肖臻老師《區塊鏈技術與用》公開課的完整教學大綱,綜合課程內容、技術模塊及前沿擴展,分為核心章節與專題拓展兩部分,引用自公開課資料及學員筆記。

📘 一、課程概述與教學目標

  1. 課程定位

  • 系統講解區塊鏈底層技術原理(密碼學、數據結構、共識協議)與典型應用場景(比特幣、以太坊生態)。

  • 面向計算機科學、金融科技、分布式系統領域的學習者,強調理論與工程實踐結合。

  1. 核心目標

  • 掌握區塊鏈安全機制設計思想(如去中心化信任、防篡改)。

  • 具備分析行業痛點(如供應鏈溯源、金融結算)并設計區塊鏈解決方案的能力。

?? 二、比特幣技術精講(BTC)

  1. 密碼學基礎

  • 哈希函數特性(單向性、抗沖突性、謎題友好性)及在區塊鏈中的應用(如Merkle樹)。

  • 數字簽名原理與公私鑰體系,解決身份驗證問題。

  1. 數據結構與協議

  • 區塊鏈結構:Hash指針、創世塊、最長鏈原則。

  • Merkle樹與驗證:輕節點Merkle Proof實現高效交易驗證。

  • 共識機制:工作量證明(PoW)、挖礦難度動態調整、51%攻擊防御。

  1. 關鍵問題解析

  • 雙花攻擊(Double Spending)及UTXO模型解決方案。

  • 分叉類型(硬分叉 vs. 軟分叉)及對生態的影響。

  • 比特幣腳本(Bitcoin Script)的局限性與應用場景。

💎 三、以太坊技術精講(ETH)

  1. 賬戶模型與數據結構

  • 賬戶類型:外部賬戶(EOA)與合約賬戶,Nonce防重放攻擊。

  • 狀態存儲:MPT(Merkle Patricia Trie)樹實現高效狀態更新與歷史回溯。

  • 三棵樹結構:狀態樹(全局賬戶)、交易樹(區塊內交易)、收據樹(執行結果)。

  1. 共識優化與性能提升

  • GHOST協議:解決高頻出塊導致的臨時分叉問題,引入叔塊獎勵機制。

  • 內存硬挖礦算法(Ethash):抵抗ASIC礦機,保障去中心化。

  • Gas機制:燃料費計算與智能合約執行成本控制。

  1. 智能合約與生態事件

  • 智能合約開發框架(Solidity)、部署流程及安全漏洞案例(如TheDAO事件)。

  • 權益證明(PoS)過渡方案(Casper FFG)與以太坊2.0升級方向。

🔮 四、前沿與擴展主題

  1. 跨鏈與擴容技術

  • Layer2解決方案(如Optimistic Rollup、ZK-Rollup)。

  • 跨鏈橋(Bridge)實現資產跨鏈轉移的原理與風險。

  1. 隱私與安全進階

  • 零知識證明(ZKP)、同態隱藏技術在匿名交易中的應用。

  • 智能合約安全審計工具(如Slither)及常見漏洞防范(重入攻擊、溢出)。

  1. 行業應用與趨勢

  • DeFi(去中心化金融)、NFT(非同質化代幣)的底層支持邏輯。

  • 元宇宙(Metaverse)與區塊鏈的融合場景分析(課時29)。

📚 五、課程特點與學習建議

  • 實踐導向:結合Remix、Truffle等工具演示合約開發,通過案例(如NFT市場)深化理解。

  • 動態更新:涵蓋以太坊升級(PoS)、隱私計算(課時28)等前沿內容。

  • 學習資源

  • 視頻公開課:B站搜索“肖臻區塊鏈”(含29節完整課時)。

  • 配套筆記:CSDN博客“肖臻區塊鏈筆記”提供章節技術摘要。

💡 肖臻教授觀點

“區塊鏈技術遠非僅限于加密貨幣(如比特幣),其核心價值在于構建去中心化信任基礎設施。當前仍處于技術爆發早期,深入理解原理者仍是稀缺人才。”

此大綱覆蓋技術深度與行業寬度,適合系統性學習或作為開發參考指南。

以下是北京大學肖臻教授《區塊鏈技術與應用》課程中密碼學原理部分的詳細筆記整理,結合課程核心內容與公開資料,重點涵蓋哈希函數與數字簽名兩大技術模塊。

🔑 一、哈希函數(Hash Function)

哈希函數是區塊鏈的密碼學基石,核心特性包括:

  1. 抗碰撞性(Collision Resistance)

  • 幾乎不可能找到兩個不同輸入產生相同哈希輸出(如 x ≠ yH(x) = H(y))。

  • 應用:保證數據完整性。例如,比特幣區塊頭包含前一區塊哈希值,篡改任一區塊會導致后續所有哈希值失效。

  • ?? 注:抗碰撞性依賴實踐經驗(如MD5已被破解,比特幣采用SHA-256)。

  1. 隱藏性(Hiding)

  • 哈希值無法反推原始輸入(單向性)。

  • 應用:實現“數字密封信封”。例如,預測結果拼接隨機數后哈希公布,事后驗證時比對哈希值即可證明未篡改。

  1. 謎題友好性(Puzzle Friendly)

  • 無法預知輸入如何影響輸出,適合工作量證明(PoW)。比特幣要求礦工尋找滿足 H(block header) ≤ target 的隨機數(Nonce)。

  1. 確定性 & 雪崩效應

  • 同一輸入始終輸出相同哈希值;輸入微小變化(如1比特)導致輸出完全不同(例如 "A"3A7D"a"8F1C)。

區塊鏈中的典型哈希算法

  • SHA-256:比特幣區塊鏈接與Merkle樹。

  • Keccak-256:以太坊地址生成與狀態樹優化。

📝 二、數字簽名(Digital Signature)

數字簽名用于驗證交易來源與完整性,基于非對稱加密(公鑰加密體系):

1. 核心流程
  • 簽名生成

  • 發送方對消息 M 計算哈希值 H(M)

  • 私鑰加密哈希值生成簽名 S

  • 簽名驗證

  • 接收方用發送方公鑰解密 S 得到 H(M)'

  • 比對 H(M)' 與本地計算的 H(M),一致則驗證通過。

2. 關鍵特性
  • 不可偽造性:私鑰唯一,簽名無法被偽造。

  • 不可抵賴性:公鑰可驗證簽名來源,發送方無法否認。

  • 數據完整性:哈希值匹配證明內容未被篡改。

3. 區塊鏈應用
  • 比特幣

  • 私鑰代表賬戶控制權,交易需私鑰簽名。

  • 地址生成:私鑰 → SHA256 → RIPEMD160 → Base58編碼

  • 以太坊

  • 地址 = Keccak256(公鑰) 的最后20字節。

  • 智能合約:預言機數據驗證(如Chainlink先哈希上鏈,鏈下傳遞后比對)。

🌐 三、密碼學在區塊鏈中的綜合應用

  1. Merkle樹

  • 分層哈希結構,葉子節點為交易哈希,父節點為子節點哈希組合。

  • 作用:輕節點通過Merkle路徑驗證交易(如SPV錢包),無需下載全鏈數據。

  1. 抗攻擊設計

  • 生日攻擊防御:SHA-256碰撞概率極低(約2?12?)。

  • 量子計算威脅:Grover算法可加速哈希碰撞,但當前量子算力不足(需百萬級量子比特)。

  1. 隱私增強技術

  • 零知識證明(ZKP):Zcash用哈希構建Nullifier防止雙花。

  • 同態加密:支持加密數據直接運算(如隱私Rollup)。

🔮 四、前沿挑戰與發展

  • 后量子密碼學

  • NIST推薦SPHINCS?(哈希簽名方案)抵御量子計算。

  • 算法升級實踐

  • 比特幣SegWit引入雙重SHA256防御長度擴展攻擊。

  • 跨鏈技術:Cosmos IBC協議通過哈希鎖定證明交易真實性。

💎 核心總結

技術核心特性區塊鏈應用場景
哈希函數抗碰撞、隱藏性、謎題友好區塊鏈接、PoW挖礦、Merkle樹驗證
數字簽名不可偽造、不可抵賴、完整性交易身份驗證、地址生成、智能合約

學習提示:肖臻教授強調密碼學是區塊鏈的“信任基礎設施”,理解其原理是掌握區塊鏈安全機制的前提。建議結合Remix工具實踐哈希計算與簽名驗證,加深對BTC/ETH交易流程的理解。

以下是肖臻《區塊鏈技術與應用》第二課“數據結構”的詳細講解,重點圍繞區塊鏈核心數據結構展開,結合比特幣實現進行說明:

?? 一、區塊鏈的鏈式結構(核心)

區塊鏈本質是由哈希指針連接的區塊鏈表,與普通鏈表的本質區別在于用哈希指針替代了普通指針。

  1. 哈希指針(Hash Pointer)

  • 結構:存儲前一個區塊的內存地址 + 該區塊的哈希值(如 SHA-256(區塊內容))。

  • 作用

  • 驗證數據完整性:修改任一區塊內容會導致其哈希值變化,后續所有區塊的哈希指針失效。

  • 輕節點支持:只需保存最新區塊哈希值即可驗證整條鏈的篡改(如比特幣SPV錢包)。

  • 創世區塊:首個區塊的 prev_hash 硬編碼為全0(如 000...000),無前驅區塊。

  1. 區塊結構拆分 每個區塊分為兩部分:

  • 區塊頭(Block Header):存儲元數據(約80字節),包含關鍵字段:

字段作用
版本號標識協議版本(如比特幣的 version
前一區塊哈希值鏈接前序區塊,形成鏈式結構(prev_hash
Merkle根當前區塊所有交易的Merkle樹根哈希值
時間戳區塊生成時間(Unix時間戳)
難度目標當前PoW挖礦的難度閾值(bits
Nonce隨機數,礦工調整以滿足難度目標
  • 區塊體(Block Body):存儲交易列表(如比特幣的 transactions)。

  • 交易按Merkle樹組織,根哈希值存入區塊頭。

🌳 二、Merkle樹(Merkle Tree)

用于高效驗證區塊內交易的完整性,本質是哈希二叉樹

  1. 結構原理

  • 葉節點:單筆交易的哈希值(如 H(tx1))。

  • 非葉節點:子節點哈希拼接后再哈希(如 H(H(tx1) + H(tx2)))。

  • 根節點(Merkle Root):所有交易哈希的最終摘要,存入區塊頭。

  1. 核心功能

  • 防篡改:修改任意交易會連鎖改變父節點哈希直至根節點,導致區塊無效。

  • 輕節點驗證(Merkle Proof)

  • 存在性證明:全節點向輕節點提供從目標交易到根節點的路徑哈希值,輕節點逐層計算驗證(復雜度O(log n))。

  • 不存在性證明:需全節點提供完整Merkle樹(復雜度O(n)),比特幣因交易未排序不支持高效驗證。

  1. 比特幣中的應用

  • 每個區塊的區塊體交易構建Merkle樹,根哈希寫入區塊頭。

  • 輕節點僅保存區塊頭即可驗證交易是否被包含。

🔍 三、數據結構對比與演進

  1. 普通鏈表 vs 區塊鏈

特性普通鏈表區塊鏈
指針類型內存地址指針哈希指針(地址+哈希值)
防篡改修改任一區塊導致后續全部失效
存儲需求需保存全部節點輕節點僅需保存最新區塊頭
  1. Merkle樹優化方向

  • Sorted Merkle Tree:交易按哈希值排序,支持高效不存在性證明(比特幣未采用)。

  • Merkle Patricia Trie(MPT):以太坊采用,結合前綴樹壓縮和Merkle驗證,高效存儲賬戶狀態。

?? 四、數據結構如何保障區塊鏈特性

  1. 不可篡改性

  • 鏈式哈希指針 + Merkle樹形成雙重校驗:篡改需重算所有后續區塊哈希及Merkle根,計算成本極高。

  1. 去中心化

  • 輕節點依賴Merkle Proof驗證交易,無需存儲全鏈數據(比特幣全節點約400GB,輕節點僅需數MB)。

  1. 高效驗證

  • Merkle Proof使交易驗證復雜度從O(n)降至O(log n),適合移動設備等低資源環境。

💎 總結:數據結構的核心價值

區塊鏈通過哈希指針鏈 + Merkle樹構建了“可驗證不可篡改”的分布式賬本:

  • 哈希指針 → 確保鏈式歷史不可逆

  • Merkle樹 → 實現交易高效驗證與輕節點支持

  • 區塊頭/體分離 → 平衡安全性與存儲效率

學習建議:結合代碼實踐(如Python實現Merkle樹)或比特幣區塊瀏覽器(如blockchain.com)觀察真實區塊結構,深化理解。

以下是肖臻《區塊鏈技術與應用》第三課“比特幣協議”的詳細解析,結合課程內容與比特幣核心技術原理,從協議目標、核心機制到實際運行進行全面拆解:

?? 一、比特幣協議的設計目標

比特幣協議的核心是解決去中心化電子現金系統的三大難題:

  1. 去信任化(Trustless) 無需銀行等第三方,通過密碼學與共識機制確保交易真實。

  1. 防雙花(Double-Spending Prevention) 確保同一筆比特幣不被重復使用。

  1. 抗審查(Censorship Resistance) 任何人均可參與交易,不受地域或身份限制。

🔗 二、協議核心機制解析

1. 區塊鏈結構與數據不可篡改性
  • 鏈式哈希指針 每個區塊頭包含前一區塊的哈希值(如 prev_hash),修改任一區塊會導致后續所有哈希失效。

  • Merkle樹 交易哈希值分層聚合為根哈希(存入區塊頭),輕節點通過 Merkle Proof(路徑哈希)驗證交易是否存在,復雜度僅O(log n)。

2. 工作量證明(PoW)與共識形成
  • 挖礦本質 礦工尋找隨機數Nonce,使區塊頭哈希值滿足: SHA-256(Block Header) ≤ Target(目標值由網絡難度決定)。

  • 難度動態調整 每2016個區塊(約2周)根據全網算力調整Target,維持出塊時間約10分鐘。

  • 最長鏈原則 節點默認接受最長鏈為有效鏈,攻擊者需掌握51%算力才可能篡改歷史。

3. UTXO模型:比特幣的“賬戶體系”
  • 未花費交易輸出(Unspent Transaction Output) 比特幣余額由UTXO集合構成,交易需引用歷史UTXO作為輸入,并生成新UTXO。 示例: Alice向Bob支付1 BTC:

  • 輸入:引用Alice之前收到的某筆UTXO(如2 BTC)。

  • 輸出:生成Bob的1 BTC UTXO + Alice的找零1 BTC UTXO。

  • 優勢

  • 并行交易處理,避免賬戶余額鎖。

  • 天然支持交易溯源(每筆UTXO可追溯至創世區塊)。

4. 腳本系統:可編程的交易驗證
  • 鎖定腳本(Locking Script)與解鎖腳本(Unlocking Script)

  • 鎖定腳本(輸出端):定義UTXO花費條件(如“需提供Bob的簽名”)。

  • 解鎖腳本(輸入端):提供滿足條件的證據(如“Bob的簽名”)。 典型腳本OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY O``P_CHECKSIG(驗證簽名與公鑰匹配)。

  • 擴展性 通過腳本可支持多重簽名、時間鎖等復雜邏輯,為智能合約奠基。

5. P2P網絡與交易傳播
  • Gossip協議 節點將交易/區塊隨機轉發給鄰居,指數級擴散至全網。

  • SPV節點(輕節點) 僅下載區塊頭(約80字節/塊),通過Merkle Proof驗證交易,存儲需求僅全節點的0.1%。

?? 三、協議面臨的挑戰與解決方案

問題原因改進方案
交易吞吐量低區塊大小限制(1MB)SegWit(隔離見證)擴容
能源消耗高PoW算力競爭轉向PoS(以太坊2.0)或Layer2
交易延展性簽名可修改不影響交易有效性SegWit將簽名移出交易ID計算

🔮 四、協議演進:分叉與升級

  1. 軟分叉(Soft Fork)

  • 特點:向后兼容,未升級節點仍可驗證交易(如SegWit)。

  • 案例:SegWit將簽名數據移至新區塊結構,釋放區塊容量。

  1. 硬分叉(Hard Fork)

  • 特點:規則不兼容,導致鏈分裂(如比特幣現金BCH)。

  • 觸發條件:社區對協議升級方向分歧(如區塊大小從1MB增至8MB)。

💎 總結:比特幣協議的核心價值

  • 安全基石:PoW+密碼學保障去中心化信任。

  • 經濟模型:區塊獎勵(新幣發行)+交易費激勵礦工維護網絡。

  • 可擴展生態:腳本系統為DeFi、NFT等應用提供底層支持。

學習建議:

  1. 使用比特幣區塊瀏覽器查看真實交易結構(如輸入/輸出腳本)。

  1. 閱讀https://bitcoin.org/bitcoin.pdf第4節“工作量證明”,理解PoW設計動機。

  1. 代碼實踐:用Python模擬UTXO模型交易驗證流程。

分布式共識(Distributed Consensus)是分布式系統領域的核心問題,指在由多個獨立節點組成的系統中,所有節點如何就某個值(或決策)達成一致,即使部分節點可能發生故障或網絡存在延遲/分區。它是構建可靠、一致分布式系統(如區塊鏈、數據庫集群、分布式存儲)的基礎。

一、為什么需要分布式共識?

分布式系統的核心挑戰在于節點間的不確定性

  1. 網絡不可靠:消息可能延遲、丟失或亂序(如跨數據中心的通信)。

  1. 節點故障:部分節點可能宕機、響應慢或惡意行為(如拜占庭節點)。

  1. 時鐘不同步:節點本地時鐘無法保證絕對一致,無法依賴時間戳排序。

典型場景

  • 數據庫集群需要確保多個副本的數據一致(如MySQL主從同步)。

  • 區塊鏈網絡需要所有節點對交易順序和賬本狀態達成一致(如比特幣)。

  • 分布式存儲系統需保證多個存儲節點的數據副本一致(如Ceph)。

二、分布式共識的核心問題

共識算法需解決以下關鍵問題:

  1. 一致性(Agreement):所有正常節點最終決定相同的值。

  1. 有效性(Validity):若所有節點初始提議同一個值,則最終決定必須是該值。

  1. 容錯性(Fault Tolerance):在部分節點故障(或惡意行為)時仍能達成共識。

  1. 終止性(Termination):算法必須在有限時間內結束,避免無限等待。

三、經典共識算法與分類

根據容錯能力和假設條件,共識算法分為兩類:

1. Crash Fault Tolerance (CFT):容忍節點宕機

假設節點可能宕機,但不會惡意行為(誠實節點)。

代表算法:Paxos、Raft

  • Paxos(1989年提出):

  • 核心思想:通過“提案-接受”機制,在多個節點間對某個值達成多數派同意。

  • 特點:理論嚴謹但實現復雜,常被視為分布式共識的“基礎模板”。

  • Raft(2013年提出):

  • 核心思想:將共識過程拆分為“Leader選舉”“日志復制”“安全性檢查”三個子問題,簡化理解與實現。

  • 特點:更易工程化(如etcd、Consul使用Raft),但僅容忍少數節點故障(N/2-1)。

示例

  • Kubernetes的etcd使用Raft保證集群配置一致性;

  • TiDB的TiKV組件依賴Raft實現多副本數據同步。

2. Byzantine Fault Tolerance (BFT):容忍拜占庭故障

假設部分節點可能任意作惡(如發送矛盾信息、偽造數據)。

代表算法:PBFT、PoW、PoS

  • PBFT(Practical Byzantine Fault Tolerance)(1999年提出):

  • 核心思想:通過多輪消息交換(預準備、準備、提交階段)驗證節點一致性,最終多數派達成共識。

  • 特點:理論可容忍最多f個惡意節點(總節點數N≥3f+1),但通信復雜度高(O(N2))。

  • 應用:早期區塊鏈(如Hyperledger Fabric)、航空航天系統。

  • PoW(Proof of Work)(比特幣提出):

  • 核心思想:節點通過計算難題競爭記賬權,最長鏈規則解決沖突,依賴算力保證安全性。

  • 特點:容忍≤50%算力作惡,但能耗高、效率低。

  • PoS(Proof of Stake)(以太坊2.0采用):

  • 核心思想:節點按持有代幣量和時長投票,權益越高越可能被選為記賬節點。

  • 特點:降低能耗,但存在“富者更富”問題。

關鍵區別

  • CFT算法(如Raft)假設節點僅會宕機,通信復雜度低(O(N)),適合企業級應用;

  • BFT算法(如PBFT)需應對惡意節點,通信復雜度高,但更適合開放網絡(如區塊鏈)。

四、共識算法的核心挑戰

  1. 性能與擴展性

  • 傳統共識算法(如PBFT)的通信復雜度隨節點數平方增長,難以支撐大規模節點(如物聯網場景)。

  • 解決方案:分片(Sharding)、分層共識(如以太坊2.0的信標鏈+分片鏈)。

  1. 最終一致性 vs 強一致性

  • 強一致性(如Raft)要求所有節點實時同步,犧牲部分可用性(CAP定理);

  • 最終一致性(如Gossip協議)允許短暫不一致,適合高可用場景(如Cassandra)。

  1. 安全性與活性權衡

  • BFT算法需在“防止作惡”(安全性)和“保證進展”(活性)間平衡,例如PBFT通過超時重試機制避免死鎖。

五、共識在區塊鏈中的特殊性

區塊鏈網絡是典型的“開放、匿名、拜占庭環境”,其共識需額外解決:

  1. 激勵機制:如何鼓勵誠實節點參與(如比特幣的區塊獎勵)。

  1. 動態成員管理:允許節點自由加入/退出(如以太坊的PoS驗證者選舉)。

  1. 雙花攻擊防護:通過共識規則(如最長鏈原則)確保交易唯一性。

趨勢

  • 從PoW轉向PoS(降低能耗);

  • 結合分片和Layer2擴容(如以太坊2.0+Rollups);

  • 跨鏈共識(如Polkadot的GRANDPA協議)。

六、總結

  • CFT場景:優先選Raft/Paxos(如數據庫、配置管理)。

  • BFT場景:需權衡性能與安全性(如聯盟鏈選PBFT,公鏈選PoS/PoW)。

  • 未來方向:高效BFT算法(如HotStuff)、隨機化共識(如Algorand)、融合AI的動態共識。

分布式共識的本質是通過規則設計,在充滿不確定性的分布式環境中“建立信任”,是區塊鏈、元宇宙等技術的底層基石。

比特幣的分布式共識基于工作量證明(PoW)機制,通過算力競爭確保網絡節點對交易和賬本狀態達成一致,核心邏輯如下:

一、核心機制:工作量證明(PoW)

  1. 挖礦過程

  • 節點(礦工)收集未確認的交易,打包成候選區塊。

  • 通過不斷嘗試隨機數(nonce),計算區塊頭哈希值,使其滿足前N位為0的難度目標(如比特幣當前要求前19位為0)。

  • 這個過程需消耗大量算力,類似“解謎”,最先完成的節點獲得記賬權。

  1. 最長鏈規則

  • 若多個節點同時找到合法區塊,網絡暫存多條鏈,后續節點優先在最長鏈(即包含最多工作量的鏈)上繼續挖礦。

  • 隨著時間推移,短鏈會被淘汰,最終所有節點收斂到同一條鏈。

二、關鍵特點

  1. 去中心化與安全性

  • 無需中心機構,任何節點均可參與挖礦,只要控制超過50%的算力即可篡改區塊鏈(實際需超51%攻擊,成本極高)。

  • 歷史交易通過哈希鏈錨定,修改任意區塊需重新計算后續所有區塊,幾乎不可行。

  1. 激勵機制

  • 成功挖礦的節點獲得區塊獎勵(比特幣)和交易手續費,激勵節點持續參與。

  • 獎勵每21萬個區塊減半(約4年),從最初的50 BTC降至當前6.25 BTC。

三、優勢與挑戰

優勢挑戰
抗女巫攻擊(需真實算力)能耗高(全球礦場年耗電量≈荷蘭全國)
機制簡單,易于實現確認速度慢(平均10分鐘/區塊)
抗審查性強硬件壟斷(ASIC礦機集中算力)

四、與其他共識機制的對比

共識類型代表項目核心邏輯典型場景
PoW比特幣算力競爭,最長鏈優先公鏈(強去中心化需求)
PoS以太坊2.0權益質押,隨機選舉驗證者公鏈/聯盟鏈(追求效率)
PBFTHyperledger多輪投票,容忍拜占庭節點聯盟鏈(低延遲場景)

五、總結

比特幣的分布式共識通過PoW+最長鏈規則,在無信任的開放網絡中實現了去中心化、不可篡改、抗攻擊的目標,奠定了區塊鏈技術的基石。但其高能耗和低效率的缺點,也推動了PoS等新型共識機制的探索。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89618.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89618.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89618.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis1:高并發與微服務中的鍵值存儲利器

redis中存儲的數據格式為鍵值對&#xff08;Key,Value&#xff09;在高并發的項目和微服務的項目會頻繁的用到redisNoSQL型數據庫1.初始Redis1.1認識NoSQLSQL&#xff1a;structure query language關系型數據庫結構化&#xff1a;有固定格式要求&#xff08;表關系&#xff0c;…

/字符串/

字符串 個人模板 5. 最長回文子串 93. 復原 IP 地址 43. 字符串相乘 227. 基本計算器 II

我的開發日志:隨機數小程序

文章目錄前言UI設計代碼前言 為什么我要設計這個程序呢&#xff1f;因為我要用&#xff0c;懶得在網上下載了&#xff0c;于是干脆寫了一個。 UI設計 UI是我凹出來的&#xff0c;你們要使用&#xff0c;直接新建一個UI.ui文件&#xff0c;然后把下面的東西輸進去就可以了。 …

《Oracle SQL:使用 RTRIM 和 TO_CHAR 函數格式化數字并移除多余小數點》

select RTRIM(to_char(1222.11123344,fm9999990.9999),.) from dual 這條 SQL 語句主要用于對數字進行格式化處理&#xff0c;并移除格式化結果右側多余的小數點。下面將詳細拆解該語句的執行過程和各部分作用。語句詳細拆解1. to_char(1222.11123344,fm9999990.9999)函數功能&…

「Java案例」方法重裝求不同類型數的立方

利用方法重裝實現不同類型數值的立方計算 立方計算方法的重載實現 編寫一個程序,要求編寫重載方法xxx cube(xxx value)實現對不同類型數值計算立方。 # 源文件保存為“CubeCalculator.java” public class CubeCalculator {public static void main(String[] args) {// 測試…

API 接口開發與接入實踐:自動化采集淘寶商品數據

在電商數據分析、價格監控等場景中&#xff0c;自動化采集淘寶商品數據具有重要價值。本文將詳細介紹如何通過 API 接口開發實現淘寶商品數據的自動化采集&#xff0c;包含完整的技術方案和代碼實現。 一、淘寶 API 接入基礎 1. 接入流程概述 注冊淘寶賬號獲取 ApiKey 和 Ap…

python-pptx 的layout 布局

一、布局基礎概念 在 PowerPoint 中&#xff0c;布局&#xff08;Layout&#xff09; 決定了幻燈片的占位符&#xff08;如標題、內容、圖片等&#xff09;的排列方式。python-pptx 提供了對布局的編程控制。二、默認布局類型及索引 通過 prs.slide_layouts[index] 訪問&#x…

服務器mysql數據的簡單備份腳本

服務器mysql數據的簡單備份腳本 一個小型項目mysql數據庫數據的定時備份 通過crontab定時執行腳本: 0 1 * * * /home/yuyu/mysqlbak.sh備份文件加入時間戳,防止覆蓋支持刪除超過x天的備份數據文件&#xff0c;防止備份數據文件太多 #!/bin/bash# 配置變量 DB_HOST"127.0.…

數據分析:從數據到決策的核心邏輯與實踐指南

在數據驅動決策的時代&#xff0c;“數據分析” 早已不是專業分析師的專屬技能&#xff0c;而是每個職場人都需要掌握的基礎能力。但很多人在面對數據時&#xff0c;常會陷入 “羅列數據卻無結論”“指標好看卻解決不了問題” 的困境。本文將基于數據分析的核心定義、關鍵維度和…

元宇宙與Web3.0:技術特征、關系及挑戰

一、元宇宙的技術特征&#xff08;2025年&#xff09;1. 空間構建技術3D建模與渲染&#xff1a;實時渲染技術&#xff08;如Unity HDRP&#xff09;實現路徑追蹤光追&#xff0c;AI生成模型&#xff08;NVIDIA Get3D&#xff09;3秒生成3D場景。數字孿生技術&#xff1a;城市級…

關于一個引力問題的回答,兼談AI助學作用

關于一個引力問題的回答&#xff0c;兼談AI助學作用今日&#xff0c;一個小朋友問我&#xff0c;他從一本物理科普讀物上看到這樣依據話&#xff1a;地球對人造地球衛星的引力大于太陽對人造地球衛星的引力&#xff0c;但太陽對月亮的引力大于地球對月亮的引力。因書上沒有解釋…

Java使用FastExcel實現模板寫入導出(多級表頭)

依賴配置 (Maven pom.xml)<dependencies><!-- FastExcel 核心庫 --><dependency><groupId>cn.idev.excel</groupId><artifactId>fastexcel</artifactId><version>1.0.0</version></dependency><!-- Apache POI…

postman接口測試,1個參數有好幾個值的時候如何測試比較簡單快速?

3天精通Postman接口測試手動到自動&#xff0c;全套項目實戰教程&#xff01;&#xff01;當你在 Postman 中測試接口時&#xff0c;如果一個參數有多個需要測試的值&#xff0c;有幾種高效的方法可以實現&#xff1a; 1. 使用 CSV 或 JSON 數據文件進行數據驅動測試 這是最推…

imx6ull UI開發

imx6ull UI開發簡介在imx6ull上開發UI 應用硬件層面內核驅動顯示設備文件描述符設備樹軟件LVGL用戶空間內核QT在imx6ull上開發UI 應用 在 Linux 系統中&#xff0c;應用程序需要通過操作 RGB LCD 的顯存來實現在屏幕上顯示字符、圖像等信息。由于 Linux 采用嚴格的內存管理機制…

虛擬化測試工具Parasoft Virtualize如何為汽車企業提供仿真測試?

在汽車電子研發中&#xff0c;傳統路測曾是驗證ECU&#xff08;電子控制單元&#xff09;、車載通信、OTA升級等功能的可靠手段。然而&#xff0c;隨著智能駕駛和軟件定義汽車&#xff08;SDV&#xff09;的發展&#xff0c;這種依賴物理車輛的測試方式面臨顯著挑戰&#xff1a…

QT之openGL使用(一)

OpenGL簡介 官網&#xff1a;OpenGL - The Industry Standard for High Performance Graphics 中文官網&#xff1a;主頁 - LearnOpenGL CN OpenGL&#xff08;Open Graphics Library&#xff09;是一種跨語言、跨平臺的圖形編程接口&#xff0c;主要用于渲染二維和三維矢量…

基于生成對抗網絡增強主動學習的超高溫陶瓷硬度優化

復現論文:基于生成對抗網絡增強主動學習的超高溫陶瓷硬度優化 我將使用Python復現這篇關于使用生成對抗網絡(GAN)增強主動學習來優化超高溫陶瓷(UHTC)硬度的研究論文。以下是完整的實現代碼和解釋。 1. 環境準備和數據加載 首先,我們需要準備必要的Python庫并加載數據。 …

hadoop(服務器偽分布式搭建)

1. 報錯 Windows 上寫的腳本 拷貝到 Linux&#xff08;比如 CentOS&#xff09;系統時會出現。 bash: ./set_java_home.sh: /bin/bash^M: bad interpreter: No such file or directory 報錯原因 ^M 是 Windows 的換行符&#xff08;\r\n&#xff09; Linux 使用的是 Unix 格式的…

超詳細 anji-captcha滑塊驗證springboot+uniapp微信小程序前后端組合

目錄 1&#xff1a;pom文件引入jar包 2&#xff1a;配置文件 3&#xff1a;踩坑-1 4&#xff1a;踩坑-2 5&#xff1a;后端二次驗證 6&#xff1a;自定義背景圖 給用戶做的一個小程序&#xff0c;被某局安全驗證后&#xff0c;說登錄太簡單&#xff0c;沒有驗證碼等行為認…

使用AVPlayer播放FairPlay DRM視頻的最佳實踐

01DRM 介紹DRM&#xff0c;即數字版權管理&#xff08;Digital Rights Management&#xff09;&#xff0c;是指使用加密技術保護視頻內容、通過專業技術安全地存儲和傳輸密鑰&#xff08;加密密鑰和解密密鑰&#xff09;、并允許內容生產商設置商業規則&#xff0c;限制內容觀…