ZeroLink Fungibility Framework -- Request for Discussion
Add Reply
Adam Ficsor via bitcoin-dev
2017-08-30 06:45:31 UTC
Raw Message
I've been long working on Bitcoin privacy, mainly on TumbleBit
<https://github.com/NTumbleBit/NTumbleBit>, HiddenWallet
<https://github.com/nopara73/HiddenWallet/> and BreezeWallet
<https://github.com/stratisproject/Breeze/>. ZeroLink is my latest
effort to gather all the privacy reasearch I'm familiar with,
combine/organize them in a coherent and practical way. The main point
of ZeroLink is that "nothing is out of its scope", it is intended to
provide complete anonymity on-chain.
Amongst its many topics, ZeroLink defines mixing technique, coin
selection, private transaction and balance retrieval, transaction
input and output indexing and broadcasting and even includes UX
Users' privacy should not be breached neither on blockchain level, nor
on network level.


In a nutshell ZeroLink defines a pre-mix wallet, which can be
incorporated to any Bitcoin wallet without much implementation
overhead. Post-mix wallets on the other hand have strong privacy
requirements, so the mixed out coins will not lose their uniformity.
The requirements and recommendations for pre and post-mix wallets
together define the Wallet Privacy Framework.
Coins from pre-mix wallets to post-mix wallets are moved by mixing.
Most on-chain mixing techniques, like CoinShuffle, CoinShuffle++ or
TumbleBit's Classic Tumbler mode can be used. However ZeroLink defines
its own mixing technique: Chaumian CoinJoin, which is based on Gregory
Maxwell's 2013 CoinJoin recommendations and ideas
<https://bitcointalk.org/index.php?topic=279249.0>. I found this
technique to be the most performant, fastest and cheapest one.

Regarding adoption SamouraiWallet <https://github.com/Samourai-Wallet>
and HiddenWallet <https://github.com/nopara73/HiddenWallet> are going
to implement and comply with ZeroLink and BreezeWallet
<https://github.com/stratisproject/Breeze> also shows significant