神秘的比特币地址详解
当你看到像这样的一串字符的时候你是什么感想:1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD,如果在你接触比特币之前,你一定会说这不就是一堆乱码吗?没错这是在你认识比特币之前的时候,而在认识了比特币之后,你所谓的乱码就是你的比特币地址,这个地址就好像你的银行卡账户那样,可以方便快捷的查询和交易你的比特币。
那么为什么会用这样的一种格式来作为比特币的地址呢?我们还是慢慢的来的了解吧。
首先,我们常用的比特币地址格式一般有四种:
1、BASE58格式
就是人们常说的比特币地址,由1开头的,例如:1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD
2、HASH160格式
Tab content 由RIPEMD160算法对130位公钥的SHA256签名进行计算的结果,
如:fbfb58defc272942fc31d00c007b59aa4cb5087a
3、WIF压缩格式
即钱包输入格式,是将BASE58格式进行压缩后的结果130位公钥格式 这是最原始的由ECDSA算法计算出来的比特币公钥,
如:0469B0E479C9A358908DB9CF4628BDD643C3F8
1C4F0096AAD442DA6CA8BCC4FD86A8D47D7A865E178B6D062CC9B70290
8973952062A1D767DA9B2BD2095D5CCF6E
4、60位公钥格式
130位公钥进行压缩后的结果,如:0269B0E479C9A358908DB9CF4628BDD643
C3F81C4F0096AAD442DA6CA8BCC4FD86
那么,这些复杂的数字和字符是怎么产生的呢?
首先,让我们先简单的说说比特币地址是怎么算出来的。比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。由私钥是可以计算出公钥的,公钥的值经过一系列数字签名运算会得到比特币地址。
需要说明的是:因为由公钥可以算出比特币地址,所以我们经常把公钥和比特币地址的说法相混淆,但是他们都是指的一个概念。比特币地址只是另一种格式的公钥。
从比特币私钥得到我们所用的比特币地址需要九个步骤。
第一步,随机选取一个32字节的数、大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间,作为私钥。
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
第二步,使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥。 (共65字节, 1字节 0x04, 32字节为x坐标,32字节为y坐标)关于公钥压缩、非压缩的问题另文说明。

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B
23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
第三步,计算公钥的 SHA-256 哈希值
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
第四步,取上一步结果,计算 RIPEMD-160 哈希值
010966776006953D5567439E5E39F86A0D273BEE
第五步,取上一步结果,前面加入地址版本号(比特币主网版本号“0x00”)
00010966776006953D5567439E5E39F86A0D273BEE
第六步,取上一步结果,计算 SHA-256 哈希值
445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
第七步,取上一步结果,再计算一下 SHA-256 哈希值(哈哈)
D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
第八步,取上一步结果的前4个字节(8位十六进制)
D61967F6
第九步,把这4个字节加在第五步的结果后面,作为校验(这就是比特币地址的16进制形态)。
00010966776006953D5567439E5E39F86A0D273BEED61967F6
第十步,用base58表示法变换一下地址(这就是最常见的比特币地址形态)。
1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD
比特币地址生成过车个就是这样,那么会有人问道,既然都是随机生成的,那么比特币的地址会不会重复呢?关于这个问题,想必就更不用担心。因为比特币的私钥长度是256位的二进制串,那么随机生成的两个私钥正好重复的的概率是2^256≈10^77之一,这个数字大到你根本无法想象,比中彩票的概率还要小好多。

