我們學習計算機時曾經有這么一個定義:程序=數據結構+算法,對於一個區塊鏈,我認為從技術方面看與程序的定義類似,核心一個是共識算法,一個是核心數據結構,這兩點直接決定了這條區塊鏈工作運行原理。比特幣的共識算法,在這一篇《哈希函數與比特幣共識算法PoW》中已經講述了其原理,這一篇主要講述比特幣核心數據結構 ...
哈希指針 Hash Pointers 對於一個結構體而言,指向它的指針存儲的是它在內存中的首地址 而指向它的哈希指針,不僅保存這它的首地址,還保存着該結構體內容的哈希值。通過哈希指針,不僅可以找到該結構體,還能查驗該結構內容是否被篡改過。 區塊鏈 比特幣中存儲數據用的是區塊鏈。所謂區塊鏈,可以理解為鏈表。不過與鏈表不同的是,區塊鏈使用哈希指針代替了普通指針。下圖為區塊鏈簡單結構: 哈希指針包含在該 ...
2020-08-28 10:20 0 539 推薦指數:
我們學習計算機時曾經有這么一個定義:程序=數據結構+算法,對於一個區塊鏈,我認為從技術方面看與程序的定義類似,核心一個是共識算法,一個是核心數據結構,這兩點直接決定了這條區塊鏈工作運行原理。比特幣的共識算法,在這一篇《哈希函數與比特幣共識算法PoW》中已經講述了其原理,這一篇主要講述比特幣核心數據結構 ...
在比特幣錢包里執行命令: getblock 000000000000000051d2e759c63a26e247f185ecb7926ed7a6624bc31c2a717b true 即可得到哈希值 ...
比特幣的區塊數據里包含了比特幣鏈上的核心信息,包括比特幣如何交易,區塊擴容等問題。 比特幣從誕生到現在,每10分鍾誕生一個區塊,訪問 https://blockchain.info/ 查看最近的區塊信息,可以看到當前的區塊大小已經接近或超過中本聰設置的1MB容量。 一、區塊鏈數據結構 ...
數據目錄是存放比特幣數據文件的位置,包含區塊數據和錢包數據等相關文件。 默認位置 默認位置與操作系統相關,下面列出 3 種常用操作系統下比特幣數據目錄的默認存放位置: macOSX ~/Library/Application Support/Bitcoin Unix/Linux ...
由於哈希值的偽隨機特性,要尋找4個前導0的哈希值,預期大概要進行216 次嘗試,這個數學期望的計算次數,就是所要求的“工作量”。要求的前導0的個數越多,代表難度越大。 難度值是比特幣系統中的結點在生成區塊時的重要參考指標,它決定了節點大約需要經過多少次哈希運算才能產生一個合法的區塊 ...
比特幣又稱加密貨幣,但其實加密貨幣並沒有加密:區塊鏈中的所有信息都是公開的,包括交易的內容、交易的金額以及交易賬戶的地址。之所以稱之為加密貨幣,主要是因為交易的雙方在不與真實世界發生關聯的情況下,雙方的身份是無法獲知的。 比特幣中主要用到了密碼學中的“哈希”和“簽名”。 密碼學中用的哈希被稱作 ...
我們知道對於比特幣系統,所有的比特幣用戶都維護着一條相同的區塊鏈。讓這么多人不斷地更新區塊鏈的數據,如何才能維持共識與統一呢? 一、 區塊的創建 區塊中包含區塊頭和區塊體,我們的礦工在開始挖礦時,就將需要寫入區塊體的交易打包在區塊內,隨后用不同的nonce去嘗試,以獲取滿足記賬權的hash值 ...
一般來說,匿名通常跟隱私保護聯系在一起。在比特幣是基於交易的區塊鏈,系統中沒有用戶的概念,不要求用戶使用真名,可以用公鑰產生地址,所以比特幣具有一定的匿名性。 但比特幣中的交易記錄在區塊鏈上,區塊鏈是公開的。雖然使用者可以生成任意多的地址來隱藏自己,但由於所有的交易信息的都是公開的,仍可以通過分 ...