学习笔记-《精通比特币》(一)

第一章 介绍

1.1 什么是比特币

在⼀定意义上,⽐特币才是互联⽹货币的完美形态。因为它具有快捷、安全、⽆国界的特性。(比特币不一定能够取代法币,毕竟纸质的法币在生活中使用的便利程度上目前来看还是不可替代的,比特币和法币同时共存,互不影响,可以相互兑换。但如作者所说,比特币可能会成为互联网上通行的货币,且可能会成为“唯一”的货币,比特币一哥的地位估计别的币难以撼动)

任何接受数字货币的⼈都⾯临的两个基本问题是:

1. 我能相信这钱是真实可信的,⽽不是伪造的吗?

2. 我能确定没⼈说这笔钱是他们的,⽽不是我的吗?(⼜名“双重⽀付”问题)

⽐特币代表了数⼗年的密码学和分布式系统的巅峰之作,这是⼀个独特⽽强⼤的组合,汇集了四个关键的创新点。⽐

特币由这些构成:

▷ ⼀个去中⼼化的点对点⽹络(⽐特币协议)

▷ ⼀个公共的交易账簿(区块链)

▷ ⼀个去中⼼化的数学的和确定性的货币发⾏(分布式挖矿)

▷ ⼀个去中⼼化的交易验证系统(交易脚本)

1.4 入门

⽐特币客⼾端的三种主要形式是:

完整客户端

⼀个完整客⼾端,或称“全节点”,是存储所有⽐特币交易的整个交易历史(每⼀个⽤⼾的每⼀笔交易)的客⼾端,管理⽤⼾的钱包,并可以在⽐特币⽹络上直接开始交易。

轻量级客⼾端

⼀个轻量级客⼾端存储⽤⼾的钱包,但需要依赖第三⽅服务器才能接入比特币网络,进⾏⽐特币交易。

在线客⼾端

在线客⼾端通过⽹⻚浏览器在第三⽅服务器上访问和储存该⽤⼾的钱包。

⽐特币地址以数字1或3开头。类似于电⼦邮件地址,可用来接收比特币。

不同于电邮地址的是,你可以任意地创建新的⽐特币地址,这些地址都能成功地将资⾦转

到你的钱包。

钱包是多个地址和解锁资⾦密钥的简单集合。每笔交易你都可以使⽤不同的地址,这有利于提⾼隐私的安全

性。⽤⼾可创建地址的数量⼏乎不受限制。

HD钱包

HD是分层确定性(Hierarchical Deterministic)的缩写 。

原理本身很简单:

首先,要用一个随机数来生成主(根)私钥,这和任何一个比特币钱包生成任何一个私钥没任何区别;

然后,再用一个确定的、不可逆的算法,基于主私钥生成任意数量的子私钥;

那为什么要用“确定、不可逆”的算法呢?因为“确定”才能保证从一个主私钥可以生成出全部的子私钥,而“不可逆”则是为了确保不能通过子私钥反推出主私钥。

HD 模型在数学上有一个非常“好”的特性:只需要主公钥,就可以生成出任意数量的子公钥。也就是说,无需私钥介入(主私钥和子私钥),就能基于主公钥生成新(公钥)地址,而这些地址其实都能被主私钥所控制。所以,HD钱包,每次收款都会有一个新的收款地址。

但HD钱包有一个“致命”的缺陷,一旦泄露子私钥,那么子私钥可以和主公钥逆推出主私钥来!

(参考 以太钱包的博客http://blog.sina.com.cn/s/articlelist_5048306243_0_1.html

第二章 比特币的原理

2.2 比特币交易

比特币的交易信息向全网广播。

交易可以有多个输入,多个输出,总输出小于总输入的部分是矿工费(将交易打包进区块添加到区块链上,支付给矿工的费用)。

一笔交易的输入来自之前交易的输出,一笔交易的输出只有该所有者的私钥才能使用该笔输出。

找零即将输出地址设置为自己的收款地址。

2.3 交易的构建

⽐特币交易建⽴和签名时不⽤连接⽐特币⽹络。只有在执⾏交易时才需要将交易发送到⽹络。

用户在交易比特币时,只需要设置交易的目的地址和金额,其他的由钱包程序完成。

2.4 比特币挖矿

挖矿在⽐特币系统中起着两个作⽤:

▷ 挖矿在构建区块时会创造新的⽐特币,和⼀个中央银⾏印发新的纸币很类似。每个区块创造的⽐特币数量是固定的,随时

间会渐渐减少。

▷ 挖矿创建信任。挖矿确保只有在包含交易的区块上贡献了⾜够的计算量后,这些交易才被确认。区块越多,花费的计算量

越⼤,意味着更多的信任。

第三章 比特币客户端

3.1.1 下载安装比特币核心客户端

3.1.2 编译比特币核心客户端的源码并安装

3.2 通过命令⾏使⽤⽐特币核⼼的JSON-RPC API接⼝

RPC: Remote Protocol Call 远程调用协议,json rpc 是一种以json为消息格式的远程调用服务。

通过 bitcoin-cli 命令调用 bitcoind 的 JSON-RPC API接口,从创建交易,签名,到发送至比特币网络完成交易,经历了一个可视化的钱包程序在后台所做的事情。

3.3 其他替代客⼾端、资料库、⼯具包

▷ libbitcoin和sx tools

⼀款C++,通过命令⾏完成的全节点多线程客⼾端与程序库

▷ bitcoinj

⼀款全节点java客⼾端和程序库

▷ btcd

⼀款全节点GO 语⾔的⽐特币客⼾端

▷ Bits of Proof(BOP)

⼀款Java企业级平台的⽐特币⼯具

▷ picocoin

⼀款轻量级⽐特币执⾏客⼾端

▷ pybitcointools

⼀款Python语⾔的⽐特币程序库

▷ pycoin

另⼀款Python语⾔的⽐特币程序库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容