【Ethereum基础】:账户、地址、私钥和公钥

本文详细介绍了以太坊中的账户类型、以太坊地址的概念,以及私钥和公钥在账户安全性中的重要性。以太坊地址是由公钥的后20字节生成,而私钥是账户安全的核心,用于生成公钥和地址。此外,还讨论了Keystore文件的内容以及地址有效性的验证方法。
摘要由CSDN通过智能技术生成

在以太坊中,账户、地址、私钥(Private Key)和公钥(Public Key)是非常重要的概念。账户扮演着以太坊的中心角色,地址是我们与以太坊系统进行交互的标识,它是以太坊账户与外界进行交互的名字,而私钥与公钥是保护我们账户安全的重要屏障。

什么是账户(Accounts)?

账户在以太坊中扮演者十分重要的角色,它是以太坊的中心概念。在以太坊中,有两种类型的账户1:一种是外部账户(EOAs,Externally Owned Accounts),另一种是合约账户(Contracts Accounts)。当我们提到账户这个术语的时候,我们通常指的是外部账户(EOA),当提到合约账户的时候我们通常称其为“合约”。

不论是外部账户还是合约账户,它们在以太坊中所维护的都是一系列叫做状态对象(state objects)的实体。这些实体中都拥有状态信息:外部账户存储的是账户的余额(balance),合约账户存储的是余额和合约中的内容。它们存储的这些状态会通过以太坊网络进行更新以及保证数据的一致性。账户是用户在以太坊区块链上创建交易必不可少的一部分。

账户标识了以太坊网络中每一个参与者的身份,每一笔交易都需要通过账户使用公钥加密进行签名才能够正常进行,这样的话,EVM(以太坊虚拟机)才能够对交易发送者进行验证来确保交易的真实可靠。

什么是以太坊地址(Address)?

一个以太坊地址就代表着一个以太坊账户,地址是账户的标识。对于外部账户来说,地址表示的是该账户公钥的后20字节(通常会以0x开头,例如,0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826,该地址使用的是16进制表示法2)。上述示例中的地址中的字母全部是小写。在EIP553中引入了一种大小写混用的地址表示方法,通过这种表示方法进行表示的地址隐含了一个校验和(checksum)能够验证该地址的有效性。

什么是私钥和公钥?

每个账户都由一对钥匙定义,一个私钥(Private Key)和一个公钥(Public Key)。 账户以地址为索引,地址由公钥衍生而来,取公钥的最后20个字节。每对私钥/地址都编码在一个钥匙文件里。该文件是JSON格式的,下面我们将会查看一个私钥文件示例(Keystore)。

以太坊的私钥是一串64位16进制字符(32字节)。它是账户安全最重要的部分,需要妥善保管,如果丢失了私钥也就意味着你的账户丢失了。

查看一个Keystore文件

Keystore文件通常保存在以太坊数据目录的keystore文件夹下,它是JSON格式的:

{  
   "address":"358f94366124d9f2817b09c84921d2a653f5ac0c",
   "crypto":{  
      "cipher":"aes-128-ctr",
      "ciphertext":"41c14f88ec8f35c9fe57cd39121a76c2dadbd82ea8fec59866468bc0d7371f2e",
      "cipherparams":{  
         "iv":"43443bf394e8f6ebcc687e13bc0effb9"
      },
      "kdf":"scrypt",
      "kdfparams":{  
         "dklen":
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值