首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我们可以从以太公有地址生成公钥吗?

从以太公有地址生成公钥是不可行的。以太坊使用椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)来生成公钥和私钥对。以太公有地址是通过对公钥进行哈希运算和Base58编码得到的,而不是直接从公钥生成的。

公钥是由私钥生成的,私钥是一个随机的256位数字,可以用作加密和解密数据。通过椭圆曲线算法,私钥可以生成对应的公钥。公钥是一个512位的数字,用于验证签名和加密数据。

以太公有地址是由公钥经过哈希运算和Base58编码得到的,用于标识以太坊网络中的账户。公有地址是可公开的,用于接收以太币和执行智能合约。

在以太坊中,公钥和私钥是成对存在的,但从公有地址无法逆向推导出公钥或私钥。因此,无法直接从以太公有地址生成公钥。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

区块链小知识:公有链和联盟链的区别

绝大部分的公有链定位于虚拟货币发行和交易场景,通过讲述一个故事或者设定一个目标,对外筹集资金(这里主要指法币或者其他更通用的公有链代币,例如:以太坊在上线前筹集比特币),并使用非对称加密算法生成账户地址并设定相应的账户余额...通常是由参与者自己的PC下载相应的钱包软件,通过非对称加密算法和哈希算法生成的账户地址具有一定的随机性,任何机构都难以对参与者的实际身份和钱包地址进行关联,这也使得公有链具备相当大的监管难度,各类灰色交易和黑产都通常以链上代币作为支付手段...非对称加密算法:加、解密使用的不是一串密钥的算法,通常一把为,另一把为私钥。...加密的内容,对应的私钥可以解密;私钥加密的内容,对应的可以解密;可以公开,私钥由使用方自行掌握,常见使用场景是数字签名和安全密钥交换,算法特点是运算性能不高,通常认为比对称加密算法慢一千倍。...以比特币为例,每笔交易中指定账号下比特币的收入来源为较早生成的区块号和该区块中第几笔交易,这就导致比特币无法在同一个区块中对同一个账户地址进行多次转账操作,以太坊则解决了这个问题,允许在一个区块中对单个账号进行多次转账操作

5.6K20

以太坊密码学

随机数生成私钥 生成密钥的第一步,也是最重要的一步,就是找到一个安全的熵或者随机数的源。创建以太坊私钥涉及到要从 中选择数字。...不要自己编写代码来生成随机数或者用你的编程语言随机生成一个简单的随机数。 以太是椭圆曲线上的一个点,一个满足椭圆曲线等式的(x,y)坐标。...它由两个私钥生成的数字组成,并且只能单向生成,这意味着,如果你有一个私钥,就可以计算出,但是你不能从公计算出私钥。...以太地址格式 以太地址是一个十六进制数,用的 Keccak-256 哈希的后 20 字节表示。...生成 我们可以用helpeth命令行工具来创建 ICAP 地址,用npm安装: npm install -g helpeth 如果没有 npm,你可能就得按照这里的说明[2]来安装。

1K20

用web3dart为flutter应用生成以太地址

,推荐 汇智网的在线互动教程: Flutter以太坊开发详解 2、示例代码:用web3dart生成以太地址 生成以太地址是绝大多数希望支持以太坊区块链的Flutter应用所需要的功能特性。...web3dart开发包使得这一过程相当简单明了:web3dart的crypto库提供了三个API函数, 分别用于生成私钥、私钥推导出、以及从公推导出以太地址: ?...//安全随机数发生器 BigInt privKey = generateNewPrivateKey(rng); //生成新的私钥 STEP 2# 私钥推导出 直接调用crypto...库中privateKeyToPublic()函数,即可从指定的私钥推导出: Uint8List pubKey = privateKeyToPublic(privKey); //私钥推导出...STEP 3# 从公推导出地址 直接调用crypto库中publicKeyToAddress()方法,指定的码流推导出地址码流: Uint8List address = publicKeyToAddress

2.8K30

代币销毁问题集

本文作者:toString[1] 我们经常会在业内的新闻报道中看到某某代币又进行了销毁的消息。那么,什么是代币销毁呢?代币是如何被销毁的呢?销毁使用的黑洞地址又是什么呢?被销毁后的代币还能被找回?...今天,我们就来试着回答这些问题。 一、什么是代币销毁? 代币销毁(Coin Burning),就是将代币流通中永久性去除。换句话说,被销毁的代币相当于被永久性冻结,再也无法流入市场。...注:黑洞地址与具体网络无关,在以太坊系的链节点【例如:BSC、HECO、OK等】中,任何已知的无人知晓私钥的地址可以是黑洞地址,如: 0x0000000000000000000000000000000000000000...截止今天,上面提到的比特币黑洞地址里有约 13.2BTC,以太坊黑洞地址里有约 7780ETH。 看到这么多币,不知道你有没有心动?有人或许会问,我可以破解从而“偷”出里面的币?...我们知道,私钥生成生成地址,但地址是无法反推出私钥的。要想“偷”,就只能暴力破解,即拿私钥一个一个地试。

