资金盘骗局曝光!
网络套路揭秘!

以太坊挖矿算法是什么?

以太坊采用的是 Ethash 加密算法,在挖矿的过程中,需要读取内存并存储 DAG
文件。
由于每一次读取内寸的带宽都是有限的,而现有的计算机技术又很难在这个问题上有质的突破,所以无论讲解提高计算机的运算效率,内存读取效率仍然不会有很大的改观。因此,从某种意义上来说,以太坊的Ethash加密算法具有“抗ASIC性”。

加密算法的不同,导致了比特币和以太坊的挖矿设备、算力规模差异很大。

目前,比特币挖矿设备主要是专业化程度非常高的 ASIC 矿机,单台矿机的算力最高达到了
112T/s(神马M30S++矿机),全网算力的规模达到139.92EH/s。

以太坊的挖矿设备主要是显卡矿机和定制GPU矿机,专业化的ASIC矿机非常少,一方面是因为以太坊挖矿算法的“抗 ASIC
性”提高了研发ASIC矿机的门槛,另一方面是因为以太坊升级到2.0之后共识机制会转型为PoS,矿机无法继续挖。

和ASIC矿机相比,显卡矿机在算力上相差了2个量级。目前,主流的显卡矿机(8卡)算力约为420MH/s,比较领先的定制GPU矿机算力约在500M~750M,以太坊全网算力约为235.39TH/s。

以太坊,和所有区块链技术一样,使用激励驱动的安全模式。共识基于选择具有最高总难度的区块。矿工创造区块,其他人检测有效性。区块只有在包含特定难度的工作量时才有效,还有其他合格性条件。请注意到以太坊Serenity里程碑,可能就会被取代(参考权益证明模型)。

以太坊区块链在很多方面与比特币区块链类似,但也有些不同。在区块链架构方面,以太坊和比特币之间最主要的的区别是,不像比特币,以太坊区块不仅包含交易列表也包含最近状态(merkle
patricia特里结构的根散表编码在状态中更精确)除此之外,另外两个值,区块数和难度,也储存在区块中。

使用的工作量证明算法叫Ethash(Dagger-Hashimoto算法的改良版本),包括找到算法的随机数输入以使结果低于特定的难度阈值。工作量证明算法的意义在于,要找到这样一个随机数,没有比列举可能性更好的策略,而解决方法的验证琐碎又廉价。由于输出有均匀分布(是散表功能应用的结果),我们可以保证,平均而言,需要找到这样一个随机数的时间取决于难度阈值。这使得只通过操纵难度来控制找到新区块的时间成为可能。

正如协议中所描述的,难度动态调整的方式是每15秒整个网络会产生一个区块。我们说网络用15秒区块时间生产一个区块链。这个“心跳”基本上主要强调系统状态同步,保证不可能维持一个分叉(允许double
spend)或被恶意分子重写历史,除非攻击者有半数上面这些的网络挖矿能力(即所谓的51%攻击)。

任何参与到网络的节点都可能是矿工,预期的挖矿收益和他们的(相对)挖矿能力或者说成正比,比如被网络总散表率标准化的,每秒尝试的随机数数量。

Ethash工作量证明是内存难解的,这使它能抵抗ASIC。内存难解性由工作量证明算法实现,需要选择依靠随机数和区块标题的固定资源的子集合。这个资源(几十亿字节大小的数据)叫做DAG。每3000个区块的DAG完全不同,125小时的窗口叫做epoch(大约5.2天),需要一点时间来生成。由于DAG只由区块高度决定,它可以被事先生成,如果没有被事先生成,客户端需要等到进程最后来生产区块。如果客户端没有预生成并提前缓存DAG,网络可能会在每个epoch过渡经历大规模区块延迟。注意不必要生成DAG以验证工作量证明,它可以在低CPU和小内存的状态下被验证。

在特殊情况下,从零开始创建节点的时候,只有在为现存epoch创建DAG的时候才会开始挖矿。

每个以太坊的账户,都由一对 公钥和私钥构成。

账户使用公钥对交易进行加密,所以EVM(以太坊虚拟机)能确保交易发起者安全有效。账户的地址,是通过公钥末尾的20字节生成的。

账户以地址作为索引,每一个私钥/地址对都被编码为加密文件。

这一点和BTC一样:转账时,公钥就像收款人账号。地址就像收款人姓名。而私钥就像签名。

和BTC不同的是,以ETH账户里存储的,不再是UTXO(找零)。

ETH账户分为两种:

外部账户(由私钥控制)

合约账户(由合约代码控制)

外部账户,包含余额状态,不包含代码,只能用于转移ETH等ERC20代币。

合约账户,不仅包含余额状态,还包含代码。当收到消息后,智能合约的内部的代码就会被激活,可以对账户内部的存储进行读写,可以进行发送其它消息等操作。

账户和钱包的关系

钱包的功能是管理:接收,存储和转出ETH。

一个钱包,可以存放多个账户。

打个比方:钱包好像支付宝账号。(只是打个比方,支付宝是中心化的,想象成去中心化的支付宝吧),ETH账户就像银行卡。

一个支付宝账号可以绑定多张银行卡。(一个钱包可以存放多个ETH账户)

同时,ETH账户这张银行卡,是多币银行卡,可以存 美元、人民币、欧元等等。

ETH账户,可以存放多个符合ERC20协议的代币,可以存ETH、KIN、等等等等。

免责声明: 文章源于会员发布,不作为任何投资建议

猜您喜欢: