比特币不存在单一集中的数据库服务器,完整账本数据分布式保存在全球各地运行全节点的设备本地硬盘中,依靠P2P网络完成数据同步与校验。很多新手容易把比特币想象成拥有统一后台数据库的平台,实际上它抛弃了中心化存储架构,没有任何人或机构掌握唯一账本,所有合法交易记录以区块链形式,分散存储在无数独立节点设备上。任何人部署比特币核心客户端,完成区块同步后,本地设备就会保存一份完整账本副本,节点之间互相连通、比对数据,依靠共识机制保证全网账本保持一致。

运行BitcoinCore全节点时,账本数据会存放在系统默认目录内,不同操作系统路径存在区分。Windows系统新版客户端数据存放路径发生调整,macOS和Linux拥有各自默认隐藏目录,目录内分为blocks与chainstate两大核心文件夹。blocks文件夹以blk.dat文件保存原始区块数据,记录自创世区块以来所有历史交易;chainstate依托LevelDB数据库存储UTXO集合,也就是全网所有未花费的交易输出,节点验证转账时,依靠这份数据库快速判断资金有效性,不用遍历全部历史区块,大幅提升运行效率。用户也可以通过启动参数自定义数据存放磁盘路径,方便转移大容量账本文件。

节点类型决定设备保存数据的完整程度,这也是很多人产生认知误区的关键点。完整归档全节点会下载并永久保存全部区块数据;修剪模式节点会删除老旧区块,仅保留验证交易所需核心数据,降低硬盘占用;日常使用的手机钱包、网页钱包属于轻节点,本地不存储任何区块数据库,仅向外部全节点发起数据查询。区块链浏览器、交易所服务器也会搭建节点保存账本,方便对外提供查询服务,但这些属于第三方数据副本,并不是比特币网络官方数据库,不能作为唯一的验证依据。

分布式数据库的模式直接决定比特币的数据安全特性。传统数据库一旦中心服务器损毁,数据面临丢失风险,而比特币账本分散在全球成千上万台设备,除非绝大多数节点同时损毁,否则历史交易记录会持续留存。同时任何节点私自篡改本地硬盘内的区块数据,在和其他节点同步校验时会立刻被识别,篡改后的账本无法得到全网认可。需要注意,本地硬盘存放的区块链数据库只是交易记录,私钥资产信息独立保存在钱包文件中,区块账本只能查询公开交易,无法获取用户私钥。