(转)神秘的比特币地址详解相关推荐

  1. 【Network Security!】IP地址详解(看不懂你来打我)

    文章目录 一.简单局域网的构成 二.IP地址 1.IP地址规则 三.子网掩码 四.IP地址详解 1.分类 2.案例1 3.案例2 五.网关 六.DNS 七.配置IP地址 八.网络测试命令 一.简单局域 ...

  2. ip(IP)地址详解!

    ip(IP)地址详解! 1.ip地址分为:合法ip地址(公网ip地址)和私有ip地址    合法ip地址主要应用于internet上的主机访问. 私有ip地址应用于局域网中计算机的相互通信. 2.ip ...

  3. IP地址详解(扫盲篇)

    局域网:一般称为内网. 简单局域网构成:交换机.网线.PC(其他IT终端). 交换机:用来组建内网的设备. IP地址 IP地址就是一个唯一标识,是一段网络编码(二进制). IP地址形式:X.X.X.X ...

  4. 清默网络——IPV6的地址详解

    IPV6的地址详解 IPv6地址共128位,被分割成8个16位段来表示,采用冒号16进制表示. IPv6的地址类型: 1.单播(unicast) 2.任意播(anycast) 3.多播(multica ...

  5. IP地址中的A、B、C类地址详解

    IP地址中的A.B.C类地址详解 IP地址分类 IP地址共分为五类,依次是A类.B类.C类.D类.E类,如图7-5所示.其中在互连网中最常使用的A.B.C三大类,而D类主要用于广域网比较多一点,作用用 ...

  6. 我的世界服务器神秘修改节点,我的世界NBT指令修改神秘时代4MOD方法详解

    我的世界NBT指令修改神秘时代4MOD方法详解,详细描述了我的世界NBT指令修改神秘时代4MOD方法,希望这篇我的世界NBT指令修改神秘时代4MOD方法详解,能够帮助到各位正在玩我的世界的玩家朋友们! ...

  7. 网页中的三种地址详解

    网页中的a标签具有地址跳转的功能,href属性指向跳转的地址. 一.三种地址模式 网络地址分为两种,一种是绝对地址,一种是相对地址. 但是相对地址又可以细分为两种,一种是基于当前目录的相对地址,一种是 ...

  8. 2021-IP地址详解02

    网络 域网:一般称为内网单局域网的构成:交换机,网线,PC()交换机:用来组件内网的局域网的设备 ip地址 ip地址就是一个唯一的标识,是一段网络编码(二进制)由32位构成11010010.01001 ...

  9. 网络安全之IP地址详解

    网络安全 day2 IP地址详解 说到IP地址,先来了解一下几个名词: 局域网:又称为内网,把分布在数公里范围内的不同物理位置的计算机设备连在一起,在网络软件的支持下可以相互通讯和资源共享的网络系统. ...

  10. 史上最全的IP地址详解,速来get

    史上最全的IP地址详解 白在了解虚拟机网络之前,我们首先得了解ip地址是什么? 1.简单局域网的构成 局域网:一般称为内网 简单局域网的构成:交换机.网线.PC(其他IT终端) 交换机:用来组建内网的 ...

最新文章

  1. 读书笔记—写给大家看的PPT设计书
  2. batch insert 1 million datas into mysql
  3. Zabbix server is not running
  4. .Net Core中使用Quartz.Net Vue开即用的UI管理
  5. 在河北当中学老师用不用考计算机,河北省教育厅出台新方案 师范生当教师也需考证...
  6. 在命令提示符下输入的命令
  7. 基础、语法都不是最重要的,学Python最重要的是什么?编程思路!
  8. UIImagePickerController拍照与摄像
  9. 下列关于线程调度的叙述中,错误的是()。
  10. 零基础学python还是c语言-学习汇编还是学习python,自己刚学完C语言,学习那个好呢?...
  11. 081 re正则表达式模块
  12. 基于C语言的图形化编程软件,图形化编程工具
  13. wincc安装信息服务器,WinCC 7.4软件不会安装?怎么授权?一文教会你
  14. 中职计算机ps公开课教案,Photoshop教案(公开课).doc
  15. 苹果市值超过微软 重新成为全球市值最高上市公司
  16. linux如何扫描文件格式,Linux系统如何使用扫描仪
  17. nginx用法总结【1】
  18. UI设计师高效切图6大步骤
  19. sighold,sigset,sigrelse,sigpause,sigignore
  20. YOLOV3—进行车辆检测

热门文章

  1. 初学Sockets编程(四) 发送和接收数据
  2. {ubuntu}乱七八糟重命名为1 2 3.....png
  3. 杭电2098--分拆素数和
  4. window 平台下mysql主从的监控(window执行计划配合vb脚本)
  5. 洛谷 P1168 中位数(优先队列)
  6. 洛谷P1605 迷宫【dfs】
  7. MySQL数据库几种常用的索引类型使用介绍
  8. bzoj 1207: [HNOI2004]打鼹鼠【dp】
  9. Android开发之常见事件响应方式
  10. poj 1222 EXTENDED LIGHTS OUT 高斯消元