-
bitcoin $80983.718195 USD
-2.88% -
ethereum $2363.938053 USD
-5.54% -
tether $0.998790 USD
-0.01% -
bnb $717.610948 USD
-3.20% -
xrp $1.305281 USD
-4.72% -
usd-coin $0.999943 USD
0.00% -
solana $102.093135 USD
-4.89% -
tron $0.330976 USD
-0.21% -
hyperliquid $79.564118 USD
-2.87% -
zcash $1095.109590 USD
-12.52% -
dogecoin $0.079794 USD
-5.68% -
monero $536.493608 USD
-2.23% -
chainlink $12.045088 USD
-6.39% -
unus-sed-leo $9.028000 USD
0.09% -
cardano $0.220158 USD
-6.35%
如何从公共密钥中产生以太坊钱包的地址?
An Ethereum wallet address is derived from the public key through Keccak-256 hashing, using the last 20 bytes to form a unique identifier.
2025/06/14 11:14
了解以太坊钱包之间的关系和公共钥匙
在以太坊的世界中,钱包地址不是直接的公共密钥本身,而是它的衍生版本。公共密钥是使用椭圆曲线密码学(特别是SECP256K1曲线)的私钥生成的。创建此公共密钥后,它将进行进一步的散列以生成最终的钱包地址。
该过程以随机生成的私钥开始,即256位编号。由此,使用SECP256K1算法得出公共密钥。压缩时,该公共密钥通常表示为64字节阵列(或128个十六进制字符)。至关重要的是要了解,尽管可以公开共享公共密钥,但绝不能在不安全的环境中进行更改或暴露。
使用Keccak-256哈希键
一旦生成了公钥,下一步涉及应用加密哈希功能。以太坊为此目的使用Keccak-256哈希算法。与Bitcoin使用的SHA-256不同, Keccak-256由于其灵活性和性能特征而被选择。
- 命令完整的公钥(包括前缀字节如果存在)。
- 应用Keccak-256哈希功能生成32字节(256位)输出。
- 由此产生的哈希将是代表输入公钥的独特字节序列。
在提取实际的以太坊钱包地址之前,该哈希值是中间阶段。
提取最终以太坊地址
在获得了公共密钥的Keccak-256哈希之后,只有一部分被用来形成最终的以太坊钱包地址。具体而言,为此目的选择了哈希的最后20个字节(160位)。
- 从Keccak-256哈希(Keccak-256 Hash)获取32字节的输出。
- 丢弃前12个字节。
- 将剩余的20个字节保留为以太坊地址。
然后将这20个字节编码为最初没有“ 0x”前缀的十六进制字符串。当在钱包或探险家中显示时,地址通常以“ 0x”前缀为前缀,以表明它是一种以太坊兼容的十六进制格式。
应用校验和编码安全性
为了提高安全性并降低错别字的风险,以太坊引入了EIP-55 ,该eip-55启用了地址的混合案例校验和编码。此功能允许用户在输入以太坊时检测错误。
- 将以太坊地址(没有“ 0x”)转换为其小写形式。
- 计算此小写字符串的Keccak-256哈希。
- 对于原始地址中的每个字符:
- 如果哈希中的相应刺激大于或等于8,则资本化字符。
- 否则,将其留下小写。
这会产生一个以太坊钱包地址,例如0xAbCdef1234567890aBcDef1234567890aBcDef12 ,其中大写作为视觉校验和。
验证生成地址的正确性
在使用任何以太坊钱包地址之前,必须通过为此目的设计的工具或库来验证其正确性。许多开发人员使用诸如ethers.js或web3.js之类的库来确保其实施与以太坊标准保持一致。
- 使用受信任的库从同一公共密钥重新生成地址。
- 将输出与手动计算的输出进行比较。
- 确保校验和编码和小写的版本匹配预期值。
此外,在Mainnet上部署之前,应执行少量测试交易,以确认地址的行为是按预期的。
常见问题
问:两个不同的公开钥匙可以导致相同的以太坊地址吗?从理论上讲,由于以太坊地址空间的有限尺寸(2^160) ,但概率在天文学上很低。但是,由于大量可能的组合,碰撞不被视为实际威胁。
问:公开分享我的以太坊钱包地址是安全的吗?是的,分享您的以太坊钱包地址是安全的,因为它不会直接暴露您的私钥或公共密钥。但是,避免共享可能损害隐私的交易细节或元数据。
问:为什么以太坊仅使用Keccak-256哈希而不是完整32个字节的20个字节?使用20个字节在安全性和气体效率之间达到平衡。较短的地址可降低区块链上的存储和计算成本,同时保持足够的熵以防止碰撞。
问:如果我将ETH发送到畸形的以太坊地址会发生什么?将资金汇入不存在或畸形的以太坊地址可能会导致资产永久损失。始终使用校验和验证工具在启动转移之前使用校验和验证工具进行验证。
免责声明:info@kdj.com
所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!
如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。
- 众议员布莱恩·斯泰尔面临威斯康星州选举,《清晰法案》悬而未决
- 2026-10-16 05:25:01
- Vitalik Buterin 宣布 zkEVM 速度竞赛结束,敦促开发者优先考虑安全
- 2026-10-16 05:15:02
- 中国、比特币、DOGE:三大洲加密货币难题揭开
- 2026-10-16 05:10:01
- XRP 价格预测、XRP 社区和以持有者为中心的实用程序:新的叙述出现
- 2026-10-16 05:00:02
- Zcash ETF 流出和 ZEC 价格波动:纽约市的情况
- 2026-10-16 05:00:01
- 在通胀担忧和监管审查中,以太坊和币安面临重大清算事件
- 2026-10-16 05:20:01
相关百科
如何使用 BlueWallet 通过闪电网络发送 Bitcoin
2026-10-16 04:20:16
了解 BlueWallet 中的闪电网络集成1. BlueWallet 支持具有内置闪电网络功能的非托管 Bitcoin 钱包,可实现即时、低费用的链下交易。 2.钱包在底层使用LND(闪电网络守护进程),允许用户在不运行完整节点的情况下打开通道、接收发票和路由支付。 3. 用户必须先在 BlueW...
如何在 Talisman 中检查不同网络上的代币余额
2026-10-15 23:19:32
了解Talisman的多链地址识别1. Talisman 钱包将每个区块链视为独立的账本层,但在 Polkadot、Kusama、Ethereum 和 Moonbeam 等网络上维护统一的地址管理接口。 2. 由于不同的代币标准和合约部署,单个公共地址可能代表不同链上的不同资产,例如 Polkado...
如何在Eternl钱包中查看权益池委托
2026-10-16 03:40:14
了解 Eternl 中的权益池委托1. Eternl 是一种非托管卡尔达诺钱包,支持通过本机委托到权益池的权益功能。与托管钱包不同,Eternl 不持有或控制用户的私钥——所有签名操作都在设备本地进行。 2.卡尔达诺的委托是无需许可且可逆的。用户始终保留其 ADA 的完全所有权,并且授权不涉及将资金...
如何将自定义代币添加到 Sui 钱包
2026-10-15 19:39:42
了解自定义令牌集成1. Sui钱包不会自动检测或显示Sui区块链上部署的所有代币。 2. 代币必须使用其链上标识符(称为代币类型的对象 ID)显式注册在钱包的代币列表中。 3. 币类型遵循严格的格式: 0x[address]::[module]::[struct] ,其中每个段均源自 Move 包部...
如何在两个 Sui 钱包账户之间转移 SUI 代币
2026-10-15 22:59:57
了解 SUI 令牌传输机制1. SUI 代币作为 Sui 区块链上的单独对象存在,而不是作为账户余额。每个硬币都有自己的唯一标识符和版本号。 2. 转账SUI需要引用特定的币对象ID,而不是简单地指定余额池中的金额。 3. 发送者必须拥有所传输货币对象的完全所有权——标准传输不允许共享或委托控制。 ...
如何在 Slush 钱包中查找您的 Sui 钱包地址
2026-10-15 16:40:28
在 Slush 钱包中查找您的 Sui 钱包地址1. 在您的 iOS 或 Android 设备上打开 Slush Wallet 应用程序,并确保您已登录现有钱包或已完成助记词恢复过程。 2. 导航到底部导航栏的“主页”选项卡 — 这将显示您的主要 SUI 余额和最近的活动。 3. 点击“接收”按钮,...
如何使用 BlueWallet 通过闪电网络发送 Bitcoin
2026-10-16 04:20:16
了解 BlueWallet 中的闪电网络集成1. BlueWallet 支持具有内置闪电网络功能的非托管 Bitcoin 钱包,可实现即时、低费用的链下交易。 2.钱包在底层使用LND(闪电网络守护进程),允许用户在不运行完整节点的情况下打开通道、接收发票和路由支付。 3. 用户必须先在 BlueW...
如何在 Talisman 中检查不同网络上的代币余额
2026-10-15 23:19:32
了解Talisman的多链地址识别1. Talisman 钱包将每个区块链视为独立的账本层,但在 Polkadot、Kusama、Ethereum 和 Moonbeam 等网络上维护统一的地址管理接口。 2. 由于不同的代币标准和合约部署,单个公共地址可能代表不同链上的不同资产,例如 Polkado...
如何在Eternl钱包中查看权益池委托
2026-10-16 03:40:14
了解 Eternl 中的权益池委托1. Eternl 是一种非托管卡尔达诺钱包,支持通过本机委托到权益池的权益功能。与托管钱包不同,Eternl 不持有或控制用户的私钥——所有签名操作都在设备本地进行。 2.卡尔达诺的委托是无需许可且可逆的。用户始终保留其 ADA 的完全所有权,并且授权不涉及将资金...
如何将自定义代币添加到 Sui 钱包
2026-10-15 19:39:42
了解自定义令牌集成1. Sui钱包不会自动检测或显示Sui区块链上部署的所有代币。 2. 代币必须使用其链上标识符(称为代币类型的对象 ID)显式注册在钱包的代币列表中。 3. 币类型遵循严格的格式: 0x[address]::[module]::[struct] ,其中每个段均源自 Move 包部...
如何在两个 Sui 钱包账户之间转移 SUI 代币
2026-10-15 22:59:57
了解 SUI 令牌传输机制1. SUI 代币作为 Sui 区块链上的单独对象存在,而不是作为账户余额。每个硬币都有自己的唯一标识符和版本号。 2. 转账SUI需要引用特定的币对象ID,而不是简单地指定余额池中的金额。 3. 发送者必须拥有所传输货币对象的完全所有权——标准传输不允许共享或委托控制。 ...
如何在 Slush 钱包中查找您的 Sui 钱包地址
2026-10-15 16:40:28
在 Slush 钱包中查找您的 Sui 钱包地址1. 在您的 iOS 或 Android 设备上打开 Slush Wallet 应用程序,并确保您已登录现有钱包或已完成助记词恢复过程。 2. 导航到底部导航栏的“主页”选项卡 — 这将显示您的主要 SUI 余额和最近的活动。 3. 点击“接收”按钮,...
查看所有文章














