Transactions

區塊鏈如何防止在“短叉”期間花錢?

  • December 8, 2019

我目前正在閱讀“掌握比特幣”(我還沒有讀完,但我沒有看到我的答案,這讓我很困擾,所以我更喜歡在這裡問)並且有些東西我不明白。因此,據我了解,“有效”區塊鍊是其中包含最多區塊的區塊。但是,如果:

  • 一個“黑客”幸運地使用了雜湊函式,並設法在區塊鏈中添加了一個“錯誤”的區塊,假設有人給了他 1BTC(即使沒有辦法進行虛假交易來接收 1BTC,他至少會擁有來自探勘區塊的比特幣)
  • 那麼“黑客”的區塊鏈將比其他區塊鏈多 1 個區塊,因此至少在幾分鐘內它應該是“有效”區塊鏈

但是如果他在那幾分鐘內用這個 1BTC 買東西會發生什麼?例如,如果他買了一杯咖啡,或者一些實物?是什麼阻止他這樣做?

是否有規則規定,只有當交易“足夠老”(這意味著在包含交易的區塊之後添加了 3 或 4 個區塊)時,您才能從交易輸出中花費比特幣?

如果是這樣,它不會使比特幣交易的處理速度變慢嗎?我已經知道交易可以由全節點客戶端驗證,並且您不需要等待 10 分鐘讓區塊進入區塊鏈,但如果您需要 30 分鐘才能花錢,不會它會使交易變慢嗎?

先感謝您

PS:順便說一句,如果“短叉”一詞不是正確的表達方式,我很抱歉,但我不知道如何稱呼它

那麼“黑客”的區塊鏈將比其他區塊鏈多 1 個區塊,因此至少在幾分鐘內它應該是“有效”區塊鏈

這是不正確的。包含無效交易的塊是無效的,期間。

網路的規則是最長(*)的有效鍊是被視為正確的鏈。包含任何無效塊的鏈會被網路上的完整節點忽略。

現在,網路上的輕量級節點不執行完全驗證,因此無法判斷最長的鍊是否實際上有效,因此它們將接受任何鏈。但是,通常輕量級客戶端僅由不參與太多經濟活動的個人使用。一家為 BTC 出售現實世界物品的商店非常鼓勵使用永遠不會被此愚弄的完整節點。

此外,由於創建一個區塊的成本很高,很少有礦工願意生產一個包含無效交易的區塊,因為這樣的區塊最終不會被網路認為是可接受的,因此不會為礦工帶來任何收入。這種經濟相關的全節點通過激勵措施對礦工產生的長期影響實際上將安全性傳遞給了輕量級節點。

如果是這樣,它不會使比特幣交易的處理速度變慢嗎?我已經知道交易可以由全節點客戶端驗證,並且您不需要等待 10 分鐘讓區塊進入區塊鏈,但如果您需要 30 分鐘才能花錢,不會它會使交易變慢嗎?

除非您信任發件人,否則您總是需要等待多次確認,因為總是有可能發生鏈的(短)非惡意重組,這會確認與付款人發生衝突的交易。

這使得比特幣在對抗環境中更適合作為結算層而不是支付系統。在那方面,它很出色。與信用卡支付相比,接收方在數小時內就知道交易是最終的,而信用卡支付可能需要數月。

這是公共共識系統的固有限制:讓整個世界就賬本的確切狀態達成一致是固有的困難和緩慢。對於支付解決方案,人們在頂層建構層次,利用有保證的結算,但允許以直接方式支付,而只需了解相關方。閃電網路就是一個很好的例子。

(*) 從技術上講,重要的不是最長的鏈,而是工作量最大的鏈。這些定義幾乎總是相同的,但在它們不同的少數極端情況下,差異很重要。

引用自:https://bitcoin.stackexchange.com/questions/92183