2.8K60

以太坊硬件钱包原理_以太坊区块链怎么挣钱

钱包控制对以太币的访问、管理私钥和地址、跟踪账户的余额。 私钥通过 ECDSA(椭圆曲线签名算法)推导出,继而经过 Keccak 单向散列函数推导出地址。...具体分为以下三个步骤: 创建随机私钥 (64 位 16 进制字符 / 256 比特 / 32 字节) 私钥推导出 (128 位 16 进制字符 / 512 比特 / 64 字节) 从公推导出地址...(40 位 16 进制字符 / 160 比特 / 20 字节) 以太坊黄皮书上关于钱包(私钥、地址)的描述如下: 椭圆曲线 密码学 加密通常分为对称加密与非对称加密。...我们设想下面的场景: 如果黑客知道了父节点的和链码,那么他可以生成所有子节点、孙节点的、链码、地址,这样会严重破坏 HD 钱包的隐私性 如果黑客在上面的基础上知道了某个孙节点的私钥,那么所有重孙节点的私钥都能被推导出来...主私钥派生出的私钥由 m 开头,而主公派生出的由 M 开头。

3.3K20

Ethereum 02 - 外部账户

每个外部账户有用一对私钥, 这对密钥用于签署交易, 它的地址是由决定. 外部账户不能包含以太坊虚拟机(EVM)代码....我们可以把外部账户看作是用户在银行办理的一个账户, 就是用户为该账户设置的卡号, 而私钥就是用户设置的密码....一个外部账户具有以下特性: 拥有一定的账户余额 可以发送交易 通过私钥控制 没有相关的代码 用户可以使用Geth(以太坊客户端)指令创建一个外部账户, 生成一个账户地址的过程主要有三步:...对于由得到账户地址, 在以太坊中使用SHA3方法....我们通过JavaScript的CryptoJS加密库来演示生成以太坊账户地址的过程: // pubKey -> address var pubKeyWordArray = CryptoJS.enc.Hex.parse

65030

Vitalik Buterin:Casper 权益证明与分片技术最新进展

+ 分片验证者的步骤: 首先“存款”,发送存款交易的信息包括32个以太币、与取款地址。...需要注意,这一步骤,签名与取款地址不一定相同,可以让别人为你参加共识机制,而且能用热钱包签名,用冷钱包取款。 其次是“等待加入”,可能需要一天时间,等待协议将用户加入验证者池。...包括一个,有32个以太币并且验证,首先规定你使用的,用它做信息的签名。也要有一个取款地址,在验证的时候有相应的奖励措施。...注意,签名和取款地址并不完全一致,意味着两件事,首先可以把签名的权利分配给其他人,比如我在环球旅行,不可能一直携带电脑,就可以把key给朋友,让朋友为你签名验证,参与到算法。...会验证两个节点的区块,时间更久做区块的生成我们可以经常在不同的分片中来回交换,做区块的确认,还有分片和主链之间的交联。作为验证节点,必须要在分片上做区块生成,并且确认分片上的区块已经交联。

47460

Golang语言情怀--第82期 区块链技术-区块链钱包基础知识:如何更安全的使用钱包?

第一:钱包地址 我们知道区块链的账户的密钥分为和私钥,我们在钱包里面看到的地址,一般来说就是我们地址的一部分,但太长了,我们看到地址都是的最后的20个字节,这就是我们的钱包的地址和私钥是一对一的配对的...,我们有了私钥之后,我们可以推导出,但有了我们是无法推导出私钥的,不过我们有了我们可以解读出一些私钥加密的一些内容,这就是我们和私钥的一个关系,以及我们的钱包地址是怎么来的。...比如说,张三跟李四要转5个以太坊,他的表述方式就是给李四转5个以太坊,然后张三利用他的密钥把表述进行签名,签名就是把信息进行加密,加密的时候还要附上自己的在上面,所以后面的人用去解密,这段信息就看到了给李四转五个以太坊的内容...私钥它是很长的,大家记起来很麻烦,中本聪想了一个办法,4000个单词当中,选取一部分单词来进行哈西计算出私钥,所以说这就是我们助记词的概念,我们的助记词通常是12个单词,或者是24个单词,把它进行哈西之后得出的结果就是私钥...我们经常听到别人讲区块链的匿名性,这很容易让大家误解为这是区块链的防追踪性,区块链是可以追踪的,它指的匿名性是你可以在区块链上任意的生成账户地址如果你的账户不和你个人产生绑定关系,或者是产这种交易关系的话

