How Fractal Vote Works: A Deep Dive

Fractal Vote introduces a novel approach to community decision-making by leveraging Bitcoin's native scripting capabilities, enhanced by OP_CAT on the Fractal network.

This overview explains how the system works and what makes it unique.

Core Architecture

At its heart, Fractal Vote utilizes Bitcoin's UTXO model combined with OP_CAT to create a secure, flexible voting mechanism.

Each user interacts with two types of unique addresses: a Lock Address for securing FB tokens, and a Time Lock Address for the cooling period. This dual-address system, powered by OP_CAT, enables a level of programmability previously impossible on Bitcoin.

The Four-Step Process

1. Lock: Smart Contract Creation

When you lock your FB, the system uses OP_CAT to generate a unique Lock Address derived from your wallet address. This Lock Address contains a smart contract that enforces the voting rules.

OP_CAT enables the contract to concatenate transaction data, allowing for complex validation logic while maintaining Bitcoin's security model.

Your FB tokens are secured in this contract, with each FB representing one vote.

While the original concept for Fractal's voting system was proposed by Lorenzo on an X article, the current implementation has been streamlined to focus on secure FB locking mechanisms, without requiring snapshots. The emphasis is on ensuring security in the locking process while maintaining efficient vote tracking. On-chain proofs of the vote history are posted for verifiability.

2. Vote: Signature-Based Verification

Vote leverages Bitcoin's signature scheme combined with OP_CAT's enhanced scripting capabilities.

When you vote, you sign a message with your wallet (such as UniSat or OKX). The system verifies two key elements: your signature to confirm your identity, and your available voting power based on your previously locked FB amount. Since the locking contract has already verified your FB amount using OP_CAT during the initial lock, no additional on-chain transactions are needed for voting.

This is why voting has no transaction fees after you lock your FB — it's purely signature-based verification.

3. Unlock: Time-Locked Scripts

The unlock process creates a Time Lock Address using OP_CAT to implement a sophisticated time-locking mechanism. When you initiate an unlock, your FB moves to this address where it must remain for 21,000 blocks (approximately 7 days).

The 7-day (21,000 block) cooling period during unlocking serves an important purpose in maintaining voting integrity. When a vote begins, we need to ensure that the same FB can't be used to vote multiple times through quick unlock-lock cycles. Since most voting periods are set to end within 7 days, the cooling period effectively prevents any potential double-voting scenarios.

For example, let’s say Alice has 100 FB locked.

  • Alice can initiate an unlock of their FB at any time. However, upon initiating the unlocking, she will have to wait 7 days before claiming her FB back. This is will ensure that no user can use the same amount of FB to vote multiple times on a single proposal.

  • Alice can vote on multiple proposals at the same time, if there are a few voting proposals concurrently running. She can use her locked voting power to vote on any number of proposals.

By using simple yet effective mechanisms, each FB can only be used once per proposal, maintaining the fairness of the voting process without requiring complex tracking systems.

The script uses OP_CAT to concatenate time verification data with transaction outputs, ensuring the cooling period is properly enforced.

4. Claim: Final Verification

After the cooling period, the final claim process uses OP_CAT to verify that both the time requirement has been met and the claimer is the original owner.

This verification concatenates multiple pieces of data: the original lock information, time parameters, and ownership proof, providing a secure way to return the FB to your control.

Use of OP_CAT in Fractal Vote

The entire system is implemented using native Bitcoin script, enhanced by OP_CAT's concatenation capabilities. Here's what happens under the hood:

  • Lock Contract: Uses OP_CAT to combine user public keys with lock parameters, creating a unique and secure locking script that verifies the amount of FB being locked

  • Time Lock Implementation: When unlocking, employs OP_CAT to create and verify time-locked scripts that enforce the 7-day cooling period

  • Claim Validation: Uses OP_CAT to combine validation elements for secure release of funds after the cooling period

All transactions and voting history are maintained at a dedicated voting site after launch.

Security Considerations

The use of OP_CAT in this system provides several security benefits:

  • Verifiable Operations: All contract operations are verifiable

  • Unique Addresses: Each user's Lock and Time Lock addresses are uniquely derived

  • Signature Verification: All votes require cryptographic signatures

  • Time Lock Enforcement: Cooling period is enforced at the script level

  • On-Chain Verification: All operations are verifiable on the Fractal blockchain

Getting Started

Remember, while the system is sophisticated under the hood, the user experience remains straightforward: Lock, Vote, Unlock, and Claim.

This simplicity, combined with the power of OP_CAT and Bitcoin script, creates a robust and user-friendly voting system for the Fractal community, paving the way forward for community-driven decision making.

Follow us on X, Discord, Telegram to be notified when Fractal Vote is live!

Previous
Previous

DeTrading: Trustless Trading with Atomic Swaps on Fractal

Next
Next

BitGuard: Bringing Push-Button Formal Verification to BitVM