比特幣後端區塊鏈儲存
比特幣使用區塊鏈
,所以區塊鍊是點對點的,
每個點都儲存數據
,所以我想知道所有比特幣的數據儲存在哪裡?
誰是比特幣的同行?
以便對等點獲取與世界各地的比特幣相關的數據?
隨著比特幣的增長,它是不是檢索資訊變得越來越慢?
每個非剪枝完整節點(對等節點)儲存區塊鏈的完整副本 - 剪枝節點儲存目前狀態的完整副本,但可能沒有所有可用的歷史塊。
當一個節點驗證一個交易或一個區塊時,它只是根據其區塊鏈的本地視圖來驗證它——這意味著查找數據非常快,因為所有數據都在本地可用。
隨著區塊鏈的發展,由於 bitcoind 使用的鍵值儲存的性質,大多數數據的訪問時間仍然基本相同 - 鍵值儲存的查找時間大致恆定,儘管記憶體在記憶體中的數據自然可以訪問速度更快。
簡單來說,區塊鏈本質上是一個交易歷史,內置措施來確認這個交易歷史不能被改變。話雖如此,交易可以花費或未花費。已用交易是已在另一個交易中用作輸入的交易。未使用的交易是尚未使用的交易。正是這些未使用的交易構成了您的比特幣餘額。從中理解的關鍵是,您實際上並不擁有一個包含比特幣的錢包,您擁有允許您通過簽名過程花費這些未花費交易的密鑰。
由於區塊鍊是所有交易的歷史,它的規模確實在增長,並且隨著新區塊的探勘需要更多的磁碟空間。截至今天,比特幣區塊鏈需要大約 236 GB 的可用磁碟空間來儲存區塊鏈數據。有一些方法可以操作不需要整個歷史的節點,但這是另一個問題的主題。擁有所有交易的完整歷史對於追踪給定交易的歷史非常有用。如果一筆交易將用作新交易的輸入(即您想發送 BTC,因此您將花費一筆或多筆未花費的交易),那麼輸入的 prevhash 屬性,或交易的雜湊我們將要花費的硬幣已收到給定地址,可以驗證,並且還可以查詢區塊鏈數據以確保該輸入尚未被花費。然而,歸根結底,唯一能說明你錢包裡有 BTC 的是未使用的交易(縮寫為 UTXO)。
我們可以在這裡討論很多其他話題,比如下一個要開采的區塊的雜湊是基於前一個區塊的雜湊,可以一直追溯到創世區塊並確保交易歷史無法改變。我們還可以了解塊數據如何通過網路傳播,以及其他重要問題,如 51% 攻擊,但我想從這個回答你的問題中得到的關鍵點是,你的錢包實際上只是一個鑰匙串,而且密鑰允許您在希望將它們用於新交易時簽署已收到的交易。
總而言之,雖然說“哎呀,我有 0.5 比特幣,只要把它儲存在記憶體中,讓我用我的錢”這句話似乎很簡單,但實際上背後還有很多事情要做,這很重要,因為它使比特幣成為去信任的分佈式和去中心化分類帳。