主页 > imtoken官网钱包app > 区块链基础的账户、密钥、地址,基于椭圆曲线的数字账户
区块链基础的账户、密钥、地址,基于椭圆曲线的数字账户
基于椭圆曲线的数字账户
私钥本质上只是一个取值范围非常大(256位)的随机数,保证了在有限的时间内,通过暴力搜索破解成功的概率接近于零。 比特币和以太坊都使用 Secp256k1 曲线。 生成随机数私钥r后,在椭圆曲线上取一个基点G,通过专门定义的乘法运算,可以得到公钥R = r*G。 R和G不能颠倒推导出r,所以R和G可以公开。 为了帮助用户记忆或保存私钥,研究人员发明了助记词,将私钥与英文单词序列一一对应,并且可以相互推导。
词序列通常包含12个词,取自一个大型词库,通常由7000多个词组成,由于不同软件使用的词库不一样以太坊公开密钥,将助记词输入不同的软件以太坊公开密钥,得到的私钥可能是各不相同,互不相容,需要特别注意。
数字账户由私钥控制并由地址标记。 地址可以通过对公钥进行一定的哈希运算和校验码得到,但是仅通过地址是无法推导出公钥的。
以上概念的简单总结
私钥是一个随机数r,公钥是Secp256k1曲线二维坐标系R=r*G=(x,y)上的一个点,比特币和数字账户涉及的基本概念和计算推导关系以太坊如下:
种子 => 随机 => 私钥
私钥=>助记词
私钥 => 未压缩的公钥
未压缩公钥 => 压缩公钥
未压缩公钥 => 地址
压缩公钥 => 地址
地址 => 检查地址
Message => Hash => Signature => (Hash, V, R, S) => Public Key => Address
复制
比特币地址示例:1Nt6XLmq8k8noafGGFdfwue74uJTFu9vQC
示例以太坊地址:0x3a7b653E26f54E4A579237A15893E13A4bDD3451
比特币的地址是通过公钥散列后Base58编码形成的; 以太坊的地址是由公钥哈希后截取并保留20个字节形成的。
在实践中进行测试是安全的
Secp256k1算法的安全性经过长期的实践检验。 从区块链系统设计的角度来看,选择与比特币或以太坊兼容的密钥生成算法和地址格式有很多优势。 这不是“抄袭”,因为Secp256k1算法及其实现就像TCP/IP协议一样。 ,属于通用基础模块,方便使用已有的钱包APP和API接口。 在区块链的设计上,更多地关注账户可用性、TPS、经济模型、系统结构等方面会更合理,更多优秀的加密和签名算法留给专业的密码学家去设计和论证。