概述
区块链学习笔记11——BTC匿名性
学习视频:北京大学肖臻老师《区块链技术与应用》
笔记参考:北京大学肖臻老师《区块链技术与应用》公开课系列笔记——目录导航页
一般来说,匿名性多与隐私保护相关。但实际上,比特币中的匿名并非真正的匿名,而是假的匿名。实际上,比特币与纸币相比,纸币的匿名性更好,因为其并没有对个人信息的标记。也正是因为其匿名性,很多非法交易采用现金交易。但现金存在保管、运输等各个方面的不便。
实际上,比特币中的数据是完全公开的,任何人都可以下载区块链上的完整交易,而网上的交易是要与实体世界进行交易的(例如用比特币在现实世界中买东西),所以大大破坏了其匿名性。假如银行允许用假名(以前的存折时代),由于银行数据并非公开,所以银行系统的匿名性是要比比特币更好的。
BTC系统中什么情况会破坏其匿名性?
- 用户可以生成多个账户,但这些账户可能被关联起来
表面上看,每次交易可以更换公私钥对,从而每次都是新的账户,具有很强的匿名性。但实际上,这些账户在一定情况下,是可以被关联起来的。
例如下图,针对这样一个交易:
如图,该交易有两个输入和两个输出,这两个输入很可能就是同一个人的账户,因为一个账户中的钱不够,而在两个输出中,有一个可能是找零的输出,即花掉之后剩余的钱,又转给自己的另一个账户
如上图,针对该交易,账户上面数字表示BTC,可以看出addr4明显是找零的地址(如果addr4是交易地址的话不需要两个输入)
- 地址账户与个人在真实社会中的身份也可能会产生关联。
任何使得BTC和实体世界中关联的操作都有可能泄露用户真实身份,其中最明显的就是资金的转入转出。要得到BTC,如果用钱买,就会与实体世界进行交互。想要将BTC转为现实中的货币,也同样需要与实体世界交互。 - BTC支付的时候
例如某些商家接受用BTC进行支付,例如可以用BTC购买咖啡、蛋糕等。(用BTC交易延迟高(等六个确认要一个小时),交易费贵,并非一个好的idea)
在进行支付时候,便和个人账户建立了联系,从而会泄露掉个人信息。
假如有人知道你在某个时间用BTC进行了支付,他可以去区块链上查这个时间的所有交易,如此重复多次,他就可以定位到哪些账户是你的
匿名性保持最好的人:中本聪,因为他从来没有花过自己的比特币,如果他要花自己的比特币就要将其换为法定货币(如:日元),这就会暴露他的真实身份
如何提高匿名性?
匿名的本质是不想要暴露身份。而对于普通人来说,BTC的现有机制已经足够保持个人隐私了。但如果涉及违法,行政机关想要获得真实身份,其实很容易。
应用层:把不同的人的币混在一起(coin mixing),让其他人分不清楚币是从哪来的。
网络层:采用多路径转发的方法,不是直接发送出去,而是经过很多跳,中间的每个结点只知道上一个结点,不知道最初的结点是谁(洋葱路由)
保护匿名性的难度很大,本质上是因为区块链是公开的,而且是不可篡改的,一旦你某个交易把身份暴露出去了,这个交易会永久的写在区块链中
零知识证明
零知识证明是指一方(证明者)向另一方(验证者)证明一个陈述是正确的,而无需透露陈述是正确的外的任何信息。
例如:A想要向B证明某一账户属于A,这说明A知道该账户的私钥。但不可能通过A公布私钥的方法来证明,该账户确实属于A。因此,A可以产生一个账户签名,B通过公钥对签名进行验证。(实际上该证明是否属于零知识证明存在争议,因为泄露了用私钥产生的签名)
同态隐藏
- 不会产生碰撞,如果E(X)=E(y),则必然有x=y
- 加密函数不可逆
- 最为重要,称为同态运算。说明对加密后的函数值进行某些代数运算,等价于对输入直接进行代数运算再加密。
例子:
盲签
盲签名是一种特殊的数字签名技术。盲签名因签名的人看不到所签署文件的具体内容而闻名,它有两个显著的特点:一是签名者对消息的内容是不可见的 ;二是签名被公开后,签名者不能追踪签名。
银行把货币给A的时候,编号是A自己产生的,且没有告诉银行,银行只知道给了A一个币,是哪个编号的币不知道,A把这个币转给B,B给银行验证的时候(防范double spending,这个序号的币是不是被花过),银行也不知道这个币是从哪来的
零币和零钞
零币存在一种基础币(比如说比特币)和零币,用的时候证明你本来是有基础币的,然后把基础币变得不能花了,换取一个零币。
零币在花费的时候,只需要用零知识证明来证明所花掉的币是系统中存在的某一个合法的币,但不用透露具体花掉的是系统中哪一个币。这样就破坏了关联性。
当然,这类货币并非主流加密货币,因为其为了设计匿名性,付出了一定代价,而且,需要强匿名性的用户并不多。
从数学上看,零币和零钞是安全的。但其并不是百分之百的匿名,其并未解决与系统外部实体发生交互时对匿名性的破坏。
最后
以上就是柔弱啤酒为你收集整理的区块链学习笔记11——BTC匿名性+零知识证明区块链学习笔记11——BTC匿名性BTC系统中什么情况会破坏其匿名性?如何提高匿名性?零知识证明同态隐藏盲签零币和零钞的全部内容,希望文章能够帮你解决区块链学习笔记11——BTC匿名性+零知识证明区块链学习笔记11——BTC匿名性BTC系统中什么情况会破坏其匿名性?如何提高匿名性?零知识证明同态隐藏盲签零币和零钞所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复