Transactions
為什麼我不能修改別人的交易,如果我有他們的簽名數據?
據我所知,簽名系統正在將簽名添加到交易結束。並且不散列交易,所以其他人可以知道我的簽名。
如果我可以直接向節點發送消息,我可以使用其他人的簽名並將貨幣發送給我嗎?
例如,Alice 進行了一筆交易,將 1bitcoin 發送給 Bob。然後 Alice 會將她的數字簽名發送給節點。節點將驗證它是否來自 Alice,並與地址、簽名等共享交易。
在這裡,我可以知道她的簽名,並可以發送帶有她簽名的交易。然後節點將驗證此交易是否來自 Alice 並共享它。
我是加密貨幣的初學者,所以你能告訴我哪裡有問題嗎?
愛麗絲創建的簽名不僅僅是隨意附加到她的交易中。它是通過將交易(或在某些情況下只是交易的一部分)作為輸入來創建的,然後通過使用相關的私鑰,在此交易數據上創建簽名。
因此,當 Alice 簽署交易時,創建的簽名將僅對已簽署的特定交易有效。如果該交易的任何部分被修改,則簽名將不再被網路上的其他節點視為有效。因此,您不能只修改交易以支付到不同的地址,因為這樣做會使交易無效。
數字簽名是使用一個數學函式生成的,該函式接受兩個數字
a
,b
該函式從中生成一個數字c
。數學函式是一個無法反轉、給定c
且a
您無法計算出來的函式b
。因此
a
,可以是被簽名消息的數值,b
也可以是用作私鑰的數字,其他人無法發現。一個單獨的數學函式可以獲取消息
a
、簽名c
和另一個d
相關的數字,b
並告訴您簽名是否正確。d
稱為公鑰。您無法b
從該公鑰數學計算出私鑰d
,因此私鑰b
始終是一個安全的秘密,不會被簽名或檢查過程洩露。所以
c
消息的簽名a
不能用作不同消息的簽名,不同的值a
會產生不同的值,c
檢查過程會顯示這一點。