4.1 简单的本地储存 - 数据结构 - 机器学习
数据结构 - 机器学习
深度学习

当前位置:首页 » 区块链精品文章 » 正文
4.1 简单的本地储存
1110 人参与 2018年09月12日 14:35 分类 : 区块链精品文章 评论
让我们从最简单的储存方式开始,也就是把比特币存放在本地设备上。如我们之前所说,要使用比特币,你首先要知道 一些公共的信息和一些私密的信息。公共信息就是那些记录在区块链上的内容——该比特币的识别信息、币值等。私密信息即比特币持有人——也就是你本人的私 钥。你不必太担心如何储存公共信息,因为你随时都可以去调取。但是私钥则是你需要好好保管的。所以在实际运用中,储存比特币就是储存与管理你的私钥。
储存比特币其实就是如何保存和管理比特币私钥。
储存与管理私钥,主要有三个目标:第一是可获取性,当你要用比特币的时候,可以随时随地取用;第二是安全 性,保证没有其他人可以动用你的比特币,如果有人能动用你的比特币,那他可以直接转账给自己,之后你就不再拥有这个比特币;第三是便利性,密钥管理应当是 简单易行的。你可以想到,要同时做到这三点是很不容易的:
不同的密钥管理方法就是对上述三点(可获取性、安全性和便利性)做出权衡。
最简单的钥匙管理当然是把它们储存在你自己的本地设备上:你的个人电脑、你的手机,或你持有的、拥有的或控 制的小玩意。用智能手机应用软件,按几个键你就可以支配使用你的比特币了,这么做的确非常方便。但这样做的可获取性或安全性都不是很好,如果你的设备丢 失,或者你的设备死机,你需要格式化你的磁盘,或者你的文件被病毒侵蚀,你的私钥就丢失了,你的比特币也就一同丢失了。安全性方面的问题是类似的,例如有 人窃取你的设备或入侵你的设备或者让你的设备中毒,将你的私钥拷贝,这样他们就可以将你所有的比特币转给他们自己了。
换言之,将私钥存储在你的本地设备,尤其是手机设备,就好比你将钱放在你的钱包里。在日常花销的时候是很方便,但你一定不想将你的毕生积蓄都带在身边,因为你不想遗失或被盗。所以一般而言,你只把一小部分信息——一小部分钱放在你的钱包里,而把你大部分钱存在其他地方。
比特币钱包软件
如果你想本地存放比特币,一般都会使用比特币钱包软件,也就是一个管理你的比特币和私钥信息并让你方便使用 的一个应用软件。例如你想花相当于4.25美元的比特币在咖啡馆买杯咖啡,这个钱包应用应该很容易让你做到。比特币钱包非常有用,尤其是你需要处理一大堆 地址和与其相关的密钥的时候。前面说过,制定一对公钥私钥很容易,你可以用其来匿名与保护你的个人隐私。钱包应用就是这样一个简单的接口,告诉你钱包里有 多少比特币。当你要使用比特币的时候,它会处理关于密钥管理的一切技术细节,比如使用密钥或生成新的地址等。
编码解码(encoding keys):Base58编码和二维码
要使用或是接收比特币,你需要与对方交换地址——比特币送达的地址。目前有两种主流的方式将地址加密:一种是字符串,另一种是QR(Quick Response)码[1]。
为了给地址赋予一个字符串,我们把密钥的字节从二进制字符转换成Base58码。Base58就是用一个包 含58个字符的字符集来编码,这被称为base58记号法。为什么是58个字符?我们把大写小写字母都算上,然后去掉几个比较容易混淆的字母,比如大写的 “O”与“0”看起来很像,就得到了58个字符。我们可以将加密的地址读出来,或者在需要时也能够打印出来。理想情况下,最好能避免这种手工的方式,而是 采用其他方法,例如我们接下来要讨论的QR码。
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
以上就是比特币创世块地址的Base58代码。
图4.1 QR码
注:一个QR码代表着一个真实的比特币地址。请扫上面的QR码给我们转账一些比特币。
第二种方法是用QR码,一种简单的二维码。用QR码的好处是你可以用手机拍张照片,然后钱包应用会把QR 码自动转换成代表比特币地址的字节。这对商店十分有用:比如一个付款机可以显示一个QR码,你可以用手机扫描一下,然后就可以用手机把比特币转账到付款地 址。这对于手机与手机之间的转账也很有用。
虚荣地址
有些商家或个人喜欢将地址转换成一些人能够识别的字符。例如,博彩公司网站中本聪骨头(Satoshi Bones)的收款地址中就含有“骨头”(bones),如下所示的2—6位字符 (1bonesEeTcABPjLzAb1VkFgySY6Zqu3sX),当然所有的地址都是1开头的,代表支付到比特币地址的标准交易或者说是标准的 比特币转账流程(pay-to-pubkey-hash)。
地址都是通过哈希计算产生的随机字符串,那么如何才能获得含有“bones”字符串的地址呢?如果中本聪骨 头只是随便制定它们的地址,无法进行逆向计算哈希函数,它们无法得到相应的私钥,也无法控制地址的生成。这样的话,它们只能不停地重复生成私钥,直到私钥 中包含它们希望出现的字符串。这样的地址被称为虚荣地址(vanity address)。这种地址事实上是可以通过工具生成的。
一般需要多少工作量能得到这样的结果呢?由于每个字符位有58种可能性,如果你想得到一个字符串中有k个字 节的特殊字符,你平均需要生成58的k次方次地址,才能获得你要的结果。所以如果要生成“bones”开头的地址则要生成超过6亿个地址!这个工作现在通 过一台笔记本电脑就可以完成。但是你每增加一个字符,工作量会几何级数增长。获得一个15位字符的地址需要的计算量难以想象,而且是不间断的哈希计算,这 是无法实现的。
虚荣地址的加速生成
在比特币世界,如果我们将一个私钥称为x,公钥是gx,其地址是H(gx),即公钥的哈希值。我们不会探讨其中的细节。但是通过指数运算来生成地址显然是很慢的。
最直接的方式是挑选一个伪随机序列x,计算H(gx),不停地生成地址,直到得到想要的结果为止。一个更快的方式是,如果使用x无法得到想要的结果,接下来就使用x+1来计算,如此反复。而不是重新挑选一个x。因为gx+1 =g gx,而我们已经计算过了gx,所以我们只需要做乘法运算而无须做指数运算,这会更快。事实上,这种方式比最直接的方式要快两个数量级以上。
[1] QR码是一种简单的二维码。——译者注
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=409
微信号:qq444848023 QQ号:444848023
加入【我是码农】QQ群:864689844(加群验证:我是码农)
- 区块链:价值网络的中国机遇2018-09-25 17:10
- 1.4 DApp中的用户账户2018-09-18 09:58
- 1.1 例说区块链2018-08-25 22:59
- DAOs(去中心化自治组织)2018-09-14 22:50
网站分类
- 数据结构
- 数据结构视频教程
- 数据结构练习题
- 数据结构试卷
- 数据结构习题解析
- 数据结构电子书
- 数据结构精品文章
- 区块链
- 区块链精品文章
- 区块链电子书
- 大数据
- 大数据精品文章
- 大数据电子书
- 机器学习
- 机器学习精品文章
- 机器学习电子书
- 面试笔试
- 物联网/云计算
标签列表
- 数据结构 (39)
- 数据结构电子书 (20)
- 数据结构习题解析 (8)
- 数据结构试卷 (10)
- 区块链是什么 (261)
- 数据结构视频教程 (31)
- 大数据技术与应用 (12)
- 百面机器学习 (14)
- 机器学电子书 (29)
- 大数据电子书 (37)
- 程序员面试 (10)
- RFID (21)
最近发表
- 找出数组中有3个出现一次的数字
- 《百面机器学习》电子书下载
- 区块链精品电子书《深度探索区块链:Hyperledger技术与应用_区块链技术丛书》张增骏
- 区块链精品电子书《比特币:一个虚幻而真实的金融世界》
- 区块链精品电子书《图说区块链》-徐明星 & 田颖 & 李霁月
- 区块链精品电子书《是非区块链:技术、投机与泡沫》-英国《金融时报》
- 区块链精品电子书《商业区块链:开启加密经济新时代》-威廉·穆贾雅
- 区块链精品电子书《人工智能时代,一本书读懂区块链金融 (互联网_时代企业管理实战系列)》-马兆林
-
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https'){
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else{
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试
var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!
评论专区