CryptoNote协议
CryptoNote 是一种应用层协议,支持多种分散的面向隐私的数字货币。它的目标是成为比特币背后思想的演变。
这两种技术的主要区别在于,比特币(和大多数数字货币)对比基于CryptoNote的货币太透明了,因为后者的块链几乎是匿名的,与非Cryptonote区块链相反。CryptoNote 货币使用一个分布式的分类账,记录其内置货币的所有余额和交易,如Bitcoin。与比特币不同,CryptoNote 的交易无法通过块链接来显示发送或接收货币的方式。交易的大概数量可以知道,但是不能知道发送方、接收方和实际数量。唯一可用的信息是实际数量低于显示的数量。访问关于交易的整个数据集的唯一的人是交易的发送者或接收者以及拥有一个或两个秘密密钥的人。
另一个显着的区别是 CryptoNote 的基于散列的工作量证明算法。比特币使用 SHA256,它是 CPU 绑定功能。这意味着参与者(矿工)只受其计算速度的限制,创建专用集成电路(ASIC)设备相对便宜,这将以每单位货币的哈希超过普通计算机。CryptoNote 使用内存绑定函数 CryptoNight,不能轻易流水线生产。
CryptoNote 代码不是 Bitcoin 的分支,所以它还有其他不同的内部算法,例如重新计算新的难度级别或新的块大小。
基本信息
- 中文名
CryptoNote协议
- 领域
区块链
起源
CryptoNote 技术首先在白皮书 CryptoNote v 1.0 中描述。更新的版本已经以 CryptoNote v 2.0 的名义发布。 Bytecoin cryptocurrency 是第一个已经实现底层加密协议的。 CryptoNote 首先在 Java 中开发,以便更快的启动,然后在 2013 年重新用C ++编写。
CryptoNote 基于许多早期的作品和协议,并考虑了以前提出的几个问题。以下是影响CryptoNote的最重要的论文和事件列表:
1983年 - David Chaum描述的盲签
1997年 - Adam Back发明的HashCash(工作证明制度的一个例子)
2001年 - Ron Rivest,Adi Shamir和Yael Tauman向加密社区提出了环签名
2004年 - Patrick P. Tsang和Victor K.提出使用环签名系统进行投票和电子现金;
2008年 - 由Satoshi Nakamoto出版的Bitcoin白皮书
2011年 - 比特币系统中的匿名分析,Fergal Reid和Martin Harrigan
2012 - 目的地址比特币匿名(CryptoNote中的一次性地址)。1
匿名交易和环签名
像比特币一样,CryptoNote 货币使用由用户公钥导出的伪随机数字和字母组成的公共地址。 地址作为用户的公共ID。 然而,与比特币不同,CryptoNote 交易隐藏发送方和接收方地址之间的连接。
发件人隐私
为了防止发件人识别,CryptoNote 使用其他几个密钥对发件人的公开密钥进行分组(更准确地说,它将发送者的输出与其他几个输出进行分组),使得无法确定谁实际发送了该交易。如果使用环签名,则在交易中引用的所有可能的发件人都是可以配置的,并且无法确定签名时使用的确切私钥。这种方法不需要用于混合硬币的专用主节点,并且不需要其他用户积极参与交易生成(参见CoinJoin)。它仍然保证网络原始发件人在他或她的帐户中有资金像普通签名方案一样发送交易。签署者不用以零知识的方式证明“我拥有对应于该特定公钥的私钥”这个事实,证明“我拥有至少一个对应于这组公钥的私钥”。
接收者隐私
在接收方端,该技术为每个汇款产生一个新的公共密钥,即使对于同一个发送者和接收方也是如此。通过发送者的随机数据和接收者公共地址,可以通过Diffie-Hellman协议创建一对唯一的专用和公共密钥。发送方为每次传输生成一次性临时密钥,只有接收方可以恢复相应的私钥(赎回资金)。没有第三方可以确定是否将两个不同的交易发送到同一收件人。
双重支付保护
匿名交易有潜在的问题。比特币和类似的货币使用公共分类帐来验证每个发送资金的人实际上在其账户中拥有这样的资金,并且以前没有将其发送给另一个用户。由于 CryptoNote 货币是匿名的,网络必须以其他方式确认交易的有效性。
CryptoNote 通过使用更复杂的方案而不是通常的环签名来解决这个问题:可追溯的环签名。 Fujisaki和Suzuki于2007年最初提出的算法允许跟踪两个不同消息的发送者,如果它们包含相同的标签并由相同的私钥签名。
CryptoNote 作者略微简化了方案,用密钥镜像替换了标签,并抛弃了可追溯性属性。他们称之为算法一次性环签名,“强调用户在其私钥下只生成一个有效签名的能力”相同密钥下的两个不同签名(双重花费尝试)可以轻松地链接在一起,只有一个将被存储在块链中。
关键在于在签名/验证公式中使用私钥的镜像。这些不是实际的密钥,这将大大有助于块链接膨胀,而是一个数字,这对应于每个私钥一对一(从密码散列函数确定性地派生)。密钥镜像不能用于导出私钥和公共地址,但是由于每个花费的密钥镜像都存储在块链中,所以网络将阻止任何重复。同样,创建密钥镜像的任何尝试都不会在交易验证过程中符合数学公式,并且将被拒绝。这样做的缺点是,无法识别任何企图用欺诈意图或由于软件或人为错误执行双重支出的人。然而,该系统将阻止这种尝试。
平等的工作量证明
CryptoNote 的工作量证明机制实际上是一个投票系统,用户投票选择正确的交易顺序,协议中的新功能和诚实的货币供应分配。重要的是,在表决过程中,每个参与者都具有相同的投票权。大多数 CryptoNote 货币使用 CryptoNight 算法运行它们的块链并保护他们的网络,唯一的例外是 Boolberry。 CryptoNight 是一种工作验证算法,它将图形处理单元(GPU)和中央处理单元(CPU)挖矿组合在一起,以创建一个能够应用于专用集成电路(ASIC)和快速内存片上设备的系统。这是为了通过货币的生活创造更均匀的硬币分配。然而,有一些关于僵尸网络易感性的问题。
该算法包括:
Keccak海绵结构;
具有随机查找(读写)的Scrypt-like 2 MB暂存器;
64位乘法;
高级加密标准(AES)加密;
哈希功能BLAKE,Grøstl,JH,Skein。