以太坊地址,ETH私钥
用私钥创建比特币钱包地址有点复杂。这里,我们将进一步简化这个过程。您必须使用zxdjmg函数来获取公钥,并使用zxdjmg函数来获取地址。开始了。
首先,必须对私钥应用ECDSA或椭圆曲线数字签名算法。椭圆是由方程y=x ax b定义的曲线,选择A和b,这样的一组曲线被识别和使用。用比特币secp256k1曲线。
以太网使用相同的椭圆曲线secp256k1,所以两种加密货币获取公钥的过程是相同的。
ECDSA应用于私钥60 cf 347 DBC 59d 31 c 1358 c 8 E5 C5 F5 e 45 b 822 ab 85 b 79 CB 32 a 9 f3d 98184779 a9 fc 2,得到64字节整数,即代表椭圆曲线上点的x和y的两个32字节整数。
在我们的例子中,获得了1 e 7 BC 70 c 72770 db 72 FEA 022 e 8 a 6d 07 f 814d 2 EB 4 de 9 AE 3 f 706902 a 7 b 73 f 919898 c 836396 a 6 b 0 c 96812 c 3213 b 9372050853 BD 1678 DD。
在Python上看起来像下面这样。
private _ key _ bytes=codecs . decode(private _ key,Hex )getecdsapublickeykey=ECD sa . signing key . from _ srom)saublickeykey=ECD sa . signing key . from curve=ECD sa . key _ Hex=codecs . encode)key _ byte这与Python有关,与算法本身无关,但我会解释一下您在这里对
Python至少有两个可以保存私钥和公钥的类。是“字符串”和“字节”。第一个是字符串,第二个是字节数组。Python的加密方法使用“bytes”类,该类作为输入并作为结果返回。
这里,有一个小问题。是一个字符串。比如4f3c不等于字节数组4f3c。而是具有两个元素的字节数组,Olt;这是codecs.decode方法。将字符串转换为字节数组。这对于本文中执行的所有加密操作都是一样的。
钱包拿到公钥后,就可以计算地址了。与目前的比特币不同,以太网在主测试网络和所有测试网络中的地址是相同的。当用户创建和签署交易时,他们指定他们稍后要使用的网络。
要从公钥创建地址,必须对密钥应用Keccak-256并获得结果的最后20个字节。就是这样。没有其他zxdjmg函数,也没有Base58等变换。你只需要在地址的开头加上“0x”就可以了。
这是Python代码:
public _ key _ bytes=codecs . decode(public _ key, hex )kec cak _ hash=kec cak . new(digest _ bits=256)kec cak _ hash . update)public _ key _ bytes)kec cak _ CK=0x kec cak _ digest[-wallet _ len:]学习python企鹅裙:88198-2657python自动化对所有比特币地址都是一样的,所以请提供校验和字节。
在以太坊,事情不是这样运作的。首先,没有校验和机制来验证密钥的完整性。然而,在2016年,Vitalik Buterin引入了校验和机制,该机制被钱包和交易所采用。
向以太网钱包地址添加校验和是区分大小写的。
首先,您必须获得地址的KECC CAK-256ZXD JMG值。请注意,该地址必须传递给zxdjmg函数,不包含0x部分。
然后,重复初始地址的字符。如果zxdjmg的第I个字节大于或等于8,则第I个地址的字符转换为大写,否则保留小写。
最后,在结果字符串的开头添加0x。如果忽略大小写,校验和地址将与初始地址相同。然而,大写字母允许任何人检查地址是否真的有效。验证算法位于此处链接的页面上。
正如你建议的那样,这种校验和方法“每个地址平均有15个奇偶校验位。如果输入错误,则随机生成的地址错误通过检查的概率为0.0247%。”
这是向以太网地址添加校验和的代码。
校验和=0x#从fromtheaddressaddress中删除0x
=address[2:]address _ byte _ array=address . encode( utf-8 )keccak _ hash=keccak . new(digest _ bits=256)keccak _ hash . update(address _ byte _ array)keccak _ digest=keccak _ hash . hex digest()for I in range(len(address)):address _ char=address[I]keccak _ char=keccak _ digest[I]if int(keccak _ char,16)=8:checksum=address _ char . upper()else我们需要做的就是将ECDSA应用于公钥,然后应用KECC CAK-256,最后得到这个zxdjmg的最后20个字节。
如果你想使用代码,我把它发布到GitHub库。
======================================================================
分享一些比特币、以太坊、EOS、Fabric等区块链相关的互动在线编程实用教程:
Java比特币开发教程。本课程面向初学者,涵盖比特币的核心概念,如区块链存储、去中心化共识机制、密钥和脚本、交易和UTXO等还详细解释了如何在Java代码中集成比特币支持功能,如创建地址、管理钱包、构造裸交易等。是Java工程师不可多得的比特币开发学习课程。用php开发比特币的教程。本课程面向初学者,涵盖比特币的核心概念,如区块链存储、去中心化共识机制、密钥和脚本、交易和UTXO等还详细解释了如何在Php代码中集成比特币支持功能,如创建地址、管理钱包、构造裸交易等。是Php工程师不可多得的比特币开发课程。# C比特币开发教程。本课程面向初学者,涵盖比特币的核心概念,如区块链存储、去中心化共识机制、密钥和脚本、交易和UTXO等还详细讲解了如何在c#代码中集成比特币支持功能,如创建地址、管理钱包、构造裸交易等。是C#工程师不可多得的比特币开发学习课程。java以太坊开发教程,主要为Java和android程序员开发区块链以太坊web3j详细讲解。Python以太坊,主要供python工程师使用web3.py开发区块链以太坊。以太坊,主要介绍使用php进行智能合约开发交互、账户创建、交易、转账、令牌开发、过滤器和交易等。以太坊入门教程,主要介绍智能合约和dapp应用开发,适合初学者。以太坊开发高级教程主要介绍了使用node.js、mongodb、区块链、ipfs的去中心化电商DApp实战,适合高级。ERC721以太坊通票验证战,课程以一个数字艺术创作与分享DApp的实际开发为核心,深入讲解以太坊非同质通票的概念、标准和开发方案。包括ERC-721标准的独立实现,说明了OpenZeppelin合同代码库的二次开发。实战项目采用松露和IPFS,实现了清算所和分散式清算所交换。# C以太坊,主要讲解如何使用C#开发基于。Net,包括帐户管理、状态和交易、智能合同开发和交互、过滤和交易等。EOS简介。本课程帮助您快速开始开发EOS区块链的分散式应用程序。涵盖了EOS工具链、账户和钱包、代币发放、智能合约的开发和部署、使用代码与智能合约的交互等核心知识点。最后,综合运用所有知识点,开发出笔记DApp。简单玩转EOS钱包开发。本课程重点讲述手机EOS钱包的完整开发过程,深入研究EOS区块链的应用开发。课程内容涵盖了账户、计算资源、智能合约、动作、交易等EOS区块链的核心概念,还讲解了如何使用eosjs和eosjs-ecc开发套件访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容简单,非常适合前端工程师深入学习EOS区块链应用开发。Hyperledger结构区块链开发的详细说明。这门课程是为初学者开设的。包括Hyperledger Fabric的身份证书和MSP服务、权限策略、通道配置和启动、链码通信接口等核心概念。还包括fabric网络设计、nodejs链码、应用开发的运营实践。是Nodejs工程师了解fabric区块链开发的最佳选择。Hyperledger Fabric java区块链开发详解。这门课程是为初学者开设的。内容包括Hyperledger Fabric的身份证书和MSP服务、权限策略、通道配置和启动、链码通信接口等核心概念。还包括Fabric网络设计、java链代码、应用开发的操作实践。学习Fabric区块链开发是java工程师的最佳选择。
区块链发展薄荷的详细说明。本课程适合希望使用tendermint进行区块链开发的工程师。课程内容包括tendermint应用开发模型中的核心概念,如ABCI界面、默克尔树、多版本状态库等。以及代币发行等丰富的实用代码。是go语言工程师快速开始区块链开发的最佳选择。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。