You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python可视化比特币公钥在椭圆曲线上的位置?

需求:用Python可视化secp256k1椭圆曲线及公钥点

背景与现有基础

我理解比特币的私钥是椭圆曲线上的一个标量,公钥是曲线上的点(对应x、y坐标),所以具备编程能力的人应该可以轻松实现可视化。我已经能绘制普通的离散点,示例代码如下:

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = [3, 1, 2, 5]
y = [5, 2, 4, 7]

plt.plot(x, y, 'r*')
plt.axis([0, 6, 0, 20])

for i, j in zip(x, y):
    plt.text(i, j+0.5, '({}, {})'.format(i, j))

plt.show()

目标需求

现在我需要针对比特币使用的secp256k1椭圆曲线,实现类似的可视化功能——在曲线上展示公钥对应的x、y坐标点。我的核心目标是通过可视化,直观找出两个前缀8位相同的比特币地址对应的公钥之间的关系。

我已经学习了标量乘法的相关内容,现在需要有人演示如何用Python在椭圆曲线上绘制公钥点。

参考代码

我找到了椭圆曲线基础绘图示例:

import numpy as np
import matplotlib.pyplot as plt

def main():
    a = -1
    b = 1

    y, x = np.ogrid[-5:5:100j, -5:5:100j]
    plt.contour(x.ravel(), y.ravel(), pow(y, 2) - pow(x, 3) - x * a - b, [0])
    plt.grid()
    plt.show()

if __name__ == '__main__':
    main()

我正在学习Python,希望能实现类似下图的效果:
secp256k1曲线及公钥点示例
在绘制出的secp256k1曲线上展示两个公钥点。


内容的提问来源于stack exchange,提问作者terry franklin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:30:51