zoukankan      html  css  js  c++  java
  • [比特币]比特币中的匿名性

    一般来说,匿名通常跟隐私保护联系在一起。在比特币是基于交易的区块链,系统中没有用户的概念,不要求用户使用真名,可以用公钥产生地址,所以比特币具有一定的匿名性。

    但比特币中的交易记录在区块链上,区块链是公开的。虽然使用者可以生成任意多的地址来隐藏自己,但由于所有的交易信息的都是公开的,仍可以通过分析链上的交易信息来锁定用户。从这点上来讲,比特币又不是完全匿名的。

    什么情况下会破坏匿名性

    分析交易地址

    正常情况下,比特币交易都是通过钱包进行的。使用钱包交易时,输出地址中通常会有一个用于接收找零的地址。市面上常用的比特币钱包就那么几款,有心研究的话,发现各个钱包生成找零地址的规律并不是不能发现的。一旦找出规律来,结合区块链将很容易定位用户的身份。

    与真实世界发生交易

    通过比特币与真实世界发生交易时,比如从比特币交易所变现,使用比特币购买咖啡等,这些情况下用户的真实身份是很容易确定的。

    如何提供匿名性

    比特币系统是运行于应用层的,底层是个P2P网络层,要提高匿名性可以从这两方面入手:

    • 网络层:多路径转发
    • 应用层:将不同人的币混合在一起,即将所有用户的身份混合在一起,让人无法区分

    区块链的公开、不可篡改的特性,对于隐私保护来说是灾难性的。

    零知识证明

    零知识证明是指一方(证明方)向另一方(验证方)证明一个陈述是正确的,而无需透露除“该陈述是正确的”之外的任何信息。

    同态隐藏

    零知识证明的数学基础是同态隐藏,同态隐藏包含以下性质:

    • 如果(x)(y)不同,那么它们的加密函数值(E(x))(E(y))也不相同
    • 给定(E(x))的值,很难反推出(x)的值
    • 给定(E(x))(E(y)),可以很容易地计算出某些关于(x)(y)的加密函数值
      • 同态加法:通过(E(x))(E(y))计算出(E(x+y))
      • 同态乘法:通过(E(x))(E(y))计算出(E(xy))
      • 扩展到多项式

    零知识证明的应用:零币和零钞。


    声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。


  • 相关阅读:
    Best Time to Buy and Sell Stock III
    Valid Palindrome
    Longest Substring Without Repeating Characters
    Copy List with Random Pointer
    Add Two Numbers
    Recover Binary Search Tree
    Anagrams
    ZigZag Conversion
    Merge k Sorted Lists
    Distinct Subsequences
  • 原文地址:https://www.cnblogs.com/lianshuiwuyi/p/13576060.html
Copyright © 2011-2022 走看看