(1)创立交易。交易双方经过协商达成协议,买方使用存储在“钱包”中的地址和私钥进行数字签名,证明自己对数字货币的所有权并且不能被其他人更改。

(2)链内广播。由买卖的某一方在区块链上发出申请,并通过P2P网络的泛洪(flooding)路由协议等广播通知链上所有节点的参与方。如果后续被任一节点验证无效,则停止在区块链上的广播。

(3)检查确认。各个节点在区块链的本地副本上分析数字签名、验证买方身份合法性,以及是否有足够多的货币余额,即区块链上所有指向该节点的未完成交易输出(UTXO)。所有节点验证通过后,交易信息被记入各节点副本中。

(4)封装区块。在10分钟内产生的所有交易通过各节点验证后,被分别集中打包构成一个候用区块。每个参与者都可以对未记入区块链的交易内容进行记录。为了避免多节点同时记账带来的信息混乱,每次只有一个参与者能够将自己记录的内容写入区块链,并获得相应的收益。以比特币为例,2009年1月创立之初每个区块奖励获胜节点50个比特币,此后每4年减少一半,直到大约2140年约2100万个比特币全部发行完毕。此外,交易方还要支付给记账节点一定的交易费用。

(5)竞争记账权。区块链会根据某种资源占有率来决定记账权归属,经各节点普遍认可的决定机制称为分布式共识(distributed consensus)。其中,最常用的工作量证明(proof of work,PoW)依据的资源是计算能力。其他的共识机制中,权益证明(proof of stake, PoS)依据各节点持有的加密货币数量,委托权益证明(delegated proof of stake, DPoS)则是指用户将自己持有的加密货币换成股票,从而竞争记账并获得奖励的权利。


其中,PoW的具体过程如下:①生成用于给记账权节点发放奖励和手续费的交易创币(coinbase)交易,并与其他所有将要写入区块的交易组成列表,通过梅克尔树算法生成梅克尔树根哈希值,②将其和区块版本、父区块哈希值、时间戳、难度目标和Nonce值等字段打包组装成80字节的区块头,采用SHA256等运算求出区块头的哈希值。③其中,难度值决定产生一个合法区块所需要的哈希运算次数。例如,比特币系统为了保证平均10分钟产生一个区块,每产生2016个区块(2周时间)会根据全网算力的变化所有节点自动统一调整难度值。调整公式:新难度值=旧难度值×(过去2016个区块花费时长/20160分钟)。难度目标值是最大目标值与当前难度值的比率,其中最大目标值为恒定值。④参与竞争的节点不断修改区块头中的Nonce字段值(通常是递增1),对每次变更后的的区块头做双重SHA256运算。当结果值小于当前网络的目标值时则解题成功,工作量证明完成。竞争记账权的行为和参与者又分别称为“挖矿”和“矿工”。


(6)记账上传。首先完成工作量证明的参与者在链上广播解题答案。经多数节点验证后得到记账权,把新区块记入已存在的区块链中,每个节点都更新本地副本。

(7)交割转账。数字货币从买方转移到买方的“钱包”,记账的“矿工”账户转入相应收益,以补偿其“挖矿”所进行的高强度运算和设备、电力等资源付出。