区块链(E08):有限模型、fuzz 与形式化证明的边界
区块链(24):fuzz 和 invariant 要围住哪笔资产给托管提出了“债权不超过资产”。把它写进有限模型时,需要列出订单状态、买卖角色、金额区间和动作集合。可达状态检查能穷举给定上界内的动作序列,找到重复领取等短反例;无法据此证明任意大金额、任意多订单、真实 EVM gas 或链外配送都正确。随机 fuzz 扩大输入探索但不承诺覆盖所有状态;形式化证明也仅证明规格陈述与工具假设之下的性质。 flowchart LR SPEC[明确规格: 单次结算/资产义务] --> MODEL[状态与有限上界] MODEL --> SEARCH[枚举/模型检查] SEARCH -->|违反| TRACE[最短反例: 状态/动作] SEARCH -->|无反例| BOUND[仅对此边界安全] SPEC --> IMPL[Solidity/客户端实现] IMPL --> GAP[还需实现符合规格的对应关系] 例如在只有 1 笔订单、2 个角色、金额取 {1,2} 的模型里,若状态是 FUNDED→CLAIMABL...
区块链(E07):用 Polkadot 对照应用链与共享安全
区块链(43):Cosmos 与 Avalanche 是两条不同的应用链路线的应用链可能各有验证者或互操作规则。Polkadot 历史设计强调 relay chain 与 parachain 在验证和跨链消息层的分工:应用链生产自己的候选状态,底层共享验证体系对其有效性和可用性承担约定责任。不能只因链之间可以发消息就推断它们共用安全,也不能把 relay 链想象成以太坊 L1 的复制品。 flowchart TD A[应用交易/平行链执行] --> C[候选块/状态承诺] C --> V[relay 验证与可用性条件] V --> F[共享共识/最终性] A --> M[跨链消息通道] M --> P[另一平行链应用] F --> M 网络若允许链自定义执行 VM,应用错误仍可能给出不符合验证函数的状态转移;跨链消息还要约定顺序、重试和超时。共享安全范围受实际加入方式、验证者分配和当前协议版本限制,不能从早期白皮书断言今日每条应用链均按原结构运行。JAM 等演进提案如无主网激活资料,不写成已上线设计。与 Cosmos I...
区块链(E06):CID、存储证明与能下载交付文件之间差多少
卖家把交付文件放在链外,只将 CID 写入订单合约。CID 使取得内容的买家可以按编码与摘要校验字节,却不能保证卖家确实把文件发给网络或仍有节点提供副本;区块链(04):Merkle 包含证明需要可信根的可信摘要问题在这里变成可检索性和授权可见性问题。IPFS 提供内容寻址与发现工具,具体 pin/复制由参与者负责;Filecoin 的存储证明用于按协议验证存储承诺,不等于任意时刻都能从同一节点快速读到文件。 flowchart LR D[合成交付文件] --> H[CID: 编码/内容摘要] D --> R[至少一份可用副本与检索路径] H --> C[链上订单记录 CID] R --> B[买家取回字节] B --> V[本地 CID 校验] C --> V P[Filecoin 存储承诺/证明] -.不自动保证即时检索.-> R 若文件带个人信息,公开内容地址和无访问控制的节点网络可能泄露内容;先加密也要设计密钥分发、撤销和恢复,摘要只覆盖密文或约定的字节版本。链上不应存放真实客户文件或密钥。设定订单“交...
区块链(E05):DeFi、NFT、DAO 各自在哪一步会失真
区块链(25):把 ERC-20 接进托管后,“收到 70”仍要核算强调资产实际到账,区块链(30):同一组有效交易也能产生不同经济结果强调交易顺序。若合成订单拿 AMM 兑换后的 token 支付,池的价格由储备和协议费用决定;无限滑点或无期限签名会在有效交易中造成坏结果。借贷系统(Aave 等代表入口)增加预言机、抵押率与清算状态;设计前不能只看利率页面。此处讨论机制与失败条件,不做资产建议。 flowchart LR U[用户授权] --> X[AMM/借贷合约: 储备/债权] X --> P[预言机/排序/清算] U --> N[NFT: token 所有权] N --> M[元数据与实际内容/存储] U --> G[DAO: 提案/票权/延时执行] G --> X 最小恒定乘积 AMM 可写为 x × y = k 的机制入门,但真实交易要计手续费、舍入、流动性进出与是否满足最小输出;NFT 链上 token 可证明约定登记的所有权,不意味着图像文件可获取或持有人拥有所有版权。DAO 投票通过也需检查执行者、时间...
区块链(E04):智能钱包、代付与会话权限怎样收回
合成订单想让买方用会话密钥在一小时内只确认交付一次,由代付方支付交易费用;这需要验证逻辑、消费状态、额度和过期/撤销,不是把私钥交给后台。区块链(22):签名域正确仍会发生业务重放的域、nonce 与操作范围仍适用,智能钱包提供的是可编程验证入口和执行调度,不天然让所有平台接受同一种会话格式。 flowchart LR U[用户签订单限权意图] --> W[智能钱包: 验证/nonce/撤销] W --> B[打包/转发者: 发送交易] P[代付者: 策略与预算] --> B B --> E[链上入口与业务合约] E --> L[收款/交付状态] 代付者可以拒绝或限流,是活性依赖而非业务权限主人;会话密钥若被盗,只能在范围、额度和剩余有效期内受损的承诺需由合约实际执行。撤销请求自身也要入链,在它尚未被执行前,旧会话可能仍可用。账户恢复人、升级管理员与 Paymaster 的控制权限要画在不同框里;不能把 EIP 提案发布写成所有钱包默认已启用的功能。 用一条被盗会话密钥检查权限 用户授予会话账户:只能在指定 chain ID、钱包...
区块链(E03):SNARK/STARK 的约束、设置与成本如何分别验证
区块链(34):Validity rollup 的证明到底验证哪条命题把公开 statement 与 witness 分开,验证的是“这个有限订单状态转移存在满足约束的见证”,而不是“现实交付真实”。E03 更进一步:选择特定证明工具时须记录代数/执行约束、公开输入、验证密钥、可信设置(如有)、证明生成内存时间与验证时间;不同构造的成本不能用家族名推导出统一数字。 flowchart LR T[订单输入/旧状态] --> C[约束: 授权/守恒/单次消费] C --> P[证明器 + witness] P --> PROOF[proof] PROOF --> V[验证器 + 固定验证参数] T --> V V -->|接受或拒绝| S[仅对声明命题有效] 如果约束没写“卖家提现额不得超过余额”,证明系统可以完美证明一个错误需求;如果公开订单 ID 不绑定,证明可能被移用到另一笔订单。某些 SNARK 构造需要可信设置,某些 STARK 设计使用不同的透明性和证明规模权衡;“零知识”是否成立还取决于协议与 witness ...
区块链(E02):SegWit、Schnorr 与 Taproot 的三个升级维度
先修区块链(07):Script、时间锁和见证不是一件事与区块链(40):Bitcoin 的软分叉、钱包协作与链外支付分层。SegWit 调整某类交易的见证数据承诺与交易标识规则,Schnorr 是签名方案,Taproot 是输出与花费路径的协议组合;把它们统称“签名升级”会漏掉输入字节、脚本分支和软分叉的验证边界。 flowchart LR T[待花输出类型/版本] --> C[消息与见证编码] C --> S[签名验证: 对应算法] C --> P[脚本路径条件] S --> V[节点共识检查] P --> V V --> I[txid/wtxid 与包含承诺] Taproot 花费可根据实际条件走与密钥相关的路径或暴露特定脚本路径;不同路径泄露的信息不一样,但匿名性不能只凭使用该输出类型自动获得。向旧软件发送新版本输出时,还须核对旧节点究竟如何解析,不能把软分叉兼容性解释为“所有旧节点已完整验证新规则”。BIP 向量需按确切规范的编码逐字节比对,OpenSSL ECDSA 不能充当 Schnorr 验收。 同一个 ...
区块链(E01):Lightning 通道、HTLC 与链上退出
先修区块链(11):重组时撤销的不是一个确认数字及区块链(31):通道、侧链与 rollup 把哪些责任移出主链。通道双方先在链上锁入资产,线下签署状态更新;多跳路由可借助哈希锁与到期条件约束各跳,要么在规定窗口内揭示所需原像并结算,要么按超时规则取回。HTLC(哈希时间锁合约)并不是“永不失败的即时支付”:路由、对端在线、手续费、余额和链上退出窗口都影响结果。 sequenceDiagram participant A as 买方 participant R as 路由节点 participant B as 卖方 A->>R: 有哈希锁/较晚到期的转发承诺 R->>B: 同哈希锁/较早到期的承诺 B-->>R: 揭示满足哈希锁的原像 R-->>A: 用原像领取上游支付 Note over A,B: 对手不协作时须能在链上按期限退出 签过旧通道状态不等于对方不会试图提交它,参与者或受托监控方需要在时限内观察底层链并执行争议。若所有跳的到期时间相同,中间节点可能来不及用下游获得的原像领取上游款;设计要考...
区块链(47):选数据库、签名日志、许可链还是公链
区块链(46):三条订单协作路径各把信任交给谁给出的跨域依赖并不是架构卖点:如果合成订单只有一家平台管理、买卖双方认可其对账与救济,00 篇的原子数据库事务、审计日志与灾备可能更容易满足要求。选择链前先问:互不信任的写入者有几个?谁能改验证规则?谁需要独立复验?节点不可用/管理员作恶时用户能否取数据、仲裁和退出? 选项 谁控制写入/规则 适用前提 退出时要带走什么 中心化数据库 单机构事务与运维 单一责任主体可被信任和追责 订单/资产快照、备份、审计 签名透明日志 签发者与见证/审计方 多方需验证发布记录但不需共享执行 签名、公证检查点、字节与可用副本 许可链 组织成员与联盟治理 多机构有明确加入、仲裁与密钥制度 成员证书、状态快照、治理合约 公有链/L2 公共验证规则与具体升级控制 开放参与/可审计验证的价值大于新增成本 链数据、可验证状态、强制提款及桥权限 flowchart TD Q[是否已有可问责的唯一写入者?] -->|有| DB[先试数据库 + 签名日志] Q -->|无| M[成员能否事先确立?] M --&g...
区块链(46):三条订单协作路径各把信任交给谁
区块链(45):钱包、RPC、预言机、扩容与应用的依赖地图列了组件,本篇把它们接成三条实际业务路径;每条都要追到交付凭证和最终对账,而不是在拿到哈希时停止。 flowchart LR O[合成订单/交付凭证] --> B[Bitcoin: 钱包→节点→确认观察] O --> E[Ethereum/L2: 钱包→排序→托管→争议/退出] O --> H[高并发/应用链: 应用→本链执行→跨链] B --> R[业务补偿/对账] E --> R H --> R Bitcoin 路线:买方钱包选币/签名,经 RPC 和 P2P 提交;卖方节点或有明确信任假设的支付观察端跟踪纳入、冲突与重组,订单服务按风险策略确认交付。若用 Lightning,付款与链上退出换成通道规则和在线监控;矿池不负责证明线下到货。卖方仍要独立保存订单 ID 与支付 outpoint/txid 的对应关系。 Ethereum/L2 路线:用户授权与托管合约保存债权;链下服务持久化 nonce/候选哈希,索引记录块和事件;若在 L2,排序器、L1 结算、D...










