一种独立生成和保存加密数字货币私钥的方法及承载加密
数字货币私钥的装置
技术领域
[0001] 本
发明涉及加密数字货币私钥的生成和保存方法及承载加密数字货币私钥的装置领域。
背景技术
[0002] 现行加密数字货币如目前主流加密数字货币-
比特币,是一种整合 P2P(互联网点对点的网络协议), 互联网, 加密学原理的一种去中心化属性的数字货币。
[0003] 加密数字货币中所有形式的钱都是协议(All forms of money are protocol) 即所有的钱在进行交易之前都必须遵守的规则的正式描述。如比特币就是一种更高形式的协议,它是利用互联网技术和
密码学而最新设计的
软件,而密码学的应用保证了
支付系统的安全性。所以,比特币在这方面与其他的货币并没有太大的区别。比特币最独特的一点是其总账系统(ledger system)是去中心化的,而其他的货币都有一个中央机构来发行货币。
[0004] 初次数字货币使用者在电脑安装该数字货币的钱包软件, 这种软件生成钱包(如比待币以wallet.dat格式保存在电脑内)。钱包生成多个
比特币地址,地址是对外公开的账号用来接收别人发给你比特币。
[0005] 钱包生成加密数字货币地址就有该地址相对应的私钥和公钥,目前私钥和公钥都包含在钱包档案(wallet.dat)内。
[0006] 所有加密数字货币的交易都是公开的,如比特币中所有交易一经全网确认就整合成”公开总账本”(shared public ledger)又叫
块链(Blockchain),每一个钱包的结余(Balance)没有单独记录,都是透过块链的交易信息计算出来成所有权人收入支付的结余。块链是透过加密学根据
交易记录和时间顺序整合而成。“比特币交易”就是在各个
比特币钱包之间的价值转款记录并整合到块链。
[0007] 在加密数字货币中,私钥(private key)是保存在钱包里的一串信息。如比特币中,私钥就保存在钱包档案wallet.dat内。私钥的作用是用来产生公钥(该公钥可以推导出比特币地址),并且用来做交易的数字签名。 这个签名保证了交易的可靠性, 不被篡改,不可否认的完整性。所有的交易记录都会被广播到用户群,并且在下一个规定时间(如比特币就是下一个10分钟)被全网确认,这个过程又称为
挖矿(Mining)。
[0008] 图1所示为目前比特币交易过程:以如图1中的交易1为例,如果B想支付100个比特币(100BTC)给C,那么B不仅需要在交易单上注明金额,而且需要注明这100个比特币的来源。如图1所示,B的100BTC其实来自A,是B通过交易0得到的,这里交易0已经通过了全网用户的认证,保存在所有用户的电脑中。
[0009] 为完成交易1,B需要在交易单上填写的信息包括:100BTC的来源,此处为交易单0的ID;
C的公钥,也即C的比特币收款地址;
是将交易单0的内容和C的公钥输入散列函数,得到一串数字。B用自己的私钥加密这串数字,作为数字签名放在交易单1中。C在收到交易单1之后,可以通过其中存放的ID找到交易单0,并获取B的公钥。C可以使用该公钥对交易单1中的数字签名进行解密。与此同时,C可以把自己的公钥和交易单0的内容,按照同样的方式输入散列函数,并将得到的数字与数字签名解密的结果进行比对。
[0010] 如果比对成功,就可以确定如下两个事实:其一,100BTC的来源属实。因为交易单0中包含了A的签名,且交易单0是经过全网认证过的,即A确实将100BTC给了B;
其二,交易1的确是经由B签署的。由于B的私钥是唯一的,他无法抵赖这单交易。
[0011] 现有加密数字货币的结构具有如下的缺点:首先是安全方面的隐患:
作为加密数字货币的主要代表,虽然比特币的协议和加密技术经历5年多的验证证实了比特币的安全性很高。但是使用者的私钥(private key)是保存在比特币钱包(一般以wallet.dat的档案形式存在电脑
硬盘内)里的一串信息,你的私钥就是你的比特币! 由于私钥存在钱包中, 而钱包是存在电脑的一个wallet.dat的档案。只要是档案就有可能被读取或丢失!几乎所有其它加密数字货币都是采用这个机制。这个机制会因为使用者普遍存在的惯性行为的不严谨带来极大地
风险和不便。
[0012] 私钥由钱包软件生成,私钥的产生方式易被控制和被非法利用。
[0013] 私钥保存于钱包文件中,私钥的保存方式容易导致丢失、损坏或被盗取。
[0014] 使用私钥对交易进行签名的过程由钱包软件完成,私钥的签名方式容易导致私钥被非法代码拦截而泄露。
[0015] 另外,上述的加密数字货币的结构造成操作繁琐,使用不方便,造成用户群落单一,不能吸引更多的用户。
[0016] 钱包由电脑的客户端软件生成, 被电脑
位置限制使用。与一般传统使用
银行卡的使用习惯不同,一般使用者需要学习及被
捆绑在设备(电脑或手机)。 造成畏惧使用,无法普遍运用于日常生活中。
[0017] 即使比特币产业有一些改进方案, 除了软件钱包还有一些如网络钱包 (Web Wallet), 纸钱包(Paper wallet), 脑钱包(Brain wallet), 都逃离不了私钥以档案的形式存在自己的电脑, 或在第三方网络钱包
服务器内, 就有可能丢失(电脑损坏或
网站关闭)和被窃取的可能。
发明内容
[0018] 本发明针对目前加密数字货币由于私钥与钱包一起保存所带来的不足,本发明提供一种将私钥与钱包等从物理上到逻辑上隔离,并将保存私钥的载体与互联网隔离,保证私钥安全的一种加密数字货币私钥保存方法及承载数字货币私钥的装置。
[0019] 本发明的技术方案是:一种独立生成和保存加密数字货币私钥的方法,包括以下步骤,A.私钥生成: 采用一个智能装置,该智能装置从内部产生私钥和公钥对;
B:私钥保存,将私钥储存于智能装置内,私钥完全封闭在智能装置内部,外部无法读取;
C: 私钥使用,智能装置利用私钥生成签名信息;智能装置具有与连接在互联网上的智能终端的通信
接口,通过
通信接口向智能终端传送公钥和签名信息,接收智能终端的信息。
[0020] 本发明将将私钥剥离出钱包,单独
封存在智能装置内, 智能装置对外只有公钥和
电子签名信息,杜绝任何非本人意愿而被盗取可能性,断绝所有获得私钥的途径,完全保护使用者的货币权利。
[0021] 本发明的优选方式包括:所述的智能装置通过椭圆曲线加密
算法计算出私钥/公钥对,其中公钥以明文方式提供给互联网上的智能终端,用于产生钱包地址及交易所需信息,私钥通过加密后保存于智能设备的
存储器中。
[0022] 私钥使用时通过通信接口将公钥传给智能终端,智能终端计算出相应加密数字货币的钱包地址,作为交易过程需要的信息,及广播给数字货币网络的所有
节点。
[0023] 私钥使用时,在交易过程中智能装置从智能终端获取相关交易数据的散列值后,利用封存于内部的私钥计算出签名信息,并将签名信息以明文的方式发送给智能终端,由智能终端向外发布从而完成交易过程所需要的电子签名。
[0024] 另外,智能装置具有与连接在互联网上的智能终端的通信接口包括USB接口、IC卡
接触式接口或近场无线通信接口。
[0025] 本发明还提供了一种承载数字货币私钥的装置,包括,A.椭圆曲线密钥生成模块;
B.计算模块: 计算模块与椭圆曲线密钥生成模块相连,计算出私钥/公钥对;
C.存储器: 与计算模块相连,保存私钥;
D.安全加密及控
制模块:与存储器和计算模块相连,保存计算模块生成的私钥加密,控制计算模块利用保存在存储器中的私钥生成数字签名;
与其它智能终端通信的通信接口,该通信接口接收加密数字货币的交易散列信息,向智能终端发送公钥或者数字签名,通过智能终端向加密数字货币网络广播交易信息。
[0026] 该承载数字货币私钥的装置保存私钥,只具有所产生的签名和公钥传送到互联网的接口,但不具备将私钥传送的通信接口,可以保证私钥的安全。
[0027] 本发明的承载数字货币私钥的装置的外形是多种多样的,包括:所述的装置为一种卡片,通信接口为IC卡接触式接口或近场无线通信接口。
[0028] 所述的装置为一种移动终端,通信接口为USB接口或者近场无线通信接口。
[0029] 所述的装置为一种可穿戴便携智能设备,通信接口为近场无线通信接口。
[0030] 下面结合具体
实施例对本发明作较为详细的描述。
附图说明
[0031] 图1是普通比特币交易流程。
[0032] 图2是本发明实施例1中的PKC 结构图。
[0033] 图3是本发明实施例1中的PKC与互联网连接图。
[0034] 图4是采用本发明的方法保护私钥后比特币交易流程。
具体实施方式
[0035] 本实施例是承载比特币私钥的一种银行卡形状的比特币私钥卡,也称为PKC,如图1所示,在卡内设置有一个计算模块,该计算模块可以利用比特币钱包软件中有关椭圆曲线加密算法(ECC)生成私钥/公钥对,公钥可以利用PKC与安装有比特币APP的智能终端的通信接口,发送到智能终端,进而向所有终端公开,私钥保存在存储器中,在保存之前加密,本PKC卡于首次激活时自行生成私钥并储存并封闭在于PKC内,外部无法以任何方法读取私钥,私钥得到充分的保护。
[0036] 本实施例中,计算模块通过关椭圆曲线加密算法(ECC)生成私钥/公钥对,公钥通过通信接口向外公布,广播给比特币网络的所有节点(Node),App计算出相应加密数字货币的钱包地址(Address)。
[0037] 将私钥加密保存在卡上的存储器中,切断一切读写私钥的通道,只有计算模块利用私钥结合收到的交易信息生成签名。
[0038] 主要功能如下:能生成一组私钥,公钥; 这是利用计算模块通过比特币钱包软件中有关椭圆曲线加密算法。
[0039] 能处理加密运算; 将私钥加密以后保存在本身的存储器中。
[0040] 通信接口能透过ISO14443 NFC, ISO7816 IC接触卡, USB等接口与外部终端沟通传输公钥信息, 加密信息, 电子签名等各种加密数字货币交易的必要信息。
[0041] 由于加密数字货币的交易不需要私钥信息, 所以私钥封闭在PKC内,外部无法读取.也不影响交易完成的流程和要素, 且达成私钥完全保护的目的。
[0042] 本实施例的PKC的技术说明:将加密数字货币钱包软件中有关椭圆曲线加密算法(ECC)的私钥/公钥对产生代码和签名代码剥离出来,由带
微处理器芯片的便携式
智能卡(PKC)来完成。
[0043] PKC透过通信接口(IC卡接触式接口7816 或 NFC)将公钥传给安装于电脑或手机的终端软件(App),从而App计算出相应加密数字货币的钱包地址(Address)。作为交易过程需要的信息,及广播给比特币网络的所有节点(Node)。
[0044] 交易过程PKC还要从App获取相关交易数据的散列(Hash)值后,利用封存于内部的私钥计算出签名信息,并将签名信息以明文的方式发送给App从而完成交易过程所需要的电子签名(Signature)。
[0045] PKC通过椭圆曲线加密算法(ECC)计算出私钥/公钥对,其中公钥可以明文方式提供给终端软件(App),私钥通过加密后保存于微处理器内置的存储器中。
[0046] 智能卡(PKC)与钱包软件(App)的交互信息全部是可公开的明文信息,不存在安全顾虑。
[0047] PKC 与App 的通信协议可以是USB协议, IC卡接触式接口7816或近场无线通信(NFC)协议。
[0048] 智能卡(PKC)可用于目前所有的加密数字货币,具有通用性。
[0049] PKC的具体结构如图2所示:该PKC 由5个模块组成:通信接口: 与外界沟通的
硬件接口和协议;主要有USB、NFC或者IC卡接触式接口
7816等。
[0050] 计算模块: 芯片主运算核心。
[0051] 存储器: 存放代码和数据。
[0052] 椭圆曲线秘钥生成模块: 一种
固化在芯片内部的逻辑
电路,负责快速且安全地生成私钥/公钥组; 私钥一次性的存放到存储器内,外部无法获取。
[0053] 安全加密及
控制模块:也是一种固化在芯片内部的
逻辑电路, 负责根据加密算法将计算模块传送过来的数据进行加密后返还给计算模块. 减轻计算模块的运算功耗和缩短加密运算时间. 尤其在无源非接触型的界面应用更需要最小功耗最快运算的要求。
[0054] 利用PKC通过智能与互联网连接如图3所示:PKC开卡流程由 智能终端下达激活指令给PKC. 透过通信接口与计算模块通信。
[0055] PKC的计算模块通知椭圆曲线密钥生成模块 生成私钥和公钥的密钥对传回给安全加密及控制模块, 安全加密及控制模块对私钥加密后一次性封存到存储器中。
[0056] PKC安全加密及控制模块公钥传回给智能终端,智能终端将公钥推导出适合不同加密数字货币协议的钱包地址,并将地址信息以明文格式及二维码格式打印后附在PKC的
包装上。智能终端上安装有比特币的APP,实现与比特币的通信,如果是其它数字货币,就安装其它的APP。
[0057] 整个过程由智能终端发出激活指令,产生密钥对, 生成钱包地址,完成开卡作业。
[0058] 采用本实施例的PKC和方法进行比特币交易的过程如图4所示:整个交易链可以同时存在既有的比特币方式及本发明的方式。习用的交易的方式: TRM+NET也就是终端加网络方式。
[0059] 交方式易1: “所有者1”支付给”所有者2”:私钥获取(私钥存在电脑钱包, 钱包软件从电脑的档案获取), 计算交易信息散列(Hash)值, 联网等所有交易有关的内容和工作全在电脑终端TRM完成.终端1从网络获取上一个交易记录”交易单1”和”所有者2”的公钥输入散列函数,得到一串数字. “所有者1”用自己的私钥加密这串数字,作为数字签名放在”交易单2”中和取出存在TRM1里的”使用者1公钥”构成本次交易的”交易单2”及交易信息散列(Hash)值广播到NET全网。
[0060] 上面的交易过程与如图1所示的交易一致。
[0061] 本实施例的交易方式: PKC + TRM+NET交方式易2: “所有者2”支付给”所有者3”:
私钥存在PKC2外部无法获取, 签名工作不再由TRM2负责,而是由TRM2发给PKC2上一次交易记录” 交易单2”的信息, PKC2再用存在内部的私钥加密计算完成签名的工作。 PKC 将运算结果的电子签名和公钥传给TRM2. TRM2负责从NET获取上一个交易记录验证并使用PKC2的公钥和电子签名构成处理本次交易成”交易单3”和负责散列计算并广播到NET全网。
[0062] TRM1 和TRM2的差别是:TRM1= TRM + 钱包 ; 钱包捆绑在电脑设备,每次支付交易都要在限定的设备操作.TRM2= 任何一台通用电脑或手机; 也就是每次支付交易只要拿着PKC在任何地方的任何设备(手机,电脑, ATM, POS)都可以操作。
[0063] 交易3的方式可以采用习用的方式1或本实施例的方式2。
[0064] 即 可以是TRM3 +NET ; 或是 PKC3+TRM3+NET本发明在不改变现有加密数字货币的协议条件下,真正实现使用者的权益安全性和操作便捷性。