Namecoin
為什麼 namecoin 有多餘的 name_firstupdate 步驟?
我正在嘗試了解 namecoin 協議。正如可以在namecoin 文件中看到的那樣,為了註冊一個域,您需要執行以下步驟:
- 執行命令
name_new
,這會預購一個域名。- 執行命令
name_firstupdate
,這將完成註冊,名稱變為公開。為什麼存在第二個冗餘步驟?合併這兩個命令,讓使用者在註冊時直接更新域來完成註冊不是更有意義
name_new
嗎?
原因是為了防止搶先:當受害者註冊
abc.com,
時,攻擊者可能會注意到 TXN 以及name_new abc.com
Namecoin 的 P2P 網路上的請求。然後,他可能會發出相同的請求,但收取更高的 TXN 費用,並從試圖註冊的受害者那裡“竊取”域。解決方案很簡單:
name_new abc.com
與其發送顯示域的請求,不如發送一個送出到域而不顯示域的name_new SHA256(r, 'abc.com')
請求。這樣,攻擊者就無法了解正在註冊的域。- 稍後使用顯示域的
name_firstupdate r, abc.com
請求顯示域,防止人們竊取它。至此,攻擊者無能為力,因為abc.com
已經使用name_new
請求分配了所有權。