/
登录
 找回密码
 立即注册

只需一步,快速开始

发帖
首页 区块链 Web3 仔细聊聊比特币,拆读《白皮书》-08

仔细聊聊比特币,拆读《白皮书》-08

3 小时前 评论(0)
接着上一篇,我们继续聊聊《比特币白皮书》的第 8 部分:简化版⽀付确认 (Simplified Payment Verification)。
简化版支付确认
还是老规矩,原文和中文翻译放在这里,便于中英文对照,有条件的可以原文理解。
It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after itfurther confirm the network has accepted it.
即便不⽤运⾏⼀个完整⽹络节点也有可能确认⽀付。⽤户只需要有⼀份拥有⼯作证明的最⻓链的区块头拷⻉
—— 他可以通过查询在线节点确认⾃⼰拥有的确实来⾃最⻓链 —— ⽽后获取 Merkle 树的树枝节点,进⽽连接到这个区块被打上时间戳时的交易。⽤户并不能⾃⼰检查交易,但,通过连接到链上的某个地⽅,他可以看到某个⽹络节点已经接受了这个交易,⽽此后加进来的区块进⼀步确认了⽹络已经接受了此笔交易。


As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting theuser's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.
只要诚实节点依然在掌控⽹络,如此这般,验证即为可靠的。然⽽,如果⽹络被攻击者所控制的时候,验证就没那么可靠了。尽管⽹络节点可以⾃⼰验证交易记录,但是,只要攻击者能够继续控制⽹络的话,那么简化版验证⽅式可能会被攻击者伪造的交易记录所欺骗。应对策略之⼀是,客户端软件要接受来⾃⽹络节点的警告。当⽹络节点发现⽆效区块的时候,即发出警报,在⽤户的软件上弹出通知,告知⽤户下载完整区块,警告⽤户确认交易⼀致性。那些有⾼频收付发⽣的商家应该仍然希望运⾏属于⾃⼰的完整节点,以此保证更独⽴的安全性和更快的交易确认。
贴心一章
这一小章节是比特币白皮书里非常贴心的一章。为什么这么说呢?
因为它帮普通人解决了一个现实问题:
我们普通人不可能每人都装一台“矿工级电脑”来验证交易,太昂贵了,那怎么知道自己收到的钱是真的呢?
中本聪的答案就是:让普通人也能验证交易安全,但不用下载整个区块链。
他是如何做到的?我们一步步来说。
小工具大功效
先来说个数字,比特币的账本据说现在已经超过 700GB。
700GB 啥概念?
就好像你电脑里存了 700 部 1GB 的高清电影(《阿凡达》差不多是 1GB-1.5GB 左),相当于700 部高清《阿凡达》!
问题也已经很明显了:
普通人没法保存整本账本,如你我这般的普通用户顶多想转点钱、收个比特币、或者查查交易记录啥的。难道我们也要下载几百GB的数据?😱
中本聪给的答案:
当然不用!你不需要整个账本,只要有一种“简化支付验证”(SPV)的方式,就能确认交易真假。
什么是 SPV
问题来了,啥是“简化支付验证”(SPV)?
大白话理解就是:你不用保存整个账本,只保存账本目录和页码就行,然后让别人帮你核对关键内容。

也好比说,你不需要自己看完一本一千页的书,只要知道目录、章节号,再查一下那一页是不是确实存在,就能确定真假。

如何做到
听起来有点技术在里头,具体是怎么做到的?
第一步,你(普通用户)只下载每个区块的“区块头”。前面提到过,区块头就像账本的“目录页”,体积非常小。
第二步,当你收到一笔交易时,你只需要向网络询问:“这笔交易有没有被某个区块打包进去了?”
第三步,网络会返回一个“证明”。这个证明里会包含这笔交易在区块里的“路径信息”(Merkle Path)blabla,最后会用数学方式告诉你:“这笔交易确实存在,并且在第N个区块里。”
第四步,验证区块头是真的。区块头里有工作量证明(挖矿的结果),这能证明这个区块是经过全网共识确认的,不是伪造的。
经过这几个步骤,你就能确定:✅ 这笔钱是真的;✅ 它已经被全网承认;✅ 你无需信任别人,也不用下载几百GB的数据。
这么说多少还有点抽象,可以把它想象成你要收快递:
你没必要去趟仓库,再查清楚每一单货的路线,然后验证每一个包裹从哪出发blabla。你只要看快递员给你的签收单(这就是“区块头”),单上写的快递单号确实能在系统里查到,系统显示“已签收、已完成”。那你就知道:这单是真的,货也确实到了。
你并没有去检查整套物流系统(就像没下载整个区块链),但凭签收单 + 系统记录,你也能确认真实性,一样的逻辑。
没它不太行
你可能还会疑惑,这种方式它真得安全吗?一般来说,非常安全。
这有 2 个考量因素,一个是你验证的区块头都带有工作量证明;二是只要攻击者没有控制全网 51% 的算力,就无法伪造。
不过中本聪也提醒:
SPV 用户依然需要信任网络上的多数节点;如果你连上的节点全是坏人,他们可以暂时骗你,但只要你多连几个不同的节点,风险就几乎降低为零。
为什么重要
最后,再简单说说为什么 SPV 很重要?
因为它让比特币变成了一个人人都能用的系统,让普通人平权地享受到了虚拟货币带来的种种可能性。不只是矿工的特权,普通手机、电脑用户也都能验证交易。
据说现在市面上的大多数比特币钱包都使用了这种 SPV 模式。它们能在几秒钟内告诉你“你收到了比特币”;而不用下载几十万个区块。
这是非常友好的、去中心化的举措,之一。
写在最后
关于第 8 部分,今天就先聊到这,下一篇继续。希望对你有帮助!
您需要登录后才可以回帖 登录 | 立即注册
楼主
韦欢

关注0

粉丝0

帖子1

最新动态