主页 > imtoken安卓官方下载 > 区块链学习笔记11——BTC匿名性+零知识证明

区块链学习笔记11——BTC匿名性+零知识证明

imtoken安卓官方下载 2023-07-26 05:09:56

区块链学习笔记11——BTC匿名性

学习视频:北京大学肖震老师《区块链技术与应用》

笔记参考:北京大学肖震老师《区块链技术与应用》公开课系列笔记-目录导航页

一般来说,匿名多与隐私保护有关。 但实际上,比特币的匿名并不是真匿名,而是假匿名。 事实上,与纸币相比,比特币更具有匿名性,因为它没有任何个人信息标记。 正是由于其匿名性,很多不法交易都采用现金交易。 然而,现金在储存、运输等方面存在诸多不便。

事实上,比特币中的数据是完全公开的,任何人都可以在区块链上下载完整的交易,而互联网上的交易是要与物理世界进行交易(比如在现实世界中用比特币买东西),从而极大地破坏了它的匿名性。 如果银行允许使用假名(以前存折时代),由于银行数据不公开,银行系统的匿名性优于比特币。

BTC系统中哪些情况会破坏它的匿名性?用户可以创建多个账户,但这些账户可能是关联的

从表面上看,每笔交易都可以改变公私钥对,所以每次都是一个新账户,具有很强的匿名性。 但实际上,这些账户在特定情况下是可以关联的。

比如下图就是这样的一笔交易:

在这里插入图片描述

如图所示,交易有两个输入和两个输出。 这两个输入很可能是同一个人的账户,因为一个账户的钱不够用,两个输出其中一个可能是找零的输出。 即消费后剩余的钱转入自己的另一个账户

在这里插入图片描述

如上图所示,对于这笔交易,账户上面的数字代表BTC,可以看出addr4显然是找零地址(如果addr4是交易地址,则不需要两次输入)

地址账户也可能与现实社会中的个人身份相关联。

任何将 BTC 与物理世界连接起来的操作都可能暴露用户的真实身份,其中最明显的就是资金的转入和转出。 要获得 BTC,如果你用钱购买它,你就会与物理世界互动。 如果你想将 BTC 转换成真实货币,你还需要与物理世界进行交互。 使用比特币支付时

比如有些商户接受BTC付款,比如你可以用BTC买咖啡、蛋糕等(使用BTC交易延迟高(需要一个小时等待6次确认),交易手续费为昂贵,这不是一个好主意)

支付时与个人账户建立连接,会泄露个人信息。

如果有人知道你在某个时间用BTC支付过,他可以到区块链上去查这个时间的所有交易,这样重复多次,他就可以定位到哪些账户是你的

保持最好匿名的人:中本聪,因为他从不花他的比特币,如果他想花他的比特币,他必须用比特币兑换法定货币(例如:日元),这将暴露他的真实身份

如何提高匿名性?

匿名的本质是不想暴露你的身份。 对于普通人来说,BTC现有的机制足以维护个人隐私。 但如果涉及违法,行政机关其实很容易获得真实身份。

应用层:将不同人的币混在一起(coin mixing),让别人分不清币是从哪里来的。

网络层:采用多路径转发的方式,不是直接向外发送,而是经过很多跳之后,中间的每个节点只知道前一个节点,并不知道原来的节点是谁(洋葱路由)

保护匿名性非常困难,本质上是因为区块链是公开的,不可篡改。 一旦你的身份在某笔交易中暴露,这笔交易将被永久写入区块链

零知识证明

零知识证明是当一方(证明者)向另一方(验证者)证明一个陈述是正确的时,除了该陈述是正确的以外不透露任何信息。

例如:A想向B证明一个账户是属于A的,也就是说A知道这个账户的私钥。 但无法通过A公布私钥的方式证明该账户确实属于A。 因此,A可以生成一个账户签名,B可以通过公钥验证签名。 (其实这个证明是不是零知识证明是有争议的,因为用私钥生成的签名被泄露了)

同态隐藏

在这里插入图片描述

例子:

在这里插入图片描述

在这里插入图片描述

盲注

盲签名是一种特殊的数字签名技术。 盲签名以签名者看不到签名文件的具体内容而闻名。 它有两个显着特点:第一btc全节点,签名者对消息内容是不可见的; 二是签名公开后,签名人无法追溯。

在这里插入图片描述

银行把钱给A的时候btc全节点,这个号码是A自己生成的,他没有告诉银行。 银行只知道他给了A一种货币,但不知道是哪一种编号的货币。 A将币转给B,B交给银行验证。 有时(为了防止双花,这个序列号的币是否已经被花掉),银行不知道币是从哪里来的

零硬币和零钞票

在这里插入图片描述

zerocoin中有基础货币(如比特币)和zerocoin。 当你使用它时,你可以证明你拥有基础货币,然后让基础货币无法使用并兑换成零币。

花费zerocoin时,只需要使用零知识证明证明花费的币是系统中存在的合法币,而无需公开花费了系统中的哪个币。 这打破了关联性。

当然,这类币种并不是主流的加密货币,因为它在匿名性的设计上付出了一定的代价,需要强匿名性的用户并不多。

Zerocoins 和 zeronotes 在数学上是安全的。 但它不是100%匿名的,也没有解决与系统外实体交互时破坏匿名性的问题。