公钥

以太坊公钥是一个椭圆曲线上的_点_ point,意思是它是一组满足椭圆曲线方程的X和Y坐标。

简单来说,以太坊公钥是两个数字,并联在一起。这些数字是通过一次单向的计算从私钥生成的。这意味着,如果你拥有私钥,则计算公钥是微不足道的。但是你不能从公钥中计算私钥。

MATH即将发生!不要惊慌。如果你发现难以阅读前一段,则可以跳过接下来的几节。有很多工具和库会为你做数学。

公钥使用椭圆曲线乘法和私钥计算,这是不可逆的:K = k * G,其中_k_是私钥,G_是一个称为_generator point_的常数点,_K_是结果公钥。如果你知道_K,那么称为“寻找离散对数”的逆运算就像尝试所有可能的_k_值一样困难,也就是蛮力搜索。

简单地说:椭圆曲线上的算术不同于“常规”整数算术。点(G)可以乘以整数(k)以产生另一点(K)。但是没有_除法_这样的东西,所以不可能简单地用公共密钥K除以点G来计算私钥k。这是公钥密码技术和加密货币中描述的单向数学函数。

Tip

椭圆曲线乘法是密码学家称之为“单向”函数的一种函数:在一个方向(乘法)很容易完成,而在相反方向(除法)不可能完成。私钥的所有者可以很容易地创建公钥,然后与世界共享,因为知道没有人能够反转该函数并从公钥计算私钥。这种数学技巧成为证明以太坊资金所有权和合同控制权的不可伪造和安全数字签名的基础。

在我们演示如何从私钥生成公钥之前,我们先来看一下椭圆曲线加密。