mirror of
https://github.com/luxfi/utxo.git
synced 2026-10-30 15:13:57 +00:00
33 lines
1.4 KiB
Go
33 lines
1.4 KiB
Go
// Copyright (C) 2019-2025, Lux Industries, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
// Package bls12381fx provides BLS12-381 aggregate-signature verification for
|
|
// attestation / quorum-object UTXOs on X-Chain.
|
|
//
|
|
// This Fx is intentionally SPECIALIZED and does NOT support normal retail
|
|
// spends. Its purpose is to encode quorum decisions as on-chain records:
|
|
//
|
|
// - Validator attestations (e.g. "this block hash was signed by >= N/M validators")
|
|
// - Light-client checkpoints
|
|
// - Cross-chain message commitments that carry a BLS aggregate sig
|
|
// - Quorum-signed oracle reports
|
|
//
|
|
// Design constraints vs value-transferring Fx:
|
|
//
|
|
// - No TransferOutput / TransferInput types. Attempts to use this Fx
|
|
// for VerifyTransfer return ErrNotTransferable by design.
|
|
// - The only output type is AttestationOutput, which is write-only.
|
|
// Once created, it becomes a permanent record.
|
|
// - Credentials carry a single 96-byte aggregated signature and a signer
|
|
// bitmap. No per-signer signatures.
|
|
//
|
|
// Wallets and retail frontends MUST NOT expose this Fx for user spend flows.
|
|
// Its use is restricted to consensus-adjacent operations (see ~/work/lux/warp
|
|
// for cross-chain attestation semantics, ~/work/lux/consensus for validator
|
|
// quorum signing).
|
|
//
|
|
// Sizes (BLS12-381 on luxfi/crypto/bls):
|
|
// - Compressed G1 public key: 48 bytes
|
|
// - Compressed G2 aggregate signature: 96 bytes
|
|
package bls12381fx
|