《精通比特币》(第二版) – 第11章 比特币安全
确保比特币安全是一项挑战,因为比特币不像银行账户中的余额那样是对价值的抽象引用。比特币非常像数字现金或黄金。你可能听过这样一句话:“现实占有,十诉九胜”。好吧,对于比特币,所有权就是百分之百的规则。拥有解锁比特币的密钥就相当于拥有现金或金银珠宝。你也可能会丢失,放错地方,被盗,或者不小心给错了钱。发生以上每一种情况,用户都会失去追索权,就像在大街上…
《精通比特币》(第二版) – 第10章 挖矿和共识
10.1 简介 “挖矿”这个词有点误导。一般意义的挖矿类似贵金属的提炼,于是人们将更多的注意力集中到挖矿的回报,也就是每个区块创造的新比特币。虽然挖矿行为会被这种奖励所激励,但挖矿的主要目的不是这个奖励或者产生新币。如果你只把挖矿看作是创比特币的过程,那么你就会误把这个过程中的手段(作为激励)作为目标。挖矿是一种去中心化的交易清算机制,通过这种机制…
《精通比特币》(第二版) – 第9章 区块链
9.1 简介 区块链数据结构是一个有序的、反向链接的包含交易的区块列表。它可以被存储为平面文件(flat file),或是存储在一个简单数据库中。Bitcoin Core客户端使用Google的LevelDB数据库存储区块链元数据。区块被“向后”链接,每个区块都指向链中的前一个区块。区块链经常被视为一个垂直的栈,第一个区块作为栈底的首区块,随后每个…
《精通比特币》(第二版) – 第8章 比特币网络
8.1 P2P网络架构 比特币采用了基于互联网(Internet)的点对点(peer-to-peer)网络架构。点对点,或者叫P2P是指位于同一网络中的每台计算机都彼此平等,身份对等,各个节点共同提供网络服务,不存在任何“特殊”节点。网络节点以“扁平”的拓扑结构相互连通。 网络中不存在任何服务器端、中央化的服务、以及层级结构。点对点网络中的节点同时…
《精通比特币》(第二版) – 第七章 高级交易和脚本
7.1 介绍 在上一章中,我们介绍了比特币交易的基本要素,并且了解了最常见的交易脚本类型,即P2PKH脚本。在本章中,我们将介绍更高级的脚本,以及如何使用它来构建复杂条件的交易。 首先,我们将了解多重签名multisignature脚本。接下来,我们将查看第二种最常见的交易脚本支付脚本哈希Pay-to-Script-Hash,它开启了复杂脚本的整个…
《精通比特币》(第二版) – 第六章 交易
6.1 简介 比特币交易是比特币系统中最重要的部分。比特币中的其他一切都是为了确保交易可以被创建、在网络上传播、验证,并最终添加到全局交易分类账本(区块链)中。比特币交易的本质是数据结构,这些数据结构是对比特币交易参与者价值传递的编码。比特币区块链是一本全局复式记账总账簿,每个比特币交易都是在比特币区块链上的一个公开记录。 在这一章,我们将会剖析比…
《精通比特币》(第二版) – 第五章 钱包
“钱包”一词在比特币中有多重含义。 广义上,钱包是一个应用程序,为用户提供交互界面。钱包控制用户资金访问权限,管理密钥和地址,跟踪余额以及创建和签名交易。 狭义上,即从程序员的角度来看,“钱包”是指用于存储和管理用户密钥的数据结构。 我们将深入介绍第二层含义,本章中钱包是私钥的容器,一般是通过结构化文件或简单数据库来实现。 5.1 钱包技术概述 在…
《精通比特币》(第二版) – 第4章 密钥和地址
你可能听说过比特币基于密码学的,密码学是由数学分支出来的,在计算机安全领域被广泛使用。密码学在希腊语中是“秘密写作”的意思,但密码学这门学科不仅仅只有秘密写作,还包括加密技术。密码学可以用于不泄露秘密(数字签名),就能证明知晓加密的内容,或证明数据的真实性(数字指纹)。这些类型的密码学证明是比特币中至关重要的数学工具,并被广泛用于比特币应用。有趣的…
《精通比特币》(第二版) – 第三章 Bitcoin Core客户端:参考实现
Bitcoin是一个开源项目,源代码使用开放(MIT)授权,可免费下载使用。 开源不仅意味着可自由使用,还意味着比特币是由一个开源社区志愿者开发的。 最初这个社区只有中本聪,到2016年,比特币的源代码贡献者超过400个,大约十几位开发人员几乎全职工作,还有几十名兼职开发人员。任何人都可以为代码做出贡献 - 包括你! 当初中本聪是先开发了比特币软件…
《精通比特币》(第二版) – 第2章 比特币工作原理
2.1 交易,区块,挖矿和区块链 比特币系统与传统的银行和支付系统不同,是基于去中心化的信任。在比特币中,信任不是通过中央权威机构授权而来,而是通过比特币系统中不同用户相互交互自发达成,这是比特币的一个显著特性。 在本章中,我们将通过较高层面跟踪比特币系统中的一笔交易,观察交易如何通过比特币分布式共识机制变得“可信”,被接受,并且最终记录在区块链,…