區塊鏈基本知識梳理

2021-08-30 15:31:17 字數 1635 閱讀 9543

公鑰、私鑰、與位址

公鏈、私鏈、聯盟鏈

主要區別:公有鏈向所有人開放,聯盟鏈向授權的組織或機構開放,私有鏈向滿足特定條件的個人開放(比如只對本公司的人開放)。

開放程度

出塊節點

效率共識演算法

典型代表

公鏈完全開放

任何節點

低pow、pos、dpos等

位元幣、以太坊、eos

私鏈不開放、針對個人開放

少量節點出塊

高raft、paxos

螞蟻金服

聯盟鏈針對特定機構、組織開放

授權節點出塊

高dbft、pbft

超級賬本(hyperledger)、chinaledger

錢包、熱錢包、冷錢包

硬分叉、軟分叉

utxo
雙花問題的解決
拜占庭將軍問題及其解決

問題場景:abcd四個將軍在不同的地方圍攻敵軍,任何乙個將軍都無法單獨戰勝敵人——他們需要協商乙個一致的時間來一起發動進攻才能取勝。四個將軍中最多有乙個可能是叛徒,並且正直的將軍不知道叛徒是誰。叛徒會想辦法破壞將軍們的進攻計畫。那麼,正直的將軍們如何才能達成一致、戰勝敵人呢?

該問題的計算機語言描述是這樣的:如何在乙個可能存在失效節點、作惡節點的對等網路中達成共識呢?

我們先模仿一下將軍們可能的做法:

我們可以很直觀的看出上述做法的缺點:bcd收到的建議未經過驗證。

於是最簡單的pbft演算法出現了——對每個收到建議的將軍,他們每人都要詢問其他人收到的內容,並以此做出判斷。

於是上面的情形2變成這個樣子:

情形2的問題隨之而解,情形1又新的變化,請看:

pbft演算法本質上是以通訊次數達成共識——如果節點較多,效率低下。

共識演算法,本質上都是在解決拜占庭將軍問題。pow、pos、dpos等都是在解決「如何在乙個不靠譜的對等網路內達成乙個大家都認可的一致意見」這個問題。

隔離見證

叔塊獎勵

叔塊獎勵是以太坊中的機制。位元幣中的叔塊並沒有任何獎勵,以太坊為何要給挖出叔塊的礦工獎勵呢?

源於gohst協議。

重放攻擊

該現象出現在硬分叉當中。假設乙個幣種n,有1000個幣,在2018.11.11分叉了,新鏈幣種叫na,舊鏈幣種仍然是n。分叉後,你的na錢包中餘額會顯示是1000,n錢包顯示的餘額也是1000。

當你在na錢包發出一筆交易,想要發給b,10 na幣。你簽署完該交易後廣播到na網路,此時b動了歪腦筋,把你簽署的交易原封不動的**到了n網路,如果沒有重放吧保護,這次交易可能同時被兩個鏈承認——b同時收到了10 na幣 + 10 n幣。

共識演算法

關於共識演算法的詳細討論,詳見另一篇拙作。

c 基本知識梳理(1)

1 c 和標準c 包含完整系統類庫是標準c 在97年完善,90年代初,帶有語言標準,不含有標準類庫,而且各種功能在不同種逐漸推出。vc 和g 以及其他的c 編譯器必須符合語言標準。無論vc 公升級到什麼版本,語言標準不一定公升級。2 標準類庫主要包含 string list vector map只要...

CSS 基本知識點梳理

通過box sizing設定 box sizing context box 標準盒子模型 寬度 內容的寬度 content border padding margin box sizing border box 怪異盒模型 寬度 內容寬度 content border padding margin ...

python爬蟲開發基本知識點梳理

python爬蟲開發基本知識點 理論上,一切可以瀏覽看到的資料都可以獲取到.本質 傳送正確的請求,獲取想要響應。概述爬蟲開發過程 一,目標站點分析,準備階段的注意事項 檢查 根目錄下 robots.txt中君子協議的說明 如果沒有robots檔案,則預設 資料允許採集 哪些目錄資料可以採集,哪些不允...