BTC郑哥全自动炒币机器人:比特币不用全节点也可验证支付SPV 机制


_本文原题:全自动炒币机器人:比特币不用全节点也可验证支付SPV 机制
炒币必聊:比特币自诞生以来 , 就因浪费电力资源为人所诟病 , 但其强大的算力是必要过程 , 很难找到更好的方式来代替 。 随着它出现的年头越来越久 , 在其底层技术区块链上参与交易的人也越来越多 , 分布式账本的内容量急剧扩张 , 中本聪设置的一个区块 1 MB 的存储量使得交易过程和交易速度有了限制 。
例如 , 目前比特币主链的区块数据高达 200 多 G, 对普通用户而言 , 存储量实在过大 。 因此 , 下载整个账本成了令人头痛的一件事 。 能不能不下载整个账本 , 只找与自己相关的部分呢?换句话说 , 找个过滤器 , 把没用的都留在外面 。 于是出现了 SPV 机制 。 01 SPV 机制
【BTC郑哥全自动炒币机器人:比特币不用全节点也可验证支付SPV 机制】
BTC郑哥全自动炒币机器人:比特币不用全节点也可验证支付SPV 机制
本文插图
SPV 全称“ Simplified Payment Verification ” , 常见翻译为简单支付验证 。 其目的是为了验证某笔交易是否存在 , 但并不能验证交易的合法性 , 这需要进行两步操作 , 第一步是确认交易支付是否被验证过 , 第二步是计算得到了多少确认数 。 中本聪在论文里提及了这一概念:
在不运行全节点时也依然有可能对交易进行验证 , 用户只需要保留最长链上的所有的区块头数据 。简单而言就是:假如小黑给大白转了一个比特币 , 大白怎么才能知道币已经交易完成了呢?在去中心化的系统里找证人那是不太可能的 。 按照传统的办法就是:大白需要下载下来所有的区块链账本 , 然后找到小黑的账户 , 先瞅瞅它之前是不是有这样一个比特币 , 并且有没有转给大白的记录 。 仅仅是第一步 , 就使得大白的存储量要爆掉 。 每个比特币的区块容量是 1 MB, 区块头只有 80 字节, 因此只需要下载区块头就可以节省很多空间 。 区块头和区块体究竟是什么呢?把区块头比做人的头部 , 里面存储着区块的头信息 , 如哈希值、时间戳等;而区块体则类似于人的整个身体 , 存储着这个区块的详细数据 , 如具体交易信息 。 区块头包含在区块体中 。 也就是说一个区块头尽管有哈希值 , 但下载了区块头后大白仍无法知道交易记录在哪个区块里 , 这时候就需要拿着交易 ID 去找全节点查一下 , 是否有且在哪一个区块里 。 TZR202061全自动智能量化cp;、解放双手 , 从此早睡早起做回自己,开启币圈的躺zhuan 人生BOSEN20190801 。

BTC郑哥全自动炒币机器人:比特币不用全节点也可验证支付SPV 机制
本文插图
我们回归正文~
02 SPV 的支付验证过程咦 , 那万一矿工和小黑联合起来片大白怎么办?这时候 SPV 机制就派上用场了 。 如果矿工说小黑转过来了 , 但其实并没有 。 那么为了圆谎他必须伪造更多的交易 , 使得这些交易能得到和自己区块头里同样的哈希值 。 但由于哈希的技术特性 , 改变后的数据要想和原始数据得出一样的哈希值 , 那是很难实现的 。 总之 ,SPV 整个交易过程是这样的:第一步 , 确认交易支付是否被验证过 。 首先计算待验证支付的交易哈希值 , 把区块头从区块链网络上保存至本地 , 再从区块链获取待验证支付对应的默克尔树哈希认证路径 。 对比获得的哈希值与自己的是否一致 , 若一致 , 则证明支付真实有效 。 第二步 , 验证得到了多少确认数 。 根据该区块头所处的位置 , 确定该支付已经得到的确认数量 。 完成这两步 , 交易支付验证就完成了 。 03 小结SPV 机制不仅节省了储存空间 , 减少了 P2P 网络带宽的浪费 , 使得普通用户在没有下载完整数据的情况下也可以操作 , 而且也给查账带来了极大方便 。 但是 , 由于 SPV 没有完整的区块数据 , 是无法验证交易不存在的 , 这种情况很容易导致双花的情况出现 , 而随机链接节点也有可能受到网络的e意公击 。 你认为 SPV 还有什么优点和缺点吗?~欢迎在留言区分享你的观点畅聊货币 。