首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自己动手写区块链-公钥和私钥

自己动手写区块链-公钥和私钥

作者头像
ImportSource
发布2018-10-23 11:20:43
1.3K0
发布2018-10-23 11:20:43
举报
文章被收录于专栏:ImportSourceImportSourceImportSource

在区块链中,我们需要用到公钥和私钥。在之前的自己动手写区块链-发起一笔交易(Java版)中,我们就使用了公钥和私钥。其中公钥是钱包的地址,私钥则类似钱包的密码。

最常用到的公开秘钥算法无疑是RSA。比如ssh连接的公钥和私钥,你总会看到RSA。

然而在区块链中人们都会去使用另一个算法:椭圆曲线算法。

椭圆曲线算法

大约是在历史上的某一天,有人发现数学函数里的椭圆曲线非常适合做成一个非对称加密算法。

这个函数有个特点:由输入算输出很容易,但通过输出反推输入则几乎不可能。

发现没?椭圆曲线就是一个二元方程,并且一个变量为2阶,另一个变量为3阶。

ECDSA

在区块链中,用的最多的就是ECDSA(Elliptic Curve+DSA)。ECDSA是通过椭圆加密算法对DSA(数字签名算法)的模拟。ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。

我们在自己动手写区块链-发起一笔交易(Java版)用的也是ECDSA。

贴代码:

JDK7之后,增加了对ECDSA的实现,你看到上面的代码就是使用的KeypairGenerator来获取的的ECDSA实例,然后生成的公钥和私钥。

对了,比特币中也是使用的椭圆曲线,只不过它用的是SECP256k1。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ImportSource 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档