区块链里有一个叫作svi的概念, 好多从事链上项目开发的开发者都听过这个名字, 可是真正能把它的底层逻辑讲得非常清楚的人, 并不是特别多, 本人从事区块链架构工作已经有五个年头的时间了, 在这期间也踩过了不少坑, 今天决定把最为核心的东西全部摊开来讲一讲。

区块链svi是什么

SVI这个名称的全拼是合成验证指数, 它本质上是一套比较轻量的认证方案, 这套方案的用途是把不在区块链上的数据通过哈希摘要的方式进行锚定并放到链上。这种方案并不依赖完整的共识节点, 只需要验证一个默克尔路径根部的哈希值是否彼此匹配, 就可以确认某一条数据确实是被包含在某个快照之中的。

区块链svi入门:原理讲透,验证不踩坑

跟那些传统的预言机往链上喂数据的方式不一样, SVI这个技术解决的核心问题是关于把批量数据放到链上去的时候应该怎么让人相信它。在供应链这种应用场景里面, 如果有一万多条物流方面的记录需要处理的话, 其实并不需要让每一条都单独去上链, 只要把它们打包汇总成一个索引形式就完全足够了。

区块链svi怎么验证

验证方那里需要拿着三样东西, 分别是索引根哈希、还有目标数据叶子哈希, 再一个就是Merkle proof路径这个东西, 然后他在本地跑一遍那个哈希拼接的操作, 要是跑出来的结果和那个根哈希能对得上, 那就说明数据没有被篡改掉, 这完全是纯数学运算的事, 用不了多长时间, 也就是在毫秒这个级别里就能出结果。

在具体的部署操作里, 最让人头疼的问题出在索引创建这个环节。因为负责产生索引的人或机构不可靠, 所以挂载上去的根哈希值就是错误的, 哪怕后续验证做得再快也没有任何意义。因此, 制作方那边给出的数字签名认证这一步绝对不能省略, 如果缺少了这一项, 整个信任链条就会从一开始就断裂失效。

说到底, 这个事主要就是围绕着如何来对信任的假设进行分配这个问题。你如果把生成这一步的信任给交给某一个特定的对象去处理的话, 那么系统里关于安全边界的范围就会落在那个被赋予了信任的对象那里面。

相比之下, 选对了作为锚定主体的那个对象,这点对大局的影响程度, 要比大家在这里头纠结验证速度到底快不快显得重要多了。