比特币的区块链协议是 比特币中区块链是指

快讯指南 今日快讯 2022-12-24 155 0

今天给大家聊到了比特币的区块链协议是,以及比特币中区块链是指相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。

区块链的诞生历史

很多人一听到“区块链”这三个字就会本能地被望而生畏,认为是高深莫测的内容或者一项技术,跟我没有一毛钱关系。

2018年是区块链技术的元年,在刚刚过去的春节里,区块链可见是着实火了一把,区块链第一社区的“三点钟无眠区块链”、各大媒体的文章“如何给七大姑八大姨介绍区块链”、各行各业的新手准备入场币圈大干一场等等。

我们知道互联网经过几十年的时间历程已经连接了全球。人们不会谈论世界是否是平的,因为只要你拥有一台电脑、一部手机就和整个世界紧密相连。精英们习惯把过去的互联网时代称为信息互联网时代。

随着2008年区块链技术的横空出世把措不及防的人类拉进了比特世界,未来不管你是否了解什么是区块链技术?理不理解数字虚拟货币是怎么实现的?都被裹挟着进入了互联网的第二个时代:价值互联网时代。而你不知道的是区块链技术是如何诞生的?

20世纪八九十年代密码朋克的“主教”级人物大卫·乔姆,在1990年发明了密码学匿名现金系统Ecash。乔姆认为分布式的、真正的数字现金系统应该为人们的隐私加密。

英国的密码学家亚当·贝克,1997年发明了哈希现金(Hashcash),其中用到了工作量证明系统(Proof of Work)。工作量证明系统是比特币的核心理念之一。

哈伯和斯托尼塔,在1997年提出了一个用时间戳的方法保证数字文件安全的协议。这个协议也成为比特币区块链协议的原型之一。时间戳最大的特点就是当一个虚拟货币被交易时,被盖上时间戳,它就不能被改动。

密码学专家戴伟,在1998年发明了B-money。B-money强调点对点的交易和不可更改的交易记录,网络中的每一个交易者都保持对交易的追踪。

2004年,PGP加密公司的顶级开发人员哈尔芬妮推出了电子货币“加密现金”,在其中采用了可重复使用的工作量证明机制(RPOW)。

但是他们单一的发明和设想还是不够成为一种世界型的虚拟货币。Ecash于1998年宣布倒闭;工作量证明系统不能保证数字货币是否交易过很多次;时间戳这个技术协议只被政府小范围应用;B.money系统中,大卫并没有解决账本同步的问题;最后哈尔芬妮的设想也还是不够成为一种世界型的虚拟货币。

2008年,当一切技术条件成熟,时间条件也成熟,还需要一位神级人物来回答一个问题,就是之前的虚拟货币先驱们为什么会失败?回答这个问题的人名字叫中本聪。

他认为之前的虚拟货币失败最重要的原因是,都有一个中心化的结构,所有的交易数据都会汇总到公司的数据中心,和政府发行的货币没有什么两样。一旦为虚拟货币背书的公司倒闭,或者总账本的中央服务器被黑客攻破,这个虚拟货币就会面临崩溃的风险。中本聪对大卫乔姆的Ecash进行了优化,综合了时间戳、工作量证明机制、非对称加密技术、UTSO的结构,最终他发明了比特币。

可见区块链不是一个单一的技术,它是一系列上述技术的集合。比特币只是区块链技术的首次大规模应用的典型案例。未来区块链技术可以应用到金融服务、社会生活等众多领域。

36个主流的去中心化交易所协议

本文汇总整理了目前主流比特币的区块链协议是的用于区块链加密资产点对点交易所的协议清单,即我们通常所说的DEX协议 —— DE centralize E xchange。如果你希望在自己的应用中快速加入加密货币兑换功能而又不希望依赖于币安这样的中心化的加密货币交易所,相信这篇文章会对你有所帮助。

这些去中心化协议的体系架构之间可能存在巨大的差异。在某些项目中,去中心化交易所协议是 通过智能合约来实现的,因此任何人都可以访问;但是在另一些项目中的DEX协议则采用封闭方案, 虽然他们也使用了经过公开验证和审计的智能合约来实现;还有一些项目则选择创建一个自有的区块链来实现交易所协议。实现资产流动的方式多种多样。有些协议,例如Bancor包含了内建的对手方发现逻辑,而另一些协议,例如0x,则允许使用链下的资产流动池,这意味着需要在链下找到交易的对手方。

1、 0x

0x协议构建于以太坊区块链之上,因此仅支持ERC20代币的交易。0x协议是开放的架构,它采用链下的中继器来实现资产的流动。

官网比特币的区块链协议是

2、Bancor

