比特币技术进阶

/比特币技术进阶
4 04, 2018

构造特殊交易

作者:| 2018-04-04T09:10:19+00:00 四月 4th, 2018|时间戳服务与存在证明, 比特币技术进阶|暂无评论

带有数字摘要的交易如何构造呢?下面以32字节的数字摘要为例,提出数个可行方法,其他长度的可变换得出。 方式一:交易额承载信息 32字节可以分割为16个双字节,每个双字节的数值范围是:0~65535。比特币的现行单位可以分割至小数点后八位,那么我们可以利用最后的5位来存放一个数值,一共需要16个输出(Tx output)即可完成32字节的信息存储。中间涉及比特币最大数量为: .00065535 * 16 = .0104856 btc [...]

4 04, 2018

比特币做存在证明

作者:| 2018-04-04T08:28:17+00:00 四月 4th, 2018|时间戳服务与存在证明, 比特币技术进阶|暂无评论

时间点后向证明 因为block hash的不可伪造性,能提供Block Hash即可证明存在于该Block时刻之后。例如,你在拍照的时候,拿着打印有block hash的纸即可证明:你在该block时刻之后进行的拍摄。 时间点前向证明 前向证明需要精心构造一个包含数字摘要的交易,待该交易进入block中。便可以证明你在该block时刻之前拥有该数字摘要。前向证明的关键是能把信息写入时间戳服务载体。 时间区间证明 有时候,仅仅证明时间点之前或之后是不够的,需要能够确认到某一个时刻。将上述方式综合即可完成: 将block [...]

4 04, 2018

数字摘要

作者:| 2018-04-04T08:25:33+00:00 四月 4th, 2018|时间戳服务与存在证明, 比特币技术进阶|暂无评论

简单来说,对一串数据进行Hash运算,得到的Hash值称为数字摘要。除了Hash函数,还有其他方式,如密钥签名等也可以得到。Hash值通常是一个非常巨大的数,例如用SHA256时,Hash值区间非常大:1~2256。数字摘要的计算过程不可逆,那么可以认为: 欲证明你拥有某个文件,提供该文件的Hash值(及Hash函数)即可。第三方可以轻易验证文件的Hash值来判断之。

4 04, 2018

时间戳服务

作者:| 2018-04-04T08:24:54+00:00 四月 4th, 2018|时间戳服务与存在证明, 比特币技术进阶|暂无评论

比特币本质是构造了一个永不停息、无坚不摧的时间戳系统。 然后该系统上添加若干特性后使得具有货币的功能。报纸从另一个角度讲也是一种时间戳服务。 比特币具有下列优良的特性可以更完美的用于存在证明: 不可预测/伪造。因block的计算是随机事件,其hash值是一个32字节的随机大数(2256)。想蒙对该数的概率实在是太低了。 不可销毁/修改。Block Chain拥有巨大的算力在维护与延续,对于N个确认的block,想篡改是不可能的。 block具有天然时间特性。timestamp是block meta字段之一。 block可以存储信息。对于block meta信息,是无法控制的。但block会收录交易,而交易是可以”写入”自己的数据。

4 04, 2018

存在证明

作者:| 2018-04-04T08:24:18+00:00 四月 4th, 2018|时间戳服务与存在证明, 比特币技术进阶|暂无评论

存在证明就是向第三方证明某个物品/事件,在过去的某个时刻存在过。 这是一件很简单的事情,提供票据、通信记录之类的就可以办到。但这些并不严格,因为这些证据都是非常易伪造或销毁。要完成证明,必须依赖强有力的证据链,这个必须是任何人都无法伪造与销毁的,或者说伪造成本极其高昂近乎不可能。 报纸之所以能够成为有效的时间证明系统是因为: 不可伪造性。新闻等信息是无法预测的,尤其是证券大盘数据,报纸上大量充满这样的信息,所以无人能够提前伪造。 公开且不可销毁。报纸通常拥有很大的发行数量,受众广泛,一旦发布出去就分散到各个角落,很难再次收集齐全并全部销毁。通常图书馆也会存档数十年期限的报纸。 具有时间特征。报纸具有很强时间特征,版面到处可见的是时间标记。 借助报纸可以完成某个时间之后的存在证明,但无法完成某个时间之前的。例如,你拿9月1号的报纸拍摄进照片,那么仅能证明其在9月1号之后拍摄,可能是9月1号,也可能是9月15号。

4 04, 2018

SIGHASH_SINGLE

作者:| 2018-04-04T08:22:10+00:00 四月 4th, 2018|比特币交易构成, 比特币技术进阶|暂无评论

该签名类型其次自由松散,仅对自己的输入、输出签名,并留空sequence字段。其输入的次序对应其输出的次序,比如输入是第3个,那么签名的输出也是第三个。简单理解就是:我同意花费我的那笔钱,且只能花费到我认可的输出,至于单子里的其他输入、输出,我不关心。

4 04, 2018

SIGHASH_NONE

作者:| 2018-04-04T08:21:33+00:00 四月 4th, 2018|比特币交易构成, 比特币技术进阶|暂无评论

该签名类型是最自由松散的,仅对输入签名,不对输出签名,输出可以任意指定。某人对某笔币签名后交给你,你可以在任意时刻填入任意接受地址,广播出去令其生效。简单理解就是:我同意花费我的那笔钱,至于给谁,我不关心。

4 04, 2018

SIGHASH_ALL

作者:| 2018-04-04T08:21:02+00:00 四月 4th, 2018|比特币交易构成, 比特币技术进阶|暂无评论

该签名类型为默认类型,也是目前绝大部分交易采用的,顾名思义即签名整单交易。首先,组织所有输出、输入,就像上文分解Hex过程一样,每个输入都对应一个签名,暂时留空,其他包括sequence等字段均须填写,这样就形成了一个完整的交易Hex(只缺签名字段)。然后,每一个输入均需使用私钥对该段数据进行签名,签名完成后各自填入相应的位置,N个输入N个签名。简单理解就是:对于该笔单子,认可且只认可的这些输入、输出,并同意花费我的那笔输入。