区块链钱包人人都听说过。实际上钱包这个词并不十分恰当。在一般人的理解里,钱包是用来存钱的,电子钱包——如支付宝等——也只是把现实中的货币电子化,本质上是一样的,而区块链钱包并非如此。区块链钱包实际上并不储存任何数字货币,它主要是用来保存和管理私钥,并通过私钥进行交易。这样看来,将其命名为“私钥管理平台”似乎更为妥当些。
在之前的文章里,我们介绍了正在开发中的Trias钱包。Trias钱包除了会有区块链钱包的一般功能外,尤其注重钱包的私密性和安全性,其私密性主要是通过环形签名技术来实现的,那么,如何理解环签名究竟是什么,它又是如何保护发送者的隐私呢?本文旨在对Trias钱包采用的环形签名技术做一个简要的介绍。
环签名技术思想,最早可以追溯到十七世纪的法国。相传,法国群臣向国王提意见的时候,为了不让国王查出是谁带的头,便采用了这种环形签名的方式,所有人的姓名以圆环的形式排列,隐匿了顺序,首倡人也就无从查起。
谈到环签名技术,就不能撇开风靡一时的门罗币(Monero)。受环签名技术所赐,门罗被公认为是一个私密性强,不可追踪的加密货币。
一言以蔽之,环签名技术的意义,在于实现了交易的隐私性,即通过区块链系统中无关节点无法追查交易的发送方。简而言之,签名由私钥及诸多公钥产生,当其它节点验证时,只能确定签名是诸多公钥中的一个,却无从定位到哪个公钥才是具体的发送方。
在很多人看来,比特币已经具有很强的私密性。和比特币的私密性相比,环签名有什么特殊的优势呢?
比特币的私密性有着明显的缺陷。在比特币交易中,地址通常以收款方出现,有人要给我发送比特币,首先我会把我的地址交给他。但关键在于,一旦比特币地址和人的真实身份挂钩,其匿名性将会荡然无存。由于比特币地址是公开的,其交易记录,比特币数量都可以清楚查到。作为个人,如果我持有大量的比特币,一旦我的地址暴露,很容易被不法之徒盯上;而作为大型持币机构,则会有很多人时刻盯着他们的账户,通过观察其资金流向,进而推测未来市场的态势。
关于环签名,人们普遍会产生两个问题,一是匿名性导致的双花问题;二是对环签名的具体作用过程不太理解。比如在环签名的系统下,我向卖家购买某项服务,系统是如何在隐匿我的身份的同时,防止双花呢?
当我构造⼀笔交易时,系统首先会从记录的历史交易中,找寻到与自己想要使用的交易额度同等⾯值的其它输出记录 (属于其它公钥)。比如我买了一根5元的冰激凌,系统便会找到内部其他的5元交易作为诱骗输出,而其中只有一个的签名是由真正的发起者输出的,任何不相关节点(包括超级节点)都无法知道发起方是谁。
至于双花问题,我们知道,“双花问题”又称“双重支付问题 ”,形象地说,任何接收到电子货币的人都能够复制它并且多次任意发送,外界无法确认某笔交易是否出现重复支付。由于在环签名系统中,消费发起者的真实身份是隐匿的,节点们并不知道谁才是真正的发送方,这给防止双花问题带来不便,为解决这个问题,Trias借鉴了门罗系统采用了**镜像技术(key image)。
即相同的公钥会产生相同的key image,系统中所有的节点会维护一个已见到过所有的key image集合,如果⼀笔交易的 Key Image 出现在该集合中, 则被认为是⽆效的。这样就通过key image使得每个交易都是不同的,矿工据此可以非常容易地检测,判断是否双花。
目前,用到环签名技术的数字货币,如门罗币,是公认的隐私性最好的加密货币之一。但凡事总有两面,以环签名技术进行加密,会造成交易体积变大等影响,对平能性能有着更到的要求。
毫无疑问,环签名的技术不仅能应用于加密货币,也能应用于区块链钱包,或者去中心化操作平台。Trias CTO 魏明认为,未来区块链行业将会更加开放,隐私性将会受到前所未有的重视。