比特币协议

来自非小号百科
Doge留言 | 贡献2025年2月5日 (三) 01:57的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

比特币协议是管理比特币运作的一系列规则。其关键组成部分和原则是:一个点对点、去中心化、没有中央监管的网络;区块链技术,一个记录所有比特币交易的公共账本;挖矿和工作量证明,创建新比特币和验证交易的过程;以及密码学安全。

用户使用比特币加密货币钱包软件向网络广播加密签名的消息。这些消息是拟议的交易,即将在账本上进行的更改。每个节点都拥有账本完整交易历史的副本。如果交易违反了比特币协议的规则,它将被忽略,因为交易只有在整个网络达成共识后才会发生。这种“全网络共识”是在网络上的每个节点验证称为挖矿的工作量证明操作结果时实现的。挖矿将成组的交易打包成区块,并生成符合比特币协议规则的哈希码。创建此哈希需要消耗大量能源,但网络节点可以使用很少的能源来验证哈希是否有效。如果矿工向网络提出一个区块,并且其哈希有效,则该区块及其账本更改将添加到区块链中,网络将继续处理尚未处理的交易。如果发生争议,则认为最长的链是正确的。平均每10分钟创建一个新区块。

对比特币协议的更改需要网络参与者之间的共识。比特币协议激发了众多其他数字货币和基于区块链技术的发展,使其成为加密货币领域的基础技术。

区块链

区块链技术是一种去中心化且安全的数字账本,它记录了跨计算机网络上的交易。它确保了透明性、不可变性和防篡改性,从而使数据操纵变得困难。区块链是比特币等加密货币的基础技术,并且在金融之外的领域也有应用,例如供应链管理和智能合约。

交易

网络只需要最少的结构来共享交易。一个由志愿者组成的临时去中心化网络就足够了。消息以尽力而为的方式广播,节点可以随意离开和重新加入网络。重新连接后,节点会从其他节点下载并验证新的区块,以完成其本地区块链副本[1]

挖矿

比特币使用工作量证明系统或交易证明来形成一个点对点网络的分布式时间戳服务器。这项工作通常被称为比特币挖矿。在挖矿过程中,比特币网络几乎所有的计算能力都用于解决密码学难题,这就是工作量证明。它们的目的是确保有效区块的生成需要一定的努力,这样就可以在实践中排除随后对区块链的修改,例如在51%攻击的场景中。由于难度很大,矿工们组成“矿池”,以便在高电力需求、昂贵的硬件部署和硬件控制的情况下获得回报。由于中国在2021年禁止比特币挖矿,目前美国拥有最大的比特币矿池份额[2]

需要工作量证明才能接受区块链上的新区块是中本聪的关键创新。挖矿过程包括识别一个区块,当使用SHA-256进行两次哈希运算时,该区块产生的数字小于给定的难度目标。虽然所需平均工作量与难度目标成反比增加,但始终可以通过执行一轮双SHA-256来验证哈希值。

对于比特币时间戳网络,通过递增nonce直到找到一个值,使区块的哈希值具有所需数量的前导零位,从而找到有效的工作量证明。一旦哈希运算产生了有效的结果,就不能在不重新完成工作的情况下更改该区块。由于后续的区块链接在其后,更改该区块的工作将包括重新完成每个后续区块的工作。如果共识出现偏差,则可能发生区块链分叉。

比特币中的多数共识由最长的链表示,这条链需要最大的工作量才能产生。如果大部分计算能力由诚实节点控制,则诚实链将增长最快并超越任何竞争链。要修改过去的区块,攻击者必须重新完成该区块及其之后所有区块的工作量证明,然后超越诚实节点的工作量。随着后续区块的添加,较慢的攻击者追赶上的概率呈指数级下降。

为了补偿不断提高的硬件速度和随着时间推移运行节点的兴趣变化,找到有效哈希值的难度大约每两周调整一次。如果区块生成得太快,难度就会增加,需要更多的哈希运算才能生成一个区块并产生新的比特币。

难度和矿池

比特币挖矿是一项竞争激烈的活动。“军备竞赛”已经通过各种用于挖掘比特币的哈希技术观察到:基本中央处理器 (CPU)、高端图形处理单元 (GPU)、现场可编程门阵列 (FPGA) 和专用集成电路 (ASIC) 都已被使用,每一种都降低了不太专业技术的盈利能力。比特币专用 ASIC 现在是挖掘比特币的主要方法,并且已经超过 GPU 速度高达 300 倍。挖矿过程的难度会定期根据网络上活跃的挖矿能力进行调整。随着比特币的开采变得越来越困难,计算机硬件制造公司看到高端 ASIC 产品的销量有所增长[3]

计算能力通常捆绑在一起或“集中”以减少矿工收入的变化。单个矿机通常需要等待很长时间才能确认一个交易区块并收到付款。在矿池中,所有参与的矿工每次参与的服务器解决一个区块时都会获得报酬。此付款取决于单个矿工为帮助找到该区块而贡献的工作量,以及矿池使用的付款系统。

环境影响

