
NOTE
“本文提出了一种完全通过点对点技术实现的电子现金系统。它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。” ——《比特币白皮书》
中本聪(Satoshi Nakamoto)
提及比特币,绝对绕不过去的一个人物是中本聪(Satoshi Nakamoto)—— 比特币的创始人。在数字货币的历史长河中,中本聪(Satoshi Nakamoto)和比特币(Bitcoin)无疑是两颗最耀眼的星辰。他们的出现不仅颠覆了传统的货币体系,也为全球金融科技的发展指明了新的方向。
中本聪,一个谜一样的存在,其真实身份至今未被揭晓。在 P2P Foundation 网站上,他留下的出生日期1975年4月5日,被认为与美国货币史上的重要事件有关,比如但这些信息的真实性存疑。2008年,中本聪发表了比特币白皮书,提出了一种全新的电子现金系统构想,这一构想无需中心化机构的介入,完全依赖于点对点网络。2009年1月3日,比特币网络的第一个区块——创世区块诞生,标志着比特币的正式问世。中本聪通过挖矿获得了首批50个比特币,这一事件被永久记录在区块链上。 在比特币网络稳定运行后,中本聪逐渐淡出了公众视野,2011年左右,他彻底隐退于比特币社区,从此江湖上只有关于他的传说。
比特币(Bitcoin)
比特币(Bitcoin)是第一种去中心化的加密货币,最初由中本聪在 2008 年 11 月 1 日提出,并于 2009 作为开源软件发布。比特币通过一种点对点(P2P)的网络实现,无需中央机构或银行,用户之间可以直接进行交易。
比特币被认为是区块链技术的首次应用。但是,“区块链” 并不是中本聪提出的,在比特币白皮书中,中本聪并没有提及 “blockchain” 而是使用的 “chain of blocks”。
比特币是 P2P 电子现金,由于它为用户带来了货币自主权,因此比传统系统更有价值。比特币试图解决传统货币的根本问题:使其运作所需的所有信任——并不是说合理的信任是一件坏事,而是信任使系统变得脆弱、不透明且运行成本高昂。信任失败会导致系统性崩溃,信任管理造成不平等和垄断锁定,自然而然地出现的信任瓶颈可能会被滥用以拒绝获得正当程序。通过使用加密证明、去中心化网络和开源软件,比特币最大限度地减少并取代了这些信任成本。
作为记账单位,比特币的最小单位是 0.00000001 (一亿分之一)比特币,称为“1聪(sats)”。如有必要,也可以修改协议将其分割为更小的单位,以保证其流通方便,区块回报每产出 21 万个区块减半一次,周期大约为 4 年,最近一次减半发生在 2024 年 4 月 20 日,这是比特币诞生十五年来的第四次”减半”,减半后矿工每天通过验证交易生产的比特币数量从 900 个减少到 450 个,减半后的矿工奖励从6.25 个比特币降至 3.125 个比特币。2018 年 4 月,已经有 1700 万比特币被开采,还剩 400 万个比特币,开采产量已超总额的 80%,2019 年 5 月 12 日时,比特币总存量约 17,695,512 个,实际可流通的量还会因为私钥丢失等因素减少。比特币的总发行量达到 1910 万,整个网络超过 90% 比特币已经被开采完。截止到 2140 年,比特币将被全部开采完毕,预计总额度略低于2100万枚。
比特币使用整个 P2P 网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学确保了货币所有权和流通交易的匿名性。
同时与大多数货币不同,比特币的总供应量被限制在2100万个。通过挖矿(Mining)过程逐步发行新的比特币(共识规则),随着时间的推移,挖矿奖励逐渐减少,直到最终达到总量上限2100 万。
比特币工作原理
1. 比特币交易:用户通过比特币地址(类似于银行账户)进行交易。交易由发送方签名并广播到比特币网络,等待矿工(Miners)验证和打包到区块中。
2. 挖矿出块:矿工通过解决复杂的数学难题(哈希计算)来验证交易并将其打包到区块中。成功解决难题的矿工获得新生成的比特币作为奖励。挖矿难度会根据全网计算能力自动调整,确保平均每10分钟生成一个新区块。
比特币客户端
用户与比特币网络交互的应用程序,用于发送和接收比特币交易、查看交易历史、管理比特币钱包等功能。
比特币钱包
是用于发送和接收比特币的设备或程序(通常比特币客户端也会包含钱包模块)。与现实中的钱包不同,钱包是不存储货币的。实际上,钱包管理的的是私钥。
比特币分叉(Bitcoin Fork)
比特币分叉是指由于底层协议的彻底改变而导致的区块链分裂。这一过程可分为软分叉(Soft Fork)和硬分叉(Hard Fork)。软分叉是可逆的代码修改,不会破坏共识,而硬分叉会产生不可调和的差异,导致形成单独、独立的区块链。实施分叉是为了增强比特币网络并使其现代化,目的是解决可扩展性问题、提高交易速度并引入新技术。
比特币的发展导致了各种分叉,其中一些分叉日益突出。以下是五个活跃的比特币分叉:
比特币 XT(2015 年): 第一个硬分叉旨在将区块大小增加到 8 MB,但缺乏矿工的支持,导致其无法有效运行。
比特币无限(2016 年): 该硬分叉允许矿工选择区块大小,但因可能导致矿池中心化和软件错误而受到批评。
比特币经典版(2016 年): 它试图解决扩展问题,建议将区块大小增加到 2 MB,但缺乏社区支持,导致最终关闭。
比特币现金(2017 年): 比特币现金是一个成功的分叉,将区块大小增加到 8 MB,提高了网络带宽,降低了交易费用,仍然是一个主要的竞争者。
比特币黄金(2017 年): 比特币黄金采用了 Equihash 算法,为非专业矿工提供了挖矿机会。
PoW 共识
要理解 PoW 的复杂性,必须深入研究挖矿的过程。当比特币网络中发生交易时,这些交易会被放入内存池(mempool)中。然后,矿工从内存池中选择一组交易,尝试组成一个新的区块。要做到这一点,矿工必须先解决一个需要大量计算的加密谜题。这宏观上要达成的就是判定哪个矿工的运算能力最强。系统会给所有的矿工出一道谜题,哪个矿工最早提交答案,也就是提交 POW,系统就可以判定这个矿工的算力是最强的,就会把记账权给他。
这个谜题基于 SHA-256 哈希算法,矿工需要找出随机数中的某个特定数值。矿工将这个特定数值与区块数据结合起来,生成一个满足网络难度目标的哈希值。难度目标是一个动态值,每 2016 个区块(大约每两周)调整一次,从而让比特币的平均出块时间维持在 10 分钟左右。
PoW 机制有效地防止了双花问题,即同一笔数字资产使用多次的欺诈行为。解开 PoW 谜题所需的大量计算性工作量,使得作恶者几乎不可能重写区块链,因为作恶者需要控制全网挖矿算力的 50% 以上才有可能重写区块链。
此外,攻击系统在经济上不可行,这进一步帮助 PoW 维护网络的安全性。与挖矿相关的大量能源投入和硬件成本,让矿工为网络做出积极贡献更有利可图,而不是直接做恶。
比特币网络:
比特币是一个点对点网络,由矿工、节点和用户共同维护。比特币主网:流通真实的比特币的价值网络。比特币测试网:与主网的功能类似,方便开发人员或测试人员使用,测试网币不具有真实的经济。
比特币二层扩容
旨在通过将部分交易移出比特币主链,从而提高交易吞吐量、减少交易费用和缩短交易确认时间。 比特币扩容方案有:闪电网络 、BitVM 有效性证明、 RGB 客户端验证、RGB++ 同构绑定
UTXO:未花费的交易输出
NOTE
比特币交易的构成由输入(Inputs) 和 输出(Outputs) 构成:
输入(Inputs):指向之前交易的 UTXO。每个输入都引用一个特定的 UTXO,并提供用于花费该 UTXO的证明(通常是一个数字签名来解锁)。
输出(Outputs):创建新的 UTXO,指定接收者的地址和金额。每个输出指定了比特币的接收者和金额,并生成一个新的 UTXO。
一个 UTXO 需要是 1 “聪”(satoshi,1 BTC = 1 亿聪 )的任意整数倍。
与现金支付类似,你在卖一件 5 元的商品的,不能通过将 10 元的钞票撕成两半,以作为 5 元来支付。相反,您必须使用 10 元的钞票付款并收到零钱。UTXO 的工作原理类似,因为它们必须全部花费,并且更改作为新的 UTXO 接收。
UTXO 未花费的交易输出(Unspent Transaction Output ),是比特币和其他基于比特币的加密货币系统中管理账户余额的一种机制。它记录了每个交易输出的状态,以追踪每个比特币的所有权。代表您已收到但尚未花费的特定数量的比特币。每个 UTXO 就像您钱包中的一张单独的钞票,每张钞票都有独特的价值。
例如,您钱包中 0.52 BTC 的余额可能由多个 UTXO 组成,如 0.2、0.15 和 0.17 BTC。每个 UTXO 都是不同的,可以持有任意数量的比特币。它们是您尚未花费的比特币,您可以使用它们进行新的支付。
在 UTXO 模型中,比特币交易是通过消耗(花费)之前的 UTXO 并创建新的UTXO来进行的。每个 UTXO 代表一笔未被花费的比特币金额,直到它被新的交易消耗为止。
当我们要计算地址余额时,是通过所有 UTXO 得到。UTXO都会作为一个整体被消耗(不可分割性),交易剩余的金额需要“找零”。
脚本
比特币脚本是一个图灵不完备的基于栈的语言,其功能比较少的编程语言,仅满足比特币系统的正常运行需求,同时最大化保证了安全性。
比特币脚本是图令不完备的。所谓图灵不完备意思就是缺少当代语言所必须的一些功能,例如循环。但是,功能的有限也最大化的减小了系统的受攻击面积,例如,可以防止有人利用无线循环来给系统安一个炸弹。
比特币脚本是一种基于栈的语言。可以把栈想象成堆叠到一起的几本书,push 操作相当于添加一本书,pop 操作相当于抽出一本书。每次执行的都是最顶部的操作,每个操作都对应一个操作码,简称 opcode 。
区块链浏览器
用于查看比特币区块链上的交易和区块信息。它允许用户搜索特定的交易、区块、地址等,并查看详细的交易历史、余额和区块信息。
常见的浏览器:
参考
《区块链:重塑经济与世界》:微信读书
《区块链:技术驱动金融》:微信读书
维基百科: https://zh.wikipedia.org/zh-cn/比特币
登链社区: https://learnblockchain.cn/maps/BTC
什么是 UTXO:英文
比特币分叉:中文
资料
为开发人员准备的比特币服务和工具列表: github.com/igorbarinov-英文
全面的中文 BTC 学习资料:BTCStudy btcstudy.org-英文
比特币生态资源导航:123btc.org-英文
比特币脚本模拟工具: wschae.github.io-英文
一个介绍bitcoin 各种背后细节的网站: learnmeabitcoin (英文)
通过命令行学比特币:Github/BlockchainCommons-英文
比特币基础编程: davidederosa.com-英文
比特币开发思想:bitcoindevphilosophy.com-英文
比特币 wiki :bitcoin.it-英文
比特币交易与脚本开发:learnblockchain.cn-登链社区付费内容
