xx资源网(xxURLs.com)
发布资源

精通比特币

以下为金马老师《精通比特币》解读的文稿整理。

第一章  介绍

1.1  什么是比特币

(1)比特币是一个区块链实现

(2)比特币是一种数字货币

1.2  挖矿

不同于央行统一发行的人民币,比特币是通过挖矿产生的。挖矿其实就是解决一个数学问题,算得快的人得到新币作为奖励。在这个过程中,每个旷工都用他的算力在验证和记录交易。相当于将央行货币发行和结算的任务分配给了每一个参加挖矿比赛的人,这就是“分布式”计算。

1.3 通货紧缩货币

通货膨胀的产生原因之一是政府超量地发行货币,这让我们每个人手里的钱都会越来越不值钱。而比特币的协议规定,新币的开采速度每隔四年就会减半,总的来说比特币总量不会超过2100万枚,并将在2140年左右达到。比特币的总量变化曲线如下图:

横坐标是时间(年),纵坐标是比特币数量(百万)

所以,从长期来看,比特币是通货紧缩货币。持有比特币是规避通货膨胀的手段之一。我们看到越往后能挖出的比特币会越少,挖矿成本越高。

1.4 去中心化

传统货币系统的操作是“中心化”的,买卖东西总是通过银行或大公司来收钱或付钱,否则就没办法建立信任。例如:我们在淘宝上买东西,需要先把钱付给阿里巴巴,等确认收货了,阿里巴巴再把钱给到商家。

比特币的创新之处就在于完全去“中心化”,不依赖阿里巴巴这样的中央权威。我可以直接把钱打给你,但也不怕你抵赖。因为在交易发生的时候,全网无数的账本都会共同记录下这笔交易,而这个同步的记录过程就是分布式、去中心化的。

1.5 比特币的四个创新点

(1)一个去中心化的点对点网络:我可以直接向你发钱,不用通过银行或阿里巴巴等大公司。

(2)一个公共的交易账本:所有的交易都被记录在了全网共同维护的大涨本中,也就是大名鼎鼎的“区块链”技术。

(3)一个去中心化的数学的和确定性的货币发行:世界各地的矿工们都在比赛解答数学题找币,币出现的速度会越来越慢,总量是确定的。

(4)一个去中心化的交易验证系统:不需要权威机构就能互相“验明正身”。纸币可能出现“造假”的情况,一张钱出现在不同的两个地方。但比特币通过数学验证机制,保证了不会出现这样的“双重支付“。

1.6 比特币的客户端

参与比特币交易有两种方式,一种是维护一个”完整客户端“,自己保存所有的比特币整个交易历史,不依赖于其他的服务器和第三方服务。另外一种是普通用户常用的"轻量级客户端", 不保存完整历史,而通过信赖的第三方服务器来获取交易信息。大家通过okcoin、云币网购买BTC就是这种形式。由于第三方介入是有风险的,即使比特币的交易账本是全网公开透明的,若选择了不可靠的在线钱包服务,可能会存在丢币。所以大家一定要选择有信用的靠谱的第三方交易客户端。

1.7 使用比特币客户端

比特币客户端通常由一个钱包和多个比特币地址组成。比特币地址是可以公开的,任何人都可以通过这些地址转钱到你的钱包。

地址地址大概长成这样:1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK,或者是一个二维码。发行比特币只需要输入地址和金额,收到的人会用私钥(以下会介绍)签名这笔交易,这就公告了全网:比特币从一个地址转移到了另外一个地址。从交易完成到"确认"大概需要10分钟。因为交易须由旷工开采打包成区块,这样才会被全网接受为"已确认"。

第二章  比特币的原理

2.1  私钥

比特币的地址相当于带锁的信箱,私钥就好比这个锁唯一的钥匙。比特币地址是公开的,每个人都可以往这个地址发钱,但只有握有“私钥”的人才能打开用这个地址上锁的比特币。因为只要知道私钥就可以取走你的比特币,所以私钥一定要好好保管。

2.2 比特币交易过程

