![]()
2009年1月3日,创世区块诞生时,没人关心地址长什么样。能转账就行——这是当时唯一的需求。但当一笔手续费烧掉200美元、一个字母大小写错误导致永久丢币时,"能用"和"好用"的差距开始以真金白银计价。
比特币地址的进化史,本质上是一部在"不能打破共识"的硬约束下,做系统优化的案例。没有硬分叉,没有强制升级,13年间堆叠了3种主流格式。每种都解决特定问题,每种都活着。
第一阶段:证明能跑,别的事以后再说
早期地址用Base58编码,混了大小写字母和数字。中本聪的设计逻辑很直接:避免和0、O、I、l这些视觉混淆字符,加上版本字节和校验和,能防低级错误就行。
这种地址叫P2PKH(支付到公钥哈希),以1开头。它背后是一套标准脚本模板:锁定脚本要求提供公钥哈希对应的私钥签名才能解锁。简单、可靠、可预测。
但"可靠"不等于"高效"。P2PKH把公钥哈希(20字节)和整个脚本结构都塞进交易,每个输出吃掉34字节左右的区块空间。2010年这不算事——区块空空荡荡,手续费为零。2015年后,这成了问题。
更麻烦的是用户体验。Base58混用大小写,手动输入时出错率高;校验和能检测错误,但纠错能力弱,输错一位可能就丢币。当时没有硬件钱包普及,复制粘贴也不如现在方便,用户是真的在纸上抄地址。
第二阶段:P2SH的妥协与SegWit的破局
![]()
2012年引入的P2SH(支付到脚本哈希)是个折中方案。地址以3开头,核心变化是:不再暴露完整的锁定脚本,只暴露脚本的哈希值(20字节)。实际的花费条件(需要几个签名、什么逻辑)在赎回时才揭晓。
这带来了两个好处。一是隐私——观察链上的人看不到你的多签结构;二是压缩——复杂逻辑不再占用输出空间,移到输入的见证数据里。但P2SH本质上还是把问题往后推,没解决根本的空间效率问题。
真正的结构变化发生在2017年的SegWit(隔离见证)。这次升级把"见证数据"(签名、脚本)从交易结构中剥离,单独计数。对地址格式来说,这意味着可以设计一种全新的编码:Bech32。
Bech32地址以bc1q开头,纯小写,不用Base58。它用32个字符的字母表(去掉易混淆字符),配合BCH纠错码,能检测最多6个字符的错误,甚至自动纠正部分常见错误。更重要的是,SegWit交易的"有效重量"降低——同样区块能塞更多交易,手续费直接打折。
数据很直观:一笔典型P2PKH交易约226字节,同等条件的SegWit交易约166字节,重量折扣后相当于不到100字节的"计费单位"。网络拥堵时,这个差距就是几十美元的手续费差。
第三阶段:Taproot与Bech32m的微调
2021年Taproot激活,带来了Bech32m。这个m代表"修改版",解决了一个极隐蔽的漏洞:原Bech32在某些极长输入下,校验和可能失效。Bech32m调整了校验多项式,堵住这个边缘案例。
Taproot地址同样以bc1p开头(p代表Pay-to-Taproot),但编码规则兼容Bech32m。这次升级的核心不是地址本身,而是地址背后能承载的脚本能力:Schnorr签名聚合、默克尔化的脚本路径、更复杂的条件 spending 都能塞进同一个地址格式,且链上足迹和单签一样小。
![]()
这是"向前兼容"设计的典型——地址格式预留了扩展空间,新功能不需要新格式。相比之下,以太坊每次重大升级都伴随地址概念的混乱(合约地址、EOA、CREATE2、ERC-4337账户抽象),比特币的选择是宁可前期设计复杂一点,也要避免后期碎片化。
为什么三种格式必须共存?
比特币没有"弃用"任何旧格式。1开头的P2PKH、3开头的P2SH、bc1开头的Bech32/Bech32m,今天都能在链上正常收发。这不是技术债,是刻意的设计选择。
强制迁移会分裂生态。想象一下:如果2017年宣布"所有1开头地址半年后失效",交易所、钱包、冷存储、纸钱包、遗产规划——整个经济体的协调成本无法估量。更现实的风险是链分裂:拒绝升级的节点和矿工可能形成分叉币,稀释安全性。
所以比特币的升级路径是"分层叠加"。新功能是opt-in(可选加入),旧功能继续运行。SegWit交易和Legacy交易打包在同一个区块里,矿工验证规则兼容两者。用户想省手续费就升级钱包,不想动就维持原状——只是多付点钱。
这种保守主义有代价。以太坊2年能完成的账户抽象,比特币讨论了8年还在推进。但代价的另一面是可靠性:2010年生成的P2PKH地址,今天仍能收款,私钥管理得当就能花费。这种时间跨度上的承诺,对"数字黄金"的定位是必要的。
地址格式的进化也反映了比特币治理的底层逻辑:没有中央决策者,改进必须通过BIP(比特币改进提案)流程,获得生态足够广泛的认同。Bech32从提案到广泛采用用了3年,Taproot从构思到激活用了4年。慢,但不可逆。
一个细节值得玩味:Bech32的设计者Pieter Wuille在BIP173里专门讨论了"人类可读性"与"机器效率"的权衡。最终选择全小写,是因为QR码对大小写混合的编码效率更低——手机扫码支付的场景,早在2017年就被纳入考量。
现在打开你的钱包,看看收款地址是以什么开头。如果是bc1p,你正在用2021年的技术格式发送交易,而这笔交易能被2012年的节点验证通过——这种跨越13年的兼容,是刻意为之,还是路径依赖的意外?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.