Coinjoin
在 Chaumian Coinjoin 中,是什麼阻止了協調者使用不同的私鑰對每個輸出進行盲簽名,從而將輸入映射到輸出?
我不是 Chaumian 盲簽名方面的專家,所以如果這個問題的答案很明顯,請原諒我,但我想知道協調員如何向參與者證明它沒有按照我在問題中提出的要求進行操作。
如果它為每個盲簽名使用不同的密鑰,那麼它不能只針對一小組返回的非盲輸出嘗試每個密鑰以確定它使用的是哪個,從而將其與相應的輸入相匹配嗎?
這似乎是一個太明顯的缺陷,所以我想知道如何避免這種情況。
謝謝!
這種對盲簽名的攻擊確實是可能的,通常稱為標記攻擊。為了解決它,客戶應該驗證是否使用了一致的簽名密鑰。
解決這個問題的最簡單方法是要求輸入所有權證明送出給這個密鑰,並將這些證明廣播給所有在送出非盲簽名之前驗證它們的客戶。沒有一個實現這樣做。
使用 Tor(或類似的東西)可以緩解:使用具有連接隔離的單獨請求獲取密鑰和盲簽名,並確保它們不可連結。在這種情況下,損壞的伺服器必須正確劃分請求,這很困難,但很難推斷進行有針對性的攻擊的難度。
在基於 Schnorr 盲簽名的 Wasabi 1.x 版本中,輪密鑰(每個面額一個)被獲取,並且在請求盲簽名之前不會與任何先前響應中獲得的密鑰進行比較。請注意,對於這種緩解,由於處理 R 點的方式,盲簽名請求本質上可連結到特定的先前狀態請求這一事實不是問題,關鍵是客戶端僅在獲取伺服器後才顯示輸入鑰匙。
在 Whirlpool 中,公鑰是對輸入註冊的響應的一部分,因此沒有機會進行此類緩解。