主页 > imtoken创建多个钱包 > JAVA实战以太坊智能合约30天学习手册(四)

JAVA实战以太坊智能合约30天学习手册(四)

imtoken创建多个钱包 2023-10-23 05:14:21

第一章 快速了解以太坊基本概念及开发包

1.7 什么是 DAPP

在DAPP(Decentralized Application)出来之前,所有的应用基本上都是中心化的。 开发一个APP,通常需要在后端配置一个中心化的服务器,然后在应用层面,需要做前端展示和与Backend交互。 所谓交互,就是前端发起请求,后端集中服务器收到请求后完成数据处理,然后以一定的格式返回给前端。 前端收到返回的数据后,填写接口,完成业务逻辑的实现。

去中心化应用与中心化应用的不同之处在于,它们运行在去中心化的网络节点上,应用层的前端与中心化相同。 后端节点收到前端请求后,将请求广播到全网。 网络节点达成共识后,才能真正完成一个逻辑实现。

在去中心化应用程序(DAPP)中,节点收到的请求通常称为“交易”。 交易与普通请求的区别在于,交易数据需要用户签名,需要通过网络中的多个节点达成共识。

1.8 什么是账户

账户在以太坊中扮演着非常重要的角色,它是以太坊的核心概念。 在以太坊中,有两种类型的账户:一种是外部拥有账户,另一种是合约账户。 当我们提到术语账户时以太坊私钥在线破解,我们通常指的是外部账户(EOA),而当我们提到合约账户时,我们通常将其称为“合约”。

无论是外部账户还是合约账户,它们在以太坊中维护的是一系列称为状态对象的实体。 这些实体都有状态信息:外部账户存储账户余额,合约账户存储余额和合约内容。 它们存储的状态将通过以太坊网络进行更新和数据一致。 账户是用户在以太坊区块链上创建交易不可或缺的一部分。

该账户标识了以太坊网络中每个参与者的身份,每笔交易都需要由该账户使用公钥加密进行签名才能正常进行。 验证以确保交易的真实性和可靠性。

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

一个以太坊地址代表一个以太坊账户,地址就是账户的身份。 对于外部账户,地址代表账户公钥的最后20字节(通常以0x开头,例如0xdac17f958d2ee523a2206206994597c13d831ec7,地址使用十六进制表示法)。 上面例子中地址中的字母都是小写的。 在EIP55中,引入了一种大小写混合的地址表示方法。 这种表示方法所表示的地址隐含了一个校验和(checksum)来验证地址的有效性。

1.10 什么是私钥和公钥

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

以太坊的私钥是一串 64 个十六进制字符(32 个字节)。 它是账户安全最重要的部分,需要妥善保管。 如果您丢失了私钥,则意味着您的帐户丢失了。

以太坊私钥在线破解_以太坊团队持有以太比例_以太经典和以太坊统一

(图片来自精通比特币)

一句话概括就是:私钥通过椭圆曲线生成公钥,公钥通过哈希函数生成地址。 这两个过程是单向的。

1.11 什么是密钥库

密钥库不是私钥。 它常见于以太坊钱包中。 通常,在创建以太坊钱包后,您会被要求备份 Keystore。 它是一串代码。 可以保存成文本或者json格式,以后可以用任何以太坊钱包打开。 它。 Keystore 的本质是一个加密的私钥。 密钥库必须与您的钱包密码一起使用。 所以备份Keystore和忘记钱包密码不是一回事。

如果直接使用以太坊钱包,很少会直接看到你的私钥,而是让你备份Keystore,配合钱包密码使用。 即使黑客拿到了你的Keystore以太坊私钥在线破解,也很难破解钱包密码。 当然,钱包密码不能太简单。

Keystore可以理解为我们日常的账号,解密Keystore的密码就是账号的密码。

Keystore文件一般保存在以太坊数据目录的keystore文件夹中,为JSON格式:

以太坊团队持有以太比例_以太经典和以太坊统一_以太坊私钥在线破解

通过keystore文件的内容,我们可以看到其中包含了私钥加密的信息:

address:账户地址

cipher:加密方式采用AES-128-CTR算法

ciphertext:加密后的密文

cipherparams:AES-128-CTR算法加密所需的相关参数

kdf:密钥生成函数,用于用密码加密keystore文件

kdfparams:kdf算法需要的参数

mac:用于验证密码的编码

以太坊私钥在线破解_以太坊团队持有以太比例_以太经典和以太坊统一