Transactions

在發送/泛洪交易之後,我們如何知道特定交易在所有節點上?

  • February 27, 2021

在 Imran Bashir 的《掌握區塊鏈》一書中,它說交易的生命週期如下:

  1. 使用者/發送者使用錢包軟體或其他介面發送交易。
  2. 錢包軟體使用發件人的私鑰簽署交易。
  3. 交易使用泛洪算法廣播到比特幣網路。
  4. 挖礦節點將此交易包含在要開采的下一個區塊中。
  5. 一旦解決了工作量證明問題的礦工將新挖出的區塊廣播到網路,挖礦就開始了。本章稍後將詳細解釋工作量證明。
  6. 節點驗證區塊並進一步傳播區塊,並開始生成確認。
  7. 最後,確認開始出現在接收方的錢包中,大約六次確認後,交易被認為已完成並確認。但是,六隻是推薦的數字;即使在第一次確認之後,交易也可以被視為最終交易。等待六次確認背後的關鍵思想是,在六次確認後幾乎消除了雙花的可能性。

我的問題:

現在所有節點都有競爭礦工通過接收送出交易的所有節點/使用者的所有交易並打包它來創建一個塊,這不是來自一個地方。如果我們稱獲勝者,即首先解決 PoW 問題的礦工,那麼在宣布他創建了一個有效區塊之前,我們如何知道他收到了他應該收到的所有交易?我的礦工軟體可以忽略一些交易並比其他人更早地開始挖礦,從而擊敗其他所有人(假設我們都有相同的計算能力)。

我的問題也可以用不同的方式來解讀:如何確保所有礦工都解決相同的 PoW 問題,而比特幣網路可能涉及大的延遲時間(因為我們正在從世界各地探勘)?

您無法知道它在所有節點上,因為它可能不是。Txns 是在盡最大努力的基礎上傳播的,而且通常會奏效。

礦工被激勵盡可能多地進行交易,按照支付的費用從高到低的順序排列。因此,它們連接到大量節點,以確保它們擁有可以合理獲取的最完整資訊,從而實現這一目標。

對於一個新手來說,這意味著如果一個不精通比特幣的人在已棄用的區塊上接受了比特幣並給了那個人一些有價值的東西,那麼那個人就不走運了,你只是失去了那個有價值的東西。

以前的答案沒有回答,但是,像我這樣的傻瓜會看“那麼這到底是什麼意思”。這意味著,當您在比特幣中獲得報酬時,直到該交易出現在該鏈的至少 6 個區塊中,您才被“支付”,因為該鏈可能在到達第 6 個區塊之前的任何時間被投票無效(它仍然可以被稱為無效之後,但極不可能)。

這意味著,使用比特幣的瞬時交易是“風險”的。如果我在我的餐廳接受比特幣,我獲得付款的連鎖店可能會被投票無效,因此我從未收到實際付款。我認為目前“確認”一筆交易在“6 個區塊深度”的有效鏈上的時間是 10 分鐘。

一個人可以賭博和花兩次錢,這筆錢實際上並沒有花兩次,但是新手如果不了解事情是如何運作的,就可能會被利用。簡而言之,在鏈至少有 6 個區塊深度之前不要放棄任何有價值的東西,那麼你的“付款”很可能會得到確認。

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