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

关于以太坊账户理解

私钥-公对 一个以太坊账户就是一个 SECP256K1 密钥对。"SECP256K1"只是我们使用特定椭圆曲线名称。...这个曲线名称或者规范对于理解密钥对工作原理并不重要,还有很多不同名称参数曲线。 一个密钥对包含一个私钥一个公。私钥需要保密,通过它可以访问账户。...,它是椭圆曲线一个点,具有 x 坐标、y 坐标,如(0, 1), (42, 138), 或者(34876, 4893)。...不过这些都不是曲线。 要通过私钥找到这个点,你需要对使用基点`G`[2]标量(私钥)执行一个椭圆曲线序列乘法[3]运算。结果会得到另一个点,就是你。...公是底层椭圆曲线x y 坐标对应点(此处:SECP256K1,与比特币使用相同)。 以太坊地址是序列化公截断 Keccak-256 哈希。

77840

区块链数据结构

是一个椭圆曲线点,可以表示为(xy)坐标形式,在比特币中公是一个65字节字节数组,由04开头,后面跟随64字节x坐标64字节y坐标组成 对公进行哈希运算。...公是一个椭圆曲线点,可以表示为(xy)坐标形式,在比特币中公是一个65字节字节数组,由04开头,后面跟随64字节x坐标64字节y坐标组成 计算交易哈希值。...签名是一个由两个大整数rs组成序列,通常表示为一个64字节字节数组,签名用于验证交易真实性完整性 通过公Q、交易哈希值签名验证交易真实性完整性。...具体来说就是通过公Q计算出椭圆曲线点P,然后通过签名中rs可以计算出椭圆曲线点Q,如果点Q点P相等,则交易验证通过,否则交易验证失败 以下是一个使用Go语言实现椭圆曲线加密算法对比特币交易进行签名验证示例代码...公是一个椭圆曲线点,可以表示为(xy)坐标形式,在比特币中公是一个65字节字节数组,由04开头,后面跟随64字节x坐标64字节y坐标组成 选择一个私钥d2。

49870
您找到你想要的搜索结果了吗?
是的
没有找到

SM2 (含SM3、SM4)国密算法工具QT版,彻底搞懂国密算法使用

如果是非压缩公,则xByB都需要输入,分别填非压缩公前32字节后32字节。 其实说白点儿xByB合起来才是一串完整非压缩公,只是把公分成了两段罢了。...至于为啥公要搞成x,y两段,是因为公椭圆曲线一个点,一个点包含(xy)两个分量,这才确定了一个坐标。 为啥给定了x就能求得y,给定y能否求得x呢?...当然了,根据椭圆曲线方程:y^2=x^3+ax+b, a,b都是常数是已知,给了x就能得到y,给定y就能得到x。有时候压缩公别人会给02开头,有时候会给03开头。...理论上方程式各种参数组合可以是任意,但是在密码学中,为了安全,系统预先定义了一系列曲线,称为命名曲线(name curve),比如secp256k1就是一个命名曲线。...那么破解一个228字节椭圆曲线需要煮沸地球上所有水能量。如果RSA要达到一个同样安全水平,你需要一个2,380字节

4.5K20

SM2 (含SM3、SM4)国密算法工具QT版,彻底搞懂sm2算法使用

至于为啥公要搞成x,y两段,是因为公椭圆曲线一个点,一个点包含(xy)两个分量,这才确定了一个坐标。 为啥给定了x就能求得y,给定y能否求得x呢?...当然了,根据椭圆曲线方程:y^2=x^3+ax+b, a,b都是常数是已知,给了x就能得到y,给定y就能得到x。有时候压缩公别人会给02开头,有时候会给03开头。...国密sm2使用是固定值”1234567812345678″。 a,b,xGyG是椭圆曲线算法选定椭圆曲线参数。后面有说明。这几个都是个固定值。 xAyA这个就是公前后两段。...理论上方程式各种参数组合可以是任意,但是在密码学中,为了安全,系统预先定义了一系列曲线,称为命名曲线(name curve),比如secp256k1就是一个命名曲线。...那么激活成功教程一个228字节椭圆曲线需要煮沸地球上所有水能量。如果RSA要达到一个同样安全水平,你需要一个2,380字节

1.5K10

以太坊密码学

不要自己编写代码来生成随机数或者用你编程语言随机生成一个简单随机数。 公 以太坊公椭圆曲线一个点,一个满足椭圆曲线等式(xy)坐标。...它由两个从私钥生成数字组成,并且只能单向生成,这意味着,如果你有一个私钥,就可以计算出公,但是你不能从公计算出私钥。...公是私钥通过椭圆曲线乘法得来,是不可逆: ,这里 是私钥,G 是常数点(生成点), 是公椭圆曲线乘法(×)与普通乘法不同。...椭圆曲线密码学 椭圆曲线密码学是非对称,基于离散算法问题密码学,这种离散算法问题由椭圆曲线加法乘法来表示。...》作者 -椭圆曲线- 以太坊使用一个特定椭圆曲线一组数学常数,标准定义为secp256k1。

1.1K20

区块链系统探索之路:钱包地址实现

在前面章节我们介绍过,私钥是一个随机数,而公是将椭圆曲线G点与私钥对应数字进行“乘法”后所得结果。有了公私钥,我们就很容易确认一笔交易合法性。...首先假设我们有一个私钥记为N, 让它与椭圆曲线G点做 “乘法”操作后得到公P,因为公依然是椭圆曲线一点,因此P由x,y两个坐标组成,他们分别是32字节大小数值,我们需要对这两个数值进行预处理...在前面章节中我们看到,在求余模式下, -x % p 等价于 (p-x) % p,因此基于有限域椭圆曲线,如果点(x ,y)在曲线上,那么点(x , p - y)同样在曲线上。...同时有限域元素个数p我们都选取为素数,因此如果y是偶数,那么p - y就是奇数,基于这个特性,给定椭圆曲线上一点(x, y),我们其实只需要存储x值,然后确定y是奇数还是偶数即可,因为我们可以通过x...计算出y或者p - y,因此给定曲线上一点,在压缩模式下,它预处理步骤如下: 1,选取数组起始字节,如果y是偶数,那么起始字节取值0x02,要不然取值0x03 2,将x值转换成32个字节数组,以大端模式存储

20540

编出个区块链:数据结构序列化

前面我们了解了很多数据结构,例如有限群,椭圆曲线,公,私钥等,相关数据在应用时都需要通过网络进行数据传输,因此相关数据结构需要进行序列化。...SEC,由于椭圆曲线关于x轴对称,因此给定一个x坐标,它最多对应两个y坐标,这两个y互为相反数。...于是给定椭圆曲线上一点(x,y),压缩形态SEC生成步骤为: 1,如果y是奇数,那么以0x03开头,如果是偶数则以0x02开头 2,添加32字节x坐标值 于是相应实现代码就是: def sec(self...既然节省掉y,那么接收方收到数据后就需要还原它,还记得椭圆曲线格式为 y ^ 2 = x^3 + a * x + b,我们知道了x值,那意味着知道了y平方值,现在我们需要计算y值。...Format),它序列化步骤如下: 1,如果是主网私钥,以0x80开头,如果是测试网以0xef开头 2,将私钥转换为大端字节数组进行编码 3,如果公使用压缩SEC格式,那么在末尾添加0x01 4,

49340

椭圆曲线加密与NSA后门考古

根据mathworld中给出椭圆曲线定义,描述椭圆曲线函数可以定义如下: y^2 = x^3 + a*x + b 其中a、b是曲线特征参数,决定了椭圆曲线形状。...举个例子,对于椭圆曲线y^2 ≡ x^3 - 7x + 10 (mod p),当p值分别是19、97、127、487时,其在坐标轴上图像如下: ECD 注意这些点集合在直角坐标中是关于直线y=p...举例来说,椭圆曲线y^2 ≡ x^3 - x + 3 (mod 127),且P=(16, 20),Q=(41,120)。...例如对于椭圆曲线*y^2 ≡ x^3 + 2x + 3 (mod 97)*点 P=(3,6),在计算乘积时发现: 0P = 0 1P = (3,6) 2P = (80,10) 3P = (80,87)...已知私钥dG我们可以很容易通过乘法计算出公H,但是反过来从公计算私钥却要面临离散对数问题。

