天天小说网

第一节 存在性证明

一、基于比特币的存在性证明

(一)存在证明

存在证明就是向第三方证明某个物品/事件,在过去的某个时刻存在过。

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

回忆一下,电影里经常出现的绑匪镜头,他们为了证明在某个时间确实拥有人质,而不是事前拍摄的视频,通常会用当天的发行量很大的报纸来辅助证明。当香港媒体误报“成龙高楼坠亡”时,成龙也不得不拿报纸来证明自己的存在。报纸之所以能够成为有效的时间证明系统是因为以下几点。

(1)不可伪造性。新闻等信息是无法预测的,尤其是证券大盘数据,报纸上大量充满这样的信息,所以无人能够提前伪造。

(2)公开且不可销毁。报纸通常拥有很大的发行数量,受众广泛,一旦发布出去就分散到各个角落,很难再次收集齐全并全部销毁。通常图书馆也会存档数十年的报纸。

(3)具有时间特征。报纸具有很强的时间特征,版面上的时间标记到处可见。借助报纸可以完成某个时间之后的存在证明,但无法完成某个时间之前的。例如,你将9月1日的报纸拍摄进照片,那么仅能证明其在9月1日之后拍摄,可能是9月1日,也可能是9月15日。

(二)时间戳服务

比特币本质是构造了一个永不停息、无坚不摧的时间戳系统。

然后在该系统上添加若干特性后使其具有货币的功能。报纸从另一个角度来讲也是一种时间戳服务。

比特币具有下列优良的特性,可以更完美地用于存在证明。

(1)不可预测/伪造。因区块(Block)的计算是随机事件,其哈希值(Hash Value)是一个32字节的随机大数(2^256)。想猜对该数的概率实在是太低了,如图2.24所示。

(2)不可销毁/修改。比特币区块链拥有巨大的算力在维护与延续,对于n个确认的区块,想篡改是不可能的。

图2.24

(3)区块具有天然时间特性。时间戳(Timestamp)是区块元(Blockmeta)字段之一。

(4)区块可以存储信息。区块元信息是无法控制的,但区块会收录交易,而交易可以向区块“写入”自己的数据。

(三)数字摘要

简单来说,对一串数据进行哈希运算,得到的哈希值称为数字摘要。除了哈希函数外,还有其他方式,如密钥签名等也可以得到。哈希值通常是一个非常巨大的数,例如用SHA256时,哈希值区间非常大:1~2^256。数字摘要的计算过程不可逆,那么可以认为:

欲证明你拥有某个文件,提供该文件的哈希值(及哈希函数)即可。第三方可以轻易通过验证文件的哈希值来判断之。

(四)比特币做存在证明

1.时间点后向证明

因为区块哈希值(BlockHash)的不可伪造性,能提供区块哈希值即可证明存在于该区块时刻之后。例如,你在拍照的时候,拿着打印有区块哈希值的纸即可证明:你是在该区块时刻之后进行的拍摄。

2.时间点前向证明

前向证明需要精心构造一个包含数字摘要的交易,待该交易进入区块中时,便可以证明你在该区块时刻之前拥有该数字摘要。前向证明的关键是能把信息写入时间戳服务载体。

3.时间区间证明

有时候,仅仅证明时间点之前或之后是不够的,需要能够确认到某一个时刻。将上述方式综合即可完成。

(1)将区块A的哈希值添入数据文件,并制作文件数字摘要(时间点后向证明)。

(2)将摘要信息构造至交易中,广播之(时间点前向证明)。

(3)当交易被区块B收录进去,那么即可证明,该文件在区块A与B的时间间隔中存在。

如果交易给了足够的矿工费(TransactionFee),具有较高优先级的话,便很有可能被紧随其后的Block收录。连续Block约10分钟,那么就在一个相对小的时间内做了证明,可以近似认为是时间点。

(五)构造特殊交易

带有数字摘要的交易如何构造呢?下面以32字节的数字摘要为例,提出数个可行方法,其他长度的可变换得出。

方式一:交易额承载信息。

32字节可以分割为16个双字节,每个双字节的数值范围是0~65535。比特币的现行单位可以分割至小数点后8位,那么我们可以利用最后的5位来存放一个数值,一共需要16个输出(T×output)即可完成32字节的信息存储。中间涉及比特币最大数量为0.00065535×16=0.0104856BTC。

需要的比特币数量很少,约0.01BTC,且输出依然发回给自己的地址,唯一的代价就是付出矿工费(T×Fee)。任何人都可以使用之。

著名比特币赌博网站SatoshiDice就是采用这种方式为其服务端种子文件做时间前向证明的。下面演示一下步骤。服务端的种子文件为hash.keys,我们对其做SHA256运算,得到哈希值,32字节。

$sha256sumhash.keys

#hash of file"hash.keys",in hex:

更多内容加载中...请稍候...

若您看到此段落,代表章节内容加载失败,请关闭浏览器的阅读模式、畅读模式、小说模式,以及关闭广告屏蔽功能,或复制网址到其他浏览器阅读!