比特币的环境影响显著。比特币挖矿,即创建比特币和完成交易的过程,能源消耗巨大,并导致碳排放,因为2021年使用的电力约有一半是通过化石燃料产生的。此外,比特币是在寿命较短的专用计算机硬件上开采的,从而产生电子垃圾。比特币挖矿产生的电子垃圾量与荷兰产生的电子垃圾量相当。有学者认为,比特币挖矿可以通过利用风能和太阳能的剩余电力来支持可再生能源的发展。比特币的环境影响引起了监管机构的关注,导致各司法管辖区出台了激励措施或限制措施[4]

支付验证

每个矿工都可以选择哪些交易包含在区块中,哪些交易不包含在区块中。区块中包含的交易数量越多,并不意味着解决该区块所需的计算能力就越大[5]

正如中本聪的白皮书中所指出的,无需运行完整的网络节点(简化支付验证,SPV)就可以验证比特币支付。用户只需要拥有最长链的区块头副本,通过查询网络节点直到确定已获得最长链即可获得这些副本;然后,获取将交易链接到其区块的默克尔树分支。将交易链接到链中的某个位置表明网络节点已接受它,并且在其后添加的区块进一步确立了确认。

协议特性

安全性

已经考虑了对比特币网络及其作为支付系统的各种潜在攻击,无论是真实的还是理论上的。比特币协议包含几个特性,可以保护它免受其中一些攻击,例如未经授权的支出、双重支出、伪造比特币和篡改区块链。其他攻击,例如私钥被盗,则需要用户谨慎对待。

未经授权的支出

比特币实施的公钥-私钥密码学缓解了未经授权的支出。例如,当爱丽丝将一个比特币发送给鲍勃时,鲍勃就成为该比特币的新所有者。伊芙观察到这笔交易,可能想花掉鲍勃刚刚收到的比特币,但她无法在不知道鲍勃私钥的情况下签署交易。

双重支出

互联网支付系统必须解决的一个特定问题是双重支出,即用户将同一枚硬币支付给两个或多个不同的接收者。此类问题的一个例子是,如果伊芙将一个比特币发送给爱丽丝,然后又将同一个比特币发送给鲍勃。比特币网络通过在所有用户可见的账本(区块链)中记录所有比特币转账,并确保所有转账的比特币以前没有被花费,从而防止双重支出。

竞争攻击

如果伊芙提出用一个比特币支付给爱丽丝以换取商品并签署了相应的交易,她仍然有可能同时创建另一个交易,将同一个比特币发送给鲍勃。按照规则,网络只接受其中一个交易。这称为竞争攻击,因为接收者之间存在一个先接受交易的竞争。爱丽丝可以规定她不会交付货物,直到伊芙支付给爱丽丝的款项出现在区块链中,从而降低竞争攻击的风险。

一种变体的竞争攻击(被称为芬尼攻击,参考了哈尔·芬尼)需要矿工的参与。伊芙不是将两个支付请求(用相同的硬币支付给鲍勃和爱丽丝)都发送到网络,而是只将爱丽丝的支付请求发送到网络,而同伙则尝试挖掘一个包含支付给鲍勃而不是爱丽丝的区块。流氓矿工有积极的可能性会在网络之前成功,在这种情况下,支付给爱丽丝的款项将被拒绝。与普通的竞争攻击一样,爱丽丝可以通过等待付款包含在区块链中来降低芬尼攻击的风险。

历史修改

添加到区块链的每个区块,从包含给定交易的区块开始,都称为该交易的确认。理想情况下,以比特币接收付款的商家和服务应该等待至少几个确认在网络上分发,然后才假设付款已完成。商家等待的确认越多,攻击者就越难成功地撤销交易——除非攻击者控制了超过总网络算力的一半,在这种情况下,它被称为 51% 攻击或多数攻击。虽然对于较小规模的攻击者来说难度更大,但可能存在经济激励,使得历史修改攻击有利可图。

可扩展性

比特币可扩展性问题指的是比特币网络在短时间内处理大量交易数据的能力有限。这与比特币区块链中的记录(称为区块)的大小和频率受到限制有关。

比特币的区块包含比特币网络上的交易。比特币网络的链上交易处理能力受到10分钟的平均区块创建时间和最初1兆字节的区块大小限制的约束。这些共同限制了网络的吞吐量。使用平均或中值交易规模估算的交易处理能力最大值在每秒3.3到7个交易之间。目前有各种已提出和激活的解决方案来解决此问题。

隐私

客户端去匿名化

去匿名化是数据挖掘中的一种策略,其中匿名数据与其他数据源交叉引用,以重新识别匿名数据源。除了可能揭示比特币地址(化名)之间连接的交易图分析之外,还存在一种可能的攻击,它将用户的化名与其IP地址链接起来。如果对等方正在使用Tor,则攻击包括一种将对等方与Tor网络分离的方法,迫使他们使用其真实IP地址进行任何进一步的交易。截至2014年,对整个比特币网络进行攻击的成本估计每月低于1500欧元。

参考链接

  1. Bitter to Better — HowtoMakeBitcoin a Better Currency bitcoin.pdf
  2. China's bitcoin miner exodus MacKenzie Sigalos @KENZIESIGALOS
  3. Bitcoin boom benefiting TSMC: report - Taipei Times
  4. Climate Impacts of Bitcoin Mining in the U.S. on JSTOR
  5. View of The Bitcoin Mining Game Nicolas Houy