比特币网络相关介绍

交易匿名性

比特币的核心是实现两个或多个账户之间金融交易的分布式记账,其中每个账户是匿名的,无需任何中央机构的审核即可创建账户,创建账户的用户拥有一个公钥及私钥,用户在交易活动中只需对外公布公钥接受转账并使用私钥确认交易。

其中公钥和私钥类似银行账户的户头和密码,但交易双方并不知道对方在现实世界中的真实个人信息,面对的只是一串字符表示的公钥。用户可以在比特币网络中转移比特币到另一个账户,每条交易记录都包含发送方和接收方的公共账户信息(公钥)以及交易明细,如转账金额,交易时间等。

在将交易添加到分布式账本之前,交易不会被最终确定(即已验证),也就是不会在区块链网络中对其他用户进行广播。

去中心化

链接的分布式账本后来被学者抽象为区块链概念,随着比特币网络中交易的增多会不断生成新的区块。这种区块链机制使得交易确认的权限分散开,保证了没有人有特权记账,或是更改交易信息,所有被确认的历史交易信息都可以在区块中查询到,并且无法更改。

在这种视角下,可以将区块链看作是公共资产。负责确认交易的参与者被称之为“矿工”,矿工确认有效的交易并将其打包到新的区块中。比特币网络利用密码学原理,通过设定随机的哈希值来给矿工布置任务,该算法设定很困难的计算题让所有矿工节点计算,而这种算法可以调整难度,控制每次得出正确的结果需大约十分钟的时间。

第一个计算出正确结果的矿工将会获得记账权,并会获得一定的比特币奖励,这种矿工竞争记账权的机制被称为工作量证明机制。工作量证明使恶意用户难以通过伪造交易记录来作假,从而避免了潜在的欺诈和双重支出问题。

Sompolinsky(2018)在论文中阐明,矿工可以选择将哪些交易打包到新挖到的区块中,也就是在选择打包交易时会最大化自身利益。这种矿工竞争记账权的机制使得比特币网络的记账特权被分散开,且具有一定的随机性(获得下一个记账权的矿工不是确定的),达到去中心化的目的。

比特币的发行

比特币系统的独创性是为矿工提供经济上的激励,使其仅出于自身利益而参与到网络中,矿工在自身利益最大化的过程中维持了比特币网络的正常运行。奖励矿工的机制有两种。首先,获得记账权的矿工节点会得到一定数量(在相同减半区间内是固定值)的比特币奖励,事实上这是比特币发行的唯一途径。

根据比特币协议,挖矿奖励从每个区块50个比特币奖励开始,每生成210000个区块奖励减少一半,大约每四年减半一次,当减半不能细分后,比特币停止发行,因此比特币发行数量上限是2100万。

换句话说,比特币协议中规定的发行机制限制了将要发行的比特币总数,这一点使得比特币与黄金有一定的相似性,因为地球上的黄金总量也是有限的。为了补充随着时间推移而减少的挖矿奖励,比特币协议同时使用交易手续费作为第二种奖励机制。交易手续费是交易发送方的一项可选费用,目的是尽快确认交易,促使矿工将他的交易打包到下一个生成的区块中。

鉴于协议规定挖矿收益递减,因此交易手续费有望在激励矿工参与挖矿过程中发挥越来越重要的作用。

接下来介绍比特币协议如何保持大约十分钟生成一个新区块。矿工是否以及何时进行挖矿是他们根据预期收益作出的决策,如电费上升,可能导致部分矿工选择暂停挖矿,这将导致比特币网络的总算力有一定的波动,区块的时间间隔将会波动。

比特币协议通过自动调整挖矿难度来抵消这种不稳定性,从而使区块时间间隔保持稳定(平均10分钟)。但是比特币协议规定,挖矿难度在每生成2016个区块后更新一次,也就是在相当长的一段时间内,挖矿难度是固定的,而全网算力却在波动。

10月6日至2020年4月6日间比特币网络中的平均每日哈希率和挖矿难度的折线图,从图中可以看出难度随着全网算力波动而定期更新,旨在大体上保持约十分钟生成一个新区块,但是在同一个难度区间内,区块时间随全网算力变化而波动。

比特币交易

比特币网络某笔交易执行后会被广播至全网所有节点,挖矿节点接收到交易信息后会将其存储到本地内存池进行一些验证,如该笔交易所对应的比特币是否是未被花费的,验证成功后会将其暂时归入“未确认交易池”(UnconfirmTransaction),等待被打包;验证失败该交易会被标记为“无效交易”(InvalidTransaction),不会被打包。因此矿工算力竞争的同时还要及时验证未确认交易池中交易信息,随时准备更新自己的“未确认交易池”。

挖矿节点在抢到记账权后,将从“未确认交易池”中抽取一定数目的交易进行打包。

很多时候用户的交易不会被及时确认,因为“未确认交易池”中可能有大量交易,但是由于区块限制能被打包确认的交易数量有限,因此可能会出现交易拥堵。区块的固定容量在一定程度上限制了比特币的流动性,而且也使得每一笔交易在被确认前面对一个排队问题。

通常情况下矿工会优先选择打包手续费高的交易,但是比特币网络并没有手续费相关的规定,手续费的高低完全由市场决定。此外,为了确保每一笔交易最终都被确认,比特币网络规定未确认交易池中排队时间越久的交易排队的优先级也越高。