**(汪波)区块链做存证的原理及方式

原文:2016-12-07 网录 汪波:区块链做存证的原理及方式
本文作者汪波,网录科技联合创始人、首席技术官CTO。汪波是原美国区块链公司公证通(Factom)工程副总裁,毕业于北京大学,后并获得美国密歇根大学信息管理硕士学位。他拥有20多年互联网及软件开发和管理经验,曾先后在中国和美国多次成功创业,对共识算法理论和代码都有精深造诣,可谓区块链共识算法和P2P网络先行实践者。雷锋网(公众号:雷锋网)已获得授权。

参考:2017-02-23 网录 吕旭军:区块链如何打通供应链金融的任督六脉?

为什么区块链是好的存证工具

区块链所建立的是一种去中心化的共识机制,这种共识机制结合了数字加密和博弈论,使得参与者无须任何外部强制约束的情况下即自行形成了相互牵制的可信环境。这种可信的环境去除了中心化授权外部的管制的必要性,甚至恰恰建立在互不信任的基础之上,于是这种去中心化、去信任的区块链架构所解决的正是这个充满虚拟与匿名的网络世界的信用与治理问题。

存证证明这是一件很简单的事情,提供票据、通信记录之类的就可以办到,但这些并不严格,因为这些证据都是非常容易被伪造和销毁的。要完成证明,必须依赖强有力的证据链,这个必须是任何人都无法伪造和销毁的,或者说伪造成本是极其高昂近乎不可能。

区块链技术是从比特币系统提炼出来的,具有强大的自保护能力的技术,与其说它是一项技术创新,不如确切的说它是一项规则与技术完美结合的生态系统创新。这个生态系统自带的规则与技术天然解决了保全证据公证遇到的一些根本问题:

**(汪波)区块链做存证的原理及方式_第1张图片
网录科技CTO汪波:区块链做存证的原理及方式

(1)第三方身份:区块链技术保全证据,是属于在关系双方之外,建立一个无利益的第三方身份,正如“公证”中的公证员的身份、“私证”中的见证人的身份。

(2)去中心化结构:区块的基础规则之一就是去中心化的结构,即不存在作为中心的硬件或管理机构,不需要也无法人为的进行干预。保全内容被区块链无数的结合点共同控制,有效的防止黑客、捣蛋者们对数据本身进行攻击、篡改。

(3)时间戳证明:每一次存取、变动等行为都会有一个时间戳记录,让每一个行为的时间点有据可查。

(4)证据链举证:区块链技术将每一次行为都保全下来,对行为形成了证据链证据,而非单点证据,有效还原了整个行为的真实过程。

(6)低成本:虽然区块链技术作用很大,但它还是一项低成本的技术,区块链技术本身对硬件的要求不高,也不需要很大的硬件投入,这点在它保全证据公证领域的推广利用方面也是至关重要的。

上面谈到的是区块链在保全证据公证领域的天然优势,这个优势可以用于公证,当然更可以用于的私证。但从现实的、接地气的作用来讲,区块链对私证的意义更大,这是因为未来越来越微小的经济活动将逐步盛行,如:

P2P实现了几十、几百的贷款,淘宝实现了几十块钱的交易,这些细琐的经济活动会产生出大量的细琐的名事纠纷,而大家绝不会为几块、几十块、几百块的事情打官司,所以快速取得证据、快速处理纠纷成了必须解决的问题,区块链将成为大众提供这样的存证、取证工具,用技术提高“私证”的证据效力,让私证在非民事诉讼领域大展拳脚。

区块链进行存证的本质在于区块链特殊的存储方式,用比特币举例,每一笔交易以UTXO记录,UTXO相当于记录流水的方式,而不是记录余额。记录中必须包含持有人的签名并被网络证明没有双花,同时会记录接收人的地址,而且这笔记录将被打上时间戳记录在区块中。这样确保了每一笔交易都能找到他的上一笔交易,这样保证了在没有第三方参与的情况下,交易是唯一的和不可篡改的。利用这个特性大家创造性的用来解决数据存证的问题。

怎么做存证?

基于比特币的存证很好的利用了比特币网络的强大算力以增强公信力。但是大家都知道比特币每一个区块的容量十分有限,如何将庞大复杂的数据存入比特币的网络中呢?

中本聪在比特币中使用了默克尔树的方式对交易的验证进行简化,基本原理是将单条交易Hash,再将两条交易的Hash组合后在进行Hash,经过几次同样的过程后形成一个根Hash,存于区块头中。这样,任何树上任何一笔交易被更改,都会造成根的不同。做数据的存证时,采用同样的方式,将文件Hash以默克尔树的形式组织,最后将根Hash写入比特币的一个可以提供80字节空间的OP_Return这个区域中。相当于将数据存证于一笔不可篡改的交易中,从而完成了存证的过程。

这个过程我们称为锚定,其实是将存证链条锚定到了比特币上

**(汪波)区块链做存证的原理及方式_第2张图片
网录科技CTO汪波:区块链做存证的原理及方式

这通常是第一个out,后面就是他的操作代码,fa,就是factom的东西,就是一串字节,我们是怎么做呢?我们早期做,是把要存进去的东西,用一串编码,这个编码前面有两个字符作为标识,比如FA,WA什么东西,表示我们自己,所以每一个, 基本上有两个或者三个字符,早期的时候都是用来标识自己。然后,后面这部分就表示他的高度,最后面属于他的hash,整个block hash的32位,这是一个核心层次最简单的编码之一。最简单就是把hash直接放进去,更复杂的80个字符,像地址空间一样,地址空间可以做很多很多的变种,创建着很多的应用。

因为这个OP-return比特币并不提供标准的借口,所以我们有两种方法去处理:一种是手工构建一个Transaction,怎么去做锚定,我们做了很多的工作。比较简单的是先获得UTXO,先找到钱包里面,针对地址找到没有花费的钱,没有花费的地址,创建一个Transaction,Transaction找到一个Transaction2,为了做存证,我们搞一个简单的Transaction,创建一个OP-return,剩下还有一些剩余的钱,在创建一个Transaction,做一些验证,把它发到网络里面去,这个过程中,放到网络里,并不是每一个Transaction都会被收录到网络里面去,放到链上面去,所以你的等到for bank所得的for bank就表示这个已经被收录了,被确认了多少次了,一般来讲如果确认6次以上,那么效率就比较靠谱了,确认了20次以上那么这个就不可逆了。这是一个锚定算法的基本东西。

**(汪波)区块链做存证的原理及方式_第3张图片
网录科技CTO汪波:区块链做存证的原理及方式

Op_return的其他应用

利用Op_return这个区域还可以被用于发行基于比特币的其他资产,如彩色币,在锚定这个我们用的最广泛的是颜色币,这些都是不同颜色币公司做的,每个公司都做的非常好,在我们这可能见得比较少,谈的比较少,可实际上在比特币这个网络上有很多实实在在的应用在做交易,在做发行,我们看看现在有谁再用这个OP-return,这个用比特币做数据存证,也可能是数据交易上的东西

**(汪波)区块链做存证的原理及方式_第4张图片
网录科技CTO汪波:区块链做存证的原理及方式

2015年以后利用Op_return区域相关的交易持续上升,说明这一区域正在被大规模开发利用

**(汪波)区块链做存证的原理及方式_第5张图片
网录科技CTO汪波:区块链做存证的原理及方式

**(汪波)区块链做存证的原理及方式_第6张图片
OP_RETURN Stats(来源: http://opreturn.org/ )

参考: OP_RETURN Stats

企业级的存证解决方案

上面介绍了存证功的原理。而存证的复杂应用意味着我们需要一个企业级的存证,这个存证应该有如下特征

  • 当锚定的交易被取消,仍然能再次进行锚定;
  • 存证的数据的原始关系必须被记录和保留,原始数据的版本能够保留;
  • 数据能够便捷的检索;
  • 交易的吞吐量和速度达到要求;
  • 能控进行隐私和权限控制。

做存证其实很简单,你把一个东西锚定到比特币这就完成了,但是对于一个企业还需要什么来解决呢?

  • 刚刚说到一个很重要的问题,可能不会被收录,区块链有些硬分叉,软分叉,有些是在短期之内可以进行调整的,你在不同的节点,不形成共识的时候,每个节点在临时的在某一个块上面建立了下面的节点,而下面的节点有可能整个链都会换掉,这个链的重组是个很大的事情,我们要保证链是在主链上的
  • 第二个地方我们要谈的是数据往往是有关联的,举个简单例子,交易所你要把东西放进去的时候,你得资产首先对应的属性对应的拥有者都是有关联的,但是这个你放在区块链这个东西是有限的东西,比特币这个比较慢,企业级的这个比较快,这怎么解决吞吐量速度交易的问题
  • 其他方面考虑的比较多的,隐私、权限等等,这些属于企业级存证需要解决的一个部分。

讲几个例子,这是我们在美国做的几个东西,看一下数据架构,这是一个多层次的链条架构,这是一个数据链

(Encoding: ‘Wa’ (2 bytes) + block_height (6 bytes) + block_hash(32 bytes)

用户可以随意的创建一个数据链,上面有一个目录链,这个架构在当时还是比较新颖的,最近这个英国出来的一个英国国家货币原型它就借鉴了这个架构,它的发行部和交易部是分开的,所以这种还是有一定的价值的,当时我们觉得还是不错的。

存证的示例介绍:

公证通

  1. 将原始文件的hash存入条目块(Entry Blocks)中,
  2. 条目快被以默克尔树的形式组织后进入公正链的块中,
  3. 公正块(Factom Blocks)与比特币锚定。
**(汪波)区块链做存证的原理及方式_第7张图片
网录科技CTO汪波:区块链做存证的原理及方式

公证通还在做房产存证,美国房地产不像中国一样,他都是需要政府给你备书的所以都是第三方来做的,所以没有人来说我买了这个房子,这个房子就一定是买给我房子这个人拥有的,所以就需要溯源,从它成为房子的第一天起,它是属于谁的,所以这种追溯带来了很多的代价。

Blockstack:在锚定之前,将原始文件及文件的hash都进行了存储,当写入区块链后,交易信息和公钥将被返回,并同样被存储于数据库中。这样能够方便的对文件进行分类和查询。

网录:假设我们的互联网没有IP地址,在这么个情况下,它怎么样转?我存一个东西,把它存在qq云上,但是没有IP帮我路由到那个地方去,那么怎么办呢?它这个追溯是放在比特币,然后对每一个域名它都有一个相对的公钥,它在这里作为一种像建一样,把它对应的文件存储在里面,这是一个非常简单的地址,但是可以做出很多的应用来,80个字节是可以颠倒的,这个编码空间可以产生很多种不同的应用,另外存证一个数据,它会再次分级,再次诠释,这是一个域名系统,很简单的域名系统。

公证通有一件事在中国是做不了的,数据在中国的控制是有一定限制的,外国人接受不了这个。所以,我和Jack(网录CEO)回国做资产的发行交易在存证平台。举个简单的例子,发行一种成员卡一样的东西,本质是可以拨通的,当时发行是几百块钱,后面发行1200多块钱靠自己的名气。虽然这种平台可以做很多类似的东西,但有一天我们希望在我们这个上面发行网红币。网红币的适用场景是和比特币是一样的,因为其有一定特色,所以有一定价值。我们开发了不同智能合约的模板,针对不同的场景,根据他们所需要的东西进行发布,这个资产、代币、智能合约做一些锚定,融合比特币、以太坊的东西。

网录的存证系统在产品的初步架构上,延续了Factom的部分思路:支持多种文件存储,提供存证及分布式存储两种路径,便于源文件的保留和比对。结构化数据可以直接写入区块中,进行真正意义上的数据比对。在区块链上层构建强大的查询引擎用于存证数据的复杂快速检索。

雷锋网原创文章,未经授权禁止转载。详情见 转载须知。

你可能感兴趣的:(**(汪波)区块链做存证的原理及方式)