Bancor协议也是构建于以太坊区块链上,因此也只支持ERC20代币的交易。Bancor协议采用链上交易和出价。

官网:

3、Bisq

Bisq是构建于比特币区块链上的开放DEX协议,支持所有类型的加密货币。

官网:

4、Bitshares

Bitshares是基于自有的Bitshares区块链实现的开放DEX协议,支持所有类型的加密货币。

官网:

5、Blocknet

Blocknet也是基于自有的区块链(Blocknet)实现的开放DEX协议,支持比特币及山寨币。

官网:

6、CDx

CDx是构建与以太坊之上的开放DEX协议,目前还在开发中。

官网:

7、CDX

CDX是基于以太坊和Youdex侧链的开放DEX协议,支持所有类型的加密货币,支持跨链交易。

官网:

8、COMIT

COMIT协议目前还处于提议阶段,计划支持所有的区块链、所有类型的加密货币,使用状态通道和第三方流动性提供商。

官网:

9、Compound

Compound是基于以太坊的开放DEX协议,支持ERC20代币的去中心化交易。Comound依赖于中心化的预言机(Oracle),因此是部分去中心化的协议。

官网:

10、Counterparty

Counterparty是基于比特币区块链的开放DEX协议,它通过扩展比特币协议而实现,因此仅支持比特币和Counterparty代币的P2P交易。

官网:

11、DEAL

DEAL是基于NEO区块链上的智能合约实现的封闭DEX协议,仅支持NEO资产的点对点交易。

官网:

12、Dharma

Dharma协议基于以太坊实现,支持ERC20代币和Dharma代币的点对点交易。Dharma目前还在开发阶段。

官网:

13、Dydx

Dydx是在以太坊区块链上基于0x协议实现的开放DEX协议,支持ERC20代币和Dydx衍生品(期权等)的去中心化交易。Dydx目前还处于开发阶段。

官网:

14、Emoon

Emoon是在以太坊区块链上实现的封闭DEX协议,主要目的是迎合 游戏 界的需求,支持ERC20代币 和ERC721资产的去中心化交易。

官网:

15、Enigma

Enigma协议目前还在提议阶段,计划支持所有链、所有加密资产的去中心化交易。

官网:

16、Exchange Union

Exchange Union目前还在开发阶段,计划支持链下支付、跨链交易、去中心化委托单传播等。

官网:

17、Hydro Protocol

Hydro Protocol是基于以太坊和TRON的DEX协议,支持ERC20代币,链下委托、链上结算。

官网:

18、Komodo

Komodo协议目前在Alpha测试阶段,基于自有的Komod链实现。

官网:

19、Kyber Network

Kyber Network是基于Ethereum区块链的封闭DEX协议,支持ERC20代币的点对点交易。Kyber的实现包含了以太坊上的智能合约以及交易所,但是只有Kyber自己的交易所可以使用这些合约。

官网:

20、Lendloid

Lendloid是基于Ethereum区块链的开放DEX协议,目前还在开发中。

官网:

21、Loopring Protocol

Loopring是基于以太坊和NEO区块链的开放DEX协议,支持ERC20代币和NEP5代币的去中心化交易。

官网:

MARKET Protocol是基于以太坊的开放协议,主要用于衍生品的交易,目前还在开发中。

官网:

23、Melon

Melon是基于以太坊的开放DEX协议,支持ERC20代币和Melon资产的交易。

官网:

24、OmiseGo

OmiseGo目前还在开发当中,计划构建自己的区块链,实现全币种支持。

官网:

25、Raiden Network

Raiden Network是基于以太坊的链下ERC20代币交易协议,类似于比特币的闪电网络。Raiden目前还在开发当中。

官网:

26、Ren

Ren是基于以太坊和比特币区块链的开放DEX协议,支持ERC20代币、以太币、比特币的去中心化交易。

官网:

27、Ripple

Ripple是Ripple链的开放协议,内置了对兑换交易的支持,允许任何人在不可信环境中交易Ripple资产。

官网:

28、Saturn

Saturn是基于以太坊的开放DEX协议,支持ERC20代币和ERC233代币的点对点交易。Saturn目前还在开发中。

官网:

29、Set

Set是基于以太坊的开放协议,计划支持ERC20代币和Set代币,目前还在开发中。

官网:

30、Snowglobe

Snowglobe是基于以太坊的开放协议,计划支持ERC20代币的去中心化交易,目前还在开发中。

官网:

31、Stellar

Stallar协议有自己的区块链,协议内置了对去中心化交易Stellar资产的支持。

官网:

32、Swap

Swap是基于以太坊的封闭DEX协议,支持ERC20代币,目前还在开发中。

官网:

33、TPL

TPL基于TBC链实现,目前还在概念验证阶段。

官网:

