主页 > 下载imtoken钱包地址 > 首页> tp钱包官方下载> 什么是以太坊?以太坊原理和以太坊入门教程

首页> tp钱包官方下载> 什么是以太坊?以太坊原理和以太坊入门教程

下载imtoken钱包地址 2023-02-25 07:39:13

以太坊是一个支持智能合约的区块链平台。 它与比特币最大的区别是以太坊可以通过虚拟机(EVM)运行智能合约。

以太坊是 Vitalik Buterin 在 2013 年提出的概念,Vitalik 是第一个参与比特币社区发展的人,希望比特币将功能有限的脚本扩展成图灵完备的脚本。 然而,他并没有得到比特币开发社区的认可,于是他决定另起炉灶,打造一个去中心化的程序化区块链新平台。

以太坊自2015年正式上线,期间经历了DAO攻击导致的硬分叉。 与比特币类似,以太坊也是通过 PoW 挖矿。 开采的平台货币称为以太币。 目前,每个区块的奖励为 2 Ether,生成一个区块大约需要 13-15 秒。

与比特币相比,以太坊有以下不同点:

帐户模型

以太坊钱包地址_货币以太坊钱包地址_以太坊钱包生成多个地址

以太坊在线钱包_什么是以太坊钱包_web3j 以太坊钱包

比特币使用的UTXO模型是一种对开发友好,易于实现清结算的模型,但对用户并不友好,因为普通用户认可的账户是账号和相应余额变化的模型。 以太坊的账户模型与比特币不同。 它是一种余额模型,即交易触发账户余额的变化,这与传统金融账户是一致的。

智能合约

从比特币的支付原理我们可以看出,任何支付其实都是在执行比特币脚本,只有脚本执行成功才能支付成功。

以太坊交易类似,但更进一步。 它实现了运行在EVM(Ethereum Virtual Machine,以太坊虚拟机)中的图灵完备的脚本语言。 任何人都可以编写合法的脚本来执行任意逻辑。 (有很多限制),例如,定义一个新的代币、抵押等。

以太坊账户负责存储用户的以太坊余额。 对于大多数普通用户来说,以太坊账户与银行账户非常相似,通常只需要一个账户。

以太坊钱包地址_货币以太坊钱包地址_以太坊钱包生成多个地址

什么是以太坊钱包_web3j 以太坊钱包_以太坊在线钱包

准确的说,以太坊账户分为外部账户和合约账户:

本节我们只讨论普通用户使用的外部账户。

类似于比特币的以太坊钱包地址,以太坊账户是通过公钥哈希得到的地址。 它从一个私钥推导出对应的公钥,然后计算出地址。 其中,私钥和公钥算法与比特币的以太坊钱包地址完全一样,都是secp256k1椭圆曲线,但与比特币不同的是,以太坊使用的是非压缩公钥,然后直接对公钥进行keccak256哈希得到一个32字节的哈希值,最后20个字节加上一个0x前缀就是地址:

以太坊地址算法

代码实现如下:

货币以太坊钱包地址_以太坊钱包生成多个地址_以太坊钱包地址

以太坊在线钱包_什么是以太坊钱包_web3j 以太坊钱包

与使用 Base58 或 Bech32 编码的比特币不同,以太坊对私钥和地址使用十六进制编码,因此它没有任何验证。 如果有人犯了错误,它仍然是一个有效的私钥或地址。

keccak256哈希算法在以太坊中也被称为SHA3算法,但需要注意的是,keccak算法最初是SHA3的候选算法。 但是,在 SHA3 的最终标准化过程中,keccak 得到了改进。 所以标准的SHA3算法不同于keccak,但是以太坊在发展的时候选择了还没有成为SHA3标准的keccak算法。 后面我们讨论以太坊的哈希算法时,总会用keccak256来代替SHA3-256。

带校验和的地址

因为以太坊的地址是原始哈希的最后20字节,并且是用16进制表示的,这种方法简单粗暴什么是以太坊钱包,但是没有校验。 地址中的任何数字错误仍然是有效地址。 为了防止重复错误什么是以太坊钱包,以太坊通过 EIP-55 实现了一种带有校验和的地址格式。 它的实现很简单,就是对地址​​做一次keccak256哈希,然后逐位对齐,哈希值>=8的字母变成大写:

original addr = 0x29717bf51d8afca452459936d395668a576bce66

货币以太坊钱包地址_以太坊钱包生成多个地址_以太坊钱包地址

什么是以太坊钱包_web3j 以太坊钱包_以太坊在线钱包

keccak hash = e72ecce2eb2ed0ffab5e05f043ee68fab3df759d... checksum addr = 0x29717BF51D8AFcA452459936d395668A576Bce66

因此,以太坊地址是通过部分大写字母来验证的。 它的优点是验证地址和非验证地址对于钱包软件来说格式是一样的。 缺点是有小概率无法验证。 验证所有小写的地址。

高清钱包

以太坊钱包地址_货币以太坊钱包地址_以太坊钱包生成多个地址

以太坊在线钱包_web3j 以太坊钱包_什么是以太坊钱包

因为以太坊和比特币的非对称加密算法是完全一样的,区别只是公钥和地址的表示格式,所以比特币的HD钱包系统也完全适用于以太坊。 通过一套助记词,用户可以同时管理比特币钱包和以太坊钱包。

以太坊钱包的推导路径为m/44'/60'/0'/0/0,代码实现如下:

由于以太坊采用账户余额模型,通常一个以太坊地址就足够了。 如果想生成多个地址,可以继续推导出m/44'/60'/0'/0/1、m/44'/60'/0'/0/2等。

总结

以太坊的私钥和公钥使用与比特币相同的ECDSA算法和secp256k1曲线,可以复用比特币的HD钱包助记词;

以太坊的地址使用非压缩公钥的keccak256哈希后20字节,使用16进制编码,可以通过大小写字母来验证地址。