98450

区块链加密技术

非对称加密算法中暗码体制依据其所依据问题一般分为三类:大整数分化问题、离散对数问题椭圆曲线问题。 1000.jpg 第一,引进区块链加密技能 加密算法一般分为对称加密非对称加密。...离散对数问题类是指基于离散对数困难性强单向哈希函数一种非对称分布式加密算法。椭圆曲线是指使用平面椭圆曲线来计算一组非对称特殊值,比特币就采用了这种加密算法。...比特币是私钥通过Secp256k1椭圆曲线算法生成65字节随机数。公可用于生成比特币交易中使用地址。...生成进程是公先通过SHA256RIPEMD160哈希处理,生成20字节摘要成果(即Hash160成果),再通过SHA256哈希算法Base58转化,构成33个字符比特币地址。...公生成进程是不可逆,即私钥不能从公推导出来。比特币私钥通常存储在比特币钱包文件中,其间私钥最为重要。丢掉私钥意味着丢掉相应地址所有比特币财物。

1.8K40

区块链核心技术-密码学

这是以太坊黄皮书关于钱包(私钥、公、地址)描述,仅仅 2 行文字。主要讲解私钥通过 ECDSA(椭圆曲线签名算法)推导出公,继而经过 Keccak 单向散列函数推导出地址。...从公推导出地址 (40 位 16 进制字符 / 160 比特 / 20 字节) 这是从ethereumjs/keythereum中剥离出来 JavaScript 代码,关于黄皮书上公式具体实现...当我们调用 secp256k1.publicKeyCreate 获得公时,实际使用是非对称加密中椭圆曲线算法。通过该算法可以从私钥推导出公,这是一个不可逆过程:K = k * G。...这就是椭圆曲线算法上离散对数问题,也是为什么你可以分享地址(或公)给别人,但不能暴露自己私钥。...在椭圆曲线中, 点相加等同于从该点画切线找到与曲线相交另⼀点, 然后映射到 x 轴。下图展示了从曲线上获得 G、2G、4G、8G 几何操作。 什么是哈希算法?

11.8K5345

bip32(比特币改进协议)

他们支持通过使用钱包加密功能隐藏他们私钥并且不公开密码,但这样“中性”钱包也失去了生成公权力。 确定性钱包不需要这种频繁备份,椭圆曲线数学允许可以在不显示私钥情况下计算公方案。...详细说明:密钥分散 约定 在本文其余部分,我们假设使用Bitcoin公密码术,即使用由secp256k1(http://www.secg.org/sec2-v2.pdf)定义字段和曲线参数椭圆曲线加密...serP(P):使用SEC1压缩格式将坐标对P=(xy)串行化为字节序列:(0x02或0x03)|| ser256(x),其中头字节取决于省略y坐标的奇偶校验。...叶节点链码被忽略,只有它们嵌入私钥或公是相关。由于这种结构,知道扩展私钥允许重构所有后代私钥,并且知道扩展公允许重建所有后代非硬化公。...(如果主密钥为0x00000000) 32字节:链码 33字节:公或私钥数据(公serP(K),私钥0x00 || ser256(k)) 可以通过首先添加32个校验位(从双SHA-256校验派生

1.5K20

这 HTTPS,真滴牛逼!

可以看到,整个密钥协商过程中,小红小明公开了 4 个信息:P、G、A、B,其中 P、G 是算法参数,A B 是公,而 a、b 是双方各自保管私钥,黑客无法获取这 2 个私钥,因此黑客只能从公...),此时小红公私钥为 Q1 d1,小明公私钥为 Q2 d2; 双方交换各自,最后小红计算点(x1,y1) = d1Q2,小明计算点(x2,y2) = d2Q1,由于椭圆曲线上是可以满足乘法交换结合律...G 私钥计算出服务端椭圆曲线,这个会公开给客户端。...至此,双方都有对方椭圆曲线、自己椭圆曲线私钥、椭圆曲线基点 G。...于是,双方都就计算出点(xy),其中 x 坐标值双方都是一样,前面说 ECDHE 算法时候,说 x 是会话密钥,但实际应用中,x 还不是最终会话密钥。

1.5K10

