以太坊挖矿算法原理
A. 浠ュお鍧婃寲鐭跨殑闅惧害鏄濡備綍璁$畻鐨
浠ュお鍧婃寲鐭跨殑闅惧害鏄濡備綍璁$畻鐨勶紵
浠ュお鍧婃槸鐩鍓嶆瘮鐗瑰竵浠ュ栨渶涓虹煡鍚嶇殑鍔犲瘑璐у竵涔嬩竴锛屽叾鐭垮伐鍙浠ラ氳繃鎸栫熆鑾峰緱浠ュお甯併傜劧鑰岋紝浠ュお鍧婃寲鐭跨殑闅惧害鏄濡備綍璁$畻鐨勫憿锛
鎸栫熆鏄姒傚康鎬х殑銆傜熆宸ョ殑鐩鏍囨槸瑙e喅瀵嗙爜闅鹃橈紝浠ヨ幏寰楁柊鐢熸垚鐨勫潡骞惰幏寰椾竴瀹氭暟閲忕殑浠ュお甯佸栧姳銆傝屼互澶鍧婃寲鐭跨殑闅惧害涓昏佹槸鐢变互涓嬩袱涓鍥犵礌缁煎悎鍐冲畾鐨勩
棣栧厛锛屾寲鐭块毦搴﹀彇鍐充簬姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忋傛瘡涓鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忚秺澶氾紝鍏惰В鍐崇殑瀵嗙爜闅鹃樺氨瓒婂嶆潅锛屾寲鐭块毦搴︿篃灏辫秺澶с傝繖涓鐐逛笌姣旂壒甯佺被浼硷紝姣旂壒甯佺殑鎸栫熆闅惧害涔熸槸鏍规嵁姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忔潵璁$畻鐨勩
鍏舵★紝浠ュお鍧婇噰鐢ㄤ簡鍚嶄负鈥滆皟鏁存寲鐭块毦搴︹濈殑鏈哄埗鏉ョ‘淇濇寲鐭块熷害鍜岀綉缁滃畨鍏ㄣ傝ユ満鍒舵牴鎹涓婁竴涓鍧楃殑鎸栫熆鏃堕棿鏉ヨ皟鏁存寲鐭块毦搴︼紝浠ヤ繚鎸佹瘡涓鍧楄瑙e喅鐨勬椂闂村ぇ绾︿负15绉掋傚傛灉鍧楃殑鎸栫熆鏃堕棿浣庝簬15绉掞紝闅惧害灏嗚嚜鍔ㄥ炲姞锛屽弽涔嬪垯浼氬噺灏戙
璋冩暣鎸栫熆闅惧害鐨勬満鍒跺彲浠ョ‘淇濅互澶鍧婄殑鎸栫熆閫熷害濮嬬粓淇濇寔绋冲畾锛屼粠鑰岄伩鍏嶄簡鎸栫熆閫熷害杩囧揩鎴栬繃鎱㈢殑鎯呭喌銆傚悓鏃讹紝涔熶娇寰椾互澶鍧婄綉缁滄洿鍔犲畨鍏锛屽洜涓轰换浣曟伓鎰忕熆宸ラ兘鏃犳硶閫氳繃鍗曠嫭鎿嶄綔鏉ョ牬鍧忚ユ満鍒躲
鎬荤殑鏉ヨ达紝浠ュお鍧婃寲鐭块毦搴︾殑璁$畻鏄缁煎悎鑰冭檻姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忓拰璋冩暣鎸栫熆闅惧害鏈哄埗鏉ュ疄鐜扮殑銆傝繖绉嶈$畻鏂瑰紡纭淇濅簡浠ュお鍧婄綉缁滅殑绋冲畾鍜屽畨鍏ㄦэ紝鍚屾椂涔熶繚璇佷簡鐭垮伐鐨勬敹鐩婂拰鏁翠釜绀惧尯鐨勮繍浣溿
B. eth挖矿是什么原理
凡是涉及到币,就一定离不开挖矿。以太坊网络中,想要获得以太坊,也要通过挖矿来实现。说到挖矿,就一定离不开共识机制。
不知道大家还记得比特币的共识机制是什么吗?比特币的共识机制是 PoW (这是英文 Proof of Work 的缩写,意思是“工作量证明机制”)。简单来说,就是多劳多得,你付出的计算工作越高,那么你就越有可能第一个找到正确的哈希值,就越有可能得到比特币奖励。
但是,比特币的PoW存在着一定的缺陷,就是它处理交易的速度太慢,矿工们需要不断地通过计算来碰撞哈希值,这是劳民伤财且效率低下的。对区块链知识有涉猎的朋友们应该看到这样一种说法:
以太坊为了弥补比特币的不足,提出了新的共识机制,名叫 PoS(这是英文的缩写,意思是“权益证明”,也有翻译成“股权证明”的)。
PoS 简单来讲,其实就跟它的字面意思一样:权益嘛,股权嘛,你持有的币越多相当于你的股权越多,你的权益越高。
以太坊的PoS就是说:你持币越多,你持有币的时间越久,你的计算难度就会降低,挖矿会容易一些。
在以太坊最初的设定中,以太坊希望能够通过阶段性的升级,在前期依旧采用PoW来构建一个相对稳定的系统,之后逐渐采用 PoW+PoS,最后完全过渡到 PoS。所以,说以太坊的共识机制是PoS,没错,但是PoS只是以太坊发布之初的一个计划或者说目标,目前以太坊还没有过渡到 PoS,以太坊采用的共识机制仍是 PoW,就是比特币那个 PoW,但是又和比特币的PoW稍稍不同。
这里的信息量有点大,
第一个信息点是:以太坊目前采用的共识机制也是PoW,但是和比特币的PoW稍稍不同。那么,和比特币的PoW到底有什么不同呢:简单来说,就是以太坊挖矿难度可以调节,比特币挖矿难度不能调节。就好比咱们高考,因为各个省份的教学情况、生源人数都不一样,所以高考分为全国卷和各省自主命题。
以太坊说我赞成这样分地区出题,比特币说:不行,必须全国同一卷,大家难度都一样!
通俗解释,就是,比特币是利用计算机算力做大量的哈希碰撞,列举出各种可能性,来找到一个正确哈希值。而以太坊系统呢,它有一个特殊的公式用来计算之后的每个块的难度。如果某个区块比前一个区块验证的更快,以太坊协议就会增加区块的难度。通过调整区块难度,就可以调整验证区块所需的时间。
以太坊协议规定,难度的动态调整方式是使全网创建新区块的时间间隔为 15 秒,网络用 15 秒时间创建区块链,这样一来,因为时间太快,系统的同步性就大大提升,恶意参与者很难在如此短的时间发动51%(也就是半数以上)的算力去修改历史数据。
第二个信息点是:以太坊最初的设定中,希望通过阶段性升级来最终实现由 PoW 向
PoS过渡的。
时间追溯到 2014 年,在以太坊发布之初,团队宣布将项目的发布分为四个阶段,即 Froniter(前沿)、Homestead(家园)、Metropolis(大都会)和 Serenity(宁静)。前三个阶段共识机制采用 PoW(工作量证明机制),第四个阶段切换到 PoS(权益证明机制)。
2015年7月30号,以太坊第一个阶段“前沿”正式发布,这个阶段只适用于开发者使用,开发人员可于在以太坊网络上编写智能合约和去中心化应用程序 DAPP,矿工开始进入以太坊网络维护网络安全并挖矿得到以太币。前沿版本类似于测试版,证明以太坊网络到底是不是可靠的。
2016年3月14日,以太坊进入到第二个阶段“家园”,这一阶段,以太坊提供了钱包功能,让普通用户也可以方便体验和使用以太坊。其他方面没有什么明显的技术提升,只是表明以太坊网络已经可以平稳运行。
2017 年 9 月,以太坊已经进行到第三个阶段“大都会”。“大都会”由拜占庭和君士坦丁堡两次升级组成,这个阶段的的目标是希望能够引入 PoW 和 PoS 的混合链模式,为 PoW向PoS的顺滑过渡做准备。最近比较热门的“以太坊君士坦丁堡升级”升级的就是这个,在君士坦丁堡升级中呢,以太坊将对底层协议和算法做一些改变,来为实现 PoW 和
PoS奠定良好的基础。
以太坊挖矿会得到对多少奖励呢?赢得区块创建竞争成功的矿工会得到这么几项收入:
1、 静态奖励,5个以太坊;
2、 区块内所花费的燃料成本,也就是Gas,这部分我们上一期内容讲过;
3、 作为区块组成部分,包含“叔区块”的额外奖励,叔就是叔叔的叔,每个叔区块可以得到挖矿报酬的1/32作为奖励,也就是5乘以1/32,等于0.15625 个以太坊。这里我们简单解释一下“叔区块”,“叔区块”这个概念是以太坊提出来的,为什么要引进叔块的概念?这还要从比特币说起。在比特币协议中,最长的链被认为是绝对的正确。如果一个块不是最长链的一部分,那么它被称为是“孤块”。一个孤立的块是一个块,它也是合法的,但是可能发现的稍晚,或者是网络传输稍慢,而没有能成为最长的链的一部分。在比特币中,孤块没有意义,随后将被抛弃掉,发现这个孤块的矿工也拿不到采矿相关的奖励。
但是,以太坊不认为孤块是没有价值的,以太坊系统也会给与发现孤块的矿工回报。在以太坊中,孤块被称为“叔块”(uncle block),它们可以为主链的安全作出贡献。 以太坊十几秒的出块间隔太快了,会降低安全性,通过鼓励引用叔块,使引用主链获得更多的安全保证(因为孤块本身也是合法的) ,而且,支付报酬给叔块,还能激发矿工积极挖矿,积极引用叔块,所以,以太坊认为,它是有价值的。
C. 比特币、以太坊与IPFS挖矿的区别
比特币和以太坊是pow算力挖矿。ipfs是存储即挖矿,新型模式。
D. 以太坊怎么挖矿
与所有区块链技术一样,以太坊使用基于激励的安全模型。声称是网络中的矿工的任何节点都可以尝试创建并阻止验证区。世界各地的许多矿工正在同时创建和验证区块。
一、以太坊采矿的基本原则
1、与所有区块链技术一样,以太坊使用基于激励的安全模型。声称是网络中的矿工的任何节点都可以尝试创建并阻止验证区。世界各地的许多矿工正在同时创建和验证区块。每个矿工通过向块链发送块来提供数学机制的“证据”。此测试类似于保证:如果此测试存在,则此块必须有效。
2、对于要添加到主链的块,矿工必须比其他矿工更快地提供此“测试”。通过矿工提供的数学机制的“证明”,每个区块的确认过程称为工作测试。经证实,新区块内的矿工将获得一定的奖励。什么是奖励?以太坊使用内在数字代币 - 以太作为奖励。每次矿工尝试新的块时,都会生成一个新的以太坊并将其提供给矿工。
第二、以太坊和比特币的区别
1、同点:比特币和以太坊都是成功的区块链技术应用。人们通过比特币认识区块链技术。通过以太坊,人们意识到区块链可以是独立的。所有这些都基于区块链,其中交易是公开记录的,货币和资产交易更方便和让步,并且消除了繁琐的中间人。
2、差异:比特币是一种分散的点对点数字支付系统,类似于全球清算银行。而且这家银行不是一个集中式组织的成员,它没有CEO,它没有管理员,只有代码的基本原则和共识。从同行转移价值,没有其他第三方或信托机构。
3、比特币总量为2100W。对于每生成21W的块,块生成的比特币数量减少一半,每10分钟生成一个块。一般而言,它是一种通货紧缩的电子货币。以太坊的定义是一个分散的点对点虚拟机,可以理解为使用代币执行价值分配并吸引所有各方建立生态系统的平台。以太坊的总量没有上限。
三、智能合约和协议ERC20
1、智能合约首先是合同,它以代码的形式规定交易执行的双方,并规定了执行合同的某些激活条件。一旦这些条件被激活,商定的交易就会自动执行,通常是一些交易。这些交易将由矿工挖掘出来,并最终合并到公共链中,这是不可否认的,不可逆转。
2、以太坊中的智能合约基本上是互联网上的开源。任何用户都可以看到相关接口的定义和激活时间。如果没有统一的标准,许多智能合约将使每个人都难以理解,这份智能合约究竟做了什么?此时,ERC20协议已启动。
3、开发人员可以通过查看其他智能合约然后调用自己的合同轻松了解相关界面的角色。标准化是非常有益的,这意味着这些资产可以在不同的平台和项目中使用,否则它们只能在特定情况下使用。
四、为什么以太坊可以用来发送硬币
因为智能合同的存在的,合同可以被用来安排货币集资最后存入帐户的用户,并且因为0x7D0使用相同的标准ERC20如直接交换0x7D0和FAD支持以太坊生态系统这将更容易。
五、以太坊贸易限制
1、对于每笔交易,交易的发起人必须设定交易的Gas限价和Gas价格。不同的操作将产生不同的Gas,Gas成本当矿工完成后,矿工将停止运行并且用过的Gas将被奖励给矿工。
2、如果某些气体仍然存在,如果用户声明限制值太低或者中间的帐号Eth不足以支付Gas消耗,它将返回到交易的发起人或智能合约的创建者,由于Gas不足,协议将被取消,用于计算的Gas将不会退回账户。
六、网络计算能力为太坊全
以太网中所有当前采矿机器的总计算能力,当前采矿集群是根据该值计算的当前块的难度。
七、以太坊提取难度
块的难度用于提高块验证区的一致性。 Genesis块的难度是131,072,并且有一个特殊的公式用于计算之后每个块的难度。如果检查块比前一个块更快,则以太坊协议将增加块的难度。通过调整块的难度,您可以调整验证区块所需的时间,即突发速度。检查时间的自我调整以继续以恒定速率生成新快。
8、单张卡的计算能力与采矿收入之间的关系
单张卡的计算能力越大,可以进行的检查越多,获得公式结果的概率是,情况越大,如果使用地雷组,所提供的股份数量越大,采矿业的收入就越大。
E. 011:Ethash算法|《ETH原理与智能合约开发》笔记
待字闺中开发了一门区块链方面的课程:《深入浅出ETH原理与智能合约开发》,马良老师讲授。此文集记录我的学习笔记。
课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。
第四课分为三部分:
这篇文章是第四课第一部分的学习笔记:Ethash算法。
这节课介绍的是以太坊非常核心的挖矿算法。
在介绍Ethash算法之前,先讲一些背景知识。其实区块链技术主要是解决一个共识的问题,而共识是一个层次很丰富的概念,这里把范畴缩小,只讨论区块链中的共识。
什么是共识?
在区块链中,共识是指哪个节点有记账权。网络中有多个节点,理论上都有记账权,首先面临的问题就是,到底谁来记帐。另一个问题,交易一定是有顺序的,即谁在前,前在后。这样可以解决双花问题。区块链中的共识机制就是解决这两个问题,谁记帐和交易的顺序。
什么是工作量证明算法
为了决定众多节点中谁来记帐,可以有多种方案。其中,工作量证明就让节点去算一个哈希值,满足难度目标值的胜出。这个过程只能通过枚举计算,谁算的快,谁获胜的概率大。收益跟节点的工作量有关,这就是工作量证明算法。
为什么要引入工作量证明算法?
Hash Cash 由Adam Back 在1997年发表,中本聪首次在比特币中应用来解决共识问题。
它最初用来解决垃圾邮件问题。
其主要设计思想是通过暴力搜索,找到一种Block头部组合(通过调整nonce)使得嵌套的SHA256单向散列值输出小于一个特定的值(Target)。
这个算法是计算密集型算法,一开始从CPU挖矿,转而为GPU,转而为FPGA,转而为ASIC,从而使得算力变得非常集中。
算力集中就会带来一个问题,若有一个矿池的算力达到51%,则它就会有作恶的风险。这是比特币等使用工作量证明算法的系统的弊端。而以太坊则吸取了这个教训,进行了一些改进,诞生了Ethash算法。
Ethash算法吸取了比特币的教训,专门设计了非常不利用计算的模型,它采用了I/O密集的模型,I/O慢,计算再快也没用。这样,对专用集成电路则不是那么有效。
该算法对GPU友好。一是考虑如果只支持CPU,担心易被木马攻击;二是现在的显存都很大。
轻型客户端的算法不适于挖矿,易于验证;快速启动
算法中,主要依赖于Keccake256 。
数据源除了传统的Block头部,还引入了随机数阵列DAG(有向非循环图)(Vitalik提出)
种子值很小。根据种子值生成缓存值,缓存层的初始值为16M,每个世代增加128K。
在缓存层之下是矿工使用的数据值,数据层的初始值是1G,每个世代增加8M。整个数据层的大小是128Bytes的素数倍。
框架主要分为两个部分,一是DAG的生成,二是用Hashimoto来计算最终的结果。
DAG分为三个层次,种子层,缓存层,数据层。三个层次是逐渐增大的。
种子层很小,依赖上个世代的种子层。
缓存层的第一个数据是根据种子层生成的,后面的根据前面的一个来生成,它是一个串行化的过程。其初始大小是16M,每个世代增加128K。每个元素64字节。
数据层就是要用到的数据,其初始大小1G,现在约2个G,每个元素128字节。数据层的元素依赖缓存层的256个元素。
整个流程是内存密集型。
首先是头部信息和随机数结合在一起,做一个Keccak运算,获得初始的单向散列值Mix[0],128字节。然后,通过另外一个函数,映射到DAG上,获取一个值,再与Mix[0]混合得到Mix[1],如此循环64次,得到Mix[64],128字节。
接下来经过后处理过程,得到 mix final 值,32字节。(这个值在前面两个小节《 009:GHOST协议 》、《 010:搭建测试网络 》都出现过)
再经过计算,得出结果。把它和目标值相比较,小于则挖矿成功。
难度值大,目标值小,就越难(前面需要的 0 越多)。
这个过程也是挖矿难,验证容易。
为防止矿机,mix function函数也有更新过。
难度公式见课件截图。
根据上一个区块的难度,来推算下一个。
从公式看出,难度由三部分组成,首先是上一区块的难度,然后是线性部分,最后是非线性部分。
非线性部分也叫难度炸弹,在过了一个特定的时间节点后,难度是指数上升。如此设计,其背后的目的是,在以太坊的项目周期中,在大都会版本后的下一个版本中,要转换共识,由POW变为POW、POS混合型的协议。基金会的意思可能是使得挖矿变得没意思。
难度曲线图显示,2017年10月,难度有一个大的下降,奖励也由5个变为3个。
本节主要介绍了Ethash算法,不足之处,请批评指正。
F. 浠ュお鍧婄殑鍏辫瘑绠楁硶鏄浠涔
浠ュお鍧婄殑鍏辫瘑绠楁硶鏄浠涔堬紵
浠ュお鍧婃槸涓绉嶅熀浜庡尯鍧楅摼鎶鏈鐨勫幓涓蹇冨寲搴旂敤骞冲彴锛屽叾鍏辫瘑绠楁硶鏄瀹炵幇鍖哄潡閾剧綉缁滃叡璇嗙殑閲嶈佺粍鎴愰儴鍒嗐備互澶鍧婇噰鐢ㄤ簡绉颁负鈥滃伐浣滈噺璇佹槑鈥濓紙Proof-of-Work锛孭oW锛夌殑鍏辫瘑绠楁硶鏉ラ獙璇佷氦鏄撳拰娣诲姞鏂扮殑鍖哄潡鍒伴摼涓娿
鍦ㄤ互澶鍧婁腑锛屾寲鐭胯妭鐐逛娇鐢ㄨ$畻鑳藉姏鏉ヨВ鍐虫暟瀛﹂毦棰橈紝杩欎簺鏁板﹂毦棰橀渶瑕佸ぇ閲忚$畻璧勬簮鏉ヨВ鍐炽傚畬鎴愯В棰樼殑鐭垮伐灏嗚幏寰椾互澶甯佺殑濂栧姳锛屽苟鐢辩綉缁滅‘璁ゅ叾宸ヤ綔缁撴灉锛屼粠鑰屽皢鏂扮殑鍖哄潡娣诲姞鍒板尯鍧楅摼涓銆
濡備綍淇濋殰鍏辫瘑绠楁硶鐨勫畨鍏ㄦэ紵浠ュお鍧婇氳繃璋冩暣鍥伴毦搴︼紙Difficulty锛夛紝浣垮緱鎸栫熆闅惧害涓庣畻鍔涙垚姝f瘮銆備篃灏辨槸璇达紝褰撴洿澶氱殑鎸栫熆鑺傜偣鍔犲叆缃戠粶骞舵彁楂樼畻鍔涙椂锛岄毦搴︿篃鐩稿簲鍙樺寲锛岀‘淇濆叏缃戞诲叡璇嗛毦搴︿繚鎸佷竴瀹氱殑姘村钩銆
闄や簡宸ヤ綔閲忚瘉鏄庯紝浠ュお鍧婅繕璁″垝閲囩敤鈥滆瘉鏄庢潈鐩娾濓紙Proof-of-Stake锛孭oS锛夌殑鍏辫瘑绠楁硶鏉ユ浛浠PoW銆傚湪PoS鍏辫瘑绠楁硶涓锛岀敤鎴烽渶瑕佹姇鍏ヤ竴瀹氶噺鐨勪互澶甯佹潵楠岃瘉浜ゆ槗鍜屾坊鍔犳柊鐨勫尯鍧椼傞殢鐫鐢ㄦ埛鎸佹湁鐨勪互澶甯佹暟閲忚秺澶氾紝鍏跺弬涓庡叡璇嗙殑鏉冨埄涔熷氨瓒婂ぇ銆
鎬荤殑鏉ヨ达紝浠ュお鍧婄殑鍏辫瘑绠楁硶閲囩敤浜哖oW鍜屾湭鏉ュ彲鑳戒細閲囩敤PoS锛岃繖涓ょ嶇畻娉曞潎鏄涓轰簡淇濋殰鍖哄潡閾剧綉缁滅殑瀹夊叏鎬с傞殢鐫鎶鏈鐨勮繘姝ュ拰鍏辫瘑绠楁硶鐨勪笉鏂婕旇繘锛屼互澶鍧婂皢鍦ㄤ笉鏂浼樺寲鍏辫瘑绠楁硶鐨勫悓鏃讹紝瀹炵幇鏇村ソ鐨勫幓涓蹇冨寲搴旂敤骞冲彴銆
G. 浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔
浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堬紵
浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堬紵
浠ュお鍧婃槸涓绉嶅熀浜庡尯鍧楅摼鎶鏈鐨勫姞瀵嗚揣甯侊紝鏃ㄥ湪涓哄幓涓蹇冨寲搴旂敤鎻愪緵骞冲彴銆備笌姣旂壒甯佷竴鏍凤紝浠ュお鍧婄殑浜ゆ槗闇瑕侀氳繃鎸栫熆鎵嶈兘寰楀埌楠岃瘉鍜岀‘璁ゃ傞偅涔堜互澶鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堝憿锛
浠ュお鍧婄殑鎸栫熆鏂瑰紡涓庢瘮鐗瑰竵鏈夊緢澶氱浉浼间箣澶勶紝閮芥槸閫氳繃瑙e喅鏁板﹂棶棰樻潵鑾峰緱姣旂壒甯佹垨浠ュお甯併傝繖浜涢棶棰橀渶瑕佺殑璁$畻璧勬簮闈炲父楂橈紝鍥犳ら渶瑕佸ぇ閲忕殑鐢靛姏鍜岃$畻鑳藉姏銆
浠ュお鍧婇噰鐢ㄧ殑鏄宸ヤ綔閲忚瘉鏄庯紙ProofofWork锛夌殑绠楁硶锛屽嵆ETHash銆備笌姣旂壒甯佹寲鐭跨殑SHA-256绠楁硶涓嶅悓锛孍THash绠楁硶鏄鍩轰簬DAG鍥惧舰鐨勮$畻銆侱AG鍥炬槸涓绉嶆湁鍚戞棤鐜鍥撅紝鐢变互澶鍧婂垵濮嬪潡鐢熸垚锛屾瘡涓鏂扮殑鍖哄潡閮藉熀浜庡墠涓涓鍖哄潡鐨凞AG杩涜岃$畻銆傚洜姝わ紝绠鍗曞湴璇达紝浠ュお鍧婃寲鐭块渶瑕佽В鍐矰AG鍥惧舰鐨勮$畻闂棰樸
鍏蜂綋鏉ヨ达紝浠ュお鍧婄殑鎸栫熆杩囩▼鏄杩欐牱鐨勶細
1.鎸栫熆鑺傜偣鍦ㄧ綉缁滀笂鑾峰緱鏂扮殑浜ゆ槗淇℃伅銆
2.鎸栫熆鑺傜偣灏嗚繖浜涗氦鏄撲俊鎭鎵撳寘鎴愪竴涓鍖哄潡銆
3.鎸栫熆鑺傜偣浠庝互澶鍧婄綉缁滆幏鍙栧埌鍓嶄竴鍖哄潡鐨凞AG鍥俱
4.鎸栫熆鑺傜偣浣跨敤DAG鍥句笂鐨勮妭鐐硅繘琛岃$畻锛屼互鐢熸垚鏂扮殑鍖哄潡銆
5.鎸栫熆鑺傜偣閫氳繃缃戠粶灏嗘柊鐨勫尯鍧楀彂閫佸埌鍏朵粬鑺傜偣杩涜岀‘璁ゃ
6.鍏朵粬鑺傜偣涔熼渶瑕佽В鍐矰AG鍥惧舰鐨勮$畻闂棰橈紝浠ョ‘璁よ繖涓鏂扮殑鍖哄潡鏄鍚﹀悎娉曘
7.濡傛灉鍏朵粬鑺傜偣楠岃瘉閫氳繃锛屽垯杩欎釜鏂扮殑鍖哄潡灏变細琚娣诲姞鍒颁互澶鍧婄殑鍖哄潡閾句笂銆
浠ュお鍧婄殑鎸栫熆杩囩▼鍙鑳芥瘮姣旂壒甯佹洿涓哄嶆潅锛屽洜涓哄畠闇瑕佽В鍐矰AG鍥惧舰鐨勮$畻闂棰樸傝繖涔熸剰鍛崇潃浠ュお鍧婄殑鎸栫熆闇瑕佹洿楂樼殑绠楀姏鍜屾洿澶х殑鐢靛姏鏀鎸併備絾涓庢ゅ悓鏃讹紝浠ュお鍧婄綉缁滀篃鍏峰囦簡鏇撮珮鐨勫畨鍏ㄦу拰鍙闈犳э紝鍥犱负瀹冮渶瑕佹洿澶氱殑鑺傜偣鍙備笌瑙e喅璁$畻闂棰樸
鎬荤殑鏉ヨ达紝浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄宸ヤ綔閲忚瘉鏄庣畻娉曪紝浣跨敤鐨勬槸ETHash绠楁硶锛岄渶瑕佽В鍐矰AG鍥惧舰鐨勮$畻闂棰樸傝繖绉嶆寲鐭挎柟寮忛渶瑕佹洿楂樼殑璁$畻鑳藉姏鍜岀數鍔涙敮鎸侊紝浣嗕篃涓轰互澶鍧婄綉缁滄彁渚涗簡鏇撮珮鐨勫畨鍏ㄦу拰鍙闈犳с
H. 以太坊是如何挖矿的
以太坊的代币是通过采矿过程中产生的,每块采矿率为 5 个以太币。以太坊的采矿过程几乎与比特币相同,对于每一笔交易,矿工都可以使用计算机通过散列函数运行该块的唯一标题元数据,反复,快速地猜出答案,直到其中一人获胜。
许多新用户认为,采矿的唯一目的是以不需要中央发行人的方式生成醚(参见我们的指南“ 什么是以太? ”)。这是真的。以太坊的代币是通过采矿过程中产生的,每块采矿率为 5 个以太币。但是,采矿还有至少同样重要的作用。通常,银行负责保持交易的准确记录。他们确保资金不是凭空创造的,用户不会多次欺骗和花钱。不过,区块链引入了一种全新的记录保存方式,整个网络而不是中介,验证交易并将其添加到公共分类账。
Ethereum Mining
尽管“无信任”或“信任最小化”货币体系是目标,但仍有人需要确保财务记录的安全,确保没有人作弊。采矿是使分散记录成为可能的创新之一。矿工们在防止欺诈行为(特别是醚的双重支出)方面达成了关于交易历史的共识 – 这是一个有趣的问题,在分散化的货币未在工作区块链之前解决。虽然以太坊正在研究其他方法来就交易的有效性达成共识,但采矿目前将平台保持在一起。
挖矿如何工作
今天,以太坊的采矿过程几乎与比特币相同。对于每一笔交易,矿工都可以使用计算机反复,快速地猜出答案,直到其中一人获胜。更具体地说,矿工将通过散列函数(它将返回一个固定长度,乱序的数字和字母串,它看起来是随机的)运行该块的唯一标题元数据(包括时间戳和软件版本),只改变’nonce 值’ ,这会影响结果散列值。
如果矿工发现与当前目标相匹配的散列,矿工将被授予乙醚并在整个网络上广播该块,以便每个节点验证并添加到他们自己的分类账副本中。如果矿工 B 找到散列,矿工 A 将停止对当前块的工作,并为下一个块重复该过程。矿工很难在这场比赛中作弊。没有办法伪造这项工作,并拿出正确的谜题答案。这就是为什么解谜方法被称为“工作证明”。
另一方面,其他人几乎没有时间验证散列值是否正确,这正是每个节点所做的。大约每 12-15 秒,一名矿工发现一块石块。如果矿工开始比这更快或更慢地解决谜题,算法会自动重新调整问题的难度,以便矿工回弹到大约 12 秒钟的解决时间。
矿工们随机赚取这些乙醚,他们的盈利能力取决于运气和他们投入的计算能力。以太坊使用的具体工作量验证算法被称为’ethash’,旨在需要更多的内存,使得使用昂贵的 ASIC 难以开采 – 特殊的采矿芯片,现在是唯一可以盈利的比特币开采方式。
从某种意义上讲,ethash 可能已经成功实现了这一目的,因为专用 ASIC 不可用于以太坊(至少目前还没有)。此外,由于以太坊旨在从工作证明挖掘转变为“股权证明”(我们将在下面讨论),购买 ASIC 可能不是一个明智的选择,因为它可能无法长久证明有用。
转移到股权证明
不过,以太坊可能永远不需要矿工。开发人员计划放弃工作证明,即网络当前使用的算法来确定哪些交易是有效的,并保护其免受篡改,以支持股权证明,网络由代币所有者担保。如果并且当该算法推出时,股权证明可以成为实现分布式共识的一种手段,而该共识使用更少的资源。