79550

零开发区块链应用(十一)--以太地址生成

本文作者:杰哥的技术杂货铺[1] 一、生成以太地址私钥 1.1 生成以太地址私钥函数代码 创建常量 const ( BitcoinSeed = "Bitcoin seed" Mnemonic...我们应该知道,可以私钥生成。所以拥有私钥相当于拥有整个密钥对。 *ecdsa.PrivateKey 是 PublicKey 和 PrivateKey 的结构。...三、根据地址 3.1 主函数代码 定义结构体 // Address 表示20字节地址 type Address [AddressLength]byte 主函数 PubkeyToAddress()...十一)--以太地址生成[12] 参考资料 [1] 杰哥的技术杂货铺: https://learnblockchain.cn/people/3835 [2] 零开发区块链应用(一)--golang配置文件管理工具...: https://learnblockchain.cn/article/3484 [12] 零开发区块链应用(十一)--以太地址生成: https://learnblockchain.cn/article

1.3K10

区块链基础知识与关键技术

非对称加密机制主要指的是公私钥加密机制,每个人通过算法生成一对密钥,称为和私钥,如果 A 想发送一个信息给 B,可以用 B 的对文件进行加密,将加密后的信息发给 B,这个过程中,即使信息被截获或出现泄漏...数字签名 数字签名是非对称加密机制的另一种用法,上文讲到每个人拥有一对生成和私钥,在加密/解密应用中,是用进行加密,用私钥进行解密,而数字签名机制刚好相反,假设一个文件持有者用自己的私钥对文件进行加密...,其他人可以用他的进行解密,如果得到结果则可以证明文件的归属权。...硬件层面,可以采用可信的执行环境,采用一些安全硬件,如Intel SGX,很大程度保障了隐私;网络可以采用多路径转发以避免节点的 ip 地址推算出真实身份。...值得注意的是,即使一笔交易生成多个 inputs 和 outputs,这些 inputs 和 outputs 的地址也可能被人关联;除此之外,地址账户和现实世界中的真实身份也可能产生关联。

62820

区块链身份管理技术浅析

在区块链交易系统中,数字身份用于标识交易用户的身份信息以便资产的支付确权,其实现手段主要依赖于密码算法和认证协议,但公有链和联盟链在具体实现方式上存在一定的差异,以比特币为代表的公有链多直接使用(地址...2.1(地址)标识 在比特币、以太坊、门罗币、零币等强调用户身份隐私,采取匿名认证机制的区块链交易系统中,身份标识通常基于密码体系中椭圆曲线密码算法来进行构建。...我们以比特币为例,在比特币网络中用户的身份标识符A称为比特币地址(address),其长度为160bit,是由用户P通过两次哈希运算而生成,其运算过程大致如下: 而通过上述用户身份标识符(地址),...我们以开源联盟链平台Hyperledger Fabric为例,Fabric中默认的MSP使用了X.509证书作为身份标识符,采用传统的基础设施(PKI)体系[3]来对其成员身份进行管理。...由于公有链采用无准入机制的开放网络架构,用户可基于密码算法实现自身身份标识,同时,同一用户还可通过使用多个不同地址)来降低不同交易之间的关联性。

1.8K20

写给Solidity开发者的Solana入门指南

我们将在稍后讨论owner字段。 以太坊也有 2 种类型的账户: 外部拥有账户 - 普通账户,可以由钱包软件生成(只需要生成一个私钥,然后导出地址,你就有一个账户)。...在程序中,你只是程序控制的变量中生成一个地址。这就成为一个衍生账户(一个程序衍生的地址)。Solana 操作系统提供了一个辅助函数来推导这个地址。...在 Solana 中,我们 bump = 255开始,然后简单地向下迭代 bump = 254、bump = 253,等等,直到我们得到一个不在椭圆曲线上的地址。 **位于椭圆曲线上是什么意思**?...只需程序中导出一个地址,并将该地址/账户作为存储。你如何确保其他人不会修改衍生账户?因为衍生地址没有相应的私钥。所以没有人可以修改这个账户。Solana 操作系统确保只有程序被允许修改 PDA。...PDA 也可以用来在独立的账户中存储用户的特定信息。这就是种子变得有用的地方。一个常见的做法是使用最终用户的作为种子生成 PDA,允许程序将该用户的信息存储在自己的独立账户中。

1.2K30

以太坊交易签名解析源码解读

上篇文章《以太坊交易签名过程源码解析[1]》源码角度分析了一个合约调用的的签名过程,签名后的交易发送到以太坊节点后,节点需要从签名交易中还原出(从公中单向计算出账号地址),进而将交易放入交易池中...本文go-ethereum源码的出发,看看如何签名交易中还原出。 一、准备工作 我们使用上文中最后得到的签名交易串来进行解析,这里我写的解析代码如下所示。...(私钥单向生成单向生成地址) • 签名解析核心使用的是Sender方法 二、签名解析 types.Sender方法中核心调用了EIP155签名器的Sender方法,其源码如下。...至此,我们已经签名中还原出了账号地址)。...如果需要校验签名是否正确,可以通过调用secp256k1包中的VerifySignature方法,传入、交易hash和签名,通过比对R值是否一致进行验证。

