简介
以太坊有两种不同类型的账户,可以拥有和控制ether:外部所有账户(EOA)和_合同_。在本节中,我们将研究使用密码学来确定外部所有账户(即私人密钥)对ether的所有权。
EOAs中以太的所有权通过 数字密钥 digital keys,以太坊地址_和_数字签名 建立 。数字密钥实际上并不存储在区块链中或在以太坊网络上传输,而是由用户创建并存储在文件或称为_钱包_的简单数据库中。用户钱包中的数字密钥完全独立于以太坊协议,可以由用户的钱包软件生成和管理,无需参考区块链或访问互联网。数字密钥可实现以太坊的许多有趣特性,包括去中心化的信任和控制以及所有权证明。
以太坊交易需要将有效的数字签名包含在区块链中,该签名只能使用密钥生成;因此,任何拥有该密钥副本的人都可以控制ether。以太坊交易中的数字签名证明了资金的真正所有者。
数字密钥成对组成,密钥和公钥。将公钥视为类似于银行帐号,私钥类似于私密PIN,用于控制帐户。以太坊的用户很少看到这些数字密钥。在大多数情况下,它们存储在钱包文件内并由以太坊钱包软件管理。
在以太坊交易的付款部分中,预期收款人由_以太坊地址_表示,该地址与支票上的收款人名称相同(即“付款给谁”)。在大多数情况下,以太坊地址是从公钥生成并对应的。但是,并非所有以太坊地址都代表公钥。他们也可以代表合同,我们将在 [contracts] 中看到。以太坊地址是用户常会看到的唯一密钥表示,因为这是他们需要与世界分享的部分。
首先,我们将介绍密码学并解释以太坊使用的数学。接下来,我们将看看密钥是如何生成,存储和管理的。最后,我们将回顾用于表示私钥和公钥以及地址的各种编码格式。