TumbleBit 是 2016 年提出的比特币匿名支付中枢方案:付款方和收款方通过一个不受信任的中间人(Tumbler)换币,用密码学让中枢必须老实干活,连中枢自己都无法把一笔付款和收款人配对。本文拆解它和混币的分工差别、质押与承诺揭示怎么逼中枢守约、时间锁的边界,以及这套方案为什么最终停留在论文里。
汇总与「比特币」相关的文章,帮助你系统了解该主题。
TumbleBit 是 2016 年提出的比特币匿名支付中枢方案:付款方和收款方通过一个不受信任的中间人(Tumbler)换币,用密码学让中枢必须老实干活,连中枢自己都无法把一笔付款和收款人配对。本文拆解它和混币的分工差别、质押与承诺揭示怎么逼中枢守约、时间锁的边界,以及这套方案为什么最终停留在论文里。
2016 年论文《Stubborn Mining》把自私挖矿推广成一组更固执的策略:公开链追平甚至反超自己时不再立刻投降,而是按预设规则死扛。论文用马尔可夫模型算出在很多参数区间里固执策略的相对收益比自私挖矿再高一到两成。本文讲清三种基本固执策略的规则、收益结论的适用条件,以及它和日蚀攻击的组合边界。
通道工厂把“每条通道都要上一遍链”的成本摊薄:一群人先在链上共押一笔资金,之后在链下反复重新分配这张共享饼图的切分方式,需要时才把某条子通道单独结算上链。本文讲清它解决什么成本结构、Duplex Micropayment Channel 工厂的机制与时间锁税,以及 2018 年 Lightning Factory 论文对抵押成本的改进。
比特币的 OP_CHECKMULTISIG 有个出生自带的怪癖:要多弹一个栈上哑元素,里面装什么是自由变量,任何人都能改动它而不影响签名有效性。2016 年的 BIP147 用软分叉规定这个哑元素必须是空字节,从共识层拆掉这条可延展通道。本文还原缺陷来源、哑元素为什么会泄哈希、隔离见证时代为什么仍要补这一刀。
BIP114 把一笔输出的多条解锁条件组织成默克尔树:链上只承诺一个根哈希,花币时揭示所用分支加哈希路径,其余条件不上链。本文按体积账、隐私账、计费账拆解 MAST 默克尔化抽象语法树的机制,讲清单元素五百二十字节等脚本上限怎么逼出这套设计,BIP114 为何关闭,以及 Taproot 与 Graftroot 各自接过了哪一半。
比特币核心把节点学到的对端地址记进内存地址管理器并周期性落盘到数据目录的 peers.dat,重启后优先从验证过的 tried 表重连。本文拆解 new 与 tried 两级结构、网段分桶防污染、文件损坏与陈旧的表现,以及它和封禁名单、DNS 种子的分工。
默认 SIGHASH 把签名焊死在它引用的前序输出上,通道每更新一代就得为每笔历史状态预签惩罚交易。BIP118 提议把前序引用移出签名哈希承诺,让同一份签名可以合法附着在结构相同、资金来源不同的交易上,为 eltoo 的无状态通道更新铺路。本文拆解承诺清单的构成、松绑后 eltoo 的链上两步对抗、协议自身的纪律要求,以及它停在草案状态的现实原因。
多签 P2SH 的重建脚本原本不要求公钥顺序,n 个密钥就有 n 的全排列级脚本变体:同一份 m 加 n 配置能开出多个合法地址,钱包之间还互相认不出对方。BIP67 规定公钥按字典序升序排列来定死唯一脚本。本文拆解排列爆炸的地址后果、排序约定的具体规则,以及隔离见证时代它的新角色。
节点发 getdata 点货,对端手里没有对应数据时回一条 notfound,把"在路上了"和"根本拿不到"区分开。比特币核心源码 protocol.h 定义该消息类型,net_processing.cpp 在处理 getdata 时把取不到的条目攒进 vNotFound 回给请求方。本文拆解它出现的位置、与孤儿交易等待和区块补洞的配合,以及误读它导致的排障弯路。
比特币核心的 onlynet 参数限定自动出站连接只走指定网络,设成 onion 或 i2p 可让节点完全不在公网发起连接。官方帮助文本写明入站与手动连接不受影响,配置文件里一条残留的明文 addnode 就能让隔离功亏一篑。本文拆解参数的精确取值与语义、与监听和权限配置的分工,以及三步自查清单。