首页 > 新手教程 > 正文

区块链转账:如何轻松给我汇款?

阳光快乐小美女2025-11-09 来源:数学小拿

内容提要:比特币是由中本聪创立的去中心化数字货币,其核心机制包括总量2100万枚的固定供应、约10分钟出块的POW共识、以及UTXO交易模型。系统通过区块链技术实现无需信任的点对点价值转移,依靠密码学保证安全,并通过难度调整维持稳定运行。区块容量和TPS限制则通过闪电网络等二层方案解决。

上一次的比特币专场感觉不是很全面,经过主包和小伙伴的激烈讨论,带来比特币的最新介绍

比特币知识体系完整梳理

第一部分:比特币的起源与核心参数
  • 创始人:中本聪

    • 2008年,中本聪发表了题为《比特币:一种点对点的电子现金系统》的白皮书。

    • 2009年1月3日,他生成了比特币的创世区块(区块高度为0),标志着比特币网络的正式启动。

  • 中本聪在代码中直接“写死”的核心参数

    • 实现机制:初始区块奖励50 BTC,每产生210,000个区块后,奖励减半一次。这是一个等比数列求和,最终收敛于约2100万。

    • 总量上限: 2100万枚。这是一个通过规则间接实现的设定,而非直接写入Total = 21,000,000这样的代码。

    • 初始区块奖励: 50 BTC。

    • 减半规则: 每挖出210,000个区块,区块奖励减半一次。

    • 难度调整周期: 每挖出2,016个区块,全网会根据之前这些区块的平均生成时间,自动调整挖矿难度,以维持平均约10分钟出一个新区块的目标。

    • 最小单位1聪。1 BTC = 100,000,000 聪。这个命名是为了纪念中本聪本人。

    • 目标区块时间: 约10分钟。这个时间不是强制规定,而是通过难度调整机制动态维持的目标。

  • 第二部分:区块结构与创世区块
  • 区块的组成

    • 版本号: 指明区块遵循的规则版本。创世区块的版本号为0.1。

    • 上一个区块的哈希值: 指向前一个区块,形成链式结构。创世区块的该值为0。

    • 默克尔根: 该区块中所有交易哈希的最终根哈希值,用于高效、安全地验证交易是否存在于此区块中。

    • 时间戳: 区块的大致生成时间(从1970年1月1日开始的Unix时间戳)。注意:由于网络延迟,区块时间戳不一定严格递增。

    • 难度目标: 当前区块哈希值需要低于的目标值。

    • 随机数: 矿工不断修改的数值,以使区块头的哈希值能满足难度目标。

    • 区块头: 包含区块的元数据。

    • 区块体: 包含该区块打包的所有交易记录列表。

  • 区块的容量

  • 定义: 指每个区块所能承载的数据量大小上限。

  • 历史与现状

    • 隔离见证(2017年): 这是一次重要的软分叉升级。它通过优化交易数据的存储方式(将签名数据从主体部分移出),“变相”地增大了区块的有效容量。升级后,区块的有效容量提升到了大约1.3MB - 1.8MB(实际取决于交易类型)。

    • 区块重量: 隔离见证引入了一个新的衡量标准——“区块重量”,上限为4,000,000 重量单位。一个传统的字节占4个重量单位,而见证数据(签名)只占1个重量单位。这使得区块在物理大小上可以超过1MB(理论上可达约4MB),但受重量限制,其有效交易容量约为1.8MB。

    • 初始限制(1MB): 中本聪最初为了防止垃圾交易攻击和保证网络初期运行顺畅,在代码中设置了一个1MB的区块大小软限制。在早期交易量很少时,这个限制不是问题。

    • 可扩展性危机: 随着比特币的普及,1MB的容量导致每个区块只能容纳约2000笔交易。在交易高峰时,大量交易需要排队等待被矿工打包进区块,导致确认时间变长,手续费被竞相抬高。

    • 解决方案与升级

