zoukankan      html  css  js  c++  java
  • 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 和 地址字符串可以互相转换,通常我们在讲到地址的时候,也不会分那么清楚

    另外因为地址脚本大多数用户根本接触不到,在和一般用户谈论这个话题的时候也可以省略掉

    所以这个关系图可以简化如下

  • 相关阅读:
    【Educational Codeforces Round 101 (Rated for Div. 2) C】Building a Fence
    【Codeforces Round #698 (Div. 2) C】Nezzar and Symmetric Array
    【Codeforces Round #696 (Div. 2) D】Cleaning
    【Codeforces Round #696 (Div. 2) C】Array Destruction
    【Educational Codeforces Round 102 D】Program
    【Educational Codeforces Round 102 C】No More Inversions
    【Good Bye 2020 G】Song of the Sirens
    【Good Bye 2020 F】Euclid's nightmare
    使用mobx入门
    requestAnimationFrame 控制速度模拟setinterval
  • 原文地址:https://www.cnblogs.com/crazylights/p/8166690.html
Copyright © 2011-2022 走看看