34、Uniswap

Uniswap是基于以太坊的开放协议,支持ERC20代币的去中心化交易。

官网:

35、Wandex

Wandex是基于以太坊的封闭DEX协议,目前还在开发当中。

官网:

36、Wyvern

Wyvern是基于以太坊的开放协议,主要支持非同质化通证的交易,链下委托。

官网:

原文链接:区块链去中心化交易所协议汇总 — 汇智网

比特币矿池的协议stratum

转自:

getblocktemplate协议诞生于2012年中叶,此时矿池已经出现。矿池采用getblocktemplate协议与节点客户端交互,采用stratum协议与矿工交互,这是最典型的矿池搭建模式。

与getwork相比,getblocktemplate协议最大的不同点是:getblocktemplate协议让矿工自行构造区块。如此一来,节点和挖矿完全分离。对于getwork来说,区块链是黑暗的,getwork对区块链一无所知,他只知道修改data字段的4个字节。对于getblocktemplate来说,整个区块链是透明的,getblocktemplate掌握区块链上与挖矿有关的所有信息,包括待确认交易池,getblocktemplate可以自己选择包含进区块的交易。

挖矿有两种方式,一种叫SOLO挖矿,另一种是去矿池挖矿。前文所述的在节点客户端直接启动CPU挖矿,以及依靠getwork+cgminer驱动显卡直接连接节点客户端挖矿,都是SOLO挖矿,SOLO好比自己独资买彩票,不轻易中奖,中奖则收益全部归自己所有。去矿池挖矿好比合买彩票,大家一起出钱,能买一堆彩票,中奖后按出资比率分配收益。理论上,矿机可以借助getblocktemplate协议链接节点客户端SOLO挖矿,但其实早已没有矿工会那么做,在写这篇文章时,比特币全网算力1600P+,而当前最先进的矿机算力10T左右,如此算来,单台矿机SOLO挖到一个块的概率不到16万分之一,矿工(人)投入真金白银购买矿机、交付电费,不会做风险那么高的投资,显然投入矿池抱团挖矿以降低风险,获得稳定收益更加适合。因此矿池的出现是必然,也不可消除,无论是否破坏系统的去中心化原则。

矿池的核心工作是给矿工分配任务,统计工作量并分发收益。矿池将区块难度分成很多难度更小的任务下发给矿工计算,矿工完成一个任务后将工作量提交给矿池,叫提交一个share。假如全网区块难度要求Hash运算结果的前70个比特位都是0,那么矿池给矿工分配的任务可能只要求前30位是0(根据矿工算力调节),矿工完成指定难度任务后上交share,矿池再检测在满足前30位为0的基础上,看看是否碰巧前70位都是0。

矿池会根据每个矿工的算力情况分配不同难度的任务,矿池是如何判断矿工算力大小以分配合适的任务难度呢?调节思路和比特币区块难度一样,矿池需要借助矿工的share率,矿池希望给每个矿工分配的任务都足够让矿工运算一定时间,比如说1秒,如果矿工在一秒之内完成了几次任务,说明矿池当前给到的难度低了,需要调高,反之。如此下来,经过一段时间调节,矿池能给矿工分配合理难度,并计算出矿工的算力。

矿池通过getblocktemplate协议与网络节点交互,以获得区块链的最新信息,通过stratum协议与矿工交互。此外,为了让之前用getwork协议挖矿的软件也可以连接到矿池挖矿,矿池一般也支持getwork协议,通过阶层挖矿代理机制实现(Stratum mining proxy)。须知在矿池刚出现时,显卡挖矿还是主力,getwork用起来非常方便,另外早期的FPGA矿机有些是用getwork实现的,stratum与矿池采用TCP方式通信,数据使用JSON封装格式。

先来说一下getblocktemplate遗留下来的几个问题:

矿工驱动:在getblocktemplate协议里,依然是由矿工主动通过HTTP方式调用RPC接口向节点申请挖矿数据,这就意味着,网络最新区块的变动无法及时告知矿工,造成算力损失。

数据负载:如上所述,如今正常的一次getblocktemplate调用节点都会反馈回1.5M左右的数据,其中主要数据是交易列表,矿工与矿池需频繁交互数据,显然不能每次分配工作都要给矿工附带那么多信息。再者巨大的内存需求将大大影响矿机性能,增加成本。

Stratum协议彻底解决了以上问题。

Stratum协议采用主动分配任务的方式,也就是说,矿池任何时候都可以给矿工指派新任务,对于矿工来说,如果收到矿池指派的新任务,应立即无条件转向新任务;矿工也可以主动跟矿池申请新任务。