简单总结:当前比特币区块的物理大小可以超过1MB,但其有效交易容量因隔离见证升级而提高至约1.8MB。

  • TPS

  • 定义每秒交易数量。这是衡量一个支付网络处理能力的关键指标。

  • 比特币的TPS

    • 基于约1.8MB的有效区块容量和平均每笔交易的大小,比特币网络理论上每秒可以处理大约7笔交易

  • 对比与挑战

    • 这个速度远低于传统的中心化支付系统(如Visa,峰值可达数万TPS)。

    • 低TPS是比特币作为“点对点电子现金”在实际支付场景中的主要瓶颈,也是“比特币可扩展性问题”的核心。

两者的关系与解决方案

区块容量直接决定了每个区块能打包的交易数量,再结合固定的10分钟出块时间,就决定了整个网络的TPS。

公式近似为:TPS ≈ 区块容量 / 平均交易大小 / 出块时间

由于直接扩大主链的区块容量(即硬分叉,如比特币现金所做的那样)会带来中心化风险(区块太大会导致运行全节点的成本增高),社区主要转向了二层扩容方案

  • 闪电网络: 这是最重要的二层解决方案。它允许用户在链下建立支付通道,进行无限次、即时、几乎零手续费的交易,最后再将最终结果结算到主链上。这极大地提升了比特币网络的整体TPS,使其能够满足小额、高频的支付需求。

  • 解决低TPS问题的未来主要依靠闪电网络等二层方案,而不是无限增大主链的区块容量。

  • 创世区块的特殊性

    • 它是区块链的第一个区块,没有前驱区块。

    • 区块中只包含一笔特殊的交易——Coinbase交易(铸币交易),将50个BTC奖励给中本聪的地址。

    • 中本聪在Coinbase交易的输入字段中,写入了一句话:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”。这是将任意信息上链的一种方式,这句话被永久记录在了区块链上。

  • 第三部分:交易、UTXO与脚本
  • 交易的本质

    • 比特币不采用“账户余额”模型,而是使用UTXO模型

    • UTXO: 未花费的交易输出。可以把它想象成一张张不同面额的“现金”。你的比特币“余额”实际上是你所拥有的所有UTXO的面额总和。

  • 一笔交易的构成

    • 输入: 指明你将要花费的、来自之前交易的UTXO(引用其来源交易ID和输出索引)。

    • 输出: 创建一个或多个新的UTXO,指定接收方的比特币地址和金额。可以包含“找零”输出,将剩余金额发回给自己。

    • 数字签名: 使用花费者的私钥对整个交易信息进行签名,以证明你拥有使用这些输入UTXO的权利。

    • 备注信息(可选): 通过OP_RETURN等操作码,可以在交易中附加少量自定义数据(如文本、哈希值),实现信息上链。

  • 交易的生命周期

    • 创建与签名: 用户用私钥对交易进行签名。

    • 广播: 将签名的交易广播到P2P网络。

    • 验证与打包: 矿工节点验证交易(签名有效性、无双重支付等),然后将有效的交易打包进候选区块。

    • 挖矿与确认: 矿工通过工作量证明竞争记账权,成功挖出区块后,该区块内的交易得到第一次“确认”。后续区块不断叠加,确认数增加,交易越安全。

  • 加密与签名技术

    • 基础框架: 椭圆曲线密码学。

    • 具体曲线secp256k1。这是比特币选定的椭圆曲线参数。

    • 私钥生成:私钥的空间: 私钥是一个256位的数字,其可能的总数比宇宙中的原子数还要多得多。因此,“随机生成”一个与别人重复的私钥的概率微乎其微,但使用不安全的随机数生成器则非常危险。

    • 公钥生成: 私钥 + secp256k1曲线 -> 公钥。

    • 数字签名算法ECDSA。使用私钥对交易数据的哈希值进行签名。

  • 第四部分:挖矿、共识与安全
  • 工作量证明

    • 矿工通过不断改变区块头中的随机数,计算区块头的双重SHA-256哈希值,直到找到一个低于当前难度目标的哈希值。

    • 这个过程需要巨大的计算能力,但验证结果却非常容易。

  • 难度调整

    • 每2016个区块,网络会根据过去两周的实际出块时间与目标时间(两周)的比值,自动调整难度目标,以稳定出块速度。

  • 最长链原则

    • 节点总是认可并延长累计工作量最大的那条链。这解决了临时性的分叉问题,确保了全网的一致性。

  • 防止双重支付

    • 通过将交易按时间顺序打包进区块并形成链,使得修改历史交易需要重新计算所有后续区块的工作量证明,这在计算上是不可行的。

    • UTXO模型本身也防止双花,因为一个UTXO一旦被花费,就会从UTXO集中移除,无法再次使用。

  • 第五部分:网络、节点与数据存储
  • 全节点

    • 区块链数据文件: 存储所有区块的完整数据(区块头+区块体)。

    • UTXO 集数据库: 一个专门优化过的数据库,存储当前所有未花费的交易输出,用于快速验证交易。每个全节点在本地都维护一个UTXO集的副本,并通过共识协议保持同步,从数据一致性角度看,全网共享同一个UTXO视图。

    • 每个运行比特币核心客户端的计算机都是一个全节点。

    • 职责: 独立验证所有交易和区块,维护一份完整的区块链副本,并转发有效数据。

    • 本地数据

  • 去中心化

    • 没有中心服务器,所有节点平等参与,共同维护账本,这使得系统具有抗审查性和鲁棒性。

  • 第六部分:分叉与扩展
  • 软分叉

    • 向前兼容的升级。未升级的节点仍然能够验证新区块(即使不理解新规则)。

    • 例如:隔离见证。区块链不会分裂。

  • 硬分叉

    • 不兼容的升级。未升级的节点会拒绝遵循新规则的区块,导致区块链永久性分裂成两条独立的链。

    • 例如:比特币现金从比特币中分叉出来。

  • 第七部分:公钥与比特币地址

    这是一个核心流程,我们从生成开始一步步看。下图清晰地展示了从私钥到地址的完整流程:

    区块链转账:如何轻松给我汇款?1. 公钥的生成
    • 来源:公钥是由私钥通过椭圆曲线加密算法推导而来的。

    • 算法:具体使用的是secp256k1椭圆曲线。

    • 过程:私钥(一个随机选出的巨大数字)乘以椭圆曲线上的一个预设基点,得到的结果就是公钥。这是一个单向过程:从私钥可以轻松推出公钥,但从公钥几乎不可能反推出私钥。

    2. 比特币地址的生成(详解流程图)

    比特币地址不是公钥本身,而是公钥经过一系列哈希和编码后得到的、更简短且安全的标识符。这样做主要是为了安全(即使地址公开,也无法逆推出公钥)和节省空间。

    • 步骤1: 生成公钥哈希

      • 对上一步得到的公钥数据,先进行SHA-256哈希计算。

      • 然后,对得到的结果再进行RIPEMD-160哈希计算。

      • 最终得到一个160 位(20 字节)的公钥哈希。这是地址的核心数据。

    • 步骤2: 添加版本前缀和校验和

      • 在公钥哈希前添加一个版本字节(例如,主网普通地址是0x00),这决定了地址的开头字符(如主网是1)。

      • 将“版本+公钥哈希”组合起来,计算它的双重SHA-256哈希值,并取前4 个字节作为校验和

    • 步骤3: Base58Check 编码

      • 版本字节 + 公钥哈希 + 校验和这三部分拼接在一起。

      • 对这个拼接后的完整数据进行Base58 编码。Base58 是一种去掉了容易混淆的字符(如 0, O, I, l)的编码方式,使地址更易识别和准确输入。

      • 最终得到的就是我们常见的、以“1”或“3”开头的比特币地址。

    3. 为什么这么复杂?
    • 安全性:地址是公钥的哈希,即使量子计算机在未来能破解椭圆曲线加密,从地址逆推公钥的难度也极大增加,为升级争取了时间。

    • 节省空间:地址(通常30多个字符)比原始公钥(130个字符左右)短得多,便于显示和传播。

    • 错误检测:校验和机制可以防止在输入或复制地址时出现错误。

    总结一下私钥 -> 公钥 -> 公钥哈希 -> 比特币地址。地址是你的“账户号码”,可以公开告诉别人;而私钥是你的“账户密码+所有权凭证”,必须绝对保密。

相关话题
相关资讯
您可能喜欢的标签
猜你喜欢

2JMTT.com Copyright ©加密头条 All Rights Reserved

加密头条,探索加密世界无限可能