前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >区块链技术与应用03 北大肖臻

区块链技术与应用03 北大肖臻

原创
作者头像
Daffy
修改2020-11-12 11:17:35
5350
修改2020-11-12 11:17:35
举报

BTC-匿名性

Bitcoin and anonymity(privacy) Pseudonymity,假的匿名

什么时候可能破坏比特币匿名性?

1.一个人可能生成很多个地址账户,但是这些地址账户是有可能被关联起来的。如例子中 addr1,addr2,addr4很有可能关联起来。

2.这些地址账户和你社会现实中的真实身份产生关联。如资金的转入转出,比特币转换成现实世界中的钱。实体世界中,喝咖啡哈。。。用比特币支付时,但是延迟很大,交易费很贵。

比特币中的匿名性不是绝对的。

举例:1.中本聪匿名性最好,没有任何交易。2.Silk road,一个非法网站(eBay for illegal drugs),卖违禁品,为了逃避法律比特币支付。运行两年,被抓后,被美国政府没收了十几万的比特币,一个都不敢花,过的很简朴。

说明了比特币的匿名性没有想象中的那么好。

Hide your identity from whom?你不想向谁暴露身份?亲戚朋友很容易,从事非法活动,躲避FBI很难。

怎样尽量提高匿名性?从两个方面入手,网络层和应用层。

网络层匿名性。网络层IP地址容易暴露身份。TOR,解决网络层匿名性。中间的每一个结点只知道上一个是谁,不知道最早发出消息的是谁。

应用层匿名性。把各个不同人的币混在一起(Coin mixing),让人分不清币从哪里来的。有一些专门的网站做这个。区块链没有信誉度高的Coin mixing单位,如果跑路,没有办法。有一些自带Coin mixing性质的应用,比如说在线钱包,有可能把币混合,再取出来就可能不是放进去的币。加密货币的交易所,也具有Coin mixing性质。前提是交易所不会泄露交易记录。

保护匿名性是困难的,本质上因为区块链是公开的,不可篡改的。

零知识证明。

定义。

同态隐藏。零知识证明的数学基础。

如果E(x)=E(y),则x=y。 E是不可逆的。

举例。

零知识证明。这里Bob可能通过遍历x,观察x是否等于E(x)的方法,得到x。所以Alice应该在计算E(x)前对x和y的值进行随机化处理,但是保证了x+y的值是不变的。

盲签方法。

央行发布虚拟货币有央行的签名,这个方法不可以,因为容易被复制,无法防范双花。每一个数字货币有编号,央行有一个数据库,记录每一笔交易。防止双花。一个问题是这是一个中心化方案,另一个问题是央行什么都知道,做的每一笔交易它都知道。

有没有一种办法,央行做中心化记账但是不让它知道所有的交易?虚拟货币的编号不能是央行产生的,由用户自己在本地产生编号。比如我在央行那里存了100个央币,然后要取一个央币出来,每一个央币都有一个编号,在本地产生一个编号,但是这个编号不能告诉央行,那这个编号怎么保证是真的,不被篡改掉。用到盲签。

注意:银行只知道我给了你个币,但是是哪一个编号的币我不知道,你再跟别人花的时候,别人无法验证你这个币是从哪里来的。

专门为了匿名性设计的货币。

交易的时候,零币和零钞数学上可以保证是区块链某个合法的币,但是不知道具体来源是哪个币,破坏了币之间的关联性,数学原理很复杂并且不主流。为了匿名性付出代价,性能有损失,初始化时的随机元要被销毁掉,否则会有安全漏洞。需要强匿名性的用户不多。也没有解决与实体交互时的匿名性。

BTC-思考

哈希指针。

指针保存的是本地内存的地址,只在本地有意义,发送到其它的计算机上就没有意义了,那么在发布区块的时候,区块链是怎么通过网络传播的呢?实际上只有哈希没有指针。

怎么找到上一个区块的位置呢?全节点把这些区块存在一个(key,value)数据库中,key是区块的哈希,value是区块的内容,常用的数据库levelDB。

区块恋。

私钥分开保存,降低安全性。256位私钥,如果从中截断,破解难度大大降低。对于多个人的共享账户,不要用截断私钥的做法,用多重签名(MULTISIG)的方法。并且死钱永远保存在UTXO里,对矿工不好。

分布式公识。

理论上是不可能的,为什么比特币系统能够绕过分布式共识中的那些不可能结论?

严格说,比特币没有取得真正意义上的共识,取得的共识随时可能被推翻。比如分叉攻击,很可能回滚。理论和实际有差距,理论的结论对实际并不适用。

比特币的稀缺性。

加密货币都有一个冷启动,一方面早期的挖矿难度低,另一方面早期的出块奖励比较高。推荐货币金融学。

量子计算。

离使用还差很远。量子计算首先冲突的是传统金融业。量子计算机要完成公钥的哈希值逆运算很困难。收款不需要暴露公钥,只要公钥的哈希。每次交易都要把交易剩下的钱转到新的地址更安全。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • BTC-匿名性
  • BTC-思考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档