• 比特币(BTC)是一种点对点加密货币,旨在充当独立于任何中央机构的一种交易手段。 BTC可以安全,可验证和不变的方式进行电子现金转移。

  • BTC于2009年推出,是通过在交易信息广播到比特币网络中的所有节点之前加盖交易时间戳的"第一种解决双重支出问题的虚拟数字货币"。比特币协议通过blockchain网络结构为拜占庭容错问题提供了解决方案,该概念最初由Stuart Haber和W. Scott Stornetta创建1991年

  • Bitcoin的白皮书由个人或一个团体以化名"Satoshi Nakamoto"于2008年发表,其基本身份尚未得到验证

  • 比特币协议使用基于SHA-256d的工作量证明(PoW)算法达成网络共识。其网络的目标出块时间为10分钟,最大供应量为2100万个代币,代币的产生速率不断下降。为了防止拥堵时间的波动,通过基于过去2016年拥堵时间的算法重新调整了网络的出块难度。

  • 区块大小上限为1兆字节,比特币协议同时支持Lightning Network支付渠道的多层基础结构,以及隔离见证,这是一个增加功能的软分叉作为网络可扩展性的解决方案。


1.什么是比特币(BTC)?

  • 比特币是一种点对点的加密货币,旨在充当一种交易手段,并且独立于任何中央机构。比特币以安全,可验证和不可更改的方式进行电子现金转移。

  • 网络验证者通常被称为"矿工",他们参与基于SHA-256d的工作量证明共识机制,以确定区块链的下一个全局状态。

  • 比特币协议的"目标出块时间为10分钟",最大供应量为2100万个代币。产生新比特币的唯一方法是区块生产者生成新的有效区块。

  • 该协议的代币减半速率每210,000个区块或大约每4年减少一半。

  • 与支持去中心化应用程序(以太坊)开发的公共区块链基础结构不同,比特币协议主要仅用于支付,并且对类似于智能合约的功能仅提供了非常有限的支持(比特币"脚本"通常用于在使用比特币之前创建某些条件)。

2.比特币的核心功能

未使用的交易输出(UTXO)模型

UTXO交易的工作原理类似于两方之间的现金支付:Alice将钱转账给Bob并接收零钱(即未使用的金额)。相比之下,以太坊等区块链则依赖账户模型。

UTXO

中本聪共识

在比特币网络中,任何人都可以加入该网络并成为记账服务提供商,即验证者。比赛中所有验证者都可以成为下一个块的区块生产者,但"只有第一个完成计算繁重任务的人会获胜"。此功能称为工作量证明(PoW)

任何单个验证者首先完成任务的概率等于验证者拥有的总网络计算能力或哈希能力的百分比。例如,拥有总网络计算能力5%的验证者将有5%的机会首先完成任务,因此成为下一个区块生产者。

由于任何人都可以参加比赛,因此竞争很容易增加。在早期,比特币的挖掘主要是由个人计算机CPU完成的。

截至今天,比特币验证器或"矿工"已经选择了专用且功能更强大的设备,例如基于专用集成电路("ASIC")的机器。

工作量证明可确保网络安全,因为区块生产者必须在网络外部花费资源(即用于支付电费的钱),并可以向其他参与者提供证明。

随着各种矿工争夺区块奖励,一个恶意方很难占网络多数方(在Nakamoto共识机制中,网络的哈希能力超过51%)。通过51%攻击重新安排交易的能力表明了Nakamoto共识的另一个特点:交易的确定性"仅是概率性的"。

一旦产生了一个区块,该区块生产者会将其传播到所有其他验证器,以检查该区块中所有交易的有效性。当所有验证者批准区块并更新其分类账本时,区块生产者将以网络的本币(即比特币)获得奖励。

区块链

出块

比特币协议利用Merkle树数据结构来将大量独立交易的哈希组织到每个区块中。这个概念以Ralph Merkle的名字命名,后者于1979年申请了专利。

通过使用Merkle树,尽管每个区块可能包含数千个交易,但它将具有将其所有散列组合并将其压缩为一个散列序的能力,从而可以高效,安全地验证这组交易。称为"Merkle树"的单个哈希称为"Merkle根",存储在区块的"区块"中。初始区块还存储区块的其他元信息,例如以前的区块的哈希,这使区块可以链状结构关联(因此称为"区块链")。

下面演示了比特币协议中的区块生产示例。

区块生产

出块时间和挖矿难度

区块时间是在网络中创建下一个区块所需的时间。如上所述,解决计算密集型任务的节点将被允许产生下一个区块。因此,"堵塞时间"与节点找到任务解决方案所花费的时间直接相关。比特币协议将目标堵塞时间设置为10分钟,并尝试通过引入名为采矿难度的变量来实现这一目标。

挖矿难度是指"节点解决计算密集型任务有多困难"。如果网络为任务设置了很高的难度,而矿工的计算能力却很低,通常被称为"哈希率" ,从统计上来说,节点需要更长的时间才能获得这个任务的答案。如果难度较低,但矿工具有相当强的计算能力,则从统计上讲,某些节点将能够快速解决任务。

因此,根据节点之间有多少计算能力,"恒定且自动地调整挖掘难度"来实现10分钟的目标堵塞时间。在一定数量的区块之后评估网络的平均出块时间,如果它大于预期的出块时间,则难度级别将降低;如果少于预期的堵塞时间,则难度级别将增加。

什么是孤立区块?

在PoW区块链网络中,如果出块时间太短,则会增加节点生成孤立区块的可能性,为此他们将不会获得任何奖励。孤立节点是由解决任务的节点产生的,但由于"网络延迟"而没有将其结果最快地广播到整个网络。

一条消息在网络中传播需要花费时间,并且完全有可能两个节点完成任务并"几乎同时"开始将其结果广播到网络中,而一个人的消息却被所有人接收其他节点时间较早,因为该节点具有较低的延迟。

想象一下,网络延迟为1分钟,目标出块时间为2分钟。一个节点可以在大约1分钟内解决任务,但是他的消息将花费1分钟到达仍在使用该解决方案的其余节点。当他的消息通过网络传播时,所有其他节点在这1分钟内完成的所有工作,即使这些节点也完成了任务,也将"浪费"。在这种情况下,浪费了网络中50%的计算能力。

如果挖矿难度更高,则"浪费的计算能力"的比例将成比例地降低,因为从统计上讲,矿工完成任务所需的时间更长。换句话说,如果挖矿难度大,因此目标出块时间很短,那么拥有强大且通常为集中式采矿设施的矿工将更有机会成为大区块生产者,而实力较弱的矿工的参与将徒劳无功。这引入了可能的集中化并削弱了网络的整体安全性。

但是,鉴于在一个区块中可以存储的交易数量有限,"使区块时间过长"将减少网络每秒可处理的交易数量,"对网络可扩展性产生负面影响"。

3.比特币的其他功能

隔离见证(SegWit)

隔离见证,通常缩写为SegWit,是一项协议升级建议,于2017年8月生效。

SegWit将见证人签名与交易相关的数据分开。遗留比特币区块中的见证签名通常占用区块大小的50%以上。通过从交易块中删除见证人签名,此协议升级有效地增加了可存储在单个块中的交易数量,从而使网络"每秒处理更多交易"。结果,SegWit提高了中本聪基于共识的区块链网络(如比特币和Litecoin)的可扩展性)。

SegWit还使交易更便宜。由于交易费用是从区块生产者处理多少数据中得出的,因此在1MB的区块中可以存储的交易越多,则单个交易变得越便宜。

SegWit

遗留比特币区块的区块大小限制为1 MB,对区块大小的任何更改都将需要网络硬分叉。 2017年8月1日,发生了第一次"硬分叉",导致创建了Bitcoin Cash(BCH),引入了8 MB的块大小限制。

相反,隔离见证是一种"软分叉":它从未改变网络的交易块大小限制。相反,它在仅包含交易处理数据的1兆字节块中添加了一个扩展区块,其上限为3兆字节,仅包含见证者签名。即使尚未完成SegWit协议升级的节点也可以"处理"这种新的区块类型。

此外,见证人签名与交易数据的分离解决了原始比特币协议的"恶意问题"。如果没有隔离见证,则在矿工验证区块之前,可以更改这些签名。实际上,可以以这样的方式进行更改:如果系统进行数学检查,则签名仍然有效。但是,由于签名中的值已更改,因此两个签名将创建完全不同的哈希值。

例如,如果见证人签名的状态为"6",则其数学值为6,并且将创建哈希值12345。但是,如果见证人签名的状态更改为"06",则它将保持6的数学值。同时创建(错误的)哈希值67890。

由于数学值相同,因此更改后的签名仍然是有效签名。这将产生记账问题,因为使用这些哈希值或交易ID记录了基于Nakamoto基于共识的区块链网络中的交易。实际上,一个交易者可以将交易ID更改为新的交易ID,而新的ID仍然有效。

