如果您將比特幣發送到萊特幣地址會發生什麼?
是不是永遠失去了?
反過來呢:將萊特幣發送到比特幣地址?
比特幣或萊特幣地址包括:
- 前綴字節
- 公鑰的 160 位散列
- 32 位校驗和
所有 base-58 編碼。
比特幣和萊特幣使用不同的前綴字節;這就是為什麼大多數比特幣地址以 . 開頭
1
,而大多數萊特幣地址以L
.當您使用比特幣客戶端嘗試向某個地址匯款時,它應該對該地址進行多次檢查。其中一項檢查是前綴字節。當它注意到地址沒有正確的比特幣前綴字節時,它應該會抱怨,抱怨你指定了一個無效的地址。它根本不會嘗試創建交易。
因此,出於實際目的,問題的答案是“你做不到”。
如果您嘗試將萊特幣發送到比特幣地址,這同樣適用 - 前綴字節與萊特幣客戶端的期望不匹配,因此它將拒絕該地址並拒絕創建交易。
理論上,如果您以某種方式使用了不檢查前綴字節的損壞客戶端,它實際上可能會生成一個交易,其輸出指定了與萊特幣地址相對應的公鑰的 160 位散列(稱為此散列值 H)。雜湊是地址中唯一實際用於創建交易的部分。由於所有可能的 160 位數字都是潛在的有效雜湊,因此無法判斷 H 來自萊特幣而不是比特幣密鑰,因此這將是一個有效的比特幣交易。(我在以前版本的答案中弄錯了。)該交易只能由比特幣交易使用,並使用其公鑰具有雜湊 H 的私鑰簽名。
現在我相信(儘管我不完全確定)萊特幣使用與比特幣完全相同的 ECDSA 簽名算法。因此,如果您(或其他人)擁有萊特幣地址的私鑰,比特幣和萊特幣都應該同意對應的公鑰是什麼,並同意它具有雜湊 H。所以原則上,私鑰持有者會能夠將此密鑰導入比特幣錢包,並使用它來花費被損壞的客戶端發送到萊特幣地址的硬幣。(他們不能直接導入密鑰,因為前綴字節是錯誤的;但他們可以解碼 base58 編碼的萊特幣私鑰字元串,提取 256 位數字,即實際的私鑰,並在其前面加上適當的前綴比特幣前綴字節,重新計算校驗和,並以 58 為基數重新編碼整個事物。
如果我對此錯了,並且比特幣和萊特幣處理密鑰和簽名的方式不同,那麼很可能沒有可行的方法來找到公鑰的雜湊值(由比特幣規則計算)等於 H 的私鑰。在這種情況下,發送到該地址的硬幣將永遠失去。
顯然,進行實驗是一個壞主意,因為可能會發生有趣的事情。話雖如此,您的客戶應該簡單地將其辨識為無效地址並拒絕交易。
雖然萊特幣地址對萊特幣有效,但對比特幣無效,因此應迅速拒絕。
正如 Nate 指出的那樣,萊特幣地址以“L”開頭,因此您的客戶會立即將其辨識為無效。