首页 理论教育比特币的区块链结构及技术分析

比特币的区块链结构及技术分析

【摘要】:区块链的风行,比特币起了主要推动作用。最小的比特币值是0.00000001 BTC,称为1个Satoshi(聪)。图19.16比特币区块链比特币区块链的块结构如图19.17所示。图19.17比特币区块链的块结构[4]简单来说,块结构包含幻数、块大小、块头、交易计数和交易清单等,如表19.2所示。表19.2块结构表19.3块头成分续表难度级别是比特币中工作量证明的一个问题。比特币设计为每2016个区块生成一个周期。比特币网络是一个去中心网络。比特币社群成员负责维护DNS种子。

区块链的风行,比特币起了主要推动作用。迄今不知道谁是发明者,自称中本聪(Satoshi Nakamoto)的推出了基于区块链的加密数字货币,即比特币(Bitcoin)。比特币的设计便于无中心的Peer-to-Peer的金钱交易,中间无需可信的第三方。总的货币数设计为2100万个(21 million)。一旦所有的比特币(BTC)都产生,就再也无法挖掘出新的比特币。最小的比特币值是0.00000001 BTC,称为1个Satoshi(聪)。

使用比特币无需技术准备,只需下载一个比特币钱包(Bitcoin wallet),运行它即可。值得一提的是,比特币不是全匿名的,而是伪匿名的(pseudonymous)。换言之,有方法可以追溯交易轨迹,暴露所有者。

与其他区块链一样,比特币区块链使用区块链数据结构。比特币核心客户端(Bitcoin core Client)使用Google的LevelDB数据库存储区块链数据结构。每个块由其哈希值来识别(比特币使用SHA256算法[3])。每个块的头部包含前一块的哈希值,如图19.16所示。

在图19.16这个区块链里,有一个块头部存放头信息,有一个块体部存放交易数据。每个块头部有指向前一个块的哈希值(即图中的“前块哈希”)。

图19.16 比特币区块链

比特币区块链的块结构如图19.17所示。

图19.17 比特币区块链的块结构[4]

简单来说,块结构包含幻数、块大小、块头、交易计数和交易清单等,如表19.2所示。块头成分如表19.3所示。

表19.2 块结构

(www.chuimin.cn)

表19.3 块头成分

续表

难度级别是比特币中工作量证明(proof-of-work,POW)的一个问题。思路是,一旦由有效交易填好块后,需要计算的块头的哈希值小于同一个块头的难度级别值。块头的Nonce开始时设置为零,矿工递增Nonce值,直到头部哈希值小于难度级别值。注意,头部中的难度级别是4字节(32位),目标值是256位。如何存放?压缩到32位存放。选256位的原因是比特币使用SHA256哈希块头,输出值是0~2256之间的一个值。

比特币设计为每2016个区块生成一个周期。根据以前2016个区块产生的时间,每2016个区块改变一次。预计每隔10分钟产生一个区块,因而产生2016个区块要花费两周时间。如果前2016个区块的产生时间大于两周,则难度级别会变大,否则难度级别会变小,挖矿难度增加。

比特币网络是一个去中心网络。起步时如何得到现有比特币块的所在地及IP地址?比特币核心客户端(Bitcoin core client)或BitcoinJ程序可以提供方法帮你去发现它,例如DNS种子(DNS seeds)。比特币社群成员负责维护DNS种子。

比特币交易是比特币系统的基本构成块,可以分为以下两类。

●coinbase transaction:比特币区块链中的每一块由创币交易(coinbase)构成,由挖矿者自己纳入,以便继续挖新币,这是由网络控制的,原始值为50BTC。

●regular transactions:正规交易类似于常规的货币交易。