区块链的 Pruning(修剪) 机制

百家 作者:余弦 2019-06-24 06:06:11

很少在这具体谈区块链技术相关的内容,顺手分享下,感兴趣的可以看看。不感兴趣的,但对数字货币感兴趣的,我的建议只有一个:多往底层看,那里很多务实的精彩,能避免你在这个混乱世界里不那么轻易被影响。




这两天狗狗币的 1.14.x 的 Release Notes 里提到了“Pruning(修剪)机制”,这个机制可以让节点存储本地的区块数据小很多:


https://github.com/dogecoin/dogecoin/blob/master/doc/release-notes.md


这个 Pruning 机制,之前我在门罗币的一个 Release Note 也看到了:


https://web.getmonero.org/zh-cn/2019/02/01/pruning.html


门罗币是 0.14.x 版本开始引入的这种机制,当配置了这个机制后,节点的区块数据可以被“修剪”掉 2/3。


Pruning 是可选的,如果节点存储不在意这个,也可以不“修剪”,那么就保留全区块数据。


被“修剪”掉的都是什么呢?比如:一个地址不存在未花费输出了,随着历史推移,一直留着意义也不大;再比如:环签名相关数据,即使“修剪”掉也不会导致可能出现的双花。“修剪”是建立在不破坏区块链安全性的前提下,尽量删掉无意义或意义不大的区块数据。


Pruning 机制要解决的问题会是这类区块链都会面对的问题:随着时间推荐,区块数据越来越大,但很多是意义不大的。这个和很早之前的 SPV(Simplified payment verification) 机制不一样,SPV 最多只需要留区块头信息就好,这相对来说很小很小,这也是许多去中心化钱包能顺畅去中心化的一个原因。


匿名币有个好处,比如像 MimbleWimble,基于这个实现的 Grin 和 Beam,区块数据本身就会很小,它会把已花费的交易输出和对应的交易输入都删掉,也不会影响这些币的后续交易,删了反而更好,让后处理分析这些币的交易关联成为不可能。这样,Grin 和 Beam 就不用在很长的未来去再引入 Pruning 机制了。


我并没去了解其他区块链是否都有做类似 Pruning 的机制,但压缩区块数据空间、降低一个交易大小,在不牺牲安全的前提下提升性能,这是所有区块链都会不断迭代进化的。注意了,这里的讨论并不是说一个区块越小越好,一切看一条区块链自己的业务特点,这里不做展开。


一点关于 Pruning 的思考,欢迎讨论。




历史上发过的关于区块链/加密货币相关的观点:

匿名货币的一些杂碎观点汇总

黑客即法律

HITCON 议题:区块链亡灵军团(Undead Armies of Blockchain)

关于知名比特币钱包 Copay 被供应链攻击的一些思考

安全在区块链世界的重要性

⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

智能合约 transferFrom 权限控制不当导致的任意盗币攻击简述

以太坊黑色情人节专题上线及一些补充观点

以太坊生态缺陷导致的一起亿级代币盗窃大案

杂谈区块链生态里的前端黑

5天钓到40枚以太币

杂谈地下黑客的匿名对抗一

深入研究的套路之黑客与区块链

从狗币谈起

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接