04.1_存储和使用比特币

一、简单的本地存储

   公共信息:记录在区块链上的内容(例如 比特币的识别信息、币值等)

   私密信息:即本人的私钥

  1、存储和管理私钥的三个目标

    可获取性;安全性;便利性(不能做到同时满足,根据具体应用情形,作出权衡)

  2、几种管理比特的方法

    比特币钱包软件:管理你比特币和私钥信息并方便使用的应用软件

      比特币钱包就是一个简单的接口,告诉你前面包里有多少比特币,当你使用比特币的时候,他会处理关于密钥管理的一切技术细节,比如使用密钥和生成新的地址。

    编码解码(encoding keys):Base58 编码和二维码

      使用和接受比特币需要你和对方交换地址----比特币送达的地址。目前  两种主流的方式将地址加密:字符串和QR(QuickResponse)

      为了给地址赋予一个字符串,把密钥的字节从二进制字符转换成base58码。Base58就是用一个包含58个字符的字符集来编码,被称为base58记号法(去掉了比较容易混淆的字符:0和o)。

      QR码就是二维码,好处就是用手机拍张照片,然后钱包就会把QR码转换成代表比特币地址的字节。

    虚荣地址:将地址转换成一些人能够识别的字符(Satoshi Bones,收款地址中就含有“骨头”(bones)),如下所示2-6为字符(1bonesEeTcABPjLzAb1VkFgySY6Zqu3sX),所有的地址都是1开头,代表支付到比特币地址的标准交易或者说是标准的比特币转账。虚荣地址即只能通过不停的重复生成私钥,直到私钥中包含我们所希望的字符。(其实这种地址可以通过工具生成)。

  工作量:如果想得到一个字符串含有k个字节的特殊字符,平均需要生成58的k次方的地址,才能获得你想要的结果。但是每增加一个字符,工作量会使几何级数增长。

    虚荣地址的加速生成:

      最直接的方法是挑选一个伪随机序列x,计算H(gx   ),不停的生成地址,知道得到想要的结果为止。一个更快的方式,如果x无法得到想要的结果,接下来使用x+1来计算,如此反复。而不是挑选一个新的x。因为gx+1= g.gx,前面已经计算过了gx,所以我们只需要做乘法运算而不是指数运算,这样更快。比直接计算快两个数量级。

原文地址:https://www.cnblogs.com/zhaopp/p/11414589.html

时间: 2024-07-30 13:44:32

04.1_存储和使用比特币的相关文章

内存对齐,大端字节   序小端字节序验证

空结构体:对于空结构体,就是只有结构体这个模子,但里面却没有元素的结构体. 例: typedef struct student { }std: 这种空结构体的模子占一个字节,sizeof(std)=1. 柔性数组: 结构体中最后一个元素可以是一个大小未知的数组,称作柔性数组成员,规定柔性数组前面至少有一个元素. typedef struct student { int i; char arr[];     //柔性数组成员 }std: sizeof(std)=4; sizeof求取该结构体大小是

跨平台技术:JQueryMobile从入门到精通配项目实战

移动开发现在很热门的,尤其是JQueryMobile方向,很多人想要一个系统性的学习,但是网络里对于这方面的资料并不全面. 我推荐一套系统性学习jquerymobile的课程,并且配套有几个企业实战的项目. 咨询QQ:1609173918 课程大纲 一.理论讲解部分: 第1章:掀起你的盖头来--初识jQuery Mobile 第2章:第一次亲密接触--jQuery Mobile页面结构 第3章:从头到尾的打扮--工具栏与格式化内容 第4章:戒指项链一个不能少--页面常用组件 第5章:满衣柜的漂亮

内存对齐 大端字节,序小端字节序验证

空结构体:对于空结构体,就是只有结构体这个模子,但里面却没有元素的结构体. 例: typedef struct student { }std: 这种空结构体的模子占一个字节,sizeof(std)=1. 柔性数组: 结构体中最后一个元素可以是一个大小未知的数组,称作柔性数组成员,规定柔性数组前面至少有一个元素. typedef struct student { int i; char arr[];     //柔性数组成员 }std: sizeof(std)=4; sizeof求取该结构体大小是

XML知识小结

1.XML有如下应用: 1_存储数据,即在没有数据库的情况下,是一个很好的替代品: 2_传输数据,即服务器以XML的形式向android发送数据 3_软件配置,即通用配置XML文件,通知应用程序如何处理业务 2.判断XML语法及其有效性 浏览器能原样显示XML,说明XML语法没有问题.如果XML按照 DTD规则写的要经过浏览器显示原样,还有用专门检测工具来 检测是否符合DTD规则,如果符合DTD规则才算有效. 3.DTD三中基本关联方式: 内部:<!DOCTYPE 根节点 [ <!ELEMEN

区块链介绍

定义: 区块链(Blockchain)是比特币的底层技术,像一个数据库账本,记载所有的交易记录.这项技术也因其安全.便捷的特性逐渐得到了银行与金融业的关注. 简介: 区块链(Blockchain)是比特币的一个重要概念,本质上是一个去中心化的数据库,同时作为比特币的底层技术.区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块. 区块链在网络上是公开的,可以在每一个离线比特币钱包数据中查询.比特币钱包的功能依赖

1分钟了解“挖矿”的本质

上一篇<1分钟了解区块链的本质>,介绍了什么是区块链,区块链是一个没有管理员,每个节点都拥有全部数据,高可用的分布式存储系统. 文章的留言里,不少朋友会用比特币来解释区块链,那区块链与比特币是什么关系? 答:区块链是分布式存储,比特币是基于该存储的应用,其他诸如莱特币,以太币都是基于区块链的电子货币应用.理论上,使用上层应用来解释底层存储是不合适的. 如上图,mysql是底层存储,wechat是上层应用,用wechat来解释mysql是不合适的. 今天,从技术的角度出发,聊聊什么是区块链里的&

颠覆传统冷热钱包的局限? --币包交易站邀您来观

相信听说过比特币的人都听说过比特币钱包,就像中国人无人不知支付宝一样.比特币钱包可以用于交易比特币也可以用于储存比特币.但是比特币钱包也分好几个种类,就比如有冷钱包和热钱包.那么这两种类别的钱包有什么区别呢?真的是冷和热的区别吗? 比特币钱包是存储和使用比特币的一种工具,按照其使用时的联网状态,可以分为冷钱包和热钱包. 通常冷钱包又叫做离线钱包,即在你使用的过程中,它们可以一直处于非联网状态,这类钱包往往依靠不联网的电脑.手机以及其他的硬件设备运行,当然用于记录私钥的纸张或者小本子,也都属于冷钱

Hyperledger Fabric on SAP Cloud Platform

今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva了,SAP成都C4C开发团队中其他同事评价她为:"美腻与智慧的化身","云时代女王","是大家前沿技术的引路人".因为Jerry和Aviva就在一个组,所以我的看法是,这些评价都实至名归. 比如Jerry了解到的Javascript 3D渲染,增强现

精体展矿计运界布属点世据真起验青kPswaoY3w

社保划到税务征收,将大大提升社保费的征管效率.税务的征管能力是目前而言最强的,以后税务征收社保不是代收,属于本职了. 之前税局要把社保信息和交个税的工资比对起来有困难!现在好了,个税是自己的,社保也是自己的,比对困难?不存在的! 这一变革,会给那些不给员工上社保.不全额上社保的企业致命一击! 最新案例 前段时间的发改委关于限制特定严重失信人乘坐民航的一则意见--发改财金[2018]385号,其中还有税务总局的联合署名. http://weibo.com/20180408PP/2309279811