链眼社区:专注于区块链安全,区块链数据分析, 区块链信息整合,区块链技术服务和区块链技术咨询。

使用 golang 将 BLS 的公钥转换成仿射坐标
SavourDao
2023-03-01 10:29:52

在 Go 中,可以使用 BLS12-381 曲线上的点表示为 bls12_381.G1Point 或 bls12_381.G2Point 类型的结构体。要将 BLS 公钥转换为仿射坐标,可以使用 bls12_381.G2Point 的 ToAffine() 方法。以下是一个示例代码:

package main

import (
    "fmt"
    "github.com/ethereum/go-ethereum/crypto/bls12-381"
)

func main() {
    // 假设已经有一个 BLS 公钥 pubkey,类型为 bls12_381.G2Point
    pubkey := bls12_381.G2Point{}

    // 将公钥转换为仿射坐标
    affinePubkey := pubkey.ToAffine()

    // 输出仿射坐标的 X 和 Y 值
    fmt.Printf("Affine pubkey: (%v, %v)\n", affinePubkey.X, affinePubkey.Y)
}

上面的代码将 BLS 公钥 pubkey 转换为仿射坐标,并输出了 X 和 Y 值。请注意,如果公钥已经是仿射坐标,则可以直接使用 pubkey 的 X 和 Y 字段来访问它们的值,无需进行转换。

合作伙伴