相關介紹
混幣原理(CoinJoin):許多人參與,一個交易中包括大量輸入和輸出,很難在輸入和輸出中找出每個人的對應對,輸入與輸出之間的聯繫被事實上割裂。多次混幣、每次少量幣,效果更好。
比特幣塊鏈的混幣
為了解決以上隱私問題,有些網站提供了混幣服務。 混向原理是割裂輸入地址和輸出地址之間的關係。
1、 以中心化網站(Blockchain.info)、Darkwallet(實際上也是中心化的,i混幣需求要通過暗錢包伺服器收集),但是這些中心化和分散式服務都需要伺服器,在伺服器上會有混幣紀錄,不是很安全。Blockchain.info就會紀錄混幣需求一段時間後才刪除,以應付有可能的司法檢查。
2、Darkwallet引入Stealth Address隱身地址,打亂了塊鏈的交易連續性,在較大程度上加強了匿名性。
簡介
混幣是基於NXT區塊鏈而實施的,消除了現存的第三方混幣服務中存在的手動步驟和信任問題。客戶端錢包提供了用於監控和操作的界面。
可以對NXT、資產以及貨幣進行混幣,混幣創建者在創建混幣時可以指明混幣類型。
任何賬戶都可以創建混幣並指明混幣類型、混幣數量、參與人數和註冊截止日期。
這是通過shufflingCreate API來實現的。接下來的混幣步驟可以通過使用shufflingRegister、shufflingProcess和shufflingVerify或shufflingCancel APIs來手動執行。
然而由於混幣處理過程的複雜性以及操作時間預測的難度等原因,不可能手動來處理混幣。因此,混幣是通過一個自動單元“混幣器”使用startShuffler API來管理執行的。
一旦啟動,混幣器就會監控與指定的混幣相關交易的區塊鏈狀態,而且會代表用戶自動提交所需的交易,根據需求執行混幣處理、驗證或取消。為了實現這些,混幣器需要將用戶的密碼保存在記憶體中,與鍛造時的情況類似。與鍛造一樣,節點重啟或崩潰都需要手動重啟混幣器。在混幣成功完成或取消之後,混幣器還會繼續運行720個區塊,以確保萬一出現區塊回滾重寫(儘管不太可能)時混幣仍然是激活的。
每一個節點/混幣/參與者都有混幣器。單個節點可以運行的混幣器的最大數目是100個。
除了混幣所需的貨幣或資產數目外,參與混幣還需要至少有1000NXT的押金,如果是混幣NXT,則混幣金額數目必須要大於1000NXT。
當一個混幣成功完成後,參與混幣的錢幣會添加到接收者賬戶中以進行傳送出去的交易(只能使用新創建的、未使用過的賬戶作為接收者賬戶)。如果由於註冊參與者沒有按照要求參與混幣或故意提交錯誤數據而導致混幣失敗,那么導致混幣失敗的參與者將會被處罰1000NXT押金,處罰的押金會分發給混幣完成區塊的鍛造者以及之前3個區塊鍛造者。如果由於參與人數沒有達到要求而導致混幣取消,所有人都不會收到處罰,所有的押金都將退還。在測試網路中,押金和處罰金都是7NXT。
混幣註冊完成後,參與者必須要在100個區塊時間段內(測試網路是10個區塊)提交處理數據。驗證和處罰階段,所有參與者的時間限制是 100+參與人數 個區塊(測試網路是10+參與人數 個區塊)。在任何階段,如果截止時間到後還有參與者沒有提交所需的交易數據,混幣將會取消,這個參與者將會損失它的1000NXT的押金。這個過程是由混幣器處理的。因此註冊一個混幣後,保證混幣器啟動、並運行至混幣成功完成是很關鍵的。如果節點重啟了,那么之前所有的混幣器都需要手動重啟。
訪問取回目前運行的混幣器、混幣以及混幣參與者的APIs是:getAllShufflings,getAccountShufflings,
getAssignedShufflings,getHoldingShufflers,getShufflingParticipants。
如果將nxt.deleteFinishedShufflings屬性設定為true(默認是false),那么完成的混幣會自動從資料庫中刪除。
創建一個混幣或註冊一個混幣的費用是1 NXT,混幣處理和混幣取消的費用是10NXT,驗證交易的費用是1NXT。