# 156期【币圈人物】 北大肖臻比特币的匿名性 **Published by:** [币同学](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/) **Published on:** 2022-04-17 **URL:** https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/156 ## Content 你好,我是币同学。这是我分享学习的第156天,每天学习进步一点点。 关键词:北大肖臻老师的公开课,关于比特币的匿名性。 1. 匿名性是怎么定义的? 一般来说,匿名性和隐私保护联系(privacy)在一起的(你干的事情不希望别人知道)。 在比特币系统中,不要求用真名(KYC),可以用公钥产生的地址。从这点来讲,比特币具有一定的匿名性,可以产生任意多的地址,然后用多个地址干不同的事情,但是这也不是完全没有名字,它用的是化名。 比特币的匿名,不是真的匿名,它是一种假的匿名,就像作家写作时所用的笔名。 2. 比特币什么情况下有可能破坏匿名性? 2.1 有人推荐每次收款时,都用一个新的地址,这样你就有不同的地址,谁也不知道哪些是属于你的,就好像匿名性很强。但实际上,在有些情况下,你创造的很多的地址是可以被关联在一起的。 比如网上购物,比特币交易允许多个输入和输出 输入(Inputs):地址1,地址2 输出(Outputs):地址3,地址4 地址1和地址2很有可能是同一个人,这个人同时控制了这两个账户的私钥。另一个是你要买的东西,一般很难恰好某个账户的全部的值(余额),所以可能会有多个输入和多个输出。 地址3和地址4,这两个地址中其中一个,很有可能是找零钱的地址。你把买东西找零剩下的钱,转给了一个新的地址。【这种交易,一般都是比特币钱包软件生成的,钱包软件每次在找零时,会生成一个新的找零的地址,也是为了隐私保护。】 有没有可能把输入地址和输出地址关联起来?有没有可能把找零的地址找出来? 比特币生成交易的时候,并没有规定找零钱的地址在输出时出现的位置顺序。但有些情况下,找零地址可以被分析出来。比如举个具体的例子 输入(Inputs):地址1(账户有4个BTC),地址2(账户有5个BTC) 输出(Outputs):地址3(账户有6个BTC),地址4(账户有3个BTC) 那么地址4就是找零的地址,因为如果地址4是商家的地址,为啥用两个输入的地址(地址1+地址2)? 从理论上说,如果你想要更强的隐私保护,可以人为的产生一些没必要的输出,为了迷惑别人。但是这些交易,几乎都是用钱包软件生成的,很少有人手工生产这些转账的交易,常用的比特币钱包,就那几种,所以如果把常用的生成交易的比特币钱包搞清楚,那么区块链上很多一部分交易都可以分析出来。 2.2 比特币的地址身份可能和现实社会中的真实身份产生关联。 任何让比特币系统的比特币和实体世界发生联系的时候,都有可能泄露身份。 只要你只在区块链世界玩,不和实体世界产生联系,那是可以保持匿名的。 最明显的就是资金的转入和转出,比如你怎么得到你的比特币的?你用钱去买,那就有用钱转入区块链的过程。比如你在交易所购买比特币,交易所一般是有你的实名信息的。 也可以用场外交易,就是两个人私下交易。 过去的经验表明,很多国家有反洗钱法,怎么防范用比特币洗钱的行为? 盯住资金的转入和转出链,是常用的手段。 如果你有特别大的资金,要转入到比特币,或者你有很多的比特币,你想转回成法币,这样的行为很容易引起司法的注意。 2.3 在实体世界中,用比特币做支付的时候。比如商家接受比特币支付,就会引起隐私泄露,就是你用比特币的账户和你的真实身份是建立联系的。而如上文所述,这个账户可能跟很多的比特币的其他账户也是有联系的,合在一起,就容易把这个人的真实情况给摸清楚。 这个其实不光是接受你支付的商家会知道,其他人也会知道。比如你多次消费,都被人刻意记录(记录你说消费时的这一时间段的消费记录),虽然不知道具体哪笔交易是你,但可以通过多次不同消费记录数据库里的对比,找到实体世界你的身份。 因为比特币的交易信息是公开的,而且是任何人都可上链查询的。 交易所使用的币,其所有的交易信息都在链上可追溯查询。 3. 比特币的匿名性,并不是绝对的,没有想象中的那么好。 实际中,所有使用比特币的人,匿名性保持最好的是中本聪。 因为中本聪没有新的转入转出的记录,没有和现实世界产生联系。 4. 怎样可以实现更好的网络上的匿名性? 其中一种方式,叫多路径转发的方法。就像在交易所里多次买卖,与多人产生交易,这样就能多路径转发,实现更好的匿名性【前提是交易所不泄露交易者的身份】。 另一种方式,叫把你的身份和周围人混在一起,让他分不清楚你是谁(Coin mixing),分不清币是谁的。 其实有些在线钱包就天然有coin mixing的性质,很多人把钱存进在线钱包里,那么他就有可能把这些人的币给混起来。然后你把你存的币取出来的时候,有可能就不是当初你存款的币。 为什么保护隐私性,难度挺大? 本质原因是区块链是公开的,而且是不可篡改的(不可篡改对隐私保护是灾难性的)。因为一旦你某个交易不小心,把你的身份暴露出去,那这个交易永久写进区块链里,想抹去都抹不掉。 这也是保护隐私在账户之间的关联性,是需要小心的。如果每个账户都是单独使用的,暴露出去的话,影响还是有限的。如果多个账户都是有关联的,一旦暴露出去的话,就全部可以追溯查询。 5. 零知识证明 零知识证明是指一方(证明者)向另一方(验证者)验明一个陈述是正确的,而无需透露除该陈述是正确的之外的任何信息。今天就学习到这里,明天见。 ## Publication Information - [币同学](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/): Publication homepage - [All Posts](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818): Subscribe to updates