首页 > 世链号 > 「区块链基础概念100」:公钥和私钥 | 027
币网讯  

「区块链基础概念100」:公钥和私钥 | 027

摘要:「区块链基础概念100」由火星财经「学习区块链」频道出品,在区块链基础概念之上延展深度阅读,并紧密连接产业,关注产业发展热点和趋势。

区块链基础概念100」由火星财经「学习区块链」频道出品,在区块链基础概念之上延展深度阅读,并紧密连接产业,关注产业发展热点和趋势。

1. 基础概念

公钥/Public keycryptography

加密系统是一种加密手段,它的每一个私钥都有一个相对应的公钥,从公钥我们不能推算出私钥,并且被用其中一个密钥加密了的数据,可以被另外一个相对应的密钥解密。

这套系统使得你可以先公布一个公钥给所有人,然后所有人就可以发送加密后的信息给你,而不需要预先交换密钥。

私钥/Private key

私钥在比特币的语境中,是指与一个地址(这个地址是与这个私钥相对应的公钥的哈希值)相关联的一把密钥。它存放在后台,使得你可以发送之前被发送到这个地址的比特币出去。需要留意的是,因为比特币使用的加密算法是ECDSA椭圆曲线数字签名算法,公钥和地址都可以从私钥推出。

2.深度解读

密码朋克的死亡圣器:公钥加密——区块秘史之三
 

数字货币

FENBUSHI DIGITAL × 通证通研究院 联合出品

文:宋双杰,CFA;唐皓

特别顾问:沈波;Rin

目录

1   公钥加密是什么——置之死地而后生

2   公钥加密的诞生——从军方到极客

2.1  军方起源——封存

2.2  民间起源——扩散

3   公钥加密的应用——密码朋克们的死亡圣器

3.1  PGP——保守派分发的隐形斗篷

3.2  阿萨辛·普利帝克(Assassination Politics)——激进派的老魔杖

3.3  托管加密标准(EES)——大型中心体的复活石

4   公钥加密——不再是密码朋克们的专利

正文

1公钥加密是什么——置之死地而后生

为了保密,我们放弃了绝对的保密。

公钥加密又称非对称加密,生成的密码总是配对出现的,即私钥和公钥。公钥加密主要包括商业上使用最为广泛的RSA公钥加密算法;ECC(EllipticCurve Cryptography)椭圆曲线加密算法,比特币的私钥就是通过这一算法生成的;ElGamal算法等。在生成公钥和私钥时,这些算法采用的技术可能有所差别,但其核心思想基本是一致的,即——非对称加密。

公钥加密的思想始于上个世纪四十年代,随着互联网和计算技术的蓬勃发展,将这一思想转化成实践的需求和技术基础逐渐产生。

2公钥加密的诞生——从军方到极客

2.1 军方起源——封存

1973年,公钥加密诞生于英国政府通信总部(GCHQ)的实验室,但他们选择将其封存。

詹姆斯·亨利·埃利斯(James Henry Ellis)是一位英国密码学家,1952年就开始供职于GCHQ。1970年,由他起草的GCHQ CESG第3006号研究报告——非秘密数字加密的可能性研究(THE POSSIBILITY OF SECURE NON-SECRET DIGITAL ENCRYPTION)被普遍认为是最早的记录公钥加密思想的论文。

二战结束后,随着计算机和电信技术的出现,军事活动中使用无线电变得越来越普遍,于是,密钥分发中存在的问题变得更加严重。保证安全通信所需所有环节都不出问题俨然成为了军方面临的最棘手的问题。1960年以来,詹姆斯·亨利·埃利斯(James Henry Ellis)一直对此忧心忡忡,甚至一度认为这个问题是不可解决的。与当时大多数研究密钥分发问题者的共识一样,埃利斯赞同“如果密码需要在事先被共享,就不可能进行安全的秘密通信。”的观点。1970年,埃利斯的这一观点在他阅读了GCHQ的一篇内参文献后产生了动摇,这篇论文题为《C-43项目最终报告》(《Final Report on Project C-43》)。

《C-43项目最终报告》是一篇由英国贝尔实验室发布于1944年10月的论文。为了保护电话通讯不受监听,这篇论文提出了一个有趣而且理论上可行的想法,接听者Bob给信号添加噪音,而这个去除这个噪音的方法只有发信人Alice知道。至于窃听者Eve,她虽然截获了夹杂着噪音的信号,但并不知道如何去除噪音。虽然这一理论在当时仅仅停留在思想实验的层面,但无疑给了埃利斯重要的灵感——收件人也应该积极参与加密过程。至此,埃利斯已经看见了解决密钥分发问题圣杯的模糊轮廓。

埃利斯隐约意识到,这种噪音的添加和去除方式或许可以通过某种数学方式来实现,但由于他并非数学家,所以一直没能找到合适的函数的来实现这一操作。在苦思冥想了三年之后,情况终于出现了转机。

1973年,22岁的剑桥大学数学系毕业生克里福德·考克斯(Clifford Cocks)加入了GCHQ麾下的间谍机构。工作不到两个月,考克斯就无意间听闻了埃利斯的烦恼。这位充满好奇心的学者灵敏的察觉到,要实现这种功能的关键是找到一个单向的,不可逆的函数,而两个相当大的素数相乘恰好可以满足这一点。就算两个素数的位数超过一百位,以当时的计算机运算速度,把它们相乘以获得其乘积也仅需几秒钟时间。然而,若是想通过这个乘积倒推出这两个原始的素数是什么,则可能需要几百万年的时间。仅用一个午间休息的不到的时间,考克斯就设计完成了这个函数,这一函数使埃利斯的理论变为了现实。这一加密方法是如此的切合军事通讯的需求,它当即成为了GCHQ最重要的秘密之一。乘积即为公钥,而生成它的两个大素数的组合即为私钥。沿用埃利斯的命名,GCHQ将这一方法称之为非秘密加密(no-secret encryption)。

美中不足的是,房间大小的晶体管计算机的计算能力还不足以批量地通过运行单向函数将信息单向转化为加密数据。事实上,直到后来三位学者重新发明了这个方法并将其公之于众之前,GCHQ都未能将这一方法转化为实际产品。

2.2 民间起源——扩散

1976年,公钥加密第二次独立起源于旧金山湾区三位学者的公寓中,他们将其公之于众,打开了潘多拉的盒子。

与公钥加密在英国军方那里起源的过程类似,公钥加密在民间的起源同样分为两个阶段。

1976年11月,在电气和电子工程师协会杂志的一篇约稿中,迪福(Diffie)和海尔曼(Hellman)发表了令全世界的军方和间谍机构都不寒而栗的文章——《密码学中的新方向》。这篇论文描述了一个能够使他们习以为常的窃听再也无法使用的加密手段。在这篇文章指出,在电信通讯火如荼地扩展的历史背景下,新的密钥分发方式必不可缺,此外,传统纸质文件上墨水签名的替代物,单子文档上的电子签名也是必要的。在纸质文件上签字相当容易,认证是本人的签字也易如反掌,然而要伪造一个笔迹却是极其困难的。为了在即将到来的网络时代安全可靠地通信,人们需要的不仅是用于加密文件的“信封和火漆”,也需要电子邮件落款上的“签名”。他们在论文中给出了解决方案是:Diffie-Hellman密钥交换算法。然而,这套最初的公钥密码系统的使用方式比较崎岖。Diffie-Hellman密钥交换算法并不能加密文件,它只是保证通信双方能够在一个不安全的网络中安全地分发密钥,然后双方再用这个密钥来加密和解密文件。比起Diffie-Hellman密钥交换算法,这篇论文最重要的贡献在于其将公钥加密的点子暴露给同样为网络时代通信安全头疼的密码朋克们。

1977年4月,三位来自麻省理工大学的学者,Ron Rivest,Adi Shamir和Leonard Adleman阅读了迪福和海尔曼的作品。与二十世纪九十年代的密码朋克思潮中的保守派类似,他们想要维持纸质邮件时代人们在通信时的隐私和身份认证。立刻,他们就被公钥加密的想法迷住了。Rivest意识到,要实现公钥加密系统,即公钥加密,私钥解密需要一种不可逆的函数。陷入沉思之后往往无法意识到时间的流逝,在波士顿灯火辉煌的午夜中,Rivest突然顿悟到了大值素数相乘容易分解难单向性。学术三人组立刻开始行动。Rivest,Shamir和Adleman提出的算法利用了这种不对称因式分解的特征。用于加密的公钥包含了乘积; 用于解密的私钥则包含了两个素数。这样一来,即使在不安全的渠道上共享公钥也是安全的,因为暴力破解公钥极其困难。这种函数很容易执行,但几乎不可能反推。

以学术三人组的名字首字母命名的RSA加密算法被公布在了《科学美国人》杂志上,这篇论文将GCHQ苦心封存的史上最强加密算法公之于众。这意味着所有人,包括敌对势力以及本国的人民都有可能利用RSA加密算法在军方和政府麾下的间谍组织的眼皮子底下秘密地通信。可想而知,NSA和GCHQ此时是何等的如坐针毡。

二十世纪九十年代的密码朋克运动以及加密安纳其主义思潮证明,NSA和GCHQ的担忧并非风声鹤唳。

3公钥加密的应用——密码朋克们的死亡圣器

1977年,Rivest等三人发明了RSA算法后,为了阻止公钥加密等密码学知识的公开传播,NSA用尽了立法、威胁学术出版商、直接警告这三位密码学家等手段。对此,NSA官方的说法是:“不加以限制的公开讨论密码学将会引发具有现实性和致命性的危险,它将严重的削弱政府传输情报的能力,也会严重削弱政府从敌对团体的觊觎下保护涉及国家安全的信息的能力。”大洋彼岸的GCHQ甚至根据国际武器贸易条例将加密技术分类为高精尖武器,只为阻止加密技术的研究和扩散。

在接下来的近二十年中,英美的政府和军方无时无刻不在尝试控制民间对于密码学的研究和应用。而这些努力和1972年刚刚过去的水门窃听事件一起,使得民众心中对大型中心体的不信任逐渐生根发芽。

1993年,密码朋克运动的创始人之一埃里克·休斯在密码朋克运动纲领性文件《密码朋克宣言》中写道“在电子时代,对于开放的社会来说,隐私必不可少。隐私不同于秘密。隐私是某人不想公之于众的东西。而秘密,是他不想让任何人知道的东西。隐私是一种权力。它让某人有权决定公开什么,不公开什么。” 正式宣告了密码朋克通过密码学的手段保护个人网络隐私权运动的开始。正如战士以枪械为武器,文学家以笔杆为武器一样,公钥加密算法是密码朋克们最重要的武器。在从大型中心体手中为公众争夺隐私权的过程中,密码朋克们将公钥加密的力量发挥得淋漓尽致。

3.1  PGP——保守派分发的隐形斗篷