现在最核心的问题是如何让矿工获得更大的搜索空间,如果参照getwork协议,仅仅给矿工可以改变nNonce和nTime字段,则交互的数据量很少,但这点搜索空间肯定是不够的。想增加搜索空间,只能在hashMerkleroot下功夫,如果让矿工自己构造coinbase,那么搜索空间的问题将迎刃而解,但代价是必要要把区块包含的所有交易都交给矿工,矿工才能构造交易列表的Merkleroot,这对于矿工来说压力更大,对于矿池带宽要求也更高。

Stratum协议巧妙解决了这个问题,成功实现既可以给矿工增加足够的搜索空间,又只需要交互很少的数据量,这也是Stratum协议最具创新的地方。

再来回顾一下区块头的6个字段80字节,这个很关键,nVersion,nBits,hashPrevBlock这3个字段是固定的,nNonce,nTime这两个字段是矿工现在就可以改变的。增加搜索空间只能从hashMerkleroot下手,这个绕不过去。Stratum协议让矿工自己构造coinbase交易,coinbase的scriptSig字段有很多字节可以让矿工自由填充,而coinbase的改动意味着hashMerkleroot的改变。从coinbase构造hashMerkleroot无需全部交易,

如上图所示,假如区块将包含13笔交易,矿池先对这13笔交易进行处理,最后只要把图中的4个黑点(Hash值)交付给矿工,同时将构造coinbase需要的信息交付给矿工,矿工就可以自己构造hashMerkleroot(图中的绿点都是矿工自行计算获得,两两合并Hash时,规定下一个黑点代表的hash值总是放在右边)

。按照这种方式,假如区块包含N笔交易,矿池可以浓缩成log2(N)个hash值交付给矿工,这大大降低了矿池和矿工交互的数据量。

Stratum协议严格规定了矿工和矿池交互的接口数据结构和交互逻辑,具体如下:

1. 矿工订阅任务

启动挖矿机器,使用mining.subscribe方法链接矿池

返回数据很重要,矿工需本地记录,在整个挖矿过程中都用到,其中:

Extranonce1,和 Extranonce2对于挖矿很重要,增加的搜索空间就在这里,现在,我们至少有了8个字节的搜索空间,即nNonce的4个字节,以及 Extranonce2的4个字节。

2. 矿池授权

在矿池注册一个账号 ,添加矿工,矿池允许每个账号任意添加矿工数,并取不同名字以区分。矿工使用mining.authorize方法申请授权,只有被矿池授权的矿工才能收到矿池指派任务。

3. 矿池分配任务

以上每个字段信息都是必不可少,其中:

有了以上信息,再加上之前拿到的Extranonce1 和Extranonce2_size,就可以挖矿了。

4. 挖矿

1) 构造coinbase交易

用到的信息包括Coinb1, Extranonce1, Extranonce2_size 以及Coinb2,构造很简单:

为啥可以这样,因为矿池帮矿工做了很多工作,矿池已经构建了coinbase交易,系列化后在指定位置分割成coinb1和coinb2,coinb1和coinb2包含指定信息,比如coinb1包含区块高度,coinb2包含了矿工的收益地址和收益额等信息,但是这些信息对于矿工来说无关紧要,矿工挖矿的地方只是Extranonce2 的4个字节。另外Extranonce1是矿池写入区块的指定信息,一般来说,每个矿池会写入自己矿池的信息,比如矿池名字或者域名,我们就是根据这个信息统计每个矿池在全网的算力比重。

2) 构建Merkleroot

利用coinbase和merkle_branch,按照上图方式构造hashMerkleroot字段。

3) 构建区块头

填充余下的5个字段,现在,矿池可以在nNonce和Extranonce2 里搜索进行挖矿,如果嫌搜索空间还不够,只要增加Extranonce2_size为多几个字节就可轻而易举解决。

5. 矿工提交工作量

当矿工找到一个符合难度的shares时,提交给矿池,提交的信息量很少,都是必不可少的字段:

矿池拿到以上5个字段后,首先根据任务号ID找出之前分配任务前存储的信息(主要是构建的coinbase交易以及包含的交易列表等),然后重构区块,再验证shares难度,对于符合难度要求的shares,再检测是否符合全网难度。

6. 矿池给矿工调节难度

矿池记录每个矿工的难度,并根据shares率不断调节以指定合适难度。矿池可以随时通过mining.set_difficulty方法给矿工发消息另其改变难度。

如上,Stratum协议核心理念基本解析清楚,在getblocktemplate协议和Stratum协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。

比特币是什么协议

数字加密货币协议。它仅仅约定了在比特币网络中节点_行为规范,因此任何人都可以遵照比特币协议实现自己的比特币节点软件并接入比特币网络。

写到这里,本文关于比特币的区块链协议是和比特币中区块链是指的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。

评论