exSat Network
  • 🔗Important Links
  • 🌌Our Approach
    • What is exSat
      • exSat’s Docking Layer Approach
      • The Paradigm Shift of the Bitcoin Economic Ecosystem
      • Challenges Addressed by exSat
    • Architecture
      • Data Consensus Protocol
        • Network launch phases
        • Decentralized UTXO index
        • Synchronizers and Validators
        • Hybrid Consensus Mechanism
        • Decentralized execution
      • Decentralized Asset Custody (Coming soon)
      • Enhancing the Bitcoin Ecosystem with Smart Contract Capabilities
      • Expanding Possibilities with Rollups
    • $XSAT Tokenomics
      • Total Supply and Issuance
      • Rewards to Synchronizers and Validators
  • 🛠️Guides of Data Consensus
    • Quick Start
    • UTXO Initialization
      • Data preparation
      • Analysis on the UTXO data tobe uploaded
      • Verify the data uploaded to exSat
    • Run a Sychronizer
      • Requirements for Synchronizers
      • Rewards for synchronizers
      • Run as Synchronizer
        • Run from source code
        • Run with Docker
    • Run a BTC Validator
      • Requirements and rewards for BTC Validators
      • Run as BTC validator
        • Run from source code
        • Run with docker
    • Run a XSAT Validator
      • Run as XSAT Validator
        • Run from source code
        • Run with docker
      • Run multiple XSAT Validators
    • Others
      • Operation references
        • Preparation Before You Start
          • Account Preparation
          • Run a BTC node
          • Environment requirements
          • Prerequisites
        • Synchronizer operations
          • Create New Synchronizer Account
          • Synchronizer Registration
          • Execute the synchronizer client
          • Revote For Consensus
          • Change Reward Address
          • Check and claim rewards for synchronizer
          • Update to new Docker version for Synchronizer
        • Validator operations
          • Create New BTC Validator Account
          • Create New XSAT Validator Account
          • Stake for Validator and claim rewards
          • Change Stake Address
          • Change Commission Address
          • Change Commission Ratio
          • Configure Display Information for Your Validator Account
          • Execute the validator client
          • Update to new Docker version for Validator
        • Common operations
          • Import from seed phrase
          • Import from Private Key
          • Set BTC RPC Node
          • Refill BTC for Gas Fees
          • Export private key
          • Remove Your Account
          • Upgrade to new version
          • View Logs
          • Environment variables
  • 👨‍💻Developer Guides
    • Quick Start
    • Native Layer Developer Guides
      • exSat consensus contracts
        • Pool Register Contract
        • UTXO Management Contract
        • Reward Distribution Contract
        • Block Consensus Contract
        • Block Synchronization Contract
        • Validator Management Contract
        • Staking Contract
      • Run exSat native layer RPC Node
    • Trustless Bridge for Native Tokens
    • Trustless Bridge For ERC20 Tokens
    • Brief Intro to the Cross-Chain Communication
    • Brief Intro to the Custodian Bridge Services
    • Custodian Bridge for Non-BTC Tokens
    • Custodian Bridge for BTC
  • 🖥️User Guides
    • Wallet Setup
    • Bridge Your Assets
    • Earn Rewards via BTC Staking
    • Explore Our Ecosystem
  • Popular Token Contract Addresses
  • Set Up a Safe Wallet
  • 📚Reference
  • 📦Cutodian Guides
  • 🔐Security Reports
    • Audit Report From Blocksec
    • Audit Report From CertiK
  • 🔡Terms and Conditions
    • Terms Of Service
    • Privacy Policy
  • 🎁PR & Press
  • ☎️Contact US
Powered by GitBook
On this page
  • BTC Theoretical Output
  • Unusable Genesis Block
  • UTXO Dataset
  • Bitcoin Code Bug Burns
  • Tools & Data
  1. Guides of Data Consensus
  2. UTXO Initialization

Analysis on the UTXO data tobe uploaded

