据不完全统计,数字货币交易所丢币已经不止二十亿美金,从而揭露了当前交易所领域发展的最大瓶颈——资产安全的问题。如何能解决交易所资产安全这个痛点呢?有的投资者在区块链交易所钱包开发问题上,可能会选择自建团队独立开发或使用第三方开发商专门开发的钱包系统。
首先,应该清楚什么是区块链钱包?
区块链钱包是指利用区块链技术开发的虚拟数字货币产品的一种管理工具,它包含了数字货币可进行交易的特点,简而言之就是付款、收款。
付款指的是能够将把地址中的数字资产转至其他地址,前提是要拥有付款地址的私钥,持有地址的私钥便能够对该地址的数字资产进行支配;
收款指的是它可能够生成合乎该链规则的有效地址,其他地址可能够向对这个地址进行转账的操作。
介绍比特币钱包和以太坊钱包的开发过程,包含钱包的主要功能:
创建钱包,钱包余额,导出钱包,钱包转账等。
Demo地址定义
可以把区块链钱包当做是一个银行账户系统,它管理着你的在区块链上的资产,并且可以实现查看余额,转账,收账功,查看交易记录功能,而钱包应用就相当于银行的客户端,来实现钱包的具体功能。你的私钥就相当于银行账户的密码,你的地址就相当于银行的银行卡号。
钱包分类
管理私钥的方式,大致分为,冷钱包,热钱包,软钱包,硬件钱包。
on-chain
给一个钱包地址发送数字货币, 这笔交易在全网广播、被确认、被打包进区块。这是发生在链上的,被称为on-chain交易。on-chain钱包需要自己保管私钥。
off-chain
相对于on-chain交易是off-chain交易。通常,通过交易所进行的交易是off-chain的,本人并没有私钥。私钥在交易所,由交易所托管。所以交易所的钱包也是中心化的钱包。
冷钱包
冷钱包就是,你把你的私钥,写在纸上,或者打印成二维码在纸上,或者记在你脑袋里,这类钱包一般就是为了安全保存私钥的,他不具备钱包的其它任何功能
热钱包
热钱包就是,不是自己保管自己的私钥,而是钱包的开发者把私钥保存在服务器端,你所有的钱包操作都要经过服务器操作,这种钱包,等于是把自己的资产完全交给了别人,所以是最不安全的钱包,很少有人会用这种钱包
软钱包
软钱包就是私钥保存在客户端本地,而不是保存在服务端,用户可以管理自己的私钥,相对于热钱包安全很多。软钱包又分为“全节点钱包”和“轻钱包”。
全节点钱
包一般是钱包官方提供的钱包软件,它会把节点数据全部同步到本地,所以会花费很长时间同步数据,并且会占用很大的硬盘存储空间,所以对于个人用户来说,使用起来还是比较繁琐的,也就是说不适合个人用户使用
轻钱包
是指不同步节点,转账使用离线签名,然后经过服务端节点广播出去,它的私钥也是保存的客户端本地的,用户可以自己管理,并且可以在手机这种移动端设备使用,所以现在最流行的就是这种“软钱包”,接下来的一系列文章也基本都是关于“轻钱包”开发的
硬件钱包
硬件钱包,是指带有简单嵌入式系统的硬件设备,通过USB链接电脑,可以在硬件设备上进行创建私钥和地址的操作,并且离线签名也是硬件操作的,硬件管理着你的私钥。这是目前最安全的钱包,但是价格比较贵一些,市面上比较流行的硬件钱包大概为:TREZOR,Ledger,Keepkey,库神等,感兴趣的可以网上搜一下
钱包中私钥作用:
1、生成公钥,然后由公钥生成地址(类似于微信的收款二维码)
2、签名,确保交易的正确性(类似支付密码)
区块链网络的信息都存储在节点上,每个节点都是有全网的转账信息,所以要篡改的话信息的话要在短时间内篡改全网半数以上的节点的信息,理论上是非常安全的
生成私钥
那么私钥是怎么生成的呢,其实它就是一个 256 位的二进制随机数,随机的目的是保证不重复,随机的方式当然就有很多了,比如你可以抛 256 次硬币,正面记 1、反面记 0。
而计算机怎么实现呢,是通过密码学安全随机出一段字符串,然后进行 SHA256 哈希算法就可以产生私钥了。
当然这只是原始的私钥,不同的区块链网络还需要经过不同格式化才能产生对应区块链网络的私钥。