Oddbean new post about | logout
 내가 궁금해서 공부해본 사무라이 월렛의 whirpool 요약.

한국에 워낙 자료가 없어서 공부하는데 애를 먹었습니다.주말 이틀 동안 공부했는데, 궁금하신 노친분들에게 설명드립니다!!
Whirlpool coinJoin은 3단계로 이루어 집니다.

1. Premix and 입력등록
  a. 사용자 A는 세탁하고 싶은 자신의 UTXO를 동일한 잔액으로 나눈다. 이는 mix에 참여하는 사람들과 동일하게 잔액을 맞추어 잔액으로 trace를 못하게 하는 것이다.
  b. 사용자들은 자신의 utxo 아웃풋과 거슬러 받고 싶은 비트코인 주소를 차움 블라인드를 이용해서 숨겨서 whirlpoo보낸다. 이때 whirlpool측은 사용자들의 거슬러 받고싶은 비트코인 주소는 알수 없다.
 c. Whirlpool은 사용자들의 blinded 비트코인 주소에 서명을 해서 돌려준다.
 d. 사용자는 whirlpool에게 blinded 비트코인 주소 + 서명을 unblind해서 서명된 비트코인 주소를 얻어낸다.
https://nostrcheck.me/media/public/nostrcheck.me_2518398798495799011696745584.webp 
2. 출력등록
  a. 입력등록을 한 각 사용자들이 자신의 신원을 숨기고 사인된 비트코인 주소를 whirlpool에게 제공한다.
  b. 여기서 whirlpool은 각 사용자들이 어떤 입력등록을 한 사용자인지 모르지만 자신의 서명을 가지고 있으므로 해당 정보를 아웃풋으로 이용해서 사인이 안된 트랜잭션을 만든다.
https://nostrcheck.me/media/public/nostrcheck.me_1063824867090483301696745712.webp 
3. 사인
  a. Whirlpool은 각 출력등록에서 받은 아웃풋 비트코인 주소를 이용해서 하나의 거대한 트랜잭션을 만들고 이를 입력등록한 사용자들에게 보낸다.
  b. 각 사용자들은 자산의 비트코인주소에 맞는 양이 보내지는지 확인하고 사인해서 whirlpool에게 보내면 whirlpool은 모든 사인을 합쳐 트랜잭션을 완성하고 브로드 캐스트 한다.
https://nostrcheck.me/media/public/nostrcheck.me_6472376722138700461696745851.webp 
4. 결과물
결과물은 아래와 같다.

https://nostrcheck.me/media/public/nostrcheck.me_7409969336528264181696745884.webp  
 해당 과정으로 사용자는  whirlpool에 개인키를 주지 않아도, 자신이 되돌려 받고싶은 비트코인 주소를 노출하지 않아도 coinJoin트랜잭션을 검증하고 사인할수 있다 
 공유 감사합니다 🤙🤙🤙 
 🫡 
 항상 감사드립니다 👍 
 👍 
 오~ 궁금했던 내용이었는데
감사합니다~👍 
 제가 더 감사합니다 꾸벅 
 

nostr:nevent1qqs8m7ruml6m7t9zfwx5pw88xpercs6pl2dk55r60lgqkgq52vfdg9spp4mhxue69uhkummn9ekx7mqzyzgvz3w4metpfyrs70j88tu9qx27j2kw2vsqxjxrw26guf00fmvawqcyqqqqqqg4a498d