以太坊系地址衍生算法分层确定性生成逻辑
文章目录
- 一、前言
- 1.1 衍生算法生成的私钥
- 1.2 随机生成的私钥
- 二、私钥生成及私钥提取
- 2.1 golang如何使用衍生算法生成私钥,然后为用户生成地址
- 2.1.1 实现步骤
- 2.1.2 golang代码示例
- 2.1.3 代码说明
- 2.2 地址交易时,如何提取地址私钥
- 2.2.1 私钥恢复说明
- 2.2.2 golang代码通过助记词恢复私钥示例
- 2.2.3 代码说明
- 三、将地址衍生算法应用到中心化钱包中
- 3.1 将地址衍生算法应用到中心化钱包中
- 3.1.1 架构设计
- 3.1.1.1 安全的地址生成方式
- 3.1.1.2 安全转账流程设计
- 3.1.1.3 大规模用户管理
- 3.1.1.4 安全监控和风控设计
- 3.1.2 使用公钥验证地址身份信息(是否为钱包系统生成)
- 3.1.2.1 为什么要存储公钥信息
- 3.1.2.2 golang 通过公钥校验地址是否伪造
- 3.2 使用主私钥恢复子私钥
- 3.2.1 主私钥的作用
- 3.2.1 主私钥恢复子私钥的具体流程
- 3.2.1 golang使用主私钥恢复子私钥
- 四、秘钥路径及BIP44
- 4.1 BIP44 结构概览
- 4.2 BIP44 路径结构的详细说明
- 4.3 BIP44 路径实例:以太坊地址生成
- 4.4 BIP44 的应用场景
- 五、 为什么:每个account下的address_index不要超过20个?
- 5.1 建议address_index不要超过20个的原因
- 5.2 什么是自动扫描和恢复地址?
- 5.2.1 钱包的扫描和恢复流程
- 5.2.2 为什么“自动扫描和恢复”重要?
- 5.2.3 如果每个account下的address_index生成了非常多,会影响钱包使用吗?
- 六、根据每个address_index根据建议20个,如果我需要上千万个地址,那么应该如何实现?
- 6.1 实现思路
- 6.2 golang实现批量生成和管理地址
- 6.3 除了增加更多的account,还会有其它的解决方式吗?
- 6.3.1 增加地址的扫描深度
- 6.3.2 分区索引(Sharded Indexing)
- 6.3.3 分区索引 代码如何实现
- 6.3.4 根据address_index 派生地址和 根据 userID 派生地址 的区别是什么?
一、前言
在中心化钱包中,区块链地址的私钥一般通过衍生算法生成,而不是直接通过简单的随机生成。这是因为衍生算法生成的私钥可以通过种子或主密钥管理,更适合多账户管理和增强安全性。
1.1 衍生算法生成的私钥
常见的中心化钱包多采用HD(分层确定性)钱包标准,比如 BIP32、BIP39 和 BIP44 等。通过这些标准:
主私钥或种子:钱包会生成一个主私钥或种子,这个种子通过密码学算法生成,然后可以衍生出一系列私钥。
私钥衍生路径:使用类似m/44’/60’/0’/0/0的路径规则,可以为每个用户、每条链或每个账户生成独立的私钥。
优点:只需备份一个种子或主密钥,即可恢复所有私钥,大大简化了备份过程,提高了安全性。
1.2 随机生成的私钥
直接随机生成私钥的方式在一些单账户钱包中可能会使用,但在中心化钱包中很少见。这种方式管理多个账户的私钥较为繁琐,不适合规模化管理。
总结
相关文章:
以太坊系地址衍生算法分层确定性生成逻辑
文章目录 一、前言1.1 衍生算法生成的私钥1.2 随机生成的私钥二、私钥生成及私钥提取2.1 golang如何使用衍生算法生成私钥,然后为用户生成地址2.1.1 实现步骤2.1.2 golang代码示例2.1.3 代码说明2.2 地址交易时,如何提取地址私钥2.2.1 私钥恢复说明2.2.2 golang代码通过助记词…...
【Unity】ScriptableObject的应用:利用配方合成新物体
前一篇已经使用ScriptableObject(SO)类配置可放置物体,本篇探索更多的SO类应用场景。 需求分析 将若干指定物体放在工作台上,可以生成新的物体。 成果展示 Scene部分 准备工作台,放在工作台上的物体全部放在指定PlacedObjects空物体下。 …...
31DNS设置
每天五分钟学Linux | 第三十一课:DNS设置 大家好!欢迎再次来到我们的“每天五分钟学Linux”系列教程。在前面的课程中,我们学习了如何配置Linux系统的IP地址。今天,我们将探讨如何设置DNS(域名系统)&#…...
使用Docker快速部署FastAPI Web应用
Docker是基于 Linux 内核的cgroup、namespace以及 AUFS 类的Union FS 等技术,对进程进行封装隔离,一种操作系统层面的虚拟化技术。Docker中每个容器都基于镜像Image运行,镜像是容器的只读模板,容器是模板的一个实例。镜像是分层结…...
全面掌握Spring Boot异常处理:策略与实践
标题:全面掌握Spring Boot异常处理:策略与实践 引言 在Spring Boot应用开发中,异常处理是一个关键环节,它不仅关系到应用的稳定性,也直接影响用户体验。本文将详细介绍如何在Spring Boot中实现异常处理,包…...
【LeetCode】【算法】11. 盛最多水的容器
LeetCode 11. 盛水最多的容器 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 思…...
ES6代理和反射新特性,详细讲解
代理与反射 es6新增了代理和反射特性,这两个特性为开发者提供了拦截并向基本操作嵌入额外行为的能力。 代理基础 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta charset"UTF-8"&g…...
vue计算属性 初步使用案例
<template><div><h1>购物车</h1><div v-for"item in filteredItems" :key"item.id"><p>{{ item.name }} - {{ item.price }} 元</p><input type"number" v-model.number"item.quantity"…...
大模型时代,呼叫中心部门如何建设一套呼出机器人系统?
大模型时代,呼叫中心部门如何建设一套呼出机器人系统? 作者:开源呼叫中心系统 FreeIPCC,Github地址:https://github.com/lihaiya/freeipcc 在大模型时代,呼叫中心部门建设一套呼出机器人系统需要综合考虑技…...
使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面
今天上线的时候发现系统不同显示好像不一样,苹果手机打开的时候是正常的,但是一旦用安卓手机打开就会出现label不置顶的情况。尝试了很多种办法,也在官方查看了map相关的文档,发现并没有给label设置zIndex的属性,只看到…...
力扣 LeetCode 142. 环形链表II(Day2:链表)
解题思路: 使用set判断是否重复添加,如果set加入不进去证明之前到达过该节点,有环 public class Solution {public ListNode detectCycle(ListNode head) {Set<ListNode> set new HashSet<>();ListNode cur head;while (cur …...
用MVVM设计模式提升WPF开发体验:分层架构与绑定实例解析
MVVM(Model-View-ViewModel)是一种架构模式,广泛应用于现代前端开发,尤其是在微软的WPF(Windows Presentation Foundation)应用程序中。它旨在通过将视图(UI)与业务逻辑(…...
C++中的动态断言和静态断言
C中包含动态断言(assert)和静态断言(static_assert),下面分别分析各自的用法。 1.动态断言(assert) assert 是一个宏,在预处理阶段不生效,在运行阶段才起作用࿰…...
运算放大器的学习(一)输入阻抗
输入阻抗 最近需要对运算放大器进行学习,我们后面逐一对其参数进行了解。 首先了解下输入阻抗。 放大电路技术指标测试示意图: 输入电阻: 从放大电路的输入端看进去的等效电阻称为放大电路的输入电阻,如上图,此处考虑…...
Rust枚举之卧龙凤雏(Rust Option枚举、Rust Result枚举)(Rust Enum、Some(T)、Ok(T)、Err(E))链式操作
文章目录 Rust 枚举之卧龙凤雏枚举的基本概念枚举定义示例 Result 枚举:凤雏Result 枚举的定义Result 的使用场景示例 1:文件读取示例 2:链式操作与错误处理 Option 枚举:卧龙Option 枚举的定义Option 的使用场景示例 1࿱…...
TCP/IP协议,TCP和UDP区别
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是一组用于计算机网络中的通信协议,它为数据传输提供了标准框架,广泛用于互联网和局域网中。TCP/IP协议包括多个层次,每…...
【go从零单排】Timer、Epoch 时间函数
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,time.Timer 是一个用于在指定时间后执行操作的计时器。…...
壁仞科技上市前最后一波 校招 社招 内推
随着美国大选结束,国内GPU 产业得到空前的的发展空间,国内芯片相关股票一片飘红。 国内大型 GPU厂商壁仞科技,摩尔线程等正紧锣密鼓地加紧上市。 GPGPU 芯片赛道来到了史无前例的红利点,抓住机会💪 壁仞科技正在火热…...
【微软报告:多模态基础模型】(2)视觉理解
欢迎关注【youcans的AGI学习笔记】原创作品 【微软报告:多模态基础模型】(1)从专家到通用助手 【微软报告:多模态基础模型】(2)视觉理解 【微软报告:多模态基础模型】(3)…...
Linux 驱动
四十三、Linux设备树 43.1 DTS、DTB 和 DTC DTS 是设备树源码文件 DTB 是将DTS 编译以后得到的二进制文件。 DTC 工具将.dts 编译为.dtb 43.2 DTS语法 43.2.1 .dtsi 头文件 在.dts 设备树文件中,可以通过“#include”来引用.h、.dtsi 和.dts 文件。 …...
Midjourney纹理失控?3步诊断+4类修复模板(附12组对比Prompt+SD交叉验证报告)
更多请点击: https://kaifayun.com 第一章:Midjourney纹理生成技巧 在 Midjourney 中生成高质量、可控的纹理,关键在于精准的提示词工程、参数协同与风格锚定。不同于通用图像生成,纹理需强调重复性、无缝性、材质物理属性&#…...
Win11Debloat:Windows 11系统优化终极指南,免费提升电脑性能50%
Win11Debloat:Windows 11系统优化终极指南,免费提升电脑性能50% 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes…...
中年以后,真正有效的抗衰老运动,其实就这 4 种
过了 30 岁,肌肉每年流失 1%-2%,基础代谢下降,精力大不如前——这不是错觉,是生理规律。 但运动的选择,决定了你是「老得快」还是「逆生长」。分享 4 种被科学验证的抗衰老运动,中年人越早开始越好。 1️⃣…...
初次使用Taotoken官方价折扣进行模型测试的成本节省体验
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初次使用Taotoken官方价折扣进行模型测试的成本节省体验 1. 项目背景与成本挑战 最近启动一个新项目,需要集成大模型能…...
Hitboxer SOCD Cleaner:键盘输入仲裁系统的底层实现与技术架构分析
Hitboxer SOCD Cleaner:键盘输入仲裁系统的底层实现与技术架构分析 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏领域,键盘输入精度直接影响玩家操作表现。传统键盘在处理同…...
macOS完整安装器下载工具终极指南:轻松获取Big Sur系统安装包
macOS完整安装器下载工具终极指南:轻松获取Big Sur系统安装包 【免费下载链接】DownloadFullInstaller macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application. 项目地址: https://gitcode.com/gh_mirr…...
告别手动肝船!碧蓝航线自动化脚本Alas终极使用指南
告别手动肝船!碧蓝航线自动化脚本Alas终极使用指南 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为碧蓝航…...
告别手动同步!用QDataWidgetMapper在Qt5/C++中实现UI与数据的自动绑定(附完整代码)
告别手动同步!用QDataWidgetMapper在Qt5/C中实现UI与数据的自动绑定 在桌面应用开发中,表单数据与UI控件的同步一直是个令人头疼的问题。想象一下这样的场景:你正在开发一个员工信息管理系统,每次用户点击"上一页"或&q…...
N5105 4口2.5g V3 Intel i225 PVE 6.2下的Openclaw安装
一、Ubuntu 26.04安装 1. 从官网上下载ubuntu 26.04 LTS版本 下载地址:Download Ubuntu Desktop | Ubuntu 2. 将下载好的iso文件上传到pve中,登录PVE后台,点击local->ISO镜像->上传 3. 创建虚拟机 其他按默认配置即可。 4. 安装Ubu…...
字节面试官:你知道Claude Code的多Agent实现机制吗?
上周四晚上,我的微信弹出一条消息。一个准备跳槽字节AI Agent岗的朋友发来语音,语气像刚被泼了一盆冷水:“他们没让我手撕Transformer,也没问RLHF。上来就是一句——你知道Claude Code的多Agent实现机制吗?能不能讲一下…...
