zoukankan      html  css  js  c++  java
  • 数字货币钱包

    什么是数字货币钱包?

    很多人说,数字货币钱包就是用了装数字货币的,通俗来说这样理解没有问题,但实际上,数字货币钱包装的并不是数字货币,而是装密钥(私钥和公钥)的工具,有了密钥就可以拥有相应地址上的数字货币的支配权,利用钱包中生成的数字货币收款地址,可以接受他人给你转账的数字货币,也可以把你所拥有的数字货币转账给其他人。

    数字货币钱包的本质是一个工具,即存储、转账和接收Token的工具。

    首先,我们来了解一下钱包的三个最为核心的概念:私钥、公钥、地址。

    它们按照这个顺序生成的:1、生成私钥 2、由私钥算出公钥 3、再由公钥经过一系列哈希算出钱包地址。

    私钥(Private Key)

    听起来高端,其实就是个随机数,由32个字节(byte)组成的数组,1个字节等于8位二进制,一个二进制只有两个值,0或者1。你可以想象着比特币世界里有2^256个抽屉,随便抽出一个抽屉来存放比特币,抽屉的编号就是私钥,只有你知道这个编号,所以也就只有你才能使用这个抽屉里的比特币。相当于提款卡,金融卡,或银行帐户的密码,用于证明比特币的所有权。

    「2的256次方」是多大呢?它约等于「10的77次方」。那「10的77次方」又是多大呢?如果我们居住的这个地球,海洋、岩石、地底下的岩浆全部用沙子来填充的话,整个地球的沙子数量大概是「10的30次方」。也就是说,一个和地球一样大,全部由沙子组成的星球,需要用到「10的30次方」粒沙子。

    「10的77次方」比「10的30次方」大「10的37次方」倍,整整37个0。在比一个地球的沙子数量还要多「10的37次方」倍的比特币私钥集里,一个一个地试,破解出某个地址对应的私钥,简直比大海捞针还难。所以,即便黑客有超级计算机,都无法暴力破解比特币私钥。这就是为什么很多人说,“比特币第一次通过技术手段,保证了个人的私有财产神圣不可侵犯”。

    公钥(Public Key)

    公钥与私钥一一对应,是由私钥推算出来的(通过椭圆曲线算法)。使用私钥签名交易之后,会把自己的公钥一起和交易发送出去,公钥是用来验证私钥的签名是否正确,一般我们很少会看到公钥。私钥能推算出公钥,但公钥不能反推出私钥,该过程是不可逆的。公钥和私钥是成对的。

    地址(Address)

    地址是由公钥转换而来(摘要+校验),地址被用于转出和接收Token(公钥其实也可以收币,只不过大部分人不这么做而已),一个地址上收到Token后,只有使用该地址所对应的私钥才能使用这个地址上的资产。简单点说,钱包会有一个对应的地址、私钥、公钥,地址和公钥可以公开给别人看,但是私钥绝对不行,否则就不安全了。私钥决定了地址资产的归属,公钥和地址均能通过私钥推算出

    判断一个钱包是否安全可靠,首先就是看它能否安全的管理私钥。

    无论是使用冷钱包还是热钱包,只要其他人知道了你的地址私钥,就能转走你的币。记住,谁手握私钥,谁才是持币地址真正的主人

    在现实世界中如果你路上捡到了一张纸条,上面只写着银行卡密码,但没写银行卡号,即便这个银行卡密码是真的,你也无法取走相关账户里的钱。但在区块链世界,你只要知道了别人的“银行卡密码”(私钥),就可以知道别人的“银行账户”(公钥)和“银行卡号”(地址),可以取走里面的币。为什么会这样呢?这是因为在区块链中,私钥通过加密生成公钥,公钥转换一下格式生成地址。也就是说,私钥可以推导出公钥,公钥可以推导出地址。

    数字货币钱包是如何分类的?

    大体上可分为两大类,热钱包(在线钱包)和冷钱包(离线钱包)

    一、热钱包

    热钱包又称在线钱包,包含轻钱包和重钱包(全节点钱包),需保持连网上线的钱包,可以直接进行交易操作。

    1、轻钱包:

    不储存完整的区块链,只保存和自已相关的数据。它的体积小,可以在手机、电脑、网页等运行。

    优缺点:不占用内存、支持多种数字资产、用户体验好、新手上手快,但交易验证稍慢

    2、重钱包(全节点钱包)

    维护着全部的区块链数据,完全去中心化,同步所有数据。具有更好的隐私性、可以在本地验证交易数据的有效性。

    优缺点:具有更好的隐私性、验证信息更快速,但每次使用都需要前需要同步数据,占用很大的硬盘空间,不支持多种数字货币交易。

    二、冷钱包

    冷钱包就是不连网的钱包,也叫离线钱包;比如专业的硬件设备,或者将私钥(助记词)写在纸上。

    1、硬件钱包

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

    冷钱包设计理念

    1. 网络是不安全的,只要是接触网络的设备,就有可能被攻击。
    2. U盘是不安全的,U盘可能会被植入病毒,被植入病毒的U盘可能会自动记录数据,在被插入有网络的电脑以后,通过网络把数据盗走。
    3. 单个人是不可信的,所有的授权必须要经过多个人做双重确认,才能确保安全。
    4. 每个人都有可能出现意外事件,因此掌握授权的人需要进异地备份以确保安全。
    5. 人可能被绑架,因此重要的数据需要保存在保安级别高的银行保险柜里,同时须本人亲自去银行才可取出

    私钥产生和备份

    1. 在完全离线的电脑上生成10000个私钥和对应的地址。
    2. 在完全离线电脑上对私钥进行AES加密。
    3. 删除原始私钥。
    4. AES密码由公司的两个分属异地的人掌握。
    5. 掌握AES密码的两个人不得乘坐同一辆交通工具,避免出意外的风险。
    6. 把之前加密后的私钥和明文地址生成二维码加密文档。
    7. 通过二维码扫描完全离线电脑生成地址文档,用于日常使用,每次热钱包往冷钱包汇币,必须使用一个未使用过的地址,每个地址不可重复使用。
    8. 将二维码加密文档打印保存到保安级别高的保险柜,即使发生文档掌握人被绑架事件,也无法获取此加密文档,因为必须要文档掌握人本人亲自到银行才能获取此文档。
    9. 在异地银行保险柜对二维码加密文档进行备份。
    10. 本地和异地银行保险柜必须由两个不同的人撑握。
    11. 掌握银行保险柜的两个人不得乘做同一辆交通工具。
    12. 本地、异地银行保险柜的控制人不得和AES密码的两个控制人相同。

    线上往冷钱包打币

    1. 从地址文档中取相应地址,根据安全级别,每个地址汇不超过1000B。
    2. 每个地址被使用一次后就不可再使用。

    从冷钱包取币

    1. 派人去办公室附近银行保险柜取出相应数量的未使用过的私钥密文,用扫描二维码的方式取回。
    2. 把私钥密文通过二维码扫描放入完全离线电脑。
    3. 掌握AES密码的人在完全离线电脑上进行解密,获得私钥明文。
    4. 通过二维码扫描把私钥明文导入另一台完全离线电脑。
    5. 在另一台完全离线电脑上进行签名交易,并把签名后的交易通过二维码或U盘同步至有网络的电脑广播交易。

    冷钱包特点

    1. 冷钱包的币采取分散存储方式,每个地址存确定数量的比特币。
    2. 所有私钥在完全离线电脑上存储。
    3. 确保私钥永远没有接触过网络或U盘。
    4. 私钥加密文档需在异地有备份,并且由在异地的不同人控制。
    5. 私钥的AES密码也须由异地的两个不同人控制,且不得与掌握私钥的人相同。
    6. 掌握私钥密文文档或私钥密码的两组人必须在分别在异地,最好是异国。
    7. 某个私钥一旦汇币到线上以后,即作废,永不再使用。

    2、纸钱包

    把私钥打印在纸上存放,再删除电脑上的钱包文件,实现钱包的网络隔离。

    很多刚接触区块链的人,很少不理解为什么这么高端的前沿技术,却还要手动操作。

    其实越是理解网络,越能认识到网络的不安全性。区块链是完全去中心化的、私钥成了进入这个系统的唯一标识。而目前的区块链还做不到在线确保私钥安全。

    就像是在一个生态内,你或许要花很大的力气才能确保安全,但是如果换个角度,当不在这个生态内时,反而容易解决。

    现阶段,手动抄写是最安全的。

    冷钱包的优缺点:

    1. 优点是安全性能高于在线钱包, 在线钱包包括轻钱包和中性化钱包。
    2. 缺点是使用起来不方便,创建钱包和交易都非常麻烦,对于新手来说操作比较困难,钱包价格都相对昂贵,一般从几千到上万元不等。如果没有太大额的数字资产,可以不用考虑。

    只要不是物理和网络隔绝的系统都有被攻破的可能性,只是看攻击的成本有多大,攻击成功的利益有多大。一般比特币交易平台的热钱包存币量都很小,不值得用0-day等手段去攻击,冷钱包方案同一时间最多有1000个币的私钥触网,没有人会花很大成本攻击只有1000个币的系统

  • 相关阅读:
    PAT 1017 Queueing at Bank
    一句有意思的代码
    PAT 1031 Hello World for U
    PAT 1024 Palindromic Number
    PAT 1032 Sharing
    各显神通
    ZJU PAT 1023
    静夜,乱思
    PAT 1024 Palindromic Number
    虚函数表
  • 原文地址:https://www.cnblogs.com/niuben/p/14892663.html
Copyright © 2011-2022 走看看