首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IoTeX密码学家为你的隐私保驾护航——区块链隐私增强技术系列之“隐私地址”

使用区块链技术,隐私就能受到保护?大可安枕无忧?通过分析交易图谱并结合其他信息,完全可以揭示区块链地址背后的真实身份!

不用惊慌!无需失措!IoTeX密码学家运用区块链隐私增强技术之“隐私地址”为你的隐私保驾护航。

区块链隐私增强技术系列

——隐私地址(I)

现有的区块链,包括比特币和以太坊在内,都是一种公共、开放的分布式账本;由于没有过多的对参与者的限制,交易的所有细节都以明文存储在区块链上。

在分类帐本中,交易的实体只能通过由公钥导出的地址来进行标识。这就意味着这个地址与一个现实人物相关联,但公众是不知道该人是谁,这种记账通常被认为是“伪匿名”。

最近的研究表示:通过分析交易图谱并结合其他信息,可以揭示区块链地址背后的真实身份。鉴于此,人们开始倾向于为区块链交易添加隐私保护功能。主要出发点包括管理与执法相关的问题以及保护公司的敏感信息等等。

隐私地址密钥管理机制

隐私地址是一项用于保护加密货币接收者隐私的隐私增强技术。隐私地址要求发送方代表接收方为每笔交易创建随机的一次性地址,以便公众无法对同一收款人的不同转账进行关联。

基础隐私地址协议(BSAP)

基础隐私地址方案是2011年由名为"ByteCoin"的比特币论坛成员首先发布的,该方案依赖于椭圆曲线密钥交换算法(ECDH)协议,其工作原理如下:

发送方和接收方分别拥有私钥/公钥对(a,A)和(b,B),其中A = a·G和B = b·G,G是椭圆曲线组的基点。

发送方和接收方都可以使用ECDH计算共享密钥c:c = H(a·b·G)= H(a·B)= H(b·A),其中H(·)是一个密码学哈希函数。

发送方使用c·G作为发送付款的临时地址。

接收方主动监视区块链并检查是否有一些交易已发送到公布的目标地址c·G。如果有,则可以使用相应的私钥c确认该笔支付。

BSAP的设计有两个主要问题:

i)临时地址在两个通信实体之间是固定的,这会导致这些实体之间的交易可以很容易地进行关联;

ii)发送方和接收方都可以计算私钥c,因此,如果接收方没有及时确认付款,发送方可以改变主意并收回款项。

改进的隐私地址协议(ISAP)

为了解决BSAP中的设计缺陷,Nicolas van Saberhagen在2013年的CryptoNote白皮书中详细介绍了一种名为ISAP的改进方案,后者于2014年由Peter Todd在比特币协议中进行了改进。ISAP是BSAP的扩展方案,它运用了如下所述的密钥推导技术:

接收方拥有一个私钥/公钥对(b,B),其中B = b·G,G是椭圆曲线组的基点。

发送方生成一个临时密钥对(r,R),其中R = r·G随着交易进行传输。

发送方和接收方都可以使用ECDH 计算一个共享密钥c:c = H(r·b·G)= H(r·B)= H(b·R),其中H(·)是一个密码学哈希函数。

发送方使用c·G + B作为发送付款的临时地址。

该接收方主动监控区块链并检查一些交易是否已被发送到上述公布的目标地址c·G + B。如果是,则使用相应的私钥c + b来确认该笔支付。请注意,临时私钥c + b只能由接收方计算。

尽管ISAP解决了BSAP的上述设计缺陷,但区块链节点仍然需要使用其私钥b来主动扫描目标地址c·G + B,这与安全存储私钥的惯例相反,私钥的连续使用显著增加了被破解的风险。

双重密钥隐私地址协议(DKSAP)

为了消除ISAP关于私钥的过度使用,2014年由名为rynomster / sdcoin的开发人员为ShadowSend (这是一种高效且分散的匿名钱包解决方案)实现了一个双重密钥隐私地址协议DKSAP。

自那时开始,DKSAP已经在众多加密货币系统中得到了实施,其中包括Monero,Samourai Wallet和TokenPay等等。该协议利用两对密钥(“扫描密钥”对和“支付密钥”对)来计算每笔交易的一次性支付地址,详细工作原理如下:

接收方拥有两个私钥/公钥对(s,S)和(b,B),其中S = s·G和B = b·G分别是'扫描公钥'和'支付公钥'。这里G是椭圆曲线组的基点。

发送方生成一个临时密钥对(r,R),其中R = r·G随着交易进行传输。

发送方和接收方都可以使用ECDH计算共享密钥C:C = H(r·s·G)= H(r·S)= H(s·R),其中H(·)是一种加密哈希函数。

发送方使用c·G + B作为发送付款的临时地址。

该接收方主动监控区块链并检查一些交易是否已被发送到上述公布的目标地址c·G + B。根据钱包是否加密,接收方可以用两种不同的方式计算相同的目标地址,即c·G + B =(c + b)·G。如果有匹配,则可以使用相应的私钥c + b来确认支付。请注意,临时私钥c + b只能由接收方计算。

在DKSAP中,如果审核员或代理服务器存在于系统中,那么接收器可以共享“扫描私钥” 和“支付公钥” 给审核员/代理服务器,以便这些实体可以代表接收方扫描这些区块链交易。但是,他们无法计算临时私钥c + b并支付付款。

基于区块链的物联网(IoT)系统面临的挑战

DKSAP为交易接收方提供了强大的匿名性,并使其能够保证接收方收到不可关联的付款。然而,这种方法的代价是区块链节点需要不断计算公布的目标地址并在区块链中找到相应的匹配地址。

虽然这个过程对于计算机来说非常适用,但它对资源受限的物联网设备提出了新的挑战。所以我们面临的问题是“能否通过做出某些权衡使得DKSAP能够适合基于区块链的物联网系统?”此外,使用隐私地址的交易可以很容易地识别,因为区块链的交易包含一个临时密钥,这会导致一些隐私泄漏。因此,另一个问题是“当我们使用隐私地址时,我们能否在某种程度上减少这种隐私泄漏?”

要了解IoTeX如何应对这些挑战,请继续关注我们关于隐私地址和基于物联网系统的下一篇文章!

联系IoTeX

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180519G0JYH200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券