比特币--私钥->公钥->钱包地址
脑钱包-字符串SHA256散列成256bit当做私钥-彩虹表
脑钱包是开源的程序-->用户输入字符串当做密码-->经过SHA256散列算法-->256长bit位 (即是私钥)-->进过BASE58编码
-->可见字符串,便于存储-->再经过私钥生成公钥和钱包地址的流程
BASE58: 比特币专用,类似base64,单是去除了其中易混淆的字母,如 0 (零), O (大写字母O), I (大写的字母i) and l (小写的字母L) ,和几个影响双击选择的字符,如/, +
比特币私钥-即一个256长bit位(32字节)
a). 私钥本质是一个256长的bit位,生成方法任意,也可以采用BitCoin自带的程序随机生成(所以会有极小极小极小概率重复)
b). 通常看到的私钥是经过BASE58编码转成可见字符串,如5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss
私钥-->公钥-->钱包地址
私钥-->公钥
a). 比特币选取的生成算法是椭圆曲线密码(细节实在不懂啊)下的secp256k1标准, 其公式是y^2 = x^3 + 7
b). 公私钥关键公式: K=k*G, 其中k是我们的私钥,G为算法基点(对比特币来说是个固定值),结果K即公钥是函数曲线上的另外一个点。
k和K的数学运算是单向的,所以不能从公钥推导出私钥。
我们的⽬标是找到⽣成点G的倍数kG。 也就是将G相加k次。 在椭圆曲线中, 点的相加等同于从该点画切线找到与曲线相交的另⼀点, 然后映射到x轴。
c). 公钥K(65字节)可以用X/Y轴表示,即(x,y)各32字节,一个字节04
公钥P.X: 06CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385
公钥P.Y: FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB
公钥-->钱包地址
a). 将前面得到的公钥x/Y合并得到标准地址,0406CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB
进行SHA-256得到B
b). 对B进行进行RIPEMD-160计算,得到C
c). C前面加入地址版本号(比特币主网版本号"0X00"),得到D
d). 对D进行2次SHA-256得到E
e). 取E的前4个字节作为校验位加入到D的前面,得到 E(4)D == F -- 即是钱包地址
f). 对F进行Base58编码即是传统意义上可见的钱包地址啦
比特币--私钥->公钥->钱包地址的更多相关文章
- 最著名的著名的比特币BTC钱包地址-中本聪的钱包
最著名的著名的比特币BTC钱包地址-中本聪的钱包1.比特币创始人中本聪 1PTFYUG6nCzRrByoRfGT5kefUNuZjNF84o这个地址还是比特币的创世地址,比特币从未移动过,其中的50币 ...
- [币严区块链]BitcoinCash - BCH钱包地址生成与扫块充值监控(JAVA版)
本文的方案无需自建节点,因为BCH当前区块数据大小已经达到200G以上,BTC区块数据也已超过300G,若每个币都自建节点,对云服务器的消耗会非常大. 认识BitcoinCash(BCH) Bitco ...
- 使用比特币轻量钱包Electrum
一.选择对应的钱包安装程序 浏览器打开 https://electrum.org/#download 选择windwos版本的安装程序 点击下载,并安装 二.运行Electrum的 testnet版本 ...
- 是否可能两个ETH私钥对应同一个地址
原提问在这里. 笔者在使用到neon-js中的私钥生成方法时发现其使用了getRandomValues方法来生成64字符长度的私钥,进而考虑到其随机性,若是调用足够多次,依然有可能生成两个完全一样的私 ...
- Linux使用私钥公钥(Public key)登录 - 免密码登录
为了更安全.方便的登录Linux服务器,可以取消密码登录,使用私钥公钥的方式来登录,更方便也更安全. 生成密钥 借助Xshell可以很方便的生成和管理私钥,点击工具菜单,选择新建用户密钥生成向导: 直 ...
- 以太坊Geth通过私钥导入新地址到钱包步骤(3种方法)
一: 通过Geth客户端导入私钥: Open TextEdit Paste key into TextEdit without any extra characters or quotations S ...
- 以太坊Geth通过私钥导入新地址到钱包步骤
Open TextEdit Paste key into TextEdit without any extra characters or quotations Save the file as pk ...
- openssl rsa 私钥 PKCS8私钥 公钥
上文配置好 openssl 运行 => cmd => cd C:\usr\local\ssl\bin => 执行 openssl
- 比特币、莱特币钱包下载和把数据迁移到C盘以外其他盘
比特币是目前最热门和价格最高的虚拟币,国内外多个平台可以进行交易,有些商家可以用比特币进行支付有些国家可以在ATM取款. Bitcoin-Qt就是最早的比特币客户端,构建了比特币的骨干网络,具有高度的 ...
随机推荐
- Bugly升级应用集成指南
1.配置 app/build.gradle android { defaultConfig { ndk { //设置支持的SO库架构 abiFilters 'armeabi' //, 'x86', ' ...
- C#使用SendMessage实现进程间通信的方法
本文实例讲述了C#使用SendMessage实现进程间通信的方法.分享给大家供大家参考.具体分析如下: 为了深入理解消息机制,先来做一个测试项目 在新建项目的Form1的代码中,加入方法: ? 1 2 ...
- winform GDI基础(四)简单截屏
Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); G ...
- day05.2-Vim编辑器
一. 安装Vim编辑器和打开新建文件 安装Vim编辑器:apt-get install Vim 新建与打开Vim文件:vim 文件名 二. Vim编辑器三种模式的使用与切换 指令 ...
- java方法里面生成js弹出框
核心代码:方法参数要有response response.setContextType("text/html;charset=UTF-8"); PrintWrite out = r ...
- ipad中icon与launchimage的size
图标(AppIcon)与启动图(LaunchImage)是开发iOS应用程序必不可少的内容,但是在网络上对于这部分的内容讲解的并不详细,所以花些时间写了这篇文章,希望有需要的朋友可以随时查看 想知道A ...
- [SDOI2008]烧水问题 规律
题目描述 把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃.现需要把每一杯水都烧开.我们可以对任意一杯水进行加热.把一杯水的温度升高t℃所需的能量为(4200*t ...
- 使用windows服务修改CPU型号(重启依然有效)
此项目基于.net framework 4.0 效果如下: 服务运行前: 服务运行后: 思路大概是这样: 通过修改注册表可以修改CPU型号,把服务设置成本地服务,并且开机自动启动,来实现开机自动修改处 ...
- 【Cracking the Code Interview(5th edition)】一、数组与字符串(C++)
1.1 实现一个算法,确定一个字符串的所有字符是否全都不同.不允许使用额外的数据结构. 解答:这里假定字符集为ASCII码,可以与面试官沟通确认字符串使用的字符集.由于字符集是有限的,建立一个数组模拟 ...
- 使用Mybatis-plus发生org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
容我慢慢说来,之前是使用springboot+mybatis.我一直采用xml配置文件写sql. 后来采用了mybatis-plus之后,在本地上面测试没有一点问题.一放到服务器就发生这种情况 在本地 ...