可能会产生许多问题,如以下示例所示:

  1. 爱丽丝向鲍勃发送1 BTC,鲍勃向商人Carol发送此1 BTC用于某些商品。

  2. Bob还向Carols发送了1个BTC,而从Alice到Bob的交易尚未通过验证。 Carol看到这笔1 BTC的入账交易给他,并立即将货物运到B。

  3. 目前,网络仍未确认从Alice到Bob的交易,并且Bob可以更改见证人签名,因此将该交易ID从12345更改为67890。

  4. 现在,Carol将不会收到他的1 BTC,因为网络会寻找交易12345以确保Bob的钱包余额有效。

  5. 由于此特定交易ID从12345更改为67890,因此从Bob到Carol的交易将失败,并且Bob仍将持有其BTC的同时将获得其货物。

通过隔离见证升级,此类实例将不再发生。这是因为见证人签名已从交易区块中移出到扩展区块中,并且更改见证人签名不会影响交易ID。

由于交易的可延展性问题已得到解决,因此"隔离见证"还可以在诸如闪电网络之类的比特币协议上实现第二层可扩展性解决方案的正常运行

闪电网络

闪电网络可扩展性的第二层小额支付解决方案

具体而言,闪电网络旨在使希望使用比特币的商户与客户之间实现近乎即时且低成本的支付。

约瑟夫·潘(Joseph Poon)和萨迪德斯·德里亚(Thaddeus Dryja)在2015年的白皮书中将闪电网络概念化。从那时起,它已被多家公司实施。其中最杰出的包括BlockstreamLightning LabsACINQ

可以在here中找到与闪电网络相关的精选资源列表。

在Lightning Network中,如果客户希望与商家进行交易,则他们俩都需要打开支付通道,该支付通道在比特币区块链之外运行(即链下与链上)。该支付渠道的交易明细均未记录在区块链上,只有关闭该渠道后,双方钱包余额的最终结果才会更新到区块链。区块链仅充当作为闪电交易的结算层

由于通过支付渠道完成的所有交易均独立于中本聪达成,因此交易双方都无需等待交易的网络确认。相反,交易方"仅在决定关闭渠道时**才向比特币矿工支付交易费"。

闪电网络

闪电网络的一个局限性是它需要一个人在线才能接收归他的交易。用户体验的另一个限制可能是,每次他希望打开支付渠道时,都需要锁定一些资金,并且只能在渠道内使用该资金。

但是,这并不意味着他每次希望与Lightning Network上的其他人进行交易时都需要创建新的频道。如果Alice希望向Carol汇款,但他们没有打开付款渠道,则可以要求Bob(对Alice和Carol都开放付款渠道)进行交易。爱丽丝将能够向鲍勃和鲍勃向卡罗尔汇款。因此,"支付中心"(即上一示例中的Bob)的数量与闪电网络在实际应用中的便利性和可用性相关。

Schnorr签名升级建议

椭圆曲线数字签名算法("ECDSA")签名用于在比特币区块链上签署交易。

ecdsa

但是,许多开发人员现在主张用Schnorr Signature代替ECDSA。实施Schnorr签名后,多个团体可以合作生成对他们的公钥总和有效的签名。

这将对网络可扩展性最为有利。当多个地址要对一个地址进行交易时,每个交易都需要自己的签名。使用Schnorr签名,所有这些签名将合并为一个。如此网络将能够在一个区块中存储更多的交易。

schnorr

签名尺寸的减小意味着交易费用的降低。发件人组可以为该一个组签名分配交易费用,而不是单独为一个个人签名付费。

Schnorr Signature还改善了"网络隐私和代币可替代性"。第三方观察者将无法检测用户是否正在发送多签名交易,因为签名将与单签名交易采用相同的格式。

4.经济和供应分配

比特币协议利用Nakamoto共识,并且点对点通过工作量证明挖掘来验证区块。比特币代币尚未预挖矿,最大供应量为2100万。一个区块的初始奖励是每个区块50 BTC。区块挖掘奖励每210,000个区块减半。由于区块链上区块生产的平均时间为10分钟,这意味着区块奖励减半事件将大约每4年发生一次。

截至2020年5月12日,区块挖矿奖励为每区块6.25 BTC。交易费也为矿工带来少量收入。

5.项目团队

截至撰写本文时,比特币是一个具有全球开发社区和超过600位GitHub贡献者的开源项目。

可以在bitcoin.org和公开GitHub存储库上找到更完整的列表。

可以在这里找到比特币相关开发活动。

6.其他资源