NEO学习笔记,从WIF到地址
2018开年,先给大家拜个年,Happy Neo Year.
开年总得写点什么,就打算继续开学习笔记系列,一点一点仔细的去分析NEO。
今天说一说从WIF到地址的这一串关系。
简单说就一张图:

或者他的简单版本

好了,写完了。^_^
当然,如果你想要搞清楚他们之间具体的计算方法,我们接着往下看。
流程说明
细说WIF
L13wAkUX1SAx6K9zztkS8RjxDMedBEzbtgZSZRYKUUBMP23BEgLM
这就是一个WIF,这串东西没什么意义,不用寻找他的意义了,他是一个byte58编码的字符串
很遗憾base58并没有base64那么流行,所以很难找到web解码工具,我们写两行代码就可以分析出他们。


8072520405d2ab00326dbcacfddd350b01222a7cc9efc5f304f742077ec9ade4630178a41006
这串东西,才是Wif里面保存的真正数据

红色部分就是私钥,黄色部分是加的盐,固定的信息。蓝色部分是对前面34个字节做了个hash,取了hash四个字节。
从这个可以看出
1.WIF 可以和私钥互转
2.WIF保存了hash,有自我验证功能,不是你随便敲个字符串都是合法的WIF
私钥
NEO的公私钥验证方法使用的是ECC椭圆曲线算法。
这类非对称加密算法的基本机制如下,私钥你保留着,公钥是公开的。你用私钥对一串数据进行签名。
别人可以用 数据、签名、公钥 三者,断定这三者是不是匹配,签名是否有效。
在NEO区块链上最主要的权限认证方式就是签名,所以私钥很重要,要保护好
公钥
公钥就是私钥的一部分,可以由私钥算出,但是反过来,公钥无法算出私钥。
这个计算是单向的
地址脚本
地址脚本,看起来像是对公钥前面后面各加了一个字节

实际上他是一个智能合约,将他反编译的话、
就是:
PushBytes[pubkey]
CheckSig
这样两条指令。
当你访问你的账户的时候,比如用你的账户给别人转账,就会调用这个合约来验证。
这个合约的意义是用你的公钥和交易数据 和交易签名进行验证。
只有你签名的合约才能动你的账户
地址ScriptHash
地址ScriptHash就是地址脚本取了个Hash

一次sha256,一次ripemd160
地址
地址和WIF很相似,不过他是ScriptHash 加了盐,加了验证功能,然后base58编码

简化版的图是怎么回事
因为私钥和WIF可以互相转换,通常我们在讲到私钥的时候,WIF也是私钥,私钥也是私钥,不会分那么清楚。
因为地址ScriptHash 和 地址字符串可以互相转换,通常我们在讲到地址的时候,也不会分那么清楚
另外因为地址脚本大多数用户根本接触不到,在和一般用户谈论这个话题的时候也可以省略掉
所以这个关系图可以简化如下

NEO学习笔记,从WIF到地址的更多相关文章
- IP地址和子网划分学习笔记之《IP地址详解》
2018-05-03 18:47:37 在学习IP地址和子网划分前,必须对进制计数有一定了解,尤其是二进制和十进制之间的相互转换,对于我们掌握IP地址和子网的划分非常有帮助,可参看如下目录详文. ...
- 交换机安全学习笔记 第二章 MAC地址泛洪攻击
本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为.H3C设备的相关配置.华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02. H3C配置参 ...
- 计算机网络学习笔记--网络层之IP地址与子网
IPv4地址: 我们知道在网络层(TCP/IP体系结构的网际互联层),最重要的一个协议就是IP协议,现在正处于IPv4和IPv6的过渡时期,但目前来说,IPv4仍为主流,所以主要讲Ipv4. IP地址 ...
- IP2——IP地址和子网划分学习笔记之《子网掩码详解》
2018-05-04 16:21:21 在学习掌握了前面的<进制计数><IP地址详解>这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容 ...
- IP地址和子网划分学习笔记之《预备知识:进制计数》
一.序:IP地址和子网划分学习笔记开篇 只要记住你的名字,不管你在世界的哪个地方,我一定会去见你.——新海诚 电影<你的名字> 在我们的日常生活中,每个人的名字对应一个唯一的身(敏)份(感 ...
- 实验楼课程管理程序-深入学习《C++ Primer第五版》实验报告&学习笔记1
本片博客为实验楼的训练营课程深入学习<C++ Primer第五版>的实验报告和学习笔记. 原课程地址为:https://www.shiyanlou.com/courses/405# 原文出 ...
- spring cloud 学习(二)关于 Eureka 的学习笔记
关于 Eureka 的学习笔记 个人博客地址 : https://zggdczfr.cn/ ,欢迎光临~ 前言 Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务.Sprin ...
- <Machine Learning - 李宏毅> 学习笔记
<Machine Learning - 李宏毅> 学习笔记 b站视频地址:李宏毅2019国语 第一章 机器学习介绍 Hand crafted rules Machine learning ...
- libmkl 学习笔记
libmkl 学习笔记 1.libkml下载地址为: https://github.com/libkml/libkml/releases 这里下载1.3.0版本 2.编译与安装 mkdir build ...
随机推荐
- 小学生都看得懂的C语言入门(1): 基础/判别/循环
c基础入门, 小学生也可以都看得懂!!!! 安装一个编译器, 这方面我不太懂, 安装了DEV-C++ ,体积不大,30M左右吧, 感觉挺好用,初学者够了. 介绍下DEV 的快键键: 恢复 Ctrl+ ...
- Linux基础一:Linux的安装及相关配置
1. 计算机操作系统简介 1) 操作系统的定义:操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. 2) 操作系统的内核的定义:操作系统的内核是一 ...
- log4j2的log输出到tomcat/logs目录下及使用(转)
原文链接:http://blog.csdn.net/honghailiang888/article/details/50370252 原文作者: Herman-Hong 一.环境配置 log4j2. ...
- 配置webpack loader vue 报错:Module build failed: TypeError: this._init is not a function
单文件组件 引入时报错 配置webpage.config.js中的vue 需要如下写法 { test: /\.vue/, loader: "vue-loader", } 之前写的l ...
- 十图详解tensorflow数据读取机制(附代码)转知乎
十图详解tensorflow数据读取机制(附代码) - 何之源的文章 - 知乎 https://zhuanlan.zhihu.com/p/27238630
- BETA准备
过去存在的问题 文档问题 未能事先做好设计文档,且小程序与后端数据库接口存在问题 界面问题 原型图设计花的时间较少,小程序设计界面仍相对粗糙,前端成员css元素应用经验不足 小程序界面之间对接存在问题 ...
- nginx 域名泛解析
部分应用场景下要求服务器根据客户输入的二级域名地址自动访问不同的页面,比如一个服务器放置了不同的业务,商城.官网等多个业务,又不想一个个配置server, 网站目录结构入戏: html 网站根目录 m ...
- python全栈开发day69-cookie、session
一.ORM回顾 1. 内容回顾 1. Django中使用ORM连接MySQL的步骤: 1. 创建数据库 2. 告诉Django连接哪个数据库 在settings.py中设置数据库相关的链接信息 3. ...
- Bash远程代码执行漏洞(CVE-2014-6271)案例分析
Web服务器和CGI的关系 什么是WEB服务器(IIS.Nginx.Apache) WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务.(1)应用层使用HT ...
- go-关于指针和地址
经常会见到: p . *p , &p 三个符号 p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数. 而*p表示此指针指向的内存地址中存放的内 ...