以太坊工作原理 以太坊挖矿机制
一、eth挖矿是什么原理
ETH通过挖矿产生,平均大概每13秒产生2个块,挖矿的时候,矿工使用计算机去计算一道函数计算题的答案,直到有矿工计算到正确答案即完成区块的打包信息,而作为第一个计算出来的矿工将会得到2枚ETH的奖励。
如果矿工A率先算出正确的答案,那么矿工A将获得以太币作为奖励,并在全网广播告诉所有矿工“我已经把答案算出来了”并让所有在答题的矿工们进行验证并更新正确答案。如果矿工B算出正确答案,那么其他矿工将会停止当前的解题过程,记录正确答案,并开始做下一道题,直到算出正确答案,并一直重复此过程。
矿工角色
矿工在这个游戏中很难作弊。他们是没法伪装工作又得出正确答案。这就是为什么这个解题的过程被称为“工作量证明”(POW)。
解题的过程大约每12-15秒,矿工就会挖出2个区块。如果矿工挖矿的速度过快或者过慢,算法会自动调整题目的难度,把出块速度保持在13秒左右。
矿工获取这些ETH币是有随机性的,挖矿的收益取决于投入的算力,就相当你的计算机越多,你答题的正确的概率也就越高,更容易获得区块奖励。
二、以太坊stratum协议原理
参照比特币的 stratum协议和 NiceHash的stratum协议规范编写了一版以太坊版本的stratum协议说明.
stratum协议是目前最常用的矿机和矿池之间的TCP通讯协议。
以太坊是一个去中心化的网络架构,通过安装Mist客户端的节点来转发新交易和新区块。而矿机、矿池也同时形成了另一个网络,我们称之为矿工网络。
矿工网络分成矿机、矿池、钱包等几个主要部分,有时矿池软件与钱包安装在一起,可合称为矿池。
矿机与矿池软件之间的通讯协议是 stratum,而矿池软件与钱包之间的通讯是 bitcoinrpc接口。
stratum是 JSON为数据格式.
矿机启动,首先以 mining.subscribe方法向矿池连接,用来订阅工作。
矿池以 mining.notify返回订阅号、ExtraNonce1和ExtraNonce2_size。
Client:
Server:
其中:
ae6812eb4cd7735a302a8a9dd95cf71f是订阅号;
080c是 extranonce,Extranonce可能最大3字节;
矿机以 mining.authorize方法,用某个帐号和密码登录到矿池,密码可空,矿池返回 true登录成功。该方法必须是在初始化连接之后马上进行,否则矿机得不到矿池任务。
Client:
Server:
难度调整由矿池下发给矿机,以 mining.set_difficulty方法调整难度, params中是难度值。
Server:
矿机会在下一个任务时采用新难度,矿池有时会马上下发一个新任务并且把清理任务设为true,以便矿机马上以新难度工作。
该命令由矿池定期发给矿机,当矿机以 mining.subscribe方法登记后,矿池应该马上以 mining.notify返回该任务。
Server:
任务ID: bf0488aa;
seedhash: abad8f99f3918bf903c6a909d9bbc0fdfa5a2f4b9cb1196175ec825c6610126c。每一个任务都发送一个seedhash来支持尽可能多的矿池,这可能会很快地在货币之间交换。
headerhash: 645cf20198c2f3861e947d4f67e3ab63b7b2e24dcc9095bd9123e7b33371f6cc。
boolean cleanjobs: true。如果设为true,那么矿工需要清理任务队列,并立即开始从事新提供的任务,因为所有旧的任务分享都将导致陈旧的分享错误。如果是 false则等当前任务结束才开始新任务。
矿工使用seedhash识别DAG,然后带着headerhash,extranonce和自己的minernonce寻找低于目标的share(这是由提供的难度而产生的)。
矿机找到合法share时,就以” mining.submit“方法向矿池提交任务。矿池返回true即提交成功,如果失败则error中有具体原因。
Client:
任务ID: bf0488aa
minernonce: 6a909d9bbc0f。注意minernonce是6个字节,因为提供的extranonce是2个字节。如果矿池提供3字节的extranonce,那么minernonce必须是5字节
Server:
一般的矿机与矿池通讯过程就如下所示:
三、以太坊(ETH)是什么
以太坊(ETH)是一个开源的有智能合约功能的公共区块链平台。
一、定义
以太坊通过其专用加密货币以太币(Ether,又称“以太币”)提供去中心化的虚拟机(称为“以太虚拟机”Ethereum Virtual Machine)来处理点对点合约。它是一个支持复杂去中心化应用(DApps)和智能合约的开源区块链平台。
二、特点
智能合约:智能合约是存储在区块链上的程序,由各节点运行,需要运行程序的人支付手续费给节点的矿工或权益人。以太坊的智能合约功能允许开发者在区块链上创建和执行具有自定义逻辑和规则的合约,这些合约可以在无需第三方信任机构的情况下自动执行。分布式应用程序:以太坊上的分布式应用程序(DApps)不会停机,也不能被关掉。这些应用程序运行在以太坊区块链上,利用智能合约实现去中心化和自动化。代币:智能合约可以创造代币供分布式应用程序使用。这些代币可以用于表示数字资产、服务、权益等,并可以在以太坊区块链上进行交易。叔块:以太坊引入了叔块(uncle block)机制,将因为速度较慢而未及时被收入母链的较短区块链并入,以提升交易量。这一机制使用的是有向无环图的相关技术。权益证明(PoS):以太坊正在从工作量证明(PoW)向权益证明(PoS)过渡。权益证明机制相较于工作量证明更有效率,可节省大量在挖矿时浪费的电脑资源,并避免特殊应用集成电路造成网络中心化。三、第二层功能
为了支持智能合约所需的高运算量以及资料容量,以太坊也积极开发第二层功能来减轻主链的负担,扩展其实用规模。目前的主要方案包括:
支链:用较小的分支区块链运算,只将最后结果写入主链,可提升单位时间的工作量。Plasma支链:一种用于扩展以太坊区块链的分层解决方案,旨在提高交易速度和可扩展性。Rollup支链:另一种用于扩展以太坊区块链的解决方案,通过聚合交易来减少主链上的数据负载。状态通道:原理类似比特币的闪雷网络,可提升交易速度、降低区块链的负担,并提高可扩展性。分片:减少每个节点所需纪录的资料量,并透过平行运算提升效率。四、以太币
以太坊区块链上的代币称为以太币(Ether),代码为ETH。以太币可在许多加密货币的外汇市场上交易,它也是以太坊上用来支付交易手续费和运算服务的介质。以太币的总发行量不明,因为权益证明的具体运作方式仍在研究中。以太币对其他实体货币的汇率可能在短时间内大幅变化。
五、智能合约的重要性
以太坊最重要的技术贡献就是智能合约。智能合约可以协助和验证合约的谈判和运行,让众多组织的数据库得以用低廉的成本交互,并且让用户写下精密的合约。智能合约的公开性意味着如果合约中有漏洞,任何人都可以立刻看到,但修正程序可能会需要一些时间。
六、以太坊组件
p2p网络:以太坊运行在Ethereum Main Network上,这是一个通过TCP 30303端口寻址的网络。共识规则:以太坊的共识规则由以太坊黄皮书中的参考标准进行精确定义。交易:以太坊交易是一个网络消息,主要包含交易的发送方、接收方、价值和数据载荷。状态机:以太坊的状态转换由以太坊虚拟机(EVM)处理,这是一个基于栈的虚拟机,执行bytecode(字节码指令)。数据结构:以太坊的区块链以数据库(通常采用Google的LevelDB)的方式保存在每一个节点之上,区块链内包含了交易和系统的状态,经过哈希处理的数据保存在Merkle Patricia Tree数据结构之内。综上所述,以太坊是一个功能强大且灵活的区块链平台,通过智能合约和分布式应用程序为开发者提供了广泛的创新空间。
-
芝麻开门交易所官方下载最新版 芝麻交易 11-09