请选择 进入手机版 | 继续访问电脑版

随便发论坛

 找回密码
 立即注册
查看: 400|回复: 0

中本聪这一项设计,卧槽,好有道理.......

[复制链接]
发表于 2019-7-14 14:57:58 | 显示全部楼层 |阅读模式
今天我们依旧接着上期继续共读《精通比特币》,今天的内容主要分为两部分:比特币客户端和密钥、地址、钱包。
第一,比特币客户端
第二,密钥、地址、钱包是什么?
一、比特币客户端   
比特币客户端通常由一个钱包和多个比特币地址组成,比特币地址是可以公开的,任何人都可以通过这些地址转把币转到你的钱包。
大概长成这样:Acdid9KFAaatwczBwBttQcwXYCpvK8h7FK,或者是一个二维码。发送比特币的人只需要输入地址和金额,收到的人就会用私钥(以下会介绍)签名这笔交易,这也相当于公告了全网:比特币从一个地址转移到了另外一个地址。
从交易完成到"确认"大概需要10分钟,因为交易须由旷工开采打包成区块,这样才会被全网接受为"已确认"。
接下来我们详细看下整个过程:
—1. 完整客户端 —
自己维护一个全节点客户端的成本比较高,但是可以保证你的钱包是安全的。如果你有几千个甚至几万个比特币,可以考虑用这种方式来实现安全存储。如果数量不多,可以依赖于其他的服务器和第三方服务,就是普通用户常用的"轻量级客户端", 不保存完整历史,而通过信赖的第三方服务器来获取交易信息。大家通过OkCoin、云币网购买BTC就是这种形式。
我们主要来看维护一个全节点客户端。
从bitcoin.org下载的客户端包含了比特币系统的所有方面,是一个独立的完整节点。但是正因为包含了所有历史数据,下载整个区块链可能就需要好几天,请确保你有足够的容量的硬盘、带宽和时间。
—2. 编译比特币源码 —
对于开发者,可以从GitHub上的比特币页面 https://github.com/bitcoin/bitcoin 下载代码自行编译,从终端运行bitcoind,也需要下载所有区块。在书里面一步步教授了比特币核心的JSON_RPC API接口的使用,包括以下技能点:
(1) 获取比特币核心客户端状态信息

(2) 钱包设置及加密

(3) 钱包备份、纯文本导出和恢复

(4) 钱包地址及接收交易

(5) 查看区块信息

(6) 基于UTXO(未花费的交易输出)的建立、签名与提交
二、密钥、地址、钱包   
比特币的所有权是通过数字密钥、比特币地址和数字签名来确立的。数字密钥实际上并不是存储在网络中,而是由用户生成并存储在一个文件或者简单的数据库当中,我们把它称为钱包。
存储在用户钱包中的数字密钥完全独立于比特币协议,通过用户的钱包软件生成管理,并不需要区块链或网络。在这当中,密钥实现了比特币的许多有趣特性,比如说去中心化信任和控制、所有权认证和基于密码学证明的安全模型。
每一次比特币交易都要一个有效的签名才会被存储在区块链,而数字签名是由数字密钥产生,有了比特币的密钥就有了账户里比特币的控制权,所以大家一定要注意安全哦!
—1. 密钥是什么? —
密钥是成对出现的,由一个“私钥”和一个“公钥”所组成。公钥就像银行的帐号,而私钥就像控制账户的PIN码或支票的签名。公钥用来接收比特币,私钥用来对收到的比特币进行签名。公钥由私钥产生,但知道公钥是不能反向推导出私钥,这就保证了比特币的安全性,这种加密方式称为非对称加密。
注意的是,区块链里面的私钥都是由钱包来生成的,不是人设定的,由于私钥的原始格式非常长,直接让用户设定是非常麻烦的,所以这个工作由钱包来完成了。但为了保证私钥的安全性,钱包会“非常随机”的来生成私钥。
因此大家在创建钱包的时候,是不需要设定私钥的,而是设定“转账密码”或者“开启APP的PIN码”之类的密码,但他们并不是私钥!
具体详细的解释大家可点击下方链接来了解:

【非对称加密】我的人,怎能容别人偷窥?

比特村的财富守护大战......
—2. 地址是什么? —
钱包地址由公钥 (公钥是私钥通过非对称加密算法生成) ,相当于银行卡号 。我们创建钱包后会生成一个以 0x 开头的 42 位字符串,这个字符串就是钱包地址,一个钱包对应一个钱包地址,地址唯一且不能修改,也就是说一个钱包中所有代币的转账收款地址都是一样的。
例如,一个钱包中 ETH 的转账收款地址和 EOS 的转账收款地址是一样。这一点和交易平台上的不一样,平台上不同代币的转账收款地址一般都不同,因此,转币到交易平台前一定要确认好地址。
有了这个地址,我们只需要把比特币地址告诉其他人,别人就可以给你转账,你也是用这个地址来接收别人给你的币,地址也可以作为转币的凭证。
—3. 私钥、公钥、地址的关系 —
因为非对称加密算法,私钥可以唯一生成公钥,公钥可以生成钱包地址。但反向是解不出来,私钥必须始终保持机密,丢了私钥就相当于丢了比特币。
划重点:你若把钱包信息忘了,会有什么后果呢?分这么几种情况:

(1)地址忘了,可以用私钥、助记词,导入钱包找回。

(2)密码忘了,可以用私钥、助记词,导入钱包重置密码。

(3)密码忘了,私钥、助记词又没有备份,就无法重置密码,就不能对代币进行转账,等于失去了对钱包的控制权。

(4)密码忘了,keystore 就失去了作用。

(5)私钥忘了,只要你钱包没有删除,并且密码没忘,可以导出私钥。

(6)私钥忘了,还可以用助记词、keystore+密码,导入钱包找回。

(7)助记词忘了,可以通过私钥、keystore+密码,导入钱包重新备份助记词。

(8)keystore 忘了,只要你钱包没有删除,密码没忘,可以重新备份keystore。

(9)keystore 忘了,可以通过私钥、助记词,导入钱包重新备份 keystore。



可以看出,只要「私钥、助记词、Keystore+密码」有一个信息在,钱包就在。因此,备份好「私钥、助记词、Keystore+密码」最关键。

热帖推荐
回复

使用道具 举报

广告合作|最好的免费自由发布信息,广告,帖子的平台

GMT+8, 2024-3-29 00:21 , Processed in 0.187200 second(s), 24 queries , Gzip On.

Powered by SBFbbs Plus!

© 2018-2023 随便发论坛 版权所有

快速回复 返回顶部 返回列表