隱形地址
隱形地址解決問題中「收款方隱私」的那一半:它讓你公佈單一、可重複使用的地址——放在網站、打賞箱或個人檔案上——但每筆付款其實都落在全新、無法連結的一次性地址,只有你能偵測並花用。對掃描鏈上的外部觀察者而言,給你的十筆捐款看起來像是付給十個互不相關陌生人的十筆款項。沒人能看見你的餘額、計算你的收入,或把你公佈的代號連結到鏈上的輸出。
其機制是 Diffie-Hellman 金鑰交換。你公佈的地址其實是兩把公鑰:檢視公鑰與支出公鑰。要付款給你,發送方產生一組隨機的臨時金鑰對,把自己的臨時私鑰與你的檢視公鑰結合算出共享秘密,再用該秘密推導出一把全新的一次性公鑰作為目的地;他們也把臨時公鑰附在交易裡。由於 Diffie-Hellman 的對稱性,你能用自己的私有檢視金鑰與公佈的臨時公鑰,重新算出同一個共享秘密,辨認哪些輸出屬於你;而你的私有支出金鑰才是真正授權花用它們的東西。
Monero 透過雙金鑰 CryptoNote 隱形地址方案,把這件事內建進每一筆交易,這也是為何即使你只發放一個地址,Monero 地址在鏈上永不重用。這個構想後來被移植到智能合約鏈:以太坊的 ERC-5564 在 secp256k1 上標準化隱形地址,並由 ERC-6538 提供註冊表,讓發送方能查到收款人的隱形元地址。檢視金鑰與支出金鑰的分離,也正是「檢視金鑰可供選擇性審計」的基礎——你能把掃描能力交給某人,卻不交出花用能力。
微妙的代價是真實存在的。收款人必須掃描鏈上每一筆交易(或經過濾的子集),嘗試推導共享秘密,這是隨鏈上活動增長的運算負擔。而且隱形地址隱藏收款方、解開付款之間的連結,但在透明鏈上它並不隱藏金額或發送方的輸入圖——它只是隱私的一味食材,最好與機密金額及發送端混合一起搭配。
雙金鑰隱形推導:V/S 為公開的檢視/支出金鑰,r 為發送方的臨時秘密。
重複使用你公佈的隱形元地址是安全的;保持無法連結的是每筆付款的一次性地址。隱私只有在你日後把多個一次性輸出以暴露共同所有權的方式一起花用時才會破裂。