zoukankan      html  css  js  c++  java
  • 数字货币钱包的安全性问题

    像比特币这样加密货币(Cryptocurrency),因为采用无政府的去中心化方式发行,大多数国家都不承认它是合法的货币,在法律上没有偿还性和强制性等货币特点。例如,中国人民银行就明确表示,比特币不属于货币,而是属于可以交易的虚拟商品,国内所有金融机构不得开展与比特币相关的业务。尽管如此,比特币和以太币等加密货币还是具备了流通性、可支付性、稀缺性等货币的基本特征。

    传统货币的拥有人可以把货币存在银行里,或者通过钞票等实物形式用于支付。加密货币则不同,基本上由持有人自己保管账号的数字信息。在比特币的系统里面,账号是由椭圆曲线数字签名算法(ECDSA)中的公钥,经过哈希变换,再加上校验码而生成的一串数字,通常是一个33或34位的Base58编码字符,例如:16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM。使用Base58编码字符的原因是尽量减少账号的长度,把大小写的英文字母以及数字(除去容易混淆的数字0、大写O、大写I和小写l)都用来表示数字。这个账号在比特币里称作地址(address),用户接收他人发来的比特币,或者发送比特币给他人,都需要用到这个地址(为方便读者理解,本章将在大多数情况下将账号和地址作为同义词)。所以,比特币里的账号(地址),就像具有门牌号码的信箱,任何人只要知道这个门牌号码,都可以往信箱里面转入比特币。另一方面,信箱的主人有把特殊的钥匙,就是与ECDSA公钥对应的私钥,只有使用这个私钥,才可以打开信箱并取走(花费)存放在里面的比特币。由此可见,私钥就是比特币主人需要自己保管和保密的账号信息。需要指出的是,若忘记了传统银行账号密码,可以找银行重置账号密码,而在比特币体系里面,一旦丢失私钥,则没有办法可以“重置”私钥,将也打不开信箱拿走账号里的比特币,这是比特币无中心化的机制决定的。

    既然私钥那么重要,管理比特币等加密货币资产实质上就是私钥的保管和使用。最理想的管理办法是既能保障资产安全又能很方便地使用资产(支付或花费),然而现实中这两个目标往往不可兼得。例如,一种简便的方法就是把私钥保存在电脑或手机里,需要支付比特币的时候,可以通过软件用私钥签名并发送交易。但这种方式的缺点也很明显,如果电脑或手机丢失,或者私钥文件损坏,将无法操作相关账号,账号中的比特币也等同于丢失了。还有一种情形,如果电脑等设备被黑客攻破或感染病毒,保存的私钥可被复制,进而账号中的加密货币也会被盗走。

    为了应对设备丢失或文件损坏的情况,可把私钥文件备份到其他设备上,如U盘、移动硬盘等,然后把备份设备存放在安全的地方,遇到设备故障可以恢复私钥。对于黑客、病毒等外来攻击,因为电脑和手机需要联网才能支付加密货币,理论上就没法彻底避免私钥被盗的可能,需要依靠其他的方式来应对。简单地说,就是“分仓存放”,使用多个账号地址来存放加密货币。在频繁使用的在线账号里存放少量的加密货币,在电脑等设备上要保存这些账号的私钥。其余加密货币都转到离线的账号中,所谓离线账号,就是该账号的私钥不在任何的连线设备上存放。每当在线账号里的钱增加到一定程度时,可以将其转移到离线账号中保存,而且每次转移可以使用不同的离线账号。比特币的离线账号还有个优点,就是往账号地址里面转入比特币时,账号无需联网,这样就大大增加了安全度。

  • 相关阅读:
    leetcode5 Longest Palindromic Substring
    leetcode17 Letter Combinations of a Phone Number
    leetcode13 Roman to Integer
    leetcode14 Longest Common Prefix
    leetcode20 Valid Parentheses
    leetcode392 Is Subsequence
    leetcode121 Best Time to Buy and Sell Stock
    leetcode198 House Robber
    leetcode746 Min Cost Climbing Stairs
    tomcat下使用druid配置jnid数据源
  • 原文地址:https://www.cnblogs.com/qukuailian/p/8977027.html
Copyright © 2011-2022 走看看