2.1K20

窥探比特币核心机制如何运转 原

地址生成 要成为比特币网络的一部分,必须有一个地址,你可以从中发送和接收资金。比特币使用加密,并且地址基本上是从公私钥派生的的哈希版本。...在协议级别没有钱包的概念,只有地址。 比特币使用椭圆曲线加密技术作为其地址。在超高级别,椭圆曲线加密用于私钥生成,与RSA相同,但占用空间较小。...使用该信息,可以使用x和y的极性来表达。这将大小65位减少到33位,并且密钥(和随后的计算地址)被称为压缩。对于压缩,前置值将为0x02或0x03,具体取决于y的极性。...这有时被称为哈希160地址。 如前所述,一个有趣的观点是,私钥到的转换以及从公到公共地址的转换都是单向转换。如果你有地址,则向后工作以查找关联的唯一方法是解决SHA256哈希。...虽然相应的计算私钥通常是不可行的,但是如果生成私钥的方法已被泄露,那么访问使得推断私钥变得容易得多。在2013年,这个臭名昭着的Android比特币钱包事件。

63820

PalletOne调色板跨链的ETH提币实现

下面我们来详细介绍一下其中的过程。 0.初始化了4个陪审员的以太坊锁定合约 这个是运营方在设置ETH充币提币合约时就做好的,只需要做一次。...每个陪审员节点都生成了一个以太坊的公私钥和地址,并且将地址公开到网络上。...项目运营方在以太坊的映射和锁定合约(接下来我们就命名为0x1合约)上将这4个陪审员的设置进去,只有这4个中的3个签名才能解锁其中的ETH。 1...., bytes sigstr1, bytes sigstr2, bytes sigstr3) public 该方法接收的参数都已经完备,所以我们可以按照以太坊的规则,生成对应的inputData。...而以太坊合约调用者在步骤3中向PC1合约登记了转网TxHash,陪审员验证转网成功的同时,也会将手续费0.01PETH记账到合约调用者的地址下,合约调用者随时可以PC1合约提取PETH。

1K10

区块链核心技术-密码学

这是以太坊黄皮书关于钱包(私钥、地址)的描述,仅仅 2 行文字。主要讲解私钥通过 ECDSA(椭圆曲线签名算法)推导出,继而经过 Keccak 单向散列函数推导出地址。...私钥推导出 (128 位 16 进制字符 / 512 比特 / 64 字节) 3....在非对称加密中,将密钥分为加密密钥和解密密钥,也就是我们常说的和私钥。和私钥一一对应,由加密的密文,必须使用配对的私钥才可以解密。...当我们调用 secp256k1.publicKeyCreate 获得时,实际使用的是非对称加密中的椭圆曲线算法。通过该算法可以私钥推导出,这是一个不可逆的过程:K = k * G。...这就是椭圆曲线算法上的离散对数问题,也是为什么你可以分享地址(或)给别人,但不能暴露自己的私钥。

11.8K5345

关于以太坊账户的理解

什么是地址?为什么要校验 checksum ? 私钥-对 一个以太坊账户就是一个 SECP256K1 密钥对。"SECP256K1"只是我们使用的特定椭圆曲线的名称。...以太坊账户的密码学不对称性,在于可以用你的私钥证明出你的。相反,关于的信息永远不允许反向揭示私钥。 因此,私钥需要保密,只有你自己可以控制以太坊账户的。...eth gem 生成了一个包含私钥和的密钥对,我们可以很容易看到bec52dffb33ec1f4d629f88232796e898f4294079c5894a6645e8a4f7261fabe是一个数字...12 字节,无法地址恢复。...是底层椭圆曲线上 x 和 y 坐标对应的点(此处:SECP256K1,与比特币使用相同)。 以太地址是序列化的截断 Keccak-256 哈希。

77240
领券