区块链基础知识之账户、密钥、地址,基于椭圆曲线的数字账户
私钥本质上只是一个随机数,其取值范围非常大(256个比特位),可确保在有限时间内,采取暴力搜索的方式,破解成功的概率接近于零。Bitcoin和Ethereum都采用Secp256k1曲线,生成随机数私钥r之后,取椭圆曲线上的一个基点G,经过特殊定义的乘法运算,可得到公钥R = r*G。通过R和G无法反推出r,所以R和G是可以公开的。为了协助用户记忆或保存私钥,研究者发明了助记词,将私钥与英文单词序列一一对应,可互相推导。
单词序列通常包含12个单词,取自于一个较大的单词库,通常由超过7000个单词所构成,由于不同的软件所采用的单词库是不一样的,将助记词输入给不同的软件,得到的私钥可能是不同的,互不兼容,这一点需特别注意。
数字账户由私钥所掌控,由地址所标示。将公钥通过一定的哈希运算及校验编码可得到地址,但仅通过地址,不可能反推出公钥。
对以上概念的简单总结私钥是某个随机数r,公钥是Secp256k1曲线二维坐标系上的某个点R=r*G=(x, y),Bitcoin和Ethereum中数字账户所涉及的基本概念及计算推导关系如下:
Seed => Random => Private Key
Private Key => Mnemonic Words
Private Key => Uncompressed Public Key
Uncompressed Public Key => Compressed Public Key
Uncompressed Public Key => Address
Compressed Public Key => Address
Address => Checked Address
Message => Hash => Signature => (Hash, V, R, S) => Public Key => Address
Copy
比特币地址示例:1Nt6XLmq8k8noafGGFdfwue74uJTFu9vQC
以太坊地址示例:0x3a7b653E26f54E4A579237A15893E13A4bDD3451
比特币的地址,是对公钥做哈希运算后,再经过Base58编码而成;以太坊的地址,是对公钥做哈希运算后,截取保留了20字节而成。
经过实践检验才算安全Secp256k1算法的安全性,是经过了长时间的实践检验的。从区块链系统的设计角度看,选择兼容比特币或以太坊的密钥生成算法和地址格式有很多优势,这并不是“抄袭”,因为Secp256k1算法及实现,就像是TCP/IP协议一样,属于通用基础模块,方便利用现有的钱包APP与API接口。在区块链的设计中,把更多的精力放在账户易用性、TPS、经济模型、体系结构等方面会更合理一些。更优秀的加密与签名算法,留给专业的密码学家去设计和论证。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。