以太坊(ETH)怎么挖矿?以太币私钥和地址如何计算生成,以太坊(以太币,Ethereum,货币代号ETH) 是一个基于P2P数字加密算法的去中心化可编程平台,包含数字货币和智能合约等特色功能,截止目前现存总量约88243984枚。安全对于以太坊来说十分重要,因此我们在挖矿之后对钱包和密钥的保存十分重要,密钥分为公钥和私钥两种,在某些环境下我们可以生成公钥和私钥,下面我们就来探讨一下以太坊的挖矿过程,并且来学习一下以太坊私钥和公钥的生成方法吧。
1,挖矿大致过程:安装Ubuntu操作系统然后安装Ethereum c++版本,.安装opencl库, 运行Ethereum 用GPU挖矿。
2,以太坊利用公钥加密系统,跟比特币是类似的。以太币(ether)的挖矿算法叫做Ethash, 又名Dashimoto (Dagger-Hashimoto),是Hashimoto算法结合Dagger之后产成的一个变种。
你可以用电脑的中央处理器(CPU)挖以太币。自从GPU矿工的效率高出两个数量级,它就不再盈利了。然而你可以用CPU挖掘在Morden测试网或私有链上挖矿,以便创建你测试合约和交易所需要的以太币, 而无需花费实时网络上的真实以太币。
首先看看所需的依赖包
var Crypto = require('crypto')
var secp256k1=require('secp256k1')
var createKeccakHash=require('keccak')
和比特币一样,一切都源于一个32字节的随机数(1~2^256-1),但是以太坊比较坦诚,没有对随机数进行任何加工,而是直接把他当成私钥
var privateKey=Crypto.randomBytes(32);
地址也是由secp256k1椭圆曲线算法先计算出公钥(细节我也不清楚,但是有模块一行代码就可以搞定了),然后进行keccak256 hash运算再取后40位得到
var pubKey=secp256k1.publicKeyCreate(privateKey,false).slice(1);
var address =createKeccakHash('keccak256').update(pubKey).digest().slice(-20);
console.log(privateKey.toString('hex'));
console.log(address.toString('hex'));
现在你学会了吗?