https://github.com/ethereum/wiki/wiki/Design-Rationale#accounts-and-not-utxos
Ethereum 的 Design Rationale 列举了 UTXO 和 account 的优劣
并解释为何 Ethereum 采用 account model
不过他下面这一句
if people really do care about privacy then mixers and coinjoin can be built
via signed-data-packet protocols inside of contracts.
我没有很懂耶
mixer 和 coinjoin 应该是指混币没错吧
但混币不是只有 UTXO model 的区块链才有的观念吗?
account model 要怎么混币 并且为何能够增强隐私呢?
附个混币解释
字面意思就是 一群想要传钱的人
都先把自己的钱交出来
全部混一混然后才发送到各自的目标地址
让金流以及地址背后的持有者更难被追踪
实际做法就是 一群想要传钱的人凑在一起
人数可多可少 可以只有两个人 也可以数不清的人
当然人越多隐私效果越好
这些人共同创建一个交易
然后各自把想要传的钱贡献到交易input
并且也开出各自的目标地址放到交易output
大家都做好各自的input/output之后交易就可以送出了
由于每个input都要用各自的私钥来签过整个交易
所以并不会有钱被偷的疑虑
混币这种行为
打破了“一个交易里的所有input属于同一个人”的通则
使得地址更难被关联起来
https://en.bitcoin.it/wiki/CoinJoin
========更新========
https://blog.ethereum.org/2016/01/15/privacy-on-the-blockchain/
看到 Vitalik 写的这篇
有讲 Ethereum 上的 CoinJoin 协定怎么做
大概弄懂了
总之差不多就是:
所有委托人的目标地址和要转的金额都先写进合约
但不记录目标地址跟委托人的对应关系
确认无误的委托人就会转钱进去合约里 发现错误的委托人就不会转钱进去
钱到齐之后合约就把钱分配到目标地址 没到齐就退款