深入比特币原理(十)挖矿

从本节开始进入到“挖矿”相关内容,我们将用几个章节的内容来详细描述比特币“挖矿”的技术原理。这里我用了引号,原因是挖矿这个词有一些误导,比特币“挖矿”的目的实际不在于挖掘出新的比特币,而是为了组建安全可靠的去中心化数字货币网络,创造新币仅是一种激励手段。打包交易到区块中挖矿节点打包交易到区块中的步骤如下:1.将验证通过的交易放入交易池中(通常在内存中,验证方 …

深入比特币原理(九)默克尔树

Merkle树是一种哈希二叉树,它是一种用作快速归纳和校验大规模数据完整性的数据结构,比特币的交易信息存储为Merkle树结构。比特币Merkle树结构示例:每一个叶子节点代表一个交易的Hash值,如HA = SHA256(SHA256(Transaction A))两个叶子节点合并后进行Hash计算,形成父节点,如HAB = SHA256(SHA256(H …

深入比特币原理(八)区块链

比特币的区块按顺序连接在一起形成一根链条,称为区块链。区块是如何连接成区块链的?区块(Block)结构SizeFieldDescription4 bytesBlock      Size区块大小,单位bytes80 bytesBlock      Header区块头信息,详见下文1–9 bytes …

深入比特币原理(七)节点与通信

本节主要阐述比特币节点接入比特币网络的过程和节点间通信的过程。一、比特币节点连接建立比特币节点接入比特币网络的步骤如下,以新节点接入为例,旧节点维护与建立连接的方法与下面步骤雷同:1.寻找比特币网络中的有效节点2.与发现的有效比特币节点进行初始“握手”,建立连接3.新节点建立更多的连接,使节点在网络中被更多节点接收,保证连接更稳定4.交换“区块清单”(注:该 …

深入比特币原理(六)功能

比特币网络是去中心化点对点网络,基础的比特币节点包含如下四种功能:1.钱包(Wallet)具备钱包功能的节点可以支持比特币交易,查询等功能。 2.矿工(Miner)具备矿工功能的节点可以通过解决工作量证明算法难题(Hash运算)来争夺创建新块的资格从而获取新的比特币和收取交易手续费。  3.完整区块(Full Blockchai …

深入比特币原理(五)脚本实例

一、多重签名交易多重签名交易允许同一笔交易输出需要多个私钥才能解锁,就是说锁定脚本设置条件,有N个公钥被记录在脚本中,其中至少有M个必须提供签名才能解锁。N是密钥的总数,M是验证所需的签名数量。二、时间锁(Timelock)   1.交易时间锁(nLocktime)比特币的交易中存在"locktime"参数,用于表示该 …

深入比特币原理(四)比特币交易脚本

比特币是第一个真正的区块链“平台”,利用去中心化、不可篡改、可追溯等特点可以实现多种交易模式与虚拟货币以外的其他功能。比特币交易脚本的特性:1.图灵非完备比特币交易脚本故意使用一种图灵非完备的语言,没有循环或复杂流程控制2.基于堆栈的语言堆栈语言极其简单,也增强了比特币的安全性。3.无状态验证比特币交易脚本是无状态的,所以脚本能在任何系统上以相同的方式执行, …

深入比特币原理(三)什么是UTXO

比特币(Bitcoin)的交易模型为UTXO(unspend transaction output),即只记录未花费的输出,每次交易花费的是前序某一个(多个)输出。那么什么是UTXO?在现实使用中的支付系统是基于”账户模型”的,每人都有自己的账户,支付则是在不同账户中做加减法,如:UTXO实现如下:交易(Transaction)永远只允许未花费过的交易进行输 …

深入比特币原理(二)比特币密钥地址生成

比特币的安全性是由现代密码学所提供,其中最重要的既是比特币的密钥,下面我们来看一下比特币的密钥生成过程。比特币地址实际上是公钥转换而来,而公钥实际上是由私钥转换得到,所以实际上一切的来源都是一个随机生成的私钥。step 1:通过操作系统随机数生成器生成一个随机数,并进行SHA256哈希运算(结果必须是1到n-1之间的任何数字,n=1.158 * 1077)该 …

深入比特币原理(一)比特币白皮书总结与点评

2008年11月,中本聪发布了比特币白皮书《一种点对点的电子现金系统》,从此开启了区块链技术的新天地,虽然中本聪在2011年后销声匿迹,但白皮书中涵盖了中本聪最希望传递的比特币的世界观,对于每一个区块链入门者都是必读,以下为个人的总结与点评。1.介绍(Introduction)基于信任模型的交易:(1)传统金融中介增加成本(2)支付交易可逆,欺诈不可避免基于 …