We exported data using three methods:

  • bitcoin-utxo-dump

  • electrumX

  • rusty-blockparser

The first two were primarily used for UTXO export and comparison at block 839,999, while the latter was used to calculate burned BTCs. The results are as follows:

Method

Total BTC

UTXO Count

Theoretical

19,687,500.00000000

-

bitcoin-utxo-dump

19,687,280.49271483

176,944,794

electrumX

19,687,280.49271483

176,944,794

The discrepancy between the theoretical output and the tool-exported quantity is primarily due to:

  1. The 50 BTC produced in the genesis block cannot be used. Tools ignore processing of block 0.

  2. Bitcoin code bugs resulted in coinbase outputs less than the theoretical value, totaling 128.95502904 BTC.

  3. OP_RETURN burns, totaling 40.55225613 BTC.

These factors account for a total of 219.50728517 BTC.

Theoretical value = Genesis block + Code bug burns + OP_RETURN burns + Exported data

19,687,500 = 50 + 128.95502904 + 40.55225613 +19,687,280.49271483

This confirms that our exported data is reasonable.

Below, we detail the source of each data point.

BTC Theoretical Output

  • 1st Halving: 210,000 × 50 = 10,500,000 BTC

  • 2nd Halving: 210,000 × 25 = 5,250,000 BTC

  • 3rd Halving: 210,000 × 12.5 = 2,625,000 BTC

  • 4th Halving: 210,000 × 6.25 = 1,312,500 BTC

Total BTC generated up to block 839,999: 10,500,000 + 5,250,000 + 2,625,000 + 1,312,500 = 19,687,500

Unusable Genesis Block

UTXO Dataset

Bitcoin Code Bug Burns

  1. Duplicate txid coinbase, fixed in BIP30: 100 BTC

  2. Block 124724 intentionally claimed 0.00000001 BTC less, but accidentally didn't claim fees: 0.01000001 BTC

  3. Blocks 162705 and 169899 bug: 9.66184623 BTC

  4. Blocks 180324 and 249185 claimed less than allowed: 0.52584193 BTC

  5. Block 501726: Approximately 12.5 BTC

  6. Block 526591: Approximately 6.25 BTC

Tools & Data

References of tools:

References of data:

PreviousData preparationNextVerify the data uploaded to exSat

Last updated 7 months ago

Although the genesis block points to a URL written in its code, this link displayed an error message when activated. The system couldn't locate the first 50 BTC transaction in the database, and spending transactions were rejected. Consequently, the original Bitcoin client doesn't consider the genesis block transaction as a "real transaction." —>

We established a full node, then indexed and processed its data using electrumX or bitcoin-utxo-dump tools.

For electrumX usage, refer to

For bitcoin-utxo-dump usage, refer to

Several have led to coinbase outputs less than the theoretical value due to bugs:

We modified electrumX slightly, mainly in data structure or API, without changing core UTXO calculation logic. Since rusty-blockparser does not support Pay2MultiSig type addresses, it is not used to export the UTXO. We modified it to include coinbase output discrepancy records and OP_RETURN burn calculations. Bitcoin-utxo-dump and electrumX were used for UTXO export and comparison at block 839,999, while rusty-blockparser was used to calculate burned BTCs.Because bitcoin-utxo-dump cannot specify an end block, Spider Pool also instructed to modify to stop at block 839999. specifically to cooperate with bitcoin-utxo-dump to obtain data.

rusty-blockparser:

electrumx:

bitcoin-utxo-dump:

Bitcoind(modified)

🛠️
Reference Links
bitcoind
https://github.com/exsat-network/electrumx
https://github.com/exsat-network/bitcoin-utxo-dump
events
bitcoind
https://github.com/exsat-network/rusty-blockparser
https://github.com/exsat-network/electrumx
https://github.com/exsat-network/bitcoin-utxo-dump
https://github.com/exsat-network/bitcoin
Code bug coinbase burn dataset
OP_RETURN burn dataset