logo
关于我们

技术分享

技术分享 区块链调研备份

区块链调研备份

2019-10-22

比特币钱包(数字钱包)都有哪些类型?

 

如何创建以太坊账户

 

以太坊源码分析:地址如何生成的?

我们看到以太坊使用私钥通过 ECDSA算法推导出公钥,继而经过 Keccak-256 单向散列函数推导出地址。

至此,以太坊地址的生成过程,可以总结为下面 3 个步骤:

1. 创建随机私钥 (64 位 16 进制字符 / 32 字节)

2. 从私钥推导出公钥 (128 位 16 进制字符 / 64 字节)

3. 从公钥推导出地址 (40 位 16 进制字符 / 20 字节)

这是一件很奇妙的事情,这几行代码承载着亿万级别的资产,至简至美。以上的几行代码已经囊括密码学中大多数技术,比如随机数生成器、非对称加密,单向散列函数等。

 

 

 

多重签名(Multisig)技术在比特币交易中的应用 - 钱包存储

 

千里之堤毁于蚁穴(慎用HD Wallets)


iOS 以太坊钱包 Trust源码解析

 

 

以太坊地址生成

289c2857d459

8e37fb964750

7e47a309d613

3539bf21a8b9

cb6df88fd523

2032

 

64

 

ac902cd1

0d581341

9bbfc56a

87d0d855

b72b9a9a

921e2cd1

84bd9624

0f43fa45

 

precondition

 

地址的生成的流程是:私钥 -> 公钥 -> 地址。因此地址的生成需要三步:

1、生成一个随机的私钥(32字节)

2、通过私钥生成公钥(64字节)

3、通过公钥得到地址(20字节)

私钥的生成

私钥是一组64位的16进制字符,通过私钥我们能够访问一个账户。以太坊的私钥生成是通过secp256k1^5曲线生成的,secp256k1是一个椭圆曲线算法,比特币使用的也是相同的曲线算法。

地址的生成

地址是通过对上述的公钥做Keccak-256哈希^7,然后取最后的40位16进制字符得到的。我们对上述的公钥做哈希后并取后40位的结果是:0x24602722816b6cad0e143ce9fabf31f6026ec622。得到的该结果就是一个有效的以太坊地址。

 

以太坊系列之三: 以太坊的crypto模块--以太坊源码学习

//签名

var testPrivHex = "289c2857d4598e37fb9647507e47a309d6133539bf21a8b9cb6df88fd5232032"

//1.获取私钥

key, _ := crypto.HexToECDSA(testPrivHex)

//2.对message进行hash

msg := crypto.Keccak256([]byte("foo"))

//3.对hash进行签名,注意签名对象只能是hash,并且长度真是32个字节的hash

sig, err := crypto.Sign(msg, key)

//sig:d155e94305af7e07dd8c32873e5c03cb95c9e05960ef85be9c07f671da58c73718c19adc397a211aa9e87e519e2038c5a3b658618db335f74f800b8e0cfeef4401

//签名结果长度和公钥长度相同

 

 

关于区块链钱包的基础密码学 (1)

这是以太坊黄皮书关于钱包(私钥、公钥、地址)的描述,仅仅 2 行文字。主要讲解私钥通过 ECDSA(椭圆曲线签名算法)推导出公钥,继而经过 Keccak 单向散列函数推导出地址。

 

 

为了形象的表现椭圆曲线算法如何将私钥推导出公钥,我们将使用简单的整数作为私钥 k,找到公钥 K = k * G,也就是 G 相加 k 次(数学原理一致)。在椭圆曲线中, 点的相加等同于从该点画切线找到与曲线相交的另⼀点, 然后映射到 x 轴。下图展示了从曲线上获得 G、2G、4G、8G 的几何操作。

 

 

学习以太坊Dapp开发

5. 比特币钱包

a. 比特币钱包的生成

    1. 256bits SECP256K1SECP256K1SHA256RIPEMD160Hashpubkey“0”SHA2564BASE58()

       

      转账

      Transactio

      1. “”“”“”“”2“”“”

         

         

         

        区块链学堂(5):Geth

         

         

         

        Showing Recent Errors Only

        ld: library not found for -lrealmcore-ios

         

         

        Showing Recent Errors Only

        ld: library not found for -lrealmcore-ios

         


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 行业资讯

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载