一些基本比特币概念

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,交易完成。

屏幕快照 2018-04-12 下午6.05.33.png

RSK(RootStock):

是一个建立在比特币区块链上的智能合约分布式平台。它的目标是,将复杂的智能合约实施为一个侧链,为核心比特币网络增加价值和功能。RootStock采用了「混合」安全模式,同时包含了PoW机制和私人网络模式,基于联合的门限签名方案实现的安全联合工作量证明挖矿机制。它的目标是将复杂的智能合约实施为一个侧链,为核心比特币网络增加价值和功能。

RootStock是以太坊虚拟机的一个改进版本,它将作为比特币的一个侧链,使用了一种可转换为比特币的代币(根币,RTC)作为智能合约的「燃料」。RootStock与比特币之间采用的是双向锚定机制。

屏幕快照 2018-04-12 下午6.05.17.png

OMG(白皮书)

Hyperledger-Fabric(架构图)

跨链原子交易:

开发者创建了一个智能合约,使用脚本来实现DCR和LTC之间的原子跨链交易。而且,由于比特币的智能合约使用的也是脚本语言,因此原子跨链交易可以在DCR/LTC/BTC之间进行。此外,BCC和VTC这样的币拥有相似的脚本功能,因此这些币也有原子跨链交易功能。但是,像门罗币这样的币就这个功能,因此,这项功能并不具有普遍性。

注意,这是一个链上的原子跨链交易。也就是说,这不依赖于闪电网络或者隔离见证,只是使用脚本。

UGChain(双链结构)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Seebug漏洞平台

以太坊“后偷渡时代”盗币之“拾荒攻击”

作者:Sissel@知道创宇404区块链安全研究团队 发布时间:2018/08/20

4095
来自专栏安智客

简明介绍比特币钱包及其安全性

前两天介绍了TEE与区块链、比特币钱包的一些东西!也许不是很明白比特币钱包这个东西,(本文来自于知乎内容、整理、编辑) TEE与比特币硬件钱包应用之Ledger...

2349
来自专栏区块链大本营

最全!写给技术小白的以太坊完整工作原理和运行机制!

2614
来自专栏深入浅出区块链技术

以太坊是什么 - 以太坊开发入门指南

1534
来自专栏比原链

Derek解读Bytom源码-创世区块

Gitee地址:https://gitee.com/BytomBlockchain/bytom

1142
来自专栏互联网高可用架构

白话比特币原理解密

1755
来自专栏区块链大本营

0.166666667小时,教会你深挖以太坊数据层

从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。

1095
来自专栏智能合约

以太坊智能合约开发第二篇:理解以太坊相关概念

2776
来自专栏CDA数据分析师

以太坊是什么丨以太坊开发入门指南

原文地址:https://www.cnblogs.com/tinyxiong/p/7878468.html

730
来自专栏区块链大本营

太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端

可以说,区块链是自互联网诞生以来最重要和最具颠覆性的技术之一。作为比特币和其他加密货币背后的核心技术,区块链在过去几年获得了广泛关注。

1072

扫码关注云+社区

领取腾讯云代金券