椭圆曲线密码学以太坊中椭圆曲线数字签名算法应用

理论上,这里椭圆曲线所选择几何方程是固定,它可以表示为: y^2 = x^3 + ax + b 上式中ab都是普通标量参数,以上方程所绘出几何曲线如下图所示,其中红色曲线表示(a, b)...其次,Alice要创建一对,即一个私钥一个公。私钥来自于[1, n-1]范围内一个随机数: ? 公如下,它来自私钥基点椭圆曲线点倍积: ?...计算 z,来自 e最左边L_n个bits。 计算参数 w: ? 计算两个参数 u1  u2: ? 计算(x1, y1),如果(x1, y1)不是一个椭圆曲线点,则验证失败: ?...ecdsa.PublicKey结构体通过持有一个elliptic,Curve接口实现体,可以提供椭圆曲线所有属性,相关操作;PublicKey成员(XY),对应于算法理论中公 ?  ...具体到变量类型上,Address类型是一个长度为20 bytes字符串,而椭圆曲线数字签名中,原生含义应该是曲线一个点坐标(X, Y),那么它们之间必然存在格式上相互转换。

3.9K40

GaiaWorld:加密技术在区块链中意义

二是公可向其他人公开,甚至人人可获取,私钥则保密,其他人无法通过该公推算出相应私钥。利用此种算法生成私钥,目前所知实际上是无法从公反向破解出私钥。...但找到这样算法可能性是非常小。 ECC:椭圆曲线算法。在1985年由Neal KoblitzVictor Miller分别独立提出。...两者对比之下,各有千秋,但对于追求更高安全性区块链来说,大多数公链还是会选择椭圆曲线算法。 加密算法应用场景 非对称加密在区块链中主要应用于信息加密、数字签名登录认证。...比如比特币以太坊均使用是ECC椭圆体系加密。 椭圆曲线加密算法也是Gaia选择——一个指数级安全算法。 GaiaWorld使用椭圆曲线算法生成公私钥,选择是curve25519曲线。...签名过程不依赖随机数生成器,不依赖hash函数防碰撞性,没有时间通道攻击问题,并且签名很小,只有64字节,公也很小,只有32字节

1.5K00

常见几种加密算法Python实现

在公开密钥加密电子商业中RSA被广泛使用。它被普遍认为是目前最优秀方案之一。RSA是第一个能同时用于加密和数字签名算法,它能够抵抗到目前为止已知所有密码攻击。...Curve Cryptography),ECC加密算法是一种公加密技术,以椭圆曲线理论为基础。...利用有限域上椭圆曲线点构成Abel群离散对数难解性,实现加密、解密和数字签名。将椭圆曲线加法运算与离散对数中模乘运算相对应,就可以建立基于椭圆曲线对应密码体制。...获取椭圆曲线阶 """ x1 = x0 #-px坐标 y1 = (-1*y0)%p #-py坐标 tempX = x0...x0,y0,x1,y1 def get_graph(a, b, p): """ 输出椭圆曲线散点图 """ x_y = [] # 初始化二维数组 for

3.5K30

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

具体分为以下三个步骤: 创建随机私钥 (64 位 16 进制字符 / 256 比特 / 32 字节) 从私钥推导出公 (128 位 16 进制字符 / 512 比特 / 64 字节) 从公推导出地址...(40 位 16 进制字符 / 160 比特 / 20 字节) 以太坊黄皮书上关于钱包(私钥、公、地址)描述如下: 椭圆曲线密码学 加密通常分为对称加密与非对称加密。...椭圆曲线原理 椭圆曲线由满足下列形式方程所有点组成: y 2 = x 3 + a x + b y^2=x^3+ax+b y2=x3+ax+b 其中 4 a 3 + 27 b 2 ≠ 0 4a^...因此,椭圆曲线密码学就利用了这一原理,在给定基准点 P P P 情况下,随机生成私钥 x x x ,再利用椭圆曲线快速计算出公 X X X 。...因此,我们将椭圆曲线定义转化为: y 2 ≡ x 3 + a x + b ( m o d p ) y^2\equiv x^3+ax+b\qquad (mod\quad p) y2≡x3+ax+b(modp

3.3K20
领券