密码学20秒回顾
公元前,秘密书信已用于战争之中。西洋“史学之父”希罗多德(herodotus)的《历史》(the histories)当中记载了一些最早的秘密书信故事。
老祖想了下,这样写密码学会发生问题,一是篇幅不够,二是写一个月也写不完,三是阅读体验比较差。因此我们就花20秒回顾下密码学,目前密码学主要围绕对称加密和非对称加密做文章(请自行百度),为了解决各种应用场景,各种算法、变种层出不穷,其中广泛商业的就那几个(此处强行说些跳进老祖脑海的概念有:wep,des,3des,aes,ssl,dh,hash,rsa,密钥,私钥,公钥,证书,认证体系,签名,……)。这些加密技术最终都充斥在我们日常生活中,我们往往被人告知“这是加密的,您放心使用”。没错,dmch是加密的、匿名的,您的隐私受到被使用了6年的门罗技术保护,请您放心使用!
dmch与门罗的匿名技术
最近dmch项目发布了他们的生态自治系统图(见下图),图中关于加密这一块(红框)基本写清楚了dmch加密、匿名技术的整体情况。现在让我们为大家把这个脉络梳理清楚 。请注意,老祖只会简单的去讲技术解决的问题和简单原理,如果社区成员对具体内容感兴趣,那么建议自己通过互联网学习,因为每一项加密技术都有很多复杂的理论论证,都可以是一篇博士论文。
1.cryptonote协议
门罗系项目的起源就是cryptonote协议。cryptonote在行业内简称为cn,因此大家耳熟能详的cn算法币,其实指的就是门罗系使用cryptonote协议的项目,后文我们也用简称cn对cryptonote协议进行阐述。
cn协议与比特币有着类似的神秘起源。最初的白皮书于2012年出现并在tor(一种匿名网络)上发表,原始白皮书的作者使用笔名nicolas vansaberhagen。在不到一年后,以相同的笔名发布了第二版白皮书后,作者的身份仍然未知。
cn协议主要解决两个问题:一是不可追溯。不可追溯性是指对于所有传入交易,所有可能的发件人都可能为来源方,但是不知道是谁发送的;二是不可链接,不可链接性是指无法证明任何两个外向交易是发送给同一个人的;当然cn协议还解决了一些其他问题,感兴趣的社区成员可以参阅cryptonote.orgstandards这个网址。
环签名(ring signatures)
不可追溯的特性采用了环签名技术(注意,这个技术解决的是交易发送方的匿名问题)。环签名技术是基于david chaum and e.van heyst提出的群组签名概念(具体论文见:www.chaum.compublicationsgroup_signatures.pdf),环形签名使用混合在一起的多个公共密钥来混淆交易的真实签名者,这个动作不会影响验证交易有效的能力。值得注意的是环签名技术后来被证明在某些情况下可以被追溯(具体论文见:eprint.iacr.org2006389.pdf),这个问题后来被环机密交易(ring confidential transactions,ringcts))解决,我们在后续门罗板块介绍ringcts。
一次性密钥(one-time keys)
不可链接的特性采用了一次性密钥技术(注意,这个技术解决的是交易接收方的匿名问题)。由于在换签名的时候需要使用公钥(如果你不知道什么是公钥,请自行查阅非对称加密理解公私钥,这里不做赘述),导致可以在区块链上观察到公钥地址的所有传入交易,因此容易暴露交易各方,为此通过改良的迪菲-赫尔曼密钥交换技术(diffie-hellman key exchange)形成一次性密钥,保护交易各方。大致原理是交易的发送者使用其自己的数据对接收者的公共密钥进行哈希处理,从而为该交易创建唯一的一次性密钥。达到的效果是只有接收者可以生成交易的私有部分。
老祖不对cn协议进行过多的分析,cn协议是一个了不起的协议,他在匿名性的核心部分就是上述内容,如果您有兴趣更进一步了解cn协议,请参阅cryptonote.orginside。下图是cn协议交易传输的流程图。
2.dmch继承的门罗技术
cn协议衍生出最成功的项目是门罗(monero,xmr)项目,老祖希望在不久的将来可以再加上这么一句话,门罗项目衍生出最成功的项目是dmch。事实上cn协议的第一个应用是字节币(bytecoin),后因字节币存在一些不可挽救的问题,由7位开发人员(2位实名,5位匿名)在字节币的基础上开发了门罗项目,老祖忍不住再插一句,dmch是一群纯匿名的开发人员在门罗基础上开发的的项目。门罗项目在cn协议上做了很多工作来达成他“电子化、去中心化、匿名化”的愿景(见下图),我们在这里的关注点就是门罗的“匿名化”,由于dmch是门罗基础上的项目,因此他继承了门罗所有的“匿名化”特点。门罗的匿名性在cn协议的基础上进一步做了
改良:在保持原cn协议环签名技术的基础上进行了改进;新增一次性地址(stealth address)解决接收方的匿名问题,事实上这个就是cn协议里一次性密钥技术(one-time keys);门罗在原cn协议上做出的比较大的贡献是增加了环机密交易(ringcts),以解决交易本身的匿名问题。具体来说,ringcts没有引入前cn算法有显示交易金额的问题(上文所提在某些环境下可以被追溯),引入ringcts技术后,交易本身的金额被完全隐匿了。
老祖相信社区成员看到现在一定有一些似懂非懂的感觉,我们之前说过,如果一个复杂的东西不能用简单的语言讲明白,那么只能说明讲的这个人有问题。在基于上述这些背景的情况下,老祖用最简单的语言和图例帮助大家理解dmch使用基于cn、门罗匿名技术的强大底蕴:
加密体系
加密体系确实是一个很有意思的话题,匿名这个效果是建立在完备的加密体系基础上的,主要用到的是非对称加密体系里面的理论(比如公钥、私钥、dh、椭圆曲线等),老祖不在这里展开篇幅,社区成员需要理解的是dmch使用的cn、门罗匿名技术是经过了近10年打磨的成熟加密解决方案,他的匿名性得到了全世界的认可。
匿名过程
在实现匿名的过程中,单个用户有两个私钥、两个公钥(见下图)来完成整个加密过程。
环签名(ring signatures)、一次性地址(stealth address)、环机密交易(ringcts)三大技术解决交易匿名性(见下图)。
环签名(ringsignatures)解决的是交易发起方的匿名问题(见下图)。
环机密交易(ringcts)解决的是交易内容的匿名问题(见下图)。
3.dmch对于匿名技术的传承
通过上文的阐述,老祖相信社区成员对匿名技术、实现方式有了一个全面的认识,不得不说dmch在老大哥门罗的肩膀上具备了经行业打磨10年的匿名技术。那么dmch在匿名这一块是否是拿来主义,完全照抄呢?或者说dmch的团队是否具有传承匿名精神的能力呢?老祖在看了生态自治系统图(见上图 darma cash autonomous system architecture diagram)后,认为dmch不简单,那就是triptych。
triptych技术
monero研究实验室(mrl)在1月6日的报告中发布了triptych,并提出不信任对数大小的环签名。作为monero的核心匿名机制,该项研究着眼于减小环签名的大小可以显着改善货币隐私性这一点。triptych相对于目前环签使用的mlsag是一种新的环签名结构,triptych将mlsag并且和pedersen、 confidential transaction技术整合成新的ringcts,这可以使门罗币的匿名性提高十倍以上。triptych的主要创新在于使环签名的字节大小与诱饵的数量成对数关系(见下图,横轴是诱饵数量),而不是线性关系。这样环尺寸可以显著增加但不会出现大的性能问题。
老祖在这里不展开triptych技术,而是告诉大家dmch的开发人员也正在努力将triptych部署到dmch中去,这意味着,dmch项目是参与在整个匿名技术领域的讨论和研发中的,dmch不仅仅是门罗的追随者,更是与门罗和整个行业一起不断完善匿名技术的开拓者。
子地址技术
毫无疑问dmch和门罗对于通过技术提升匿名性的努力是孜孜不倦的,在这里老祖把自己最喜欢的dmch实用功能与社区成员分享,那就是子地址。我们知道dmch和门罗通过上文所提的技术保护了交易双方和交易内容的信息,但是有一个问题没有解决,如果我经常使用一个收款地址给不同的付款方,那么这个地址就与我形成了绑定(想想现在大家都用自己手机号注册各种应用造成的后果),那如何保护自己的收款地址呢?答案是子地址(见下图),我们通过创建子地址,
可以每次给出不同的收款地址,这样钱包主地址就永远不会暴露。这是一个非常实用且能够证明dmch项目专注应用的细节。更值得一提的是,老祖与开发人员沟通后获悉,相比于比特币钱包的子地址功能采取每一个地址就是一对公私钥的方案(相当于一个钱包文件里面,有无数个“小钱包”),dmch仍旧是一个钱包,一对公私钥,这在性能、可维护性上面,都要比比特币好。正所谓细节决定成败,一个项目在技术上确保了匿名性,又在使用上设计了加强匿名性的功能,这样的项目应该为数不多。
站在巨人的肩膀上为匿名共同努力
匿名技术保护的是人类最基本的隐私权,在如今大数据、人工智能等技术的不断发展,个人隐私被侵犯的现象越来越普遍,dmch匿名公链在这个层面的努力是值得我们敬佩和支持的。
dmch匿名公链在门罗的基础上为社区成员提供了值得信赖的匿名技术,dmch的用户和建立在dmch匿名公链上的生态应用都将享有行业十几年不断努力带来的“隐私”保护成果,dmch的产品站在巨人的肩膀上,有底气向所有社区用户承诺“你的隐私、我来保护!”。与此同时,dmch项目开发团队更是秉承着对隐私技术的创新意志,不断与行业共同努力,为了心中的理想而奋斗。在这个层面,老祖和整个达摩社区会一直支持dmch项目,希望他们能做出更好的产品。