密码朋克中的保守派只是想在网络时代保持纸质邮件时代的原状而已。在PGP的保护下,一个人可以在任何大型中心体面前完全隐形。

PGP(Pretty Good Privacy)是第一款面向公众发行的开源邮件加密软件,其采用的公钥加密系统即使现在的技术也几乎不可能暴力破解。

1991年,最早的一批密码朋克之一,Philip R. Zimmermann在互联网上免费发布了一款名为PGP的邮件加密软件。在开发PGP前几年,在二十世纪80年代的科罗拉多,软件工程师Philip以一个全职军事政策分析员的身份在核武器冻结计划中工作。那时的世界局势与现在不同。里根还在白宫, 勃列日涅夫还在克里姆林宫, FEMA(联邦应急管理局)告诉市民随时做好撤退的准备, 无数的人们恐惧着世界将陷入残酷的核战争。百万的民众走到中央公园为和平而游行。在组织国内和平运动的过程中,因为反对军备竞赛和冷战,要求政府关闭核试验场,1984年,Philip在内华达州核武器试验场被捕。法庭上,他惊异地发现自己的邮件往来和通话记录在国家机器面前暴露无遗。于是在狱中,他下定决心,为所有互联网的使用者开发一款免费而且开源的邮件加密软件。出狱后,他立刻在家中开发起了PGP,与大部分密码朋克一样,在开发PGP的途中,他没有用于支持生活的资金来源,也没有任何一个助手的帮助。在1991年, PGP的第一个版本被公开发布,政府随即规定:出口或是公开密钥算法的产品被视为与私自出口或买卖军火同罪。Philip也非等闲之辈,利用美国宪法规定的言论自由,他通过书籍将PGP的源代码出口至世界各地。此举让美国政府相当不满,遂展开了对Philip长达三年的刑事调查,指控Philip违反了美国密码出口法律。最终,在众多开源团体和用户对Philip的坚决维护下,1996年,美国政府不得不撤销指控。

PGP采用了RSA公钥加密算法,虽然技术上没有较大的创新,但它是第一个将公钥加密算法带到普通人的生活中去的软件。有了PGP,即使是地球上最强大的国家机器,破解一个十几岁的孩子发送给同学加密邮件也无异于无法实现的梦想。

数字货币

遗憾的是,使用PGP的人虽然至今依旧遍布全球,但占互联网用户的比例却始终非常稀少。一方面是PGP注重的是从政府手中保护网络用户的隐私权,一定程度上忽略了制作用户友好的UI;另一方面是很多网络用户并未意识到他们的隐私权时刻处于大型中心体的觊觎之下,他们普遍持有着一个错误的想法:“既然我登陆我的QQ邮箱要密码,那我发的邮件不就是加密的吗?”

3.2  阿萨辛·普利帝克(Assassination Politics)——激进派的老魔杖

密码朋克中的激进派想让网络提供的自由扩展到日常生活中,其手段可能是致命的。

阿萨辛·普利帝克(Assassination Politics),是吉姆·贝尔建立的一个利用了公钥加密技术的阿萨辛市场,从技术上讲,没有人给出赏金。事实上,它以“预言”的名义,使得成功执行任务的阿萨辛能够领到不菲的回报。

1992年8月,麻省理工大学的毕业生贝尔提出了一个让密码朋克之父迪姆森·梅(Timothy May)都觉得略显过分的可怕想法。贝尔提出了阿萨辛市场的概念,这是一个可以颁发现金奖励的组织,该现金奖励的获得者将是正确“预言”特定人员死亡的人。

贝尔认为,面对强大的大型中心体的侵犯,普通人几乎已经无计可施,所以在这种情况下,阿萨辛是一种合法的自卫方式。从这点上讲,公钥加密确实如同武器一般。若这套系统按贝尔想象的那样成功运行,网络中的由公钥加密保证的自由将延伸到日常生活中。届时,大型中心体中尸位素餐,贪污腐败的雇员将人人自危,苛捐杂税,横征暴敛的大型中心体将极大程度地收敛他们对公民自由侵犯的行为。战争也将不复存在,社会将在自治中稳步而自由地发展,世界将开启崭新而美丽的新篇章。

贝尔的阿萨辛·普利帝克系统的核心是一个愿望名单,这个愿望名单包含两个栏目。其中一栏是捐赠者希望看到的死讯的人的姓名,另一栏是这个姓名下已经累积的“捐款”。这个系统的参与者也有两类,一类是普通的捐赠者,他们将把“捐款”投放在他们愿意看到死讯的人的姓名下;另一类是“预言”者,他们会去“预言”姓名栏下的人死讯发出的日期,如果“预言”被证实,那么他将得到所有该目标名下所有的“捐款”。此外,为了防止“预言”者实际上并没有“预言”的能力,而是寄希望于猜对这个日期,“预言”者必须支付一定数量的“匿名支付型通证”,这一数额必须使得随机猜测变得不经济。

在贝尔看来,通过他设计的机制,绝对无法被攻破的公钥加密技术使得事实上的“雇佣阿萨辛”完全合法化。

“预测者”参与这个系统的过程分为两个部分。首先,“预测”者向组织发送一封邮件,整个邮件通过组织公开的公钥进行加密,也就是说只有拥有私钥的组织可以解密它。不过,在这个阶段,组织只能解密一部分内容——这个邮件中包含的匿名支付型通证,这些匿名支付型通证将被视作“预言”者并非胡乱猜测的诚意金。至于邮件中的另一个部分,其内容为“预言”的细节,即目标的姓名的死期,由“预测”者的公钥所加密,只有通过“预测”者的私钥才能解密,而目前组织并不知道“预测”者的公钥。通过这种方式,组织可以解密外部信封并找到匿名支付型通证,但他们不知道在最里面的信封中预测了什么,无论是名称还是日期。

在整个过程的第二个阶段,此时,某位大人物的死讯应该已经通过各种媒体发布了出来。即,“预测”者的“预言”成为了现实。预测者会向组织发送另一个加密的“信封”,其中包含先前“预测”信封的私钥和公钥,以及一个用于加密用作奖励的匿名支付型通证的新的公钥(为了侧重展示“预言”的实现前后的操作流程,示意图中省略加密奖励的过程)。组织将用新获得的私钥解密“预测”者的“预言”内容,当组织确认其日期和目标“预测”正确时,“预测者”即有权获得奖励。

数字货币

在贝尔的十篇关于阿萨辛·普利帝克论文中,在每个‘predictor’字眼上,都加上了引号。毕竟,“要使一项预言成真,最好的方式就是去执行它”。据贝尔称,这一系统至少比传统的雇凶杀人有三点优势。

首先,它完全隐藏了“预测”者的身份,这使得任何潜在的“预测”者都不必透露他的名字或位置。其次,它允许“预测”者进行“预测”而不会泄露“预测”的实际内容,这一点保证了他的“目标”不可能得到他的意图的早期警告(并且失败的“预测”永远不需要透露)。事实上,除非他想要获奖,否则他永远无需透露他的预测。第三,它允许“预测”者匿名地将他的奖励授予他选择的任何其他人,因为他可以将此匿名支付型通证提供给任何人而不用担心它将被追踪。至始至终,即使逻辑上很有可能,“预测”者和凶手都不会因为这个系统的原因在物理上被联系起来。

随着匿名支付型通证的应用,贝尔疯狂的想法甚至已经成为了现实。由一名加密安那齐主义者在2013年创立了第一个实践化的阿萨辛·普利帝克系统。它利用贝尔的理论来接受捐赠并为“预测”成功的人发送奖励,它利用了密码朋克迪姆森·梅创立的暗网来隐藏自己的物理位置,并且利用了中本聪发明的BTC作为匿名的电子现金维持其激励体系。在该网站能够访问的期间,在其愿望清单上列出了美国前总统奥巴马,经济学家伯南克等著名公众人物。其原暗网网址为assmkedzgorodn7o.onion,不过在2015年后,即使借助Tor浏览器,我们也无法对其进行访问。但是可以肯定的是,继承着贝尔的思想开展着死亡“预言”服务的网站依然在暗网的某处存在着。

3.3   托管加密标准(EES)——大型中心体的复活石

既然无法阻止公钥加密的传播,那么不如去尝试主导它。——白宫1993.4

哈利波特系列中死亡圣器之一复活石拥有复活死者的力量,只不过,使用者在使用了复活石之后,死者将以介于灵魂和实体的形态,以违背使用者愿望地方式复活,使用者在复活了死者之后反而会受到精神上的折磨。

为了恢复自身监听公民通信的特权,联邦政府颁布了托管加密标准(EES),该标准涵盖了市面上所有统称为“Clipper芯片”的加密处理器。它旨在实现加密电信,特别是手机上的语音传输。这个标准的核心功能并非保护民众的通信安全,而在于内置于芯片中的窃听后门。

EES系统的基本功能在理论上很简单:当两个设备建立安全连接时,执法机构仍然可以掌握用于解密加密数据的密钥。通信虽然受到保护,但FBI依然可以在他们想要这么做的时候去阅读这些加密的邮件或者收听通信者的通话。

为了进行安全的电话呼叫,两个电话将首先建立所谓的会话密钥以加密对话。会话密钥可以解锁密文并显示明文。这个密钥是事先给定的。因此,NSA只需要找到一种方法,使“后门密钥”可供执法部门使用,而不会影响手机的安全性。为此他们保留了会话密钥的副本。会话密钥将使用烧录在加密芯片上的密钥来进行加密,这个密钥被称为“单元密钥”。“Clipper芯片”在被制造出来的时候,单元密钥就被烧录到芯片上,无法更改。单元密钥由联邦调查局和NSA共同保管,这样一来,当两个机构都认为有调查某一桩通信的必要时,它们就有能够调用可以破解加密信息的备用密钥。在白宫看来,ESS不仅为美国人提供了安全的电信服务,也让执法机构在必要的时候能够轻松地进行窃听。

密码朋克们对于一个政府被允许持有所有密钥副本感到非常愤怒。“是不是说,有了这个芯片,希特勒和希姆莱就可以利用‘单元密钥’来确定犹太人与谁交流,从而确保他们就可以被赶尽杀绝?”密码朋克之父迪姆森·梅提出了质问。

1994年,密码朋克布赖茨(Blaze)对EES发出了一记死咒。布赖茨供职于 “Clipper芯片”的一家供应商,AT&T。借职务之便,他发现“Clipper芯片”上存在一些缺陷,这些缺陷导致“单元密钥”相当容易受到篡改。他在1994年8月的一篇著名的论文中发表了他的研究结果。这样一来,密码朋克们只要重写“单元密钥”,“卡密破”就只有加密通话的功能了,执法部门拿着失效的“单元密钥”对于那些加密了的通信只能望洋兴叹。EES对联邦政府监听特权的复活并没有持续太久,整个项目没能撑到1994年的圣诞节就被砍掉了。不仅如此,EES事件还留下了别的恶果。

