Signature

為什麼沒有重定向、偽造或虛假交易之類的東西?

  • March 26, 2021

過去,我們有很多關於“虛假”或“偽造”交易的問題。據稱,即使不持有任何比特幣,也可以創建此類交易,但最終會進入記憶體池,甚至一旦被探勘到一個區塊中就會被網路接受。其他時候,接收者創建了發送者交易的衝突版本,或者多數攻擊礦工將簡單地將所有交易輸出重定向到他們自己。

對於這個主題,我的意思是為一個由以下問題變體描述的主題創建一個規範問題:

  • 為什麼我不能只是彌補比特幣?
  • 為什麼欺詐交易不會在網路上得到中繼?
  • 為什麼只有所有者才能花掉他們的資金?
  • 為什麼第三方不能改變交易的接受者?
  • 是什麼阻止了礦工在創建區塊時拿走你的交易資金?

換句話說,讓我們全面解釋一下:

是什麼使交易有效,交易如何防止篡改,節點如何判斷?

以下是 一些 將來 可能會 在 此處 重定向主題範例1、2、3、4、5、6、7、8、9、10、11、12、12、13、14、15、16、17 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ,…

比特幣協議遵循未使用交易輸出系統來跟踪系統中所有比特幣的存在和狀態。這些被稱為 UTXO。

所有傳輸比特幣的交易都是通過消耗一個或多個 UTXO 並創建一個或多個新的 UTXO 來實現的。唯一的例外是 Coinbase 交易,它被限制為區塊中的第一筆交易,並且只允許創建總計block reward + block fees或更少的 UTXO。

由於交易的這種基本結構,不可能創建花費不存在的比特幣的比特幣交易。由於正在消費的 UTXO 不存在,因此交易在創建時即被視為無效。

儘管這是不可能的,但對於不熟悉比特幣如何運作的細節的人來說,為什麼不可能立即顯而易見 - 因此,許多人,尤其是該領域的新手,都在尋找這樣一種方法來快速獲得一些比特幣。低成本。幾個詐騙團伙意識到了這一點,並發布了顯示編輯過的區塊瀏覽器/錢包的影片,這些影片似乎允許他們發起虛假交易。

然後這些團體提供讓您以少量費用訪問該軟體,或者只是讓您免費下載它 - 但是,它不僅不像宣傳的那樣工作,大多數這些程序都是特洛伊木馬,並且包含竊取比特幣的程式碼您系統上的錢包,或授予詐騙者對您機器的持久遠端訪問權限。

直接回答每一點:

為什麼我不能只是彌補比特幣?

由於系統中的所有比特幣都是 coinbase 交易的結果,或者是移動先前存在的比特幣的交易的輸出,因此不可能在不被發現的情況下將新的比特幣引入系統。任何時間點的任何 UTXO 都必須始終追溯到一個或多個 coinbase 輸出。

為什麼欺詐交易不會在網路上得到中繼?

網路上所有表現良好的節點在將交易接受到他們的記憶體池之前驗證交易,或者進一步重新廣播它們 - 這種驗證的一部分是根據節點自己的有效 utxos 列表檢查交易中的所有 utxos。如果交易聲稱花費了節點列表中不存在的 UTXO,則該交易被視為無效並被丟棄。

為什麼只有所有者才能花掉他們的資金?

標準比特幣地址依賴於一個(單一密鑰地址)或多個(多重簽名地址)私鑰。與這些私鑰對應的公鑰被編碼到地址本身,在其鎖定腳本(也稱為scriptPubKey)中。在評估這些腳本期間,該輸入上的簽名與嵌入的公鑰相匹配。如果簽名不匹配,則交易被視為無效。

請注意,可以創建沒有“所有者”的輸出 - 比特幣腳本不需要所有鎖定腳本都包含密鑰檢查,並且可以建構不需要簽名的非標準腳本。但是,沒有消費者錢包會這樣做,基本上普通使用者將遇到的所有地址都將由一個或多個私鑰支持。

為什麼第三方不能改變交易的接受者?

標準交易使用SIGHASH_ALL簽名標誌進行簽名。這意味著任何一個輸入的簽名都會對所有輸入和輸出進行簽名(實際上是對交易的所有重要方面進行簽名)。如果任何輸入或輸出被更改、刪除或以其他方式更改,則簽名不再有效,因為它簽名的數據已更改。

可以使用其他簽名標誌建構交易,如我在此處的部落格文章中所述。然而,再一次,沒有消費者錢包使用除了SIGHASH_ALL.

是什麼阻止了礦工在創建區塊時拿走你的交易資金?

SIGHASH_ALL與前一點類似,由於簽署了整個交易,礦工也無法更改交易的輸出。如果交易是故意與 簽署的SIGHASH_NONE,礦工很可能會拿走這筆資金。但是,由於沒有健全的錢包執行這樣的簽名,因此不會發生這種情況。

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