当前位置:主页 > 行业资讯 > 系统开发 >
虚拟货币钱包开发需要注意哪些问题?云之梦科技
发布日期:2020-08-07 阅读次数: 字体大小:

“区块链数字钱包”的本质就像如今去我们所用的银行卡,认识和保护它就是在守卫自己的财产。在各大聊天平台交流中和相关数字货币的报道中,我们看到了不少人由于对“区块链数字钱包”的理解不清,而至私钥保护不善造成个人数字资产损失的情况,这真的不应该。
    每当进行数字资产投资时,我们不能仅仅依靠交易所来存储数字资产,我们更需要有个自己的数字钱包,来存储属于我们个人的数字资产,了解“区块链数字钱包”(以下简称钱包)的相关知识更是我们投资前就应该弄清楚的。
 
    一.初识“虚拟货币数字钱包”
 
    钱包本质上是一个工具,目前绝大多数的钱包都是在网络中建立了属于用户的单独区块空间,它是去中心化的。一般意义上的银行卡是由中心化的银行发放,并进行其中的资产管理,我们密码丢失,可以通过相关证明来让银行帮忙找回,我们银行卡遗失,别人拿到银行卡没有密码也取不走我们的资产,我们更可以通过银行冻结个人银行卡账户,重新办理新的银行卡废除旧的银行卡;钱包则不然,丢失了打开钱包的钥匙谁也没法帮我们找回钱包。
 
    1.虚拟货币数字钱包(BlockChainWallet)
 
    密钥是虚拟货币数字钱包的管理工具,它只包含密钥而不是确切的某一个代币;钱包中包含成对的私钥和公钥,用户用私钥来签名交易,从而证明该用户拥有交易的输出权;而输出的交易信息则存储在区块链中;用户在使用钱包时,
 
    你的Keystore,助记词,明文私钥,都是钱包;Keystore
 
    是你加了”锁”的钱包,而助记词和明文私钥是完全暴露在外的钱包,没有任何安全性可言,所以在使用助记词和明文私钥时,一定要注意保密。
 
    虚拟货币数字钱包在2011年8月诞生,并此后在代币交易中发挥着巨大的作用;由于该平台被密码学严格保护,因此基本不用担心被黑客袭击。虚拟货币数字钱包本身就相当于个人银行账户,在银行中我们创建存款账户并且存取现金,那么类似地,在虚拟货币数字钱包中我们创建区块链账号并且存取比特币。在该平台上,用户可以在任何时间段将比特币转换成现金或用现金来支付比特币,下图比较了区块链钱包和银行的区别,左边的区块链钱包识别码对应右边银行的客户ID,左边的比特币地址对应右边银行的存款账号。
    2.虚拟货币数字钱包需要先理解几个概念
 
    钱包一般包含以下内容:公钥、私钥、助记词、keystore、密码;这里的内容就稍微有点烧脑了,本质上,钱包和钥匙是一一对应的,固定的钥匙直接就可以在网络上打开属于自己的钱包,但为了避免在网络传输过程中的泄密,密码学家运用非对称加密技术,发明了公钥和私钥,公钥用于传输,私钥用于解密,简单的看,我们可以认为公钥就是银行卡号,而私钥就是银行密码。
 
    私钥=keystore+密码,私钥是由五六十位包含数字和区分大小写的字母所组成。为了方便数字资产交易,用简单的密码加上keystore我们就能便捷的转移数字资产。助记词是加密了的私钥,基本也就是私钥,它是为了便于导出keystore而发明的。
 
    3.虚拟货币数字钱包都有哪几种分类方式
 
    (1)on-chain
 
    给一个钱包地址发送数字货币,这笔交易在全网广播、被确认、被打包进区块。这是发生在链上的,被称为on-chain交易;on-chain钱包需要自己保管私钥。
 
    (2)off-chain
 
    相对于on-chain交易是off-chain交易。通常,通过交易所进行的交易是off-chain的,本人并没有私钥。私钥在交易所,由交易所托管。所以,交易所的钱包也是中心化的钱包。
 
    (3)冷钱包
 
    冷即离线、断网,也就是说,私钥存储的位置不能被网络所访问。例如纸钱包、脑钱包、硬件钱包等等。
 
    (4)热钱包
 
    热即联网,也就是私钥存储在能被网络访问的位置。例如存放在交易所的、在线钱包网站、手机App钱包都属于热钱包。通常而言,冷钱包更加安全,热钱包使用更加方便。
 
    (5)全节点钱包
 
    除了保存私钥外,全节点钱包还有保存了所有区块的数据,最为著名的是bitcoin-core。
 
    (6)轻钱包
 
    它不必保存所有区块的数据,只保存跟自己相关的数据。基本可以实现去中心化。
 
    (7)中心化钱包
 
    在交易所中的钱包,以及类似OKLink提供的保险柜服务。
    二.“虚拟货币数字钱包”的技术颠覆在哪里?
 
    在使用钱包的时候,大家一定要多学习多研究。因为区块链是有匿名性的,使用各种钱包是不需要实名认证。虽然你可以看到交易转账的地址,但是你并不知道地址的使用者是谁。
 
    而且,区块链的信息是不可逆转的,万一你小心把币打错地址了,可就找不回来了。我们把币存在钱包里,到底是放在哪里了呢?是不是就在钱包里呢?
 
    1.虚拟货币数字钱包背后的密码学原理可以简单的分解为三个步骤:
 
    创建随机私钥(64位16进制字符/256比特/32字节);从私钥推导出公钥(128位16进制字符/512比特/64字节);从公钥中导出地址(40位16进制字符/160比特/20字节)。
 
    简单的步骤背后已经囊括了密码学中大多数的技术:随机数生成器、非对称加密、单向散列函数等。
 
    (1)随机数
 
    随机数是专门的随机试验的结果。在钱包中随机数用于生成私钥,因其相关安全性的重要性,所以必须保证随机数具备以下三种特性:
 
    随机性:不存在统计学偏差,完全杂乱的数列;不可预测性:不能从过去数列推测下一个出现的数;不可重现性:除非将数列保存下来,否则不能重现相同的数列。
 
    也就是真随机数。当然,实际上只要给定边界条件,真随机数并不存在。但目前大多数的看法是密钥存在一定的循环周期,只要该周期足够长,也会有足够好的安全性和保密性。
 
    (2)非对称加密
 
    非对称加密算法于1976年提出,用于在不安全的媒体上解决信息公开传送和密钥管理的问题。它将一般的密钥分为加密密钥和解密密钥,也就是我们常说的公钥和私钥。公钥私钥一一对应,由公钥加密的密文,必须使用与公钥配对的私钥才可以解密。如下图所示,甲乙之间使用非对称加密的方式完成了重要信息的安全传输。
 
    乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。
 
    在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文;同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。
 
    (3)单向散列函数
 
    单向散列函数又称为单向Hash函数、杂凑函数。它有一个输入和一个输出,输入称为消息,输出称为散列值(也称为消息摘要)。单向散列函数可以把任意长度的输入串变化成固定长的输出串,也就是可以根据消息的内容计算出散列值,而散列值就可以用来检查消息的完整性。由于它的单向性,其输出不依赖于输入。已知一个散列值,要找到预映射的值,使它的散列值等于已知的散列值在计算上是不可行的。单向散列函数的安全性使它主要用于完整性效验和提高数字签字的有效性。
    2.虚拟货币数字钱包“私钥”、“公钥”、“地址”间的智能合约
 
    (1)私钥
 
    通常是由随机算法生成的,说白了,就是一个巨大的随机整数,以太坊钱包的私钥就是64位的16进制哈希值字符串。
 
    (2)助记词
 
    这么多个字节可怎么记呢?所以有的钱包就出现了助记词,一般情况下,助记词由一些单词组成,只要你记住这些单词,按照顺序在钱包中输入,也能打开钱包,对吧,单词可比一串代码好记多了。
 
    (3)keystore
 
    有的钱包会采取把私钥制作成keystore让用户导出保存,这个Keystore就是私钥经过加密过后的一个文件,需要你自己设置的密码才能打开文件。这样的好处是就算keystore文件被盗,只要你额外设置的密码够长够随机,那么短时间内私钥也不会泄露,有充足的时间转移地址里面的加密货币到其他地址。
 
    (4)公钥
 
    那么,别人要给你转账怎么办呢?但是你肯定不能把私钥告诉别人,对吧,私钥就代表了你对钱包的所有权,这是用密码学来保护的。所以,我们需要另一个东西,就是别人能给你转账,同时又不会泄露你的私钥,我们用到了哈希加密技术,把私钥转换一下得到一串字符,我们把它叫做公钥。哈希加密技术目前的技术水平是不可逆的,也就是说通过公钥几乎不可以倒推出来私钥,所以可以认为这种方法比较安全。一般情况,我们转账都用一个收币地址,这是通过公钥转化过来的,是公钥的缩减版本,公钥和收币地址之间是可以相互转换的。
 
    3.虚拟货币数字钱包的单向、不可逆特性
 
    钱包生成私钥,通过椭圆曲线算法可以从私钥计算得到公钥。注意:它是单向的,不可逆的。
 
    下图可知私钥是可以生成公钥,公钥可以生成比特币地址的,相反则不行,因为比特币是由一个不可逆的算法完成这个流程的。所以,我们可以放心的把钱包地址给别人看而不用担心自己财产的丢失。但如果你的私钥泄露,那别人就有可能复制一份跟你一摸一样的钱包,你的资产就有安全问题了。其实,加密货币保管只需要一个“私钥”,谁掌握了私钥,就掌握了你的钱包财产,所以你的私钥一定要保管好。
    区块链虚拟货币数字钱包技术颠覆在哪里?
 
    1、区块链(BlockChain)虚拟货币数字钱包技术是一种使用去中心化共识机制去维护一个完整的、分布式的、不可篡改的账本数据库的技术,它能够让区块链中的参与者在无需建立信任关系的前提下实现一个统一的账本系统。区块是公共帐本,多点维护;链就是盖上时间戳,不可伪造;区块链本质上是一个注重安全和可信度胜过效率的一项技术。
 
    2、区块链是如何工作的?区块链是一个分散的分类总账系统;区块链的完整性使得交易易于验证,并且无法篡改;每个事务请求都是通过P2P网络启动的;每个交易必须由网络中所有计算机的至少51%进行验证;事务通过验证测试后,唯一条目存储在分类账中,并处理事务。
 
    人们发现,区块链的意义在于可以构建一个更加可靠的互联网系统,从根本上解决价值交换与转移中存在的欺诈和寻租现象。越来越多的人相信,随着区块链技术的普及,数字经济将会更加真实可信,经济社会由此变得更加公正和透明。进一步的研究发现,区块链技术具备一种“降低成本”的强大能力,能简化流程,降低一些不必要的交易成本及制度性成本。这种能力应用于许多社会领域中,对于改善当前低迷的经济环境更有现实意义。