Skip to content

ColinRitman/xfgwin

Repository files navigation

XFG STARK Proof Implementation

Rust License: MIT

A comprehensive implementation of STARK (Scalable Transparent Argument of Knowledge) proofs with cryptographic-grade security, memory safety, and zero-cost abstractions.

πŸš€ Features

Core Components

  • Field Arithmetic: Type-safe field element operations with constant-time implementations
  • Polynomial Operations: Efficient polynomial arithmetic and evaluation
  • STARK Proof System: Complete STARK proof generation and verification
  • Type System: Comprehensive type definitions for all cryptographic operations

Security Features

  • Constant-time cryptographic operations
  • Secure secret management with zeroization
  • Type-level prevention of timing attacks
  • Memory safety through Rust's type system
  • Comprehensive error handling with Result types

Performance Features

  • Zero-cost abstractions for all operations
  • Optimized field arithmetic implementations
  • Efficient polynomial evaluation algorithms
  • Minimal runtime overhead for type safety

πŸ“¦ Installation

Prerequisites

Building

# Clone the repository
git clone https://github.com/ColinRitman/xfgwin.git
cd xfgwinter

# Build the project
cargo build

# Run tests
cargo test

# Run benchmarks
cargo bench

πŸ—οΈ Project Structure

xfgwin/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ lib.rs              # Main library entry point
β”‚   β”œβ”€β”€ types/              # Type system definitions
β”‚   β”‚   β”œβ”€β”€ mod.rs          # Type system module
β”‚   β”‚   β”œβ”€β”€ field.rs        # Field element types
β”‚   β”‚   β”œβ”€β”€ polynomial.rs   # Polynomial types
β”‚   β”‚   β”œβ”€β”€ stark.rs        # STARK proof types
β”‚   β”‚   └── secret.rs       # Secret management types
β”‚   β”œβ”€β”€ field/              # Field arithmetic implementations
β”‚   β”œβ”€β”€ polynomial/         # Polynomial arithmetic implementations
β”‚   β”œβ”€β”€ stark/              # STARK proof implementations
β”‚   └── utils/              # Utility functions
β”œβ”€β”€ tests/                  # Integration tests
β”œβ”€β”€ benches/                # Performance benchmarks
└── docs/                   # Documentation

πŸ”§ Usage

Basic Field Operations

use xfg_stark::types::field::PrimeField64;

// Create field elements
let a = PrimeField64::new(5);
let b = PrimeField64::new(3);

// Perform arithmetic operations
let sum = a + b;
let product = a * b;
let inverse = a.inverse().unwrap();

// Constant-time operations
let ct_sum = a.add_constant_time(&b);
let ct_product = a.mul_constant_time(&b);

Polynomial Operations

use xfg_stark::types::polynomial::FieldPolynomial;
use xfg_stark::types::field::PrimeField64;

// Create polynomials
let coeffs = vec![PrimeField64::new(1), PrimeField64::new(2), PrimeField64::new(1)];
let poly = FieldPolynomial::new(coeffs);

// Evaluate polynomial
let result = poly.evaluate(PrimeField64::new(3));

// Polynomial arithmetic
let poly2 = FieldPolynomial::constant(PrimeField64::new(1));
let sum = poly.add(&poly2);
let product = poly.multiply(&poly2);

STARK Proof Components

use xfg_stark::types::stark::{StarkProof, ExecutionTrace, Air};
use xfg_stark::types::field::PrimeField64;

// Create execution trace
let trace = ExecutionTrace {
    columns: vec![vec![PrimeField64::new(1), PrimeField64::new(2)]],
    length: 2,
    num_registers: 1,
};

// Create AIR constraints
let air = Air {
    constraints: vec![],
    transition: TransitionFunction {
        coefficients: vec![vec![PrimeField64::new(1)]],
        degree: 1,
    },
    boundary: BoundaryConditions { constraints: vec![] },
    security_parameter: 128,
};

// Create STARK proof
let proof = StarkProof {
    trace,
    air,
    commitments: vec![],
    fri_proof: FriProof {
        layers: vec![],
        final_polynomial: vec![PrimeField64::new(1)],
        queries: vec![],
    },
    metadata: ProofMetadata {
        version: 1,
        security_parameter: 128,
        field_modulus: "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47".to_string(),
        proof_size: 1024,
        timestamp: 1234567890,
    },
};

πŸ§ͺ Testing

Run All Tests

cargo test

Run Specific Test Categories

# Field arithmetic tests
cargo test field

# Polynomial tests
cargo test polynomial

# STARK proof tests
cargo test stark

# Secret management tests
cargo test secret

Run Benchmarks

cargo bench

πŸ“š Documentation

API Documentation

Generate and view API documentation:

cargo doc --open

Mathematical Background

The implementation is based on:

  • STARK Proofs: Scalable Transparent Arguments of Knowledge
  • Field Arithmetic: Finite field operations for cryptographic security
  • Polynomial Commitment Schemes: Efficient polynomial evaluation and commitment
  • FRI Protocol: Fast Reed-Solomon Interactive Oracle Proof

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

πŸ“„ License

This project is licensed under MIT License - see the LICENSE file for details.

Acknowledgments

πŸ”— Links


2025 Β© Elderfire Privacy Group

2025 Β© USEXFG

Winter is coming

About

Winterfell XFG-STARK lib for Fuego L1 collateral burn proofs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages