BitCoin区块头
比特币区块结构:
image.png
比特币的区块头结构:
image.png
1)版本号Version:大小4字节,每一个区块的版本号,标记着当前区块是在什么版本的bitcoin core系统版本下产生的;目前主链(main)上有两种版本号的区块,分别为1和2;(版本2中,coinbase做了升级,加入了区块高度参数);
2)时间戳Timestamps:大小4字节,核心字段,自1970-01-01T00:00 UTC之后开始的秒数;
3)难度系数difficulty: 大小4字节,存储格式为 难度系数的HASH值,该字段标记着当前区块被“挖”出来的难度(哈希碰撞出来的难度);
4)随机数Nonce: 大小4字节,当前区块工作量证明(Proof of Work)的参数(是以一坨0开头的数),存储格式为Hash值。hash计算的目标值,改值随机。当“矿机”节点经过Hash计算出的值为该随机数时,即为“挖矿”初步成果(经过后续六个区块的认证之后,才是真正的成果,终态);
5)前序区块头Hash地址(hashPrevBlock):大小32字节,为当前区块前一个区块的区块头的Hash值。
6)默克尔树根Hash地址(hashMerkleRoot):当前区块打包的所有交易是以默克尔树的方式记录的,该字段记录该交易树的树根hash值。当每一笔交易进入来区块被打包的时候,该字段需要重新计算更新一次;
Merkle树:
Merkle树是哈希值构成的二叉树。比特币中的Merkle树使用双 SHA-256,即SHA-256散列的SHA-256散列。
验证交易的过程和文件验证很相似,可以人为每个交易是一个小数据块,但比特币使用Merkle树的方式进行验证,相对于哈希列表,Merkle树是一种哈希二叉树,它的明显的一个好处是可以单独拿出一个分支来(作为一个小树)对部分数据进行校验,更加高效。
区块体则包括当前区块经过验证的、 区块创建过程中生成的所有交易记录。这些记录通过 Merkle树的哈希过程生成唯一的Merkle根并记入区块头.
SPV简化支付证明:
SPV(Simplified payment verification)机制:节点无需下载所有的区块数据,而只需要加载所有区块头数据(block header的大小为80B),即可验证这笔交易是否曾经被比特币网络认证过。
用户虽然不能自己验证交易(因为没有完全的交易信息详情),但如果能够从区块链的某处找到相符的交易(区块头中包含的Merkle Tree 的hash值,就可以链式最终定位到该笔交易是否曾经出现过),他就可以知道网络已经认可了这笔交易,而且得到了网络的多个确认。
Bloom布隆过滤器:
接上面的spv下载区块头部,就算全部区块的header信息均被下载,也才40MB,但是真的有必要吗?
中本聪在比特币系统中增加的一个功能:布隆过滤器(Bloom Filter);节点会在通信链路上建立一个布隆过滤器,过滤掉那些不包含有目标地址的交易信息,这一步能避免掉大量不相关的数据下载。
基于SPV机制和布隆过滤器功能,市面上出现了很多“轻钱包”,使得“轻钱包”在手机上就能运行,比如:ImToken
BTC-Relay(以太坊合约实现的比特币SPV节点):
是一种基于以太坊区块链的智能合约,把以太网络与比特币网络以一种安全去中心化的方式连接起来。BTC Relay通过以太坊的智能合约允许用户在以太坊区块链上验证比特币的交易。
其使用场景如下:
1.Alice和Bob同意使用BTCSwap合约来进行交易,Alice要买Bob的eth,Bob把他的 eth发送到BTCSwap合约
2.Alice向Bob发送bitcoin,她希望BTCSwap这个合约能知道这件事以便BTCSwap合约可以释放Bob之前的eth
3.Alice通过bitcoin的交易信息以及BTCSwap合约地址来调用btcrelay.relayTx(),btcrelay验证这笔交易通过后就触发BTCSwap合约里面的processTransaction方法
4.BTCSwap合约在被触发后确认这个btcrelay地址是一个合法地址,然后释放之前Bob的eth,交易完成。
RSK(RootStock):
是一个建立在比特币区块链上的智能合约分布式平台。它的目标是,将复杂的智能合约实施为一个侧链,为核心比特币网络增加价值和功能。RootStock采用了「混合」安全模式,同时包含了PoW机制和私人网络模式,基于联合的门限签名方案实现的安全联合工作量证明挖矿机制。它的目标是将复杂的智能合约实施为一个侧链,为核心比特币网络增加价值和功能。
RootStock是以太坊虚拟机的一个改进版本,它将作为比特币的一个侧链,使用了一种可转换为比特币的代币(根币,RTC)作为智能合约的「燃料」。RootStock与比特币之间采用的是双向锚定机制。
屏幕快照 2018-04-12 下午6.05.17.pngOMG(白皮书)
Hyperledger-Fabric(架构图)
跨链原子交易:
开发者创建了一个智能合约,使用脚本来实现DCR和LTC之间的原子跨链交易。而且,由于比特币的智能合约使用的也是脚本语言,因此原子跨链交易可以在DCR/LTC/BTC之间进行。此外,BCC和VTC这样的币拥有相似的脚本功能,因此这些币也有原子跨链交易功能。但是,像门罗币这样的币就这个功能,因此,这项功能并不具有普遍性。
注意,这是一个链上的原子跨链交易。也就是说,这不依赖于闪电网络或者隔离见证,只是使用脚本。
UGChain(双链结构)
网友评论