A给B付款0.1BTC的过程是这样的:A将要付B的0.1BTC用B的”专属地址“锁起来,然后向全网发送,相当于向所有人吼了一声:“我向能打开这把锁的人发送了0.1BTC”。B在网络中会马上收到这条信息,于是拿出私钥试试能不能打开这把锁。因为只有B钱包里的私钥才可以匹配这个地址,所以只有B能兑换这笔钱。

2.3 将交易记录在总账本中

交易信息必须要被传送到比特币网络中,成为总账本的一部分,这个账本叫做区块链。一个“区块”里面记录了一段时间内的所有交易信息,“链”则是因为所有历史数据块会一个个串联起来。

(1) 全网传播

比特币的账本是分布式的,网络中的每个节点都在帮助记账。A给B付款0.1BTC的时候,只需要向身边的节点大吼一声,收到信息的节点又迅速向自己的邻居发送这个消息。一传十十传百,只要几秒钟就能传遍整个网络。现在,所有人都知道“A给B付款0.1BTC”。

(2)挖矿验证

这个交易在比特币网络上传播开来,但只有被旷工们“挖矿”验证并加到一个新区块里,这个交易才会成为总账本的一部分。

2.4 挖矿

挖矿的过程是将过去一段时间的交易记录打包成一个区块,这个过程也会创造新比特币。

挖矿其实可以想象成很多人一起来找“数独”游戏的解(9x9的数独就是要求每行每列每个对角线都有1-9),矿工们解题的办法就是笨笨地不断去试,没有更快的方法,只能比谁试得更快运气更好。数独游戏的难度可以通过改变行列大小来调整。想象一下求解一个几千乘几千的数独,确实有难度。但是,如果给你一个已经填好的数独,你就可以很快验证这个解是否有效(检查每行每列有没有重复的数)。“解起来困难而验证容易”就是比特币解谜游戏的最大特点。当然,真实的比特币谜题其实是基于哈希加密算法,我们以后还会更详细地谈到。一笔交易需要通过解题构建区块来证明它有效,矿工们都在齐心协力地为这个区块贡献计算量。计算量越多意味着更多的人信任这笔交易是有效的。

2.5 矿池

矿池就是旷工们组队解题,赢了就按工作量分配收货的比特币。在这个时代,单打独斗已经很难做成一件事了,挖矿也一样。

2.6 区块链

区块链就是一个个区块链起来。区块一个接一个产生,当前区块的产生基于前一个区块,所以每次解当前的区块都会为之前的交易增加一次证明,也就在网络中得到了更多的信任。随着链的增长,计算复杂度不断增加,以往的区块也就越来越难以删改(一个区块获得6次以上证明就基本不可能撤销了)。所以验证一个交易简单有效的手段就是确定这个交易在区块链中,后面有几个新的区块。此外我们可以通过区块链顺藤摸瓜追溯每一笔历史交易,这就保证了比特币的来源都是清晰有记录的。

第三章  比特币客户端

3.1  完整客户端

自己维护一个全节点客户端的成本比较高,但是可以保证你的钱包是安全的。如果你有几千个甚至几万个比特币,可以考虑用这种方式来实现安全存储。从bitcoin.org下载的客户端包含了比特币系统的所有方面,是一个独立的完整节点。但是正因为包含了所有历史数据,下载整个区块链可能就需要好几天,请确保你有足够的容量的硬盘、带宽和时间。

3.2 编译比特币源码

对于开发者,可以从GitHub上的比特币页面 https://github.com/bitcoin/bitcoin 下载代码自行编译,从终端运行bitcoind,也需要下载所有区块。在书里面一步步教授了比特币核心的JSON_RPC API接口的使用,包括以下技能点:

(1) 获取比特币核心客户端状态信息

(2) 钱包设置及加密

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

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

(5) 查看区块信息

(6) 基于UTXO(未花费的交易输出)的建立、签名与提交


资源链接
精通比特币.pdf: http://545c.com/file/12230716-336884820
标签

区块链比特币加密

发布日期

2019-02-20

擦亮日期

2019-02-20

扫一扫分享下载
资源网址导航
综合

全索引 361图书馆 图书酷

手机

电脑

影音

专业

游戏

体育

儿童

教育

资源分享站

其他