联邦政府重新复活监听民众隐私权利的努力无异于投向密码朋克圈子的一枚重磅炸弹。事后回顾这段历史时,我们甚至可以认为EES是密码朋克运动一直以来等待的一个重要的契机,它成为了密码朋克运动的重要催化剂,加深了社会各界对大型中心体的不信任,无异于联邦政府用于自裁的利刃。

4公钥加密的应用——密码朋克们的死亡圣器

与密码朋克们的其他许多天才创建一样,公钥加密技术已经深入了我们的日常生活。

应用发行商在发布程序时,一定会对其发行的应用程序进行数字签名。这样一来,用户在利用手机或电脑安装这个程序时,设备会自动检测这个程序是否真的是该应用发行商发行的。这样就可以防止某些别有用心的人在程序安装包中植入恶意代码。

数字货币

开发者在支付宝旗下的蚂蚁金服平台上创建生活号时也必须通过RSA算法生成私钥和公钥以保证账号的安全。当用户在使用这些服务时,其实已经享受到了公钥加密算法带来的安全保障。

数字货币

附注:

因一些原因,本文中的一些名词标注并不是十分精准,主要如:通证、数字通证、数字currency、货币、token、Crowdsale等,读者如有疑问,可来电来函共同探讨。

数字货币

导读:公钥加密的思想始于上个世纪四十年代,随着互联网和计算技术的蓬勃发展,将这一思想转化成实践的需求和技术基础逐渐产生。

小白必读:公钥私钥分不清就玩区块链?分分钟损失8个亿
 

许多区块链小白,总会发出关于公钥和私钥的灵魂拷问:“公钥和私钥是什么关系?”“公钥和私钥有什么用?”“丢了私钥怎么办?”……

今天熵链观察就为大家带来一篇“公私分明”的科普帖:

地址、公钥、私钥有什么用?

地址:相当于银行账号,收款的时候需要将地址给别人,让别人将数字资产转进你的地址里;

私钥:相当于银行卡密码,有了私钥才可以动用对应地址下的数字资产;

公钥:相当于银行账户名,作用是证明私钥和地址的归属权。

比如张三要给李四转一笔账,他首先需要知道对方的卡号(地址),接着要输入自己的密码(私钥),输入金额,他需要通过查看银行账户名(公钥)确保自己不会转错钱。

安全

如何生成私钥、公钥和地址?

正如我们使用钱包来存放人民币一样,存放数字货币也需要“钱包”的。

钱包是我们用来生产、管理私钥和地址,接收和发送加密货币的工具。

货币钱包有很多种,有PC端的也有手机端的,也有专门的一个设备的硬件钱包,甚至还有用纸写上私钥的纸钱包。钱包是什么材料的其实并不重要,重要的是里面存储的私钥。

当我们下载一个钱包APP后,就可以生成一个私钥和地址。私钥可以看作一些随机选出的数字,不过这些数字很难通过计算得出来,非常安全。

私钥一般不会直接在钱包中显示出来,而是被存储在钱包后台的文件里,由钱包软件进行管理,通过助记词等方式帮助你记忆。

公钥也很少会看到,它的主要作用是验证私钥的签名,一个私钥签名的数据,只有对应的公钥才能对其进行验证,而地址也是从公钥生成的,这样就可以验证花费的交易是不是属于这个地址。

安全

安全

创建钱包,备份助记词后生成私钥和地址,助记词可帮你再次导入私钥到钱包中

丢失私钥后果有多严重?

一名英国工程师丢失了储存钱包私钥的硬盘,急得要去垃圾掩埋场里把硬盘给挖出来,然而政府拒绝了他的申请,7500枚比特币(当年市值约8亿人民币)就此不翼而飞;

还有人把私钥写在纸上,结果被清洁工丢掉,从此钱包里的7个比特币再也和他没有任何关系;

2017年一位网友由于禁受不住空投糖果的诱惑,竟然把私钥输入在一个钓鱼网站,近2万个EOS被盗走……

安全

“史上最贵硬盘”失主

加密货币账户和现实中的银行账户有一点不同——没有中心化的机构帮你做信用担保。

在银行开户或者办其他业务依据的是身份证信息,就算你忘记银行卡密码甚至卡号,都可以通过身份证找回卡里的钱。

在加密货币系统中,没有身份证信息做担保,私钥才是“证明你是你自己”的工具,因为私钥能生成公钥,公钥能生成地址。

拥有了私钥就相当于拥有了数字资产的所有权,忘了私钥你就再也找不回自己的账户,拿走你的私钥就可以拿走你的数字资产。所以当你创建加密货币账户,平台总会提醒你注意保存好私钥。

不过私钥由一长串字符组成,没有规则可循,而且非常难记,应该怎么保存才比较妥当呢?

安全

私钥安全指南

1. 避免钓鱼网站,密码强度要高,不要多个账户使用同一个密码。

2. 创建好钱包后就立刻备份,使用纸张抄写下来,是目前最安全的方法。

3. 建议备份多个安全的地方,如果您拥有大量比特币,建议把备份存放在安全的保险箱里。

4. 如果你有大量的数字代币,强烈建议购买硬件钱包。硬件钱包通过单独的硬件保护私钥,避免私钥直接暴露在互联网上。硬件钱包都会附赠助记词的卡片,生成钱包的时候一定要抄写下助记词,当硬件钱包丢失或者损坏后可以恢复钱包。

导读:公钥和私钥是什么关系?公钥和私钥有什么用?丢了私钥怎么办?

非对称加密法入门:私钥、公钥、RSA全解析

作者:村头二旧 (加密二锅头)

之前所有的加密方法都是对称加密,说的直白一点就是加密和解密都是同样的密码。

比如你用银行账号对应的密码可以取出现金,别人拿着这张卡你给他说了密码也能取出现金;比如你的email登录密码,比如微信、支付宝登录密码等等,这些都是对称密码的应用。

只要是同一把钥匙在开一个锁,都是对称密码。

可是对称密码有一个问题是很难解决的,就是秘钥的传输。

之前讲的量子通讯也是钥匙传输的目前已知的最先进安全的钥匙分发方式,但是一般情况下,普通用户是很难使用的。想象下面一个场景,你媳妇儿给你电话,说他在网上购物,需要你的信用卡密码,你给她说了,他就购物,如果这个时候,有人也在监听你的电话,他也在购物就等这个密码呢,他也去刷卡,这时候怎么办?

问题都在秘钥的传输方面。

环节越多,出错越容易,能不能砍掉这个秘钥传输的环节?

可以。用公钥加密,也就是用一对儿钥匙。

两把钥匙?用把钥匙开一个锁,这个锁不就是烂锁了吗?并非如此。

现在有两把秘钥:公钥和私钥。

公钥,就是公共的钥匙,这把钥匙谁都可以知道;私钥是本地的,私人的钥匙,只有自己知道,私钥就不发送不传输了,因为不传输也就没有了传输的问题。

比如说,你要发一封email文件给你家人,这个是非常机密的东西,你家人在网上生成了钥匙对儿,也就是公钥和私钥,然后把公钥给你发过来,私钥自己记录好,不要放在网上。

你收到公钥后,用公钥对自己要发出的信息加密,然后发给家人,家人收到后,拿着私钥进行解密,就看到了你的重要信息了。

这里面有几个点,公钥,也是家人发给你的,如果被别人截获了怎么办?

没关系,公钥即使很多人知道没关系的,因为公钥只能加密,而解密的是公钥对应的私钥,也就是说别人知道你的公钥,只是方便他们给你发信息。他们加完密,自己都解不开。

比特币

 

这就是非对称加密的工作原理,因为出现了公钥,这个之前历史上没有的东西,所以,非对称加密也被称为公钥加密。

生成私钥公钥的方法,网上一搜就有了,不必在此赘述。

总结下公钥加密的特点:

1, 公钥和私钥必须成对出现,不能分别单独生成,

2, 公钥任何人都可以知道,私钥只有接收信息的人知道;

3, A发给B信息的过程是:A拿着B的公钥对一段要发出的信息加密,B收到后,拿着自己也就是B的私钥进行解密。

公钥加密有什么用?

比特币的加密方式就是公钥加密。所以你才有什么私钥公钥和地址,公钥可以推出地址,地址推不出公钥,即使推出来也没关系,因为本来公钥就是公共的钥匙,谁想知道都可以。本质上所谓生成比特币的账户,就是生成一个秘钥对儿,有了公钥和私钥,然后公钥再推出个地址,一个比特币的账户就生成了。这个生成账户的方法,比传统金融里去银行开户,方便和安全很多,当然,传统银行也很安全,中心化会对你的账户保护,比特币是人类历史上第一次用技术解决了安全问题。

我们很快会专门去讲比特币的加密原理,今天就简单说一下。

RSA是什么?为什么好多人都会讲到RSA?

RSA是非对称加密法里面用的最广泛的一种加密方法,当然,还有别的,比如比特币里还有一个神奇的椭圆曲线加密,就是一种非对称加密法,但不是RSA。曾经,这个椭圆曲线加密的方法选择,受到以太坊发起人vitalik的称赞,他说中本聪可能是蒙的,选的这么好。

RSA加密因为创始人名字的首字母分别是R、S和A所以叫RSA加密,他们发文章的时候用Alice和Bob两人的名字代表A和B,所以密码学里面就形成通用管理,“Alice发一个比特币(或一段信息)给Bob”,这样的句式开始出现。窃听者总被被叫做Eve。

好了,看了上面的内容,其实今天已经明白了非对称加密的主要知识,下面的内容比较困难,各位读者可以选择性阅读。

RSA大概是什么方法?为什么总有专家提到什么“大数的质因数分解”?“大数的质因数分解”和RSA非对称加密有什么关系?

比特币

加密过程就是明文的E次方然后mod N。mod代表的是乘法求余数的运算符号。

E和N的组合就是公钥,D和N的组合就是私钥。E取自单词encryption加密,D取自单词Decryption解密,N取自单词number数字。

N=p * q,p和q是质数,很大的质数,所以难以破解,如果是很简单的质数比如2和3,那就太简单了,当然真正运算的时候都是二进制,动辄512bit的质数相乘,这也就是为什么破解私钥很难的原因之一,因为人类暂时没有发现对大整数进行质因数分解的高效方法,所以,RSA比较安全。现在的银行系统的安全也是RSA加密的,N要求大于300位,如果要分解这样一个数,需要的时间单位数量级是亿年,亿万年的时光去破解一个密码,假设科技按照现在的水平没有突破的话。

为什么加上mod N这样的东西?因为没有这个就是个对数问题,很容易求解,如果有了mod N求明文就成了求离散对数的问题,同样的,人类就目前没有找到求离散对数的高效方法

鉴于之前的文章出现了很多数学公式,今天关于RSA的讲解控制在500字内,这是一个引子,如果你对RSA感兴趣,可以私信沟通也可以去网上搜索更多的资料,但是,对于区块链从业或者是数字货币投资者来说,只需要理解本文的重点部分即可。毕竟,看到离散对数的时候,很多读者已经看不下去了。没关系的,掌握关键,吸收精华即可。

明白非对称加密(公钥加密)对理解比特币的公钥私钥以及钱包和工作原理非常重要,所以今天讲解下非对称加密技术。

试问如果我发出去的是钱,而不是一封信,公钥加密给你,你用私钥打开后可以用,是不是就是比特币?或者反过来问,我发给你一个账本信息,你能打开这个账本信息,于是这个账本信息最后一条写着,我给你转了10个比特币,是不是这条信息就成了你有10个比特币的证明,也就是说这个账本信息本身就证明了你有比特币了?信息就变成了钱,顺着这个思路去思考去理解比特币吧。后面会仔细讲的。

这个世界的大门慢慢在打开,感谢能从隐藏法、移位替换法、维吉尼亚加密法、恩尼格玛机一直同行到现在,比特币和区块链的核心很快就要触碰到了。

导读:读完这篇文章,就理解了区块链的一半

3.产业动态

私钥、公钥有何区别?聊聊管理加密资产的基本原则
 

公钥

原文标题:《How to not lose your cryptocurrency》
作者:Edward Iftody
翻译:iGreedMind

如果 Facebook 创建新稳定币的传言真的,那么我认为现在是时候了:普通人开始学习如何负责任地使用加密货币。

像微信支付和支付宝这样的电子支付平台在中国已经非常普遍。现在似乎不可避免的是,使用电子现金的趋势将很快传遍世界,看起来某些加密货币将填补这个利基市场。

但是,如果你跟我一样,是加密货币世界的新手,你可能会非常关注煽情的新闻故事,比如这样的新闻:加密货币交易所的黑客攻击,以及数百万美元的比特币从交易所或投资者账户中消失。

这样你自然会想:「如何使用这种新的电子货币,同时不会发生丢失风险,或者怎样防止辛苦赚来的现金被盗? 」

交易所的潜在问题

如果我们想了解如何最好地保护加密资产的安全,那么第一步就是要了解投资者是如何因为盗窃、欺诈或错位操作而丢失他们的代币的。加密货币从 2009 年才正式出现,但我们已经一些历史案例,可以帮助我们更好地理解如何保护我们的投资。

Mt. Gox (2014 年 4 月)

Mt.Gox 鼎盛时期处理全球约 70% 的比特币交易。2014 年,85 万枚比特币要么消失,要么被盗,这些比特币在当时价值超过 4.5 亿美元。尽管根据维基百科,这些比特币究竟是如何被盗或丢失的还不清楚,但我们知道,这些代币是在一段时间内从 Mt.Gox 的热钱包里被拿走的。

Quadriga CX (2018 年 12 月)

Quadriga 的加拿大创始人 Gerald Cotton 于 12 月 9 日在印度因克罗恩病相关的并发症突然去世。大约 1.8 亿加元的损失,尽管没有人完全确定,这些资金被放在一个只有公司创始人才能访问冷钱包中。更神秘的是,Quadriga 早在 2018 年 1 月就出现过流动性问题,这引发了许多有关资金消失的阴谋论。来源:BBC 新闻

这些案例清楚地说明了黑客被加密货币交易所的热钱包所吸引。加密货币交易所是一个很好的目标,因为有很多数字加密货币和私钥集中存放在一个地方。而交易也需要经常连接到互联网,因此理论上容易遭受黑客攻击。

为保持加密资产安全,Quadriga 的案例提出了一个新问题:即使资金存储在由加密货币交易所控制的冷钱包中,如果持有加密密钥的人遭受意外怎么处理?

为了消除在加密交易所中被盗或丢失私钥导致资产丢失的可能性,应将加密货币资产转移到个人控制私钥的设备上。

了解公钥和私钥

每个钱包都有两种 key:一个是公钥。它类似于「地址」,公钥可通过电子邮件发送给其他人,或者可出现在钱包应用中的二维码,以便于接收其他人发过来的加密货币。公钥不允许人们从钱包中取出加密货币。如果你想将加密货币发送给其他人,他们须向你发送他们的公钥或让你扫描其地址二维码。

第二个 key 是私钥。首次设置钱包并创建恢复短语时,私钥会被创建。恢复短语是一系列 12-24 个单词,你需要在首次安装钱包和设置帐户时备份这些单词。如果丢失设备,必须使用这些秘密短语(蓝狐笔记 iGreenMind 注:这些恢复短语,也就是我们常听说的助记词,一定要注意恢复短语的拼写和顺序,不能有一丝一毫的差错)来恢复帐户。

千万不要用电子方式(蓝狐笔记 iGreenMind 注:包含联网方式)保存恢复助记词。把助记词写在纸上并保存在安全的地方。如果设备丢失、被盗或遭到破坏,只需将钱包应用下载到另一部智能手机,输入助记词即可立即再次访问你的加密资产。

但是,处理自己的私钥也存在缺点。如果丢失了助记词和手机,则无法找回资金。如果其他人可以访问你的私钥,则无法阻止他们设置钱包并使用助记词来访问你的资金。

因此,请一定要特别慎重、严谨、仔细地保护好助记词,不要忘记更新遗嘱,并告知遗嘱执行人和受益人,详细说明在何处查找以及如何使用助记词。

是否害怕购买加密货币?

我不这么认为。直到六年前,我还经营一家将客户财务数据与证券价格相结合的金融科技公司,以创建可在线访问的财务分析报告。有时新客户会问我,将投资者数据存储在“云端”中是否存在风险?我总是这样回答:「没有什么是 100%安全的,但我们的平台比你办公室里的纸质文件更安全。」

与在线股票交易账户类似,加密货币交易使用安全协议和程序的组合来确保客户资产的安全。从上面的例子可以看出,一直保存在加密货币交易所中的个人账户加密资产,总是处于某种程度的风险中,因为个人账户里的加密货币的私钥是存储在交易所中的。如前所述,同一个地方存有许多私钥对黑客来说,都是诱人的目标。如果黑客可以使用这些私钥,那么帐户就容易遭受攻击,一旦被盗,就无法取回。

虽然在线帐户中的资金被盗的风险可能非常低,但不要在在线交易账户中留下大笔资金。

保持加密货币安全的一些基本规则

规则 1:如果不进行加密货币交易,请养成将钱转移到个人控制私钥的钱包的习惯。

如何知道自己是否控制着私钥?简单,是否设置了 12 或 24 个单词的助记词?如果有设置,则可以控制该钱包的私钥。如果没有,那么就是其他人在控制钱包的私钥。

规则 2:不要在 PC 上存储加密货币。与智能手机操作系统相比,Windows PC 更容易感染病毒。

智能手机操作系统比 PC 操作系统更简单。这留给黑客更少的机会进入手机。一般来说,系统越简单,黑客能利用的机会就越少。(Andreas Antonopoulos)

规则 3:如果不需要拿代币进行交易,那么将加密货币存储在冷钱包中。

冷存储(或冷钱包)是用于存储与互联网断开连接的加密货币的设备。如果你的设备与互联网断开连接,黑客就无法攻击。

安装了私钥的旧智能手机,与互联网断开连接或者至少关闭。如有闲置手机,这可能是一个既简单又便宜的选择,但有些人认为这可能不是最安全的选择。

为了更加安全,可以考虑购买像 Trezor 或 Ledger 这样的专用冷钱包(蓝狐笔记译者注:这是一种硬件设备,但不要认为买了这种冷钱包直接使用就万事大吉了,作为使用者,一样需要了解学习专门的知识以达到真正为自己的资产负责的目的!)。

这些特殊的类似拇指驱动器的设备专门用于加密货币的冷存储。一些专家建议,应该从制造商那里购买新产品,使用过的设备可能已经被黑客改变了。与软件钱包一样,如果冷钱包设备丢失或损坏,只要仍然拥有助记词,就可以恢复资金。

处理加密货币时使用常识

热钱包、冷钱包、在线钱包、离线钱包 —— 这听起来信息很多,可能让人对安全性感到困惑。因此,回顾一下可以使用和修改的常识性建议列表。

  • 如不进行频繁交易,应该在个人在线账户中保留多少资产合适?可能不用保留。当完成交易后,将加密货币提现转移到个人私钥控制的设备上。
  • 对于日常购物,只需在热钱包中保留一定数额的资金,类似于实物钱包保留的金额一样。如果在一个实物钱包里携带超过几百美元法币感到不舒服,为什么要在加密货币的热钱包中携带更多的加密货币呢?
  • 会在家里留下数千美元的现金吗?可能把它放在家里的保险箱里,对吗?个人的大部分加密货币应冷保存在智能手机上(需要与互联网断开连接)。
  • 数万美元的金币呢 ? 把这些东西都放在家里的保险箱里吗 ? 也许会把它放在一个安全的保险库可能会更好。如果有大量的加密货币资产 , 一旦丢失会导致破产 , 这个时候可以考虑购买至少一个专用的冷钱包设备 , 然后将其存放在家里可防火的保险箱或者更加安全的保险库。

据专家介绍,如果负责任地管理加密货币,它会跟一个人处理现金一样安全。会偶然意外丢失加密货币吗?当然,正如大多数人也会偶然在街上丢失现金一样。加密货币会遭遇盗窃吗?一样的道理,每天都有现金被盗,无论是在街头,还是在像伯尼麦道夫这样的庞大金字塔骗局。

就像处理现金一样,必须十分小心谨慎地处理加密货币。如果一个人像对待现金那样,并且学习和使用一些常识来仔细对待加密货币,那么在保护资产方面就更少遇到麻烦。

导读:千万不要用电子方式保存恢复助记词。

如何用比特币私钥创建以太坊地址
 

在区块链的钱包中,私钥可以产生出公钥,而反过来要想从公钥推算出私钥则是不可能的。用公钥加密的信息可以用私钥来解密,而用私钥签名的信息则由公钥来验证,验证通过后才能证明该信息确实为私钥持有人所发布。以 BTC 为例的话,在这个过程中最重要的角色的就是" 椭圆曲线加密算法"。

有些人会以为 BTC 跟 ETH 是不同的链所以用的椭圆曲线并不相同,但事实上两个链使用的都是相同的 secp256k1 曲线,所以获得公钥的方式完全一样,差别在从公钥生成地址的过程,接下来我们会先介绍如何安全的生成私钥,然后说明 ETH 如何从地址验证由私钥生成的公钥。

私钥的规格

私钥必须为正整数且必须小于 secp256k1 曲线的阶 (secp256k1 的阶为FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141),每个点可由一组 256位代表,而 256 位正好是 32 个字节,所以我们需要提供这个曲线算法 32 个字节的数据。

换句话说,BTC 及 ETH的私钥都是一组 32 字节的字符串,但它也可以是二进制字符串、Base64字符串、WIF 密钥、助记码( mnemonic phrase )、十六进制字符串。

钱包

安全的私钥生成

既然都知道他们使用的是同一条曲线,那我们其实就可以使用 BTC 社群比较信任的 bitaddress.org 来生成我们的私钥,(用 MEW 或 Metamask 也都是不错的选择,至少他可以不是一串裸露在外的私钥),但如果有良好安全意识的话,我们甚至不应该用浏览器来生成我们重要的私钥 (可以看看 Reddit 上的讨论),所以我们将用 python 设计一个更简单的 bitaddress。

了解 Bitaddress原理

Bitaddress 做了三件事情。首先,初始化字节数组,然后尝试从用户的计算机获得尽可能多的熵,根据用户的输入填满数组,最后生成私钥。

Bitaddress 使用 256 字节的数组来存储熵。这个数组是被循环覆写的,所以当数组第一次填满时,索引变为零,然后覆写过程再次开始。

程序从 window.crypto 生成一个 256 字节的数组。然后写入一个时间戳来获得 4 个字节的熵。在这之后,它获得一些其他的数据包括屏幕大小,时区,浏览器扩充套件,地区等。来获得另外 6 个字节。

初始化后,使用者持续输入来覆写初始字节。当移动光标时,程序会写入光标的位置。当按下按钮时,程序会写入按下的按钮的字符代码。

最后,bitaddress 使用累积的熵来生成私钥。bitaddress 使用名为 ARC4 的 RNG算法。用当前时间以及收集的熵初始化ARC4,然后逐个取得字节,总共取 32 次。

初始化我们自己的种子池

我们从加密 RNG 和时间戳中写入一些字节。__seed_int 以及__seed_byte是将熵插入池的数组中的两个函式,而我们使用secrets生成我们的随机数。

钱包

由输入填充种子池

这里我们先写入一个时间戳,然后写入用户输入的字符串。

钱包

生成私钥

首先使用我们的池生成 32 位的数字,并确保我们的私钥在范围内(1, CURVE_ORDER),然后为了方便,我们转为十六进制并删除 0x 的部分。

钱包

生成ETH公钥

将我们刚刚的私钥代入椭圆曲线,我们会得到一个 64 字节的整数,它是两个 32 字节的整数,代表椭圆曲线上连接在一起的 X 点和 Y 点。

钱包

校验和 (ERC-55)

比特币通过将公钥哈希后并获得回传值的前 4 个字节来创建校验和,如果不添加校验和则无法获得有效地址。

但以太坊一开始并没有校验和机制来验证公钥的完整性。直到 Vitalik Buterin 在 2016 年时引入了校验和机制,也就是 EIP-55,并且后来被各家钱包和交易所采用。

将校验和添加到以太坊钱包地址使其区分大小写

首先,获得地址的 Keccak-256 哈希值。需要注意的是,将此地址传递至哈希函数时不能有0x的部分。

其次,依序迭代初始地址的字节。如果哈希值的第 i 个字节大于或等于 8,则将第 i 个地址的字符转换为大写,否则将其保留为小写。

最后,在回传的字符串开头加回0x。如果忽略大小写,校验和地址会与初始地址相同。但使用大写字母的地址让任何人都能检验地址是否有效。

此校验和有几个好处:

1.    向后兼容许多接受混合大小写的十六进制解析器,将来也能轻松引入;

2.  保持长度为 40 个字符;

3.   平均每个地址将有 15 个校验位,如果输入错误,随机生成的地址意外通过检查的净概率将为0.0247%,虽然不如 4 字节的校验代码好,但比 ICAP 提高了约 50 倍;

钱包

总结

为以太坊创建钱包地址相较于比特币简单得多。我们需要做的就只是将私钥丢到椭圆曲线,然后再把得到的公钥丢到Keccak-256,最后撷取该哈希值的后面 20 个字节。

本文转载公众号:区块链研究实验室

导读:在区块链的钱包中,私钥可以产生出公钥,而反过来要想从公钥推算出私钥则是不可能的。用公钥加密的信息可以用私钥来解密,而用私钥签名的信息则由公钥来验证

火币区块链产业专题报告:钱包篇

摘要

狭义上数字资产钱包为私钥存储工具,广义上含余额查询、发送交易等基本功能。2018年Q1全球数字资产钱包用户数约2395万,同比增长86%,发展迅速。基于火币研究院调研的31个钱包项目:钱包行业竞争激烈,目前无较好盈利模式;约70%的钱包支持移动客户端,对网页端支持度最弱,仅占26%;61%的钱包为开源项目;65%的钱包提供行情、理财、资讯等附加功能,其中提供交易功能的钱包数最多,约占75%。

钱包种类繁多,本报告对钱包从连网与否、数据存储、私钥存储、主链关系以及私钥签名这五方面进行了分类阐述,分析了其在安全性、易用性和功能性等策略上的不同。

为帮助读者深入理解数字资产钱包,本报告从技术原理出发,详细阐述了钱包助记词、Keystore、私钥、公钥和地址产生的方法及其相互关系。此外,对于钱包安全也从用户安全教育和钱包安全设计两方面进行了深度剖析。

目前钱包产业存在使用门槛高、盈利模式不清晰、功能较为单一等问题,安全事件也时有发生。但未来,钱包作为区块链世界入口的功能将不断发展完善,金融属性也将日趋强化,有望成为多种资产一体化管理入口、DAPP应用入口、通证使用权、收益权等功能性入口,交易和理财服务也将不断加强完善。

数字钱包

第一章 数字资产钱包产业现状

1.1 钱包产业概述

自中本聪在2008年发表《比特币白皮书:一种点对点的电子现金系统》以来,加密数字资产市场从无到有,不断扩大,根据coinmarketcap统计,在2018年7月20日,全球加密数字资产总市值已达2868.20亿美元。(Jul 20, 2018 2:50 AM UTC,COINMARKETCAP)在2017年12月17日,比特币价格达到历史最高峰19737.40美元后,数字资产热潮随之达到顶峰。正是在数字资产大幅兴起的背景下,驱动了对数字资产的安全存储需求,因而数字钱包行业迎来了一个发展契机,大量开发者以及资金开始涌入。根据Statista统计,2018年Q1全球数字资产钱包用户数为2395万人,同比增85.80%,环比增长11.34%,增长十分迅猛。

数字钱包

数字资产钱包最狭义的定义是储存私钥工具,广义上则应该包含数字资产余额查询,发送交易等基本功能(广义上也能把交易所理解成一种钱包,但本文不将其列为讨论范围)。从不同的角度出发,对数字资产钱包的定义和分类都不相同,比如从钱包是否连网来看,可以分为冷钱包和热钱包,从数据存储完整性来看又可分为全节点钱包和轻节点钱包等。从未来发展来看,钱包不仅将作为区块链世界的入口,还会承担数字资产理财管理,交易兑换等扩展性金融功能,其重要性值得数字资产相关从业者关注。

1.2 钱包产业市场分析

钱包作为区块链产业必不可少的一环,随着区块链产业的发展和扩张也呈现并行加速的现象,越来越多的项目方加入数字资产钱包领域。相较于全球60亿人口和40亿互联网用户来说,数字资产钱包用户占比还非常小,未来市场潜力非常巨大,如下图所示。当然也意味着区块链目前还处于行业发展的初期,数字资产钱包作为行业配套基础设施也同样处于行业早期。

数字钱包

火币研究院调研和分析了市场上31个数字资产钱包项目(可参考附录2),并对项目的成立时间、支持的平台种类、支持的主流数字资产种类、项目代码是否开源、用户数量分布以及融资额分布做了统计分析,本章所有数据统计均来源于此31个项目样本。

有数据可查的28个数字资产钱包项目中,其成立的时间分布如图1.3所示,该分布趋势与BTC价格趋势有一定的相关性,2014年和2017年成立的项目数相对较多。

数字钱包

除个别冷钱包无客户端软件外,29个数字资产钱包都同时支持多种平台,如图1.4所示,其中支持Android平台的项目最多,约占74.19%,其次为IOS,对网页支持的项目最少,只有25.81%。总体来说对手机客户端的支持度是最好的,PC客户端的支持度仅占不到1/3,网页端的支持度最弱。

数字钱包

火币研究院整理和分析了31个钱包对11种主流数字资产以及ERC20类代币的支持度,如图1.5所示,约84%的数字资产钱包都支持BTC,68%的钱包支持ETH,对ERC20的支持度为45%,对Stellar的支持度最弱,仅有6%。

数字钱包

数字资产钱包的安全性是最受关注的话题,特别是私钥的存储机制甚为关键,约61.29%的项目选择项目开源,一方面接受各方对其代码进行监督审查,另一方面也更容易获得技术极客的帮助,不断地改进升级,如图1.6所示。

数字钱包

对有数据支持的11个项目(数据来源于项目方主动披露或者网上公开信息披露)用户数量进行分析后,发现各层级用户体量的项目数比例非常接近,如图1.7所示。用户数在1~10万的项目数略大于用户数在10万~100万以及大于100万的项目数。

数字钱包

火币研究院统计了公布融资额的10个项目,有60%的项目融资额在1千万美元到1亿美元之间,还有20%的项目融资额超过1亿美元,如图1.8所示。

数字钱包

1.3 钱包商业模式分析

钱包作为私钥管理工具,目前还没有很好的盈利变现模式,基本都处于早期积累用户和沉淀资金的状态。 为寻求收入来源,各钱包纷纷推出周边增值服务,一方面为增加用户黏性,提高流量入口,另一方面也试图增加收入来源。如提供理财、资讯、POS挖矿、交易、资产聚合等功能。目前有65%的数字资产钱包项目都提供附加功能,如图1.9所示。

数字钱包

经火币研究院统计分析,在提供附加功能的钱包项目中,提供数字资产交易或兑换服务的钱包数量最多,约占75%;其次为行情服务,约占60%;提供资产聚合服务的钱包项目最少,仅占5%,如图1.10所示。

数字钱包

❖交易及兑换类服务

钱包内置数字资产交易功能,有接入中心化交易所平台的钱包,如BitPie; 也有接入去中心化交易平台的钱包,如Imtoken;还有接入Bancor机制的自动化交易平台如Tokenpocket。有的钱包推出的“闪兑”功能,即不同币种之间按照一定的“汇率”进行互换,其后台通常也是用了去中心化交易所的模式进行货币的兑换。

钱包用户天然拥有交易需求,如果币不用提出钱包就可以实现交易,不但减少了用户提币转币的操作步骤,减少了犯错的概率,也增强了用户黏性,为钱包项目的后续转型提供了很好的发展方向和资金沉淀。不过内置交易所极大地增加了系统的复杂度,为本身对安全性要求较高的钱包类产品引入了更大的风险,用户资金安全性将受到一定程度挑战。

行情资讯服务

钱包内置丰富的新闻资讯、行情快报、项目简介、K线图、大额资金流动监控、代码活跃度等数字资产市场行情信息。

区块链项目的资讯和行情信息是通证持有者与市场保持同步的需求,也是集聚用户流量的大入口,钱包产品若能很好地集成资讯行情服务不仅能对现有用户产生足够的黏性,还可以带入更多的增量用户。不过资讯行情服务需要投入一定的人力财力,会较大地增加产品的运营成本。目前大部分钱包集成的新闻资讯服务并不是很完善,主要以提供行情信息为主。

❖理财服务

钱包内置理财模块,理财类型包括长期固定收益型,余币宝短期灵活型,数字资产P2P融资借贷型,抵押贷款型。目前这些理财模块有的是接入第三方服务,本身不参与理财服务;有的是为本身平台的发展提供廉价资金而开发的理财产品,由平台收益来支付用户利息;有的则是将平台募集的数字资产再投入一级或二级市场交易以此来获取超额收益并支付用户利息;还有的则是提供P2P的数字资产借贷交易服务,为资产需求方和提供方提供撮合服务。

对于长期持币的用户来说,数字资产理财服务切中刚需,持有也能获得收益,目前各类钱包提供的理财产品年收益率在4%~20%不等。不过区块链行业发展迅速,数字资产市场波动性较大,流动性不佳的理财产品将面临更大的风险。且目前数字资产理财市场并不成熟,还未出现行业标杆性龙头企业,风险控制经验和能力以及兑付能力还待市场考验。此外数字资产P2P借贷型,若是对借贷人风险难以把控,则很容易造成违约,请投资人注意风险。

❖POS挖矿服务

对于支持POS共识算法的区块链项目,一些钱包提供锁仓加入POS挖矿服务,挖矿收益将定期发送给用户。

通常由钱包项目方提供POS挖矿的主节点,符合一定资金要求的数字资产可参与POS挖矿,有固定锁定时间挖矿,也有支持随时可赎回的挖矿模式,钱包项目方将从挖矿收益中按比例抽取分成,钱包项目方和用户都能有较为稳定的额外收益。目前支持POS挖矿较多的币种有:达世币DASH,闪电比特币teBitcoin,小零币ZCoin,量子链Qtum以及超级现金Hcash。

❖资产聚合类服务

通常用户会在多个交易所和钱包里持有不同的币种,不太方便进行集中的管理和收益查询,此类钱包可为用户提供资金聚合服务,通过API接口将用户在多个钱包和交易所的通证持有情况进行汇总聚合,对于API接口服务支持度不佳的平台也可以采用手动维护进行初始输入。目前可支持交易所、钱包、ICO资金和法币资金的信息汇总聚合服务。

目前各大交易所以及钱包平台种类较多,每个交易所以及钱包支持的数字资产品种都不一样,因此用户的资金通常会分散到不同的平台,不利于集中管理和查询,因此聚合类服务能较好地满足用户查询的需求,提升用户活跃度和用户黏性。这类钱包需要配合众多交易所、钱包等进行API接口开发,存在一定的开发和维护成本。

基于以上提供的各类增值服务,目前主流钱包项目方获得盈利的几种方式如表1.1所示。

数字钱包

第二章 数字资产钱包分类概述

随着行业的发展,市场上出现的钱包产品越来越多,使用的技术、策略以及侧重的功能点都不相同,本章将从五个角度出发,对现有的钱包产品做一个分类梳理和总结。如图2.1所示,可以从五个角度对钱包进行分类梳理,每一种分类方式其实都体现了该钱包所采用的策略重点,以及其面向的用户群体。有的体现了安全性、有的坚持易用性、而有些则强调功能。

数字钱包

 

2.1按是否连网分类

数字资产钱包本质上是存储私钥的工具,私钥的安全性至关重要,为了将安全性做到极致,出现了不连网的冷钱包,因此可以依据钱包是否连网分为冷钱包和热钱包。依据火币区块链研究院调研分析的行业内常见的31种数字资产钱包数据(详见附录2),目前冷热钱包的项目数量占比如下图所示,冷热钱包数量基本符合二八分布定律。

数字钱包

 

热钱包

特点:保持实时连网上线的钱包通常称为热钱包

分析:热钱包相对于冷钱包使用起来更方便,既可在PC上使用,也可在手机等移动终端使用,还可对钱包内资产随时进行操作,因此目前83.87%的钱包都为热钱包模式。但正由于其连网,也给了黑客攻击的基础条件,钱包安全性会受到挑战。不过通常钱包项目方会对存储的私钥以及通讯数据包进行加密处理,一定程度上也能避免黑客轻易入侵。

数字钱包

 

❖ 冷钱包

特点:冷钱包通常指不连网使用的钱包,也叫离线钱包。根据实现方式的不同,还可以分为硬件钱包和纸钱包。硬件钱包用来生成密钥和保存密钥,设备本身不会泄露或者输出密钥,而只是在我们按下某个按钮或者输入设备密码后显示密钥的保管情况。纸钱包,顾名思义就,就是把密钥记在纸上,然后把纸锁在保险柜里。

分析:冷钱包将私钥存储在完全离线的设备上,相比于热钱包是更安全的方法,但成本更高易用性更差,比如传统的硬件钱包Armory,需要一台不连网的电脑专门用于安装离线端。虽然冷钱包相对于热钱包更安全,但是冷钱包也不是绝对安全,可能会遇到硬件损坏,钱包丢失等情况,需要做好备份。

数字钱包

2.2按数据存储完整性分类

数字资产钱包通常和区块链节点关系紧密,依据钱包存储节点账本数据的完整性可以将其分为全节点钱包和轻钱包,其中轻钱包也包括SPV节点钱包。由于全节点钱包需要下载所有的账本数据,会占用大量的存储空间以及计算资源,不适用于手机等移动终端,也不便于普通用户使用,故目前市面上约90%的钱包都为轻节点钱包,如下图所示。

数字钱包

 

全节点钱包

特点:全节点钱包参与到网络的的数据维护中同步了区块链上的所有数据,具有更有隐秘、验证更快等特点。但是由于数据量比较大,会导致扩展性低。

分析:由于需要同步链上信息的原因,很多全节点钱包的币种单一,不能够支持多种数字资产,一般为官方钱包。此外,全节点钱包需要占用很大的硬盘空间,并且一直在增长。每次使用前需要先同步区块数据,会导致易用性变差。

数字钱包

 

轻钱包

特点:轻钱包是为了解决全节点钱包需要占据很大的硬盘空间而出现的,不需要存储完整的区块数据。虽然轻钱包不会下载新区块的所有数据,但是它会对数据进行分析后,仅获取并在本地存储与自身相关的交易数据,运行时依赖比特币网络上的其他全节点,一般在手机端和网页端运行。

SPV钱包是轻钱包的一种,指的是可以进行简单支付验证的钱包。SPV钱包也同步区块数据内容,但是只是临时使用,它从区块数据中解析出UTXOs,但是并不保存区块数据。

分析:轻钱包可以有更多的扩展性,一方面可以在币种上进行扩展,用来很方便地对多种资产进行管理。另一方面可以在运行DAPP。因为它只同步和自己相关的数据,所以很轻便。轻钱包根据实现原理可以分为中心化钱包和去中心化钱包。比如,客户端钱包,浏览器钱包,网页版钱包等。

数字钱包

 

2.3按私钥存储方式分类

私钥是数字资产领域安全的核心,而钱包的本质其实是帮助用户方便和安全地管理和使用私钥,因此,私钥的存储方式非常关键,按照私钥是否存储在本地,我们可以将钱包分为中心化钱包和去中心化钱包两种类型。如下图调研数据显示,目前去中心化钱包为主流模式,约占82.76%。

 

数字钱包

 

中心化钱包

特点:私钥不由用户自持,而是由钱包项目方在链下中心化服务器上保管,通常资金也交由服务方托管。

分析:中心化钱包通常也叫Offchain钱包,私钥和资产都交由钱包进行中心化管理,此种方式的钱包产品用户不必担心私钥丢失而导致资金损失,通常可支持密码找回功能;不过资金风险会更集中在钱包项目方,中心化服务器一旦被黑客攻克,用户将遭受不必要的损失。

数字钱包

去中心化钱包

特点:私钥由用户自持,资产存储在区块链上。

分析:去中心化钱包通常也叫Onchain钱包,私钥的保管都转交给用户,若私钥遗失,钱包将无法帮用户恢复,资金将永久遗失;但去中心化钱包很难遭受黑客的集中攻击,用户也不用担心钱包服务商出现监守自盗的情况。

数字钱包

2.4按主链关系分类

目前各区块链公链都是较为独立的平台,平台和平台之间缺乏直接的互通,因此各类钱包出现了两大分化,一种是专门针对某一公链平台的主链钱包,通常由平台项目方或者社区开发提供;另一种则是同时支持多平台接口的多链钱包,支持的资产类型较为多样。依据火币区块链研究院整理的数据显示,主链钱包约占35.48%,支持多链的钱包占绝对多数,随着行业的发展,这一比例可能进一步被拉大。

 

数字钱包

 

主链钱包

特点: 对于可以定制化发行通证的公链我们定义其为平台类公链,此类公链上可以运行多种DAPP,平台专属钱包不仅是为了满足平台类通证正常使用所必备的核心组件,也可以作为一个应用商店,对基于其平台开发的DAPP进行集中宣发和链接跳转。

分析: 对于平台类公链来说,平台通证通常具备一定的使用功能,平台上的各类角色所开展的活动都是围绕通证来进行,比如说矿工、平台用户、存储节点或者是计算节点等,因此需要钱包来作为各方进行通证存储和流通的节点。钱包也可以作为平台类项目是否可用的判断标准之一。

数字钱包

多链钱包

特点: 可支持多种主链平台通证的钱包。

分析: 不同的主链通常采用的技术方案都各不相同,如果要支持多种主链平台的通证接入钱包,则需要逐一进行接口开发,有一定的开发难度和工作量。此类钱包对于支持内置交易所和跨链互兑业务有着天然的优势。

数字钱包

2.5按私钥签名方式分类

为了加强数字资产的安全性并配合某些应用场景使用,出现了需要多方私钥签名才可使用钱包的策略,因此可将钱包分为单签名钱包和多签名钱包。依据火币调研的统计数据分析,如下图,支持多签名的钱包仅占25.81%,单签名模式是市场上更受欢迎的方式。

数字钱包

单签名钱包

特点:只需单个私钥签名即可交易。

分析:单签名模式简单,用户可操作性强,但由于只有一个密钥,风险也更集中,私钥持有账户的单点沦陷——如果丢失或者泄漏私钥会可能直接导致账户中所有的资产的丢失。

数字钱包

多重签名钱包

特点:必须有2个(或多个)私钥同时签名才可以交易。

分析:通常一个私钥用户保存,一个交给服务器,如果只有服务器私钥被盗,黑客没有本地私钥,交易时无法签名的。也可用于公司或者组织内由多方共同管理财产场景下使用,密钥由多位成员管理,需多数成员完成签名才可动用资产。多重签名机制相较于单签名是更安全了,但易用性却受到很大的影响,用户需要理解一些技术细节,还需要多方协同,学习和使用成本高了不少。此外,多重签名的机制更复杂,也带来一些安全隐患,如parity钱包的多重签名机制就被黑客利用,令逾15万个以太坊被盗。

数字钱包

第三章 数字资产钱包技术实现原理

3.1技术总览

数字资产钱包技术实现主要包含三个部分:1.钱包自身设计,如何生成助记词,keystore和密码等;2.私钥、公钥和地址产生的方法;3.钱包提供商远程调用各公链RPC接口设计;如下图所示,可总体概括数字资产钱包实现的技术流程:

数字钱包

众所周知,私钥为一串无规律字符串,非常不便于记忆,使用更是不方便,所以从钱包设计的角度,为简化操作同时又不失安全性,就出现了助记词的方法。一般情况下,助记词由一些单词组成,只要记住这些单词,按照顺序在钱包中输入,就能打开钱包,下文将详细阐述其中的原理和方法。

根据密钥之间是否有关联可把钱包分为两类:

  • 非确定性钱包(nondeterministic wallet):每个密钥都是从随机数独立生成,密钥彼此之间无关联,这种钱包也被称为“Just a Bunch Of Keys(一堆密钥)”,简称JBOK钱包。

  • 确定性钱包(deterministic wallet):所有密钥都是从一个主密钥派生出来,这个密钥即为种子(Seed)。该类型钱包中所有密钥都相互关联,通过原始种子可以找到所有密钥。确定性钱包中使用了很多不同的密钥推导方法,最常用的是使用树状结构,称为分级确定性钱包或者HD (hierarchical deterministic)钱包。

比特币钱包(Bitcoin Core)生成密钥对之间没有直接关联,属于nondeterministic wallet,这种类型的钱包如果想备份导入是比较麻烦的,用户必须逐个操作钱包中的私钥和对应地址,如下图包含的为松散结构的随机密钥集合的非确定性钱包:

数字钱包

Deterministic wallet基于BIP32(Bitcoin Improvement Proposal32)/BIP39/BIP44标准实现,通过一个共同的种子维护n多私钥,种子推导私钥采用不可逆哈希算法,在需要备份钱包私钥时,只备份这个种子即可(大多数情况下的种子是通过BIP44生成了助记词,方便抄写),在支持BIP32,BIP39,BIP44标准的钱包只需导入助记词即可导入全部的私钥,如下图种子派生密钥的确定性钱包:

数字钱包

上面提到了BIP32,BIP39,BIP44标准,概括来说BIP32标准定义了种子使用HMAC-SHA512生成根私钥,并导出子私钥,这是HD钱包的主要标准;BIP39 标准定义了钱包助记词和种子生成规则; BIP44标准定义了节点布局,用于多币种和多账户钱包;除此之外,还有BIP43标准用于定义多用途HD钱包结构。具体可以前往https://github.com/bitcoin/bips学习。

3.2钱包设计框架

3.2.1生成助记词(BIP39标准)

助记词库有2048个词,用11位可全部定位词库中所有的词(2^11=2048),作为词的索引,故一个词用11位表示,助记词的个数可为(熵+校验和)/11,值为12,15,18,21,24。规定熵的位数必须是32的整数倍,所以熵的长度取值为128到256之间取32的整数倍值,分别为128,160,192,224,256;校验和的长度为熵的长度/32位,所以校验和长度可为4,5,6,7,8位。

数字钱包

生成助记词的具体步骤如图3.4所示:

1)生成长度为128〜256位(bits)的随机序列(熵),以128位为例;

2)取熵SHA256哈希后的前n位作为校验和(n= 熵长度/32),图为128/32=4;

3)随机序列(熵) + 校验和拼合为一个字符串,图为128+4=132;

4)把步骤3得到的结果每11位切割,图为 132/11 =12个字符串;

5)步骤4得到的每个字符串匹配预先定义的2048 个词库里的单词;

6)步骤5得到的结果就是助记词串,这是一个有顺序的单词组,也就是我们一直说的助记词。

数字钱包

3.2.2通过助记词生成种子(BIP39标准)

助记词由长度为128到256位的随机序列(熵)匹配词库而来,随后采用PBKDF2(Password-Based Key Derivation Function 2)推导出更长的种子(seed)。生成的种子被用来生成构建deterministic Wallet和推导钱包密钥。

在密码学中,Key stretching技术被用来增强弱密钥的安全性,增加了暴力破解 (Brute-force attack)对每个可能密钥尝试攻破的时间,增强了攻击难度。各种编程语言原生库都提供了key stretching的实现。PBKDF2是常用的 key stretching算法中的一种。基本原理是通过一个为随机函数(例如 HMAC 函数),把明文和盐值作为输入参数,然后重复进行运算最终产生密钥。

如图3.5所示:

1)PBKDF2有两个参数:助记词和盐。盐的目的是提升进行暴力攻击时的困难度,可以参见BIP-39标准。盐由字符串常数“助记词"与可选的用户提供的密码字符串连接组成;

2)PBKDF2使用HMAC-SHA512作为随机算法+2048次哈希重复计算,最终得到BIP32 种子,512 位(64字节)是期望得到的种子长度。即DK = PBKDF2(PRF, Password, Salt, c, dkLen),其中,PRF是一个伪随机函数,例如HASH_HMAC函数,它会输出长度为hLen的结果;Password是用来生成密钥的原文密码;Salt是一个加密用的盐值;c是进行重复计算的次数;dkLen是期望得到的密钥的长度;DK是最后产生的密钥。

 

数字钱包

3.2.3从种子中创造HD钱包(BIP32标准)

HD钱包从单个根种子(root seed)中创建,为128到256位的随机数,任何兼容HD钱包的根种子也可重新创造整个HD钱包,所以拥有HD钱包的根种子就等于拥有了所有密钥,方便存储、导入及导出。

具体主密钥以及HD钱包的主链码生成过程如图3.6所示,根种子通过不可逆HMAC-SHA512算法推算出512位的哈希串,左256位是主私钥Master Private Key (m),右256位是主链码Master Chain Code;链码chain code作为推导下级密钥的熵。

数字钱包

 

以上过程再结合BIP43,BIP44,对HD钱包还能实现诸如多币种、多账户、多用途等功能。

3.2.4 keystore和密码基本功能

回归到用户体验,助记词的方式仍然很复杂的,现有的密码操作方式才是用户最为熟悉的方式。因此钱包还提供了keystore让用户导出密钥文件进行保存,Keystore会存储在使用的设备里,这样每次登录只用输入相应密码即可。Keystore是私钥经过加密过后的一个文件,需要用户设置的密码才能打开文件。即使keystore文件被盗,只要用户设置的密码够长够随机,短时间内私钥也不会泄露,有充足的时间转移地址里的数字资产到其他地址。

3.3私钥、公钥和地址产生的方式

从私钥推导出公钥、再从公钥推导出公钥哈希都是单向的,采用不可逆算法,也就是常听到的椭圆曲线算法:如图3.7所示。

 

数字钱包

整体的公钥和地址生成过程如图3.8所示:

1)通过随机数生成私钥;

2)私钥经过SECP256K1算法处理生成了公钥;

3)同SHA256一样,RIPEMD160也是一种Hash算法,经过一次SHA256 + 一次RIPEMD160哈希运算,由公钥计算得到公钥哈希;

4)将一个字节的地址版本号连接到公钥哈希头部,进行两次SHA256运算,将结果的前4字节作为公钥哈希的校验值,连接在其尾部;

5)将第4步结果使用BASE58进行编码,即得到钱包地址。

 

数字钱包

从字节层面拆开来看,公钥的详细生成流程如图3.9所示:

1)私钥是32字节(256位)的随机数;

2)在私钥头部加上版本号;

3)在私钥尾部加上压缩标志;

4)将私钥进行两次SHA256哈希运算,取两次哈希结果的前4字节作为校验码,添加到压缩标志之后;

5)将2,3,4步得到的随机数用BASE58进行编码,就可以得到WIF(Wallet import Format)私钥(用于钱包之间导入导出私钥,是用户较为常见的密钥格式)。

6)私钥经过椭圆曲线乘法运算,可以得到公钥。公钥是椭圆曲线上的点,并具有x和y坐标。

数字钱包

从字节层面拆开来看,钱包地址的详细生成流程如图3.10所示:

1)将公钥通过SHA256哈希算法处理得到32字节的哈希值;

2)后对得到的哈希值通过RIPEMD-160算法来得到20字节的公钥哈希Hash160;

3)把版本号+公钥哈希Hash160组成的21字节数组进行双次SHA256哈希运算;

4)将哈希值的前4个字节作为校验和,放在21字节数组末尾;

5)对组成25位数组进行Base58编码,最后得到钱包地址。

 

 

数字钱包

 

3.4 恢复钱包的N种方式

了解了钱包的基本技术原理以及助记词、Keystore、私钥、公钥和地址的关系后,遇到私钥丢失等情况我们就可以有条不紊地进行钱包找回工作了,如图3.11所示,只要不是私钥、密码、助记词同时全部丢失,你还有N种方法可以恢复钱包。

 

数字钱包

第四章 数字资产钱包安全分析

对区块链行业来说,安全将是永恒的话题,钱包涉及到用户资产的核心,其安全性更是不容忽视。近两年来,数字资产钱包安全事件不断,parity钱包的两个安全事件则直接导致约24万个以太坊的损失,2018多款冷热钱包也都爆出安全问题,如图4.1所示。

 

数字钱包

 

数字资产钱包的安全性不仅要从底层设计上就进行全面考虑,对于大部分去中心化钱包来说,对用户的安全教育也是非常重要的内容,如图4.2所示。

 

数字钱包

 

4.1 用户习惯安全引导

对于去中心化钱包,私钥交由用户保存,如何帮助用户正确地理解和使用密钥、助记词等成为钱包项目方重点关注的内容。目前主流钱包采用图文教程、答题考试、视频讲解等方式来帮助用户理解钱包的各种基本概念、提醒用户正确地保管助记词、私钥和本机密码等。建议通过相对原始的方法来手动记录,远离截图、复制等一切电脑操作,养成良好的上网习惯,将风险降到最低。

4.2 钱包安全设计

4.2.1网络传输安全

❖MITM中间人攻击防御,即双向校验

中间人攻击MITM(Man-in-the-middle attack):指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

虽然大部分数字钱包应用都会使用HTTPS协议和服务端进行通讯,但是中间人攻击方法上是可以通过在用户终端中安装一个数字证书的方式拿到HTTPS协议里面的内容。

安全的数字钱包需要能够对终端里面全部的数字证书的合法性进行扫描、对网络传输过程中的代理设置进行检查并能够保障基础的网络通讯环境的安全性。在数字钱包的开发中,在网络传输层面是否使用双向校验的方式进行通讯验证是衡量一个数字钱包应用安全性的重要评判标准。

❖RPC接口调用权限安全

钱包本身只是区块链世界的接口软件,正如前文介绍的很多都是使用RPC调用相应接口,这样调用过程对数据传输的权限控制是数据通讯时的安全之本,对代码和各种场景的设计要非常仔细。

远程过程调用(RemoteProcedureCall,RPC)时安全策略:如在钱包节点Geth上启用远程过程调用访问时,千万不要允许带有解锁账户功能的远程过程调用的外部访问等。

4.2.2客户端文件管理安全

文件安全主要考虑的是安装在用户端的文件是加密并不可被破解的,以及对用户的一些禁止性操作或者增加对某些风险操作的不便利性来降低用户造成的风险。

❖安装包安全性

确保软件安装包的安全和不可被反编译、破解来植入非法操作等。

❖抵御终端不良程序对关键文件的访问

加密数字资产钱包最核心的文件—私钥/助记词是存储在终端设备上的,无论是PC端还是移动端,终端设备如果出现不安全的现象,对于私钥/助记词来说是有非常高的安全风险的。

一个安全的数字钱包,在设计之初就避免因为运行环境而导致的私钥/助记词存在被盗可能,比如增加用户操作要访问到核心文件时必须进行人脸识别或者短信确认的功能等。

❖终端关键文件加密方式

对终端关键文件采用高安全的加密方式,防止普通程序访问,或者即使关键文件被复制出去,第三方也不能轻易破解的功能。如Wallet.dat加密问题。

❖终端关键文件备份过程显示方式

用户难免对关键文件有备份的需求,在设计钱包时需考虑实际安全操作性采取限制直接导出关键文件的操作,或者允许导出关键文件,但是解密方法以不能进行任何操作的显示方式,供用户手动记录。

❖助记词等关键信息生成和管理

对于钱包的核心关键信息,如助记词、私钥、Keystore的生成和管理需充分考虑安全性。这三者的设计原则和思路基本相同,以助记词为例:为确保客户端生成助记词,不能经过任何云端或者服务器,这是去中心化钱包的核心,任何访问助记词的过程都需要用户主动确认,如上面提到的人脸识别或者短信确认的功能等。

对助记词的显示采用不能进行任何操作的显示方式,供用户手动记录。

❖导入其他钱包生成的私钥和助记词安全

导入其他钱包生成的私钥和助记词安全的思路可以从重新创建新的核心文件的方式来降低非法程序入侵的风险;也可以同时用人脸识别或者短信确认的功能等。

4.2.3开发扩展安全

考虑到钱包作为区块链的接口端,对应用扩展需求很重要,所以设计上需严格控制开放端口的权限,确保通讯只是公钥签名。同时对应用程序要严格审查是否具备抗篡改能力的核心技术能力,以及应用运行过程中的内存安全、反调试能力等。

除此之外,考虑到用户密码忘记的风险,可以考虑采用多签方式增加各种应用场景,如密码找回功能等。

第五章 存在的问题及产业发展趋势

5.1现有产品存在的问题

❖安全问题时有发生

由于业务场景的快速迭代以及推广需求,无论热钱包还是冷钱包都会有一些安全隐患会被忽视。安全性和使用便捷性之间的冲突短时间无法解决。市面上的数字资产钱包良莠不齐,部分开发团队在以业务优先的原则下,暂时对自身钱包产品的安全性并未做到足够的防护,导致黑客有机可乘,类似Parity钱包、Ledger钱包等漏洞事件时有发生。

❖支持币种少,功能单一

市面上的钱包虽种类繁多,功能却普遍单一,支持的数字资产种类也十分有限。用户在管理数字资产时,通常需要在多种钱包之间来回切换,不仅影响了用户体验,也带来了不少风险。

❖使用门槛较高,易用性不强

目前新进入数字资产市场的用户仍倾向于将资产放在交易所,一方面是由于交易便捷性的需要,另一方面也表明钱包对于普通用户来说仍然[SP1] 有较高的使用门槛,钱包仍需进一步优化业务流程,改进技术,提高使用便捷性,更需要加强用户教育,帮助用户正确、安全地使用钱包。

❖盈利模式仍在探索

目前大多数钱包的盈利模式仍在探索,变现能力不强,钱包项目的生存压力较大。相较于热钱包,卖设备的冷钱包有更强的变现能力,不过其设计研发的前提投入较大,库存积压的风险也较高,受市场整体行情影响较大。

5.2 数字资产钱包发展趋势

一方面,钱包是用户与区块链交互的界面,可视为现实世界通往区块链世界的一个重要入口;另一方面,钱包的本质是私钥管理工具,与区块链及数字资产息息相关,资产属性强烈。未来数字资产钱包的发展也将紧紧围绕着这两点特性不断丰富和扩展。随着行业的发展和演进,势必有些钱包将在某一领域进行技术和资源上的深耕形成行业高壁垒,有的则将朝着全面和综合性的方向进行业务优化和资源聚合。

❖区块链世界入口功能发展并强化

资产种类增加,一体化管理入口。当数字资产种类越来越多,用户急需统一化的平台帮助用户管理众多类型的资产。而由于目前中心化数字资产交易存在的流动性分割现状,用户需要在不同的交易所注册登录不同的账户进行查询和交易,过程繁琐,而且未来也很难改善此类现状,因此钱包将成为资产聚合的首选方案。资产一体化管理可将用户在多个钱包和交易所的通证持有情况进行汇总并提供统一的汇总、查询、分析以及交易等服务。未来支持多平台跨链兑换等功能的发展,也将满足用户流动性多样化需求。

DAPP应用入口。互联网时代,如同各类App作为用户感受移动互联网的窗口。未来,区块链时代,各类Dapp也将成为用户直接参与区块链的主要方式。由于用户与Dapp的交互需要消耗数字资产,而钱包作为协助用户管理各类数字资产工具,其重要性不言而喻,可能会成为新时代应用商店,成为区块链3.0时代真正超级流量入口。

通证使用权、收益权等功能性入口。未来随着区块链项目的落地,以及通证的功能属性越来越强,钱包作为区块链世界的入口将承载着非常关键的角色。用户只有自己直接掌管着私钥,才能行使通证所代表的各种功能和权力,例如EOS投票权、获得POS挖矿收益等。未来通证经济模式下还将诞生更多的通证实际使用场景,例如各类行为挖矿、分红,权力凭证等。钱包提供的直接便捷渠道,将会释放出通证除交易以外的功能潜力,更好的促进通证经济发展。

❖金融属性强化,服务和产品不断丰富

交易属性日渐增强。钱包用户天然拥有交易需求,如果币不用提出钱包就可以实现交易,不但减少了用户提币转币的操作步骤,减少了犯错的概率,也增强了用户黏性,为钱包项目的后续转型提供了很好的发展方向和资金沉淀。另外,去中心化交易所的发展也会促进去中心化钱包的发展,这对Onchain钱包有天然优势。

理财服务不断完善。作为资产沉淀的平台,数字资产钱包不仅仅是工具、是流量入口更是资金入口和金融服务平台。围绕资产开展一系列理财服务将是未来钱包发展重点。目前已有一些数字资产钱包开始布局各类理财和资金托管服务,但是该领域还在非常早期阶段,和传统的资管服务很不一样,风控、盈利模式、资金安全等很多问题还需一一解决,产品设计也需结合区块链资产特点进行重新规划和考虑。

附录1:常见名词

1. 密钥:是指某个用来完成加密、解密、完整性验证等密码学应用的秘密信息。在对称密码中,加密和解密用的密钥是同一个。而在非对称密码中,加密和解密用的钥匙不同,根据是否公开可分为公钥和私钥。

2. 私钥:在非对称密码中,加密和解密用的钥匙不同。根据是否公开,可分为公钥和私钥。公钥和私钥成对生成和使用。其中由用户自己保管、不对外公开的,称为私钥。

3. 公钥:在非对称密码中,可对外公开并传递的密钥称为公钥。

4. 地址:通常由公钥产生。公钥经过多种加密算法、哈希算法等生成用户钱包地址,类似传统金融中的银行卡号。

5.  数字签名:类似写在纸上的普通的物理签名,转移资产的时候需要用户签名才能启动。多重签名,则是地址允许多个用户用一个公钥单独发送部分地址,共同管理资产。

6.  助记词:将难以记忆的私钥通过加密算法转换成一组常见单词。私钥与助记词之间可以互相转换。

7.  Keystore:通过加密算法加密过后的私钥,通常以文件格式储存。

8.  冷钱包:离线钱包,在没有连网环境下使用的,统称冷钱包。

9.  脑钱包:脑钱包的主要原理是用可预测的算法把口令转换成一对公私钥,用户通过输入自行编写的一串字符串,即可与一个笃定的密钥生成一一对应的映射,是一种密钥生成方式。

10. 硬件钱包:用专业的硬件存储数字资产,将数字资产私钥单独储存在一个芯片中,与互联网隔离,即插即用。

11. 纸钱包:将私钥或助记词以字符串、二维码等形式记录在纸张上来进行保存和使用的方法。

12. 热钱包:即连网又称在线钱包,处于连接互联网状态,私钥存储能被网络直接访问的钱包。

13. 重钱包:全节点钱包,保存私钥的同时,需同步所有区块链数。

14. 轻钱包:不保存所有区块的数据,只保存跟自己相关的数据的钱包。

15. 去中心化钱包:用区块链网络上其他全节点,不用保存所有区块数据,需保存和同步与自己相关的数据,无需第三方管理存储你的私钥,私钥由本人控制。

16. 中心化钱包:用户无私钥,数据均完全依赖运行提供钱包产品的中心化的第三方。

附录2:31个调研项目清单

数字钱包

免责声明:

  1.  火币区块链研究院与本报告中所涉及的数字资产或其他第三方不存在任何影响报告客观性、独立性、公正性的关联关系。

  2. 本报告所引用的资料及数据均来自合规渠道,资料及数据的出处皆被火币区块链研究院认为可靠,且已对其真实性、准确性及完整性进行了必要的核查,但火币区块链研究院不对其真实性、准确性或完整性做出任何保证。

  3.  报告的内容仅供参考,报告中的事实和观点不构成相关数字资产的任何投资建议。火币区块链研究院不对因使用本报告内容而导致的损失承担任何责任,除非法律法规有明确规定。读者不应仅依据本报告作出投资决策,也不应依据本报告丧失独立判断的能力。

  4. 本报告所载资料、意见及推测仅反映研究人员于定稿本报告当日的判断,未来基于行业变化和数据信息的更新,存在观点与判断更新的可能性。

  5. 本报告版权仅为火币区块链研究院所有,如需引用本报告内容,请注明出处。如需大幅引用请事先告知,并在允许的范围内使用。在任何情况下不得对本报告进行任何有悖原意的引用、删节和修改。

导读:钱包设计上需严格控制开放端口的权限,确保通讯只是公钥签名。同时严格审查是否具备抗篡改能力的核心技术能力。

                                                                                                     来源:学习区块链

Tags:
免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:msy2134。