Transactions

為什麼我不能修改別人的交易,如果我有他們的簽名數據?

  • February 23, 2022

據我所知,簽名系統正在將簽名添加到交易結束。並且不散列交易,所以其他人可以知道我的簽名。

如果我可以直接向節點發送消息,我可以使用其他人的簽名並將貨幣發送給我嗎?

例如,Alice 進行了一筆交易,將 1bitcoin 發送給 Bob。然後 Alice 會將她的數字簽名發送給節點。節點將驗證它是否來自 Alice,並與地址、簽名等共享交易。

在這裡,我可以知道她的簽名,並可以發送帶有她簽名的交易。然後節點將驗證此交易是否來自 Alice 並共享它。

我是加密貨幣的初學者,所以你能告訴我哪裡有問題嗎?

愛麗絲創建的簽名不僅僅是隨意附加到她的交易中。它是通過將交易(或在某些情況下只是交易的一部分)作為輸入來創建的,然後通過使用相關的私鑰,在此交易數據上創建簽名。

因此,當 Alice 簽署交易時,創建的簽名將僅對已簽署的特定交易有效。如果該交易的任何部分被修改,則簽名將不再被網路上的其他節點視為有效。因此,您不能只修改交易以支付到不同的地址,因為這樣做會使交易無效。

數字簽名是使用一個數學函式生成的,該函式接受兩個數字ab該函式從中生成一個數字c。數學函式是一個無法反轉、給定ca您無法計算出來的函式b

因此a,可以是被簽名消息的數值,b也可以是用作私鑰的數字,其他人無法發現。

一個單獨的數學函式可以獲取消息a、簽名c和另一個d相關的數字,b並告訴您簽名是否正確。d稱為公鑰。您無法b從該公鑰數學計算出私鑰d,因此私鑰b始終是一個安全的秘密,不會被簽名或檢查過程洩露。

所以c消息的簽名a不能用作不同消息的簽名,不同的值a會產生不同的值,c檢查過程會顯示這一點。

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