Solutions

Company

Resources

Blog

Contact

Login

    • Assurance

      Smart Contract Assessment

      Securing code integrity, protecting digital assets

      Blockchain Layer 1 Assessment

      Assessing protocols, securing blockchain foundations

      Code Security Audit

      Uncovering flaws, strengthening software integrity

      Web Application Penetration Testing

      Exposing weaknesses, fortifying digital defenses

      Cloud Infrastructure Penetration Testing

      Securing configurations, protecting critical environments

      Red Team Exercise

      Simulating real-world attacks, strengthening defenses

      AI Red Teaming

      Testing AI systems against real threats

      AI Security Assessment

      Securing AI models, data, and pipelines

    • Advisory

      AI Advisory

      Guiding secure, strategic AI adoption forward

      Risk Assessment

      From unknown threats to actionable insights

      Blockchain Architecture Assessment

      Optimizing architecture for tomorrow’s networks

      Compliance Readiness

      Stay ready as regulations evolve

      Custody and Key Management Assessment

      Securing the heart of digital custody

      Technical Due Diligence

      See the risks before you invest

      Technical Training

      Empower your teams to secure what matters

    • Who We Are

      The best security engineers in the world

      Careers

      Work with the elite

      Who Trusts Us

      The trusted security advisor for blockchain and financial services industries

      Brand

      Access official logos, fonts, and guidelines

      Service Commitments

      Committed to Protecting Your Data

    • Audits

      In-depth evaluations of smart contracts and blockchain infrastructures

      BVSS

      Blockchain Vulnerability Scoring System

      Disclosures

      All the latest vulnerabilities discovered by Halborn

      Case Studies

      How Halborn’s solutions have empowered clients to overcome security issues

      Reports

      Comprehensive reports and data

  • Blog

  • Contact

  • Login

THIS WEBSITE USES COOKIES

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you've provided to them or that they've collected from your use of their services. You consent to our cookies if you continue to use our website. Learn More.

STAY CURRENT WITH HALBORN

Subscribe to the monthly Halborn Digest for our top blogs and videos, major company announcements, new whitepapers, webinar and event invites, and one exclusive interview.

ADVISORY SERVICES

AI AdvisoryRisk AssessmentBlockchain Architecture AssessmentCompliance ReadinessCustody and Key Management AssessmentTechnical Due DiligenceTechnical Training

ASSURANCE SERVICES

AI Security AssessmentAI Red TeamingSmart Contract AssessmentBlockchain Layer 1 AssessmentCode Security AuditWeb Application Penetration TestingCloud Infrastructure Penetration TestingRed Team Exercise

COMPANY

Who We AreWho Trusts UsService CommitmentsCareersBrandBlogContact

RESOURCES

AuditsDisclosuresReportsBVSSCase Studies
Halborn Logo
Privacy PolicyTerms of UseVulnerability Disclosure Policy

© Halborn 2026. All rights reserved.

Background

// Security Assessment

01.19.2026 - 02.20.2026

VerifiedX-Core

VerifiedX

Halborn logotext
← Back to Audits

VerifiedX-Core - VerifiedX


Prepared by:

Halborn Logo

HALBORN

Last Updated 02/27/2026

Date of Engagement: January 19th, 2026 - February 20th, 2026

Summary

100% of all REPORTED Findings have been addressed

All findings

23

Critical

6

High

5

Medium

10

Low

2

Informational

0


Table of Contents

  • 1. Introduction
  • 2. Assessment summary
  • 3. Scope
  • 4. Findings overview

1. Introduction

VerifiedX engaged Halborn to conduct a security assessment on their vBTC V2 system from January 19th, 2026 to February 20th, 2026. The security assessment scope was limited to the system components provided to Halborn. Commit hashes and further details can be found in the Scope section of this report.


VerifiedX vBTC V2 is a tokenized Bitcoin system built on the VerifiedX (VFX) blockchain. It uses FROST threshold Schnorr signatures (via a Rust FFI library) to coordinate distributed key generation (DKG) for Taproot (P2TR) deposit addresses and to collectively sign Bitcoin withdrawals. The system integrates on-chain consensus/state transitions (VFX transactions and state tree updates) with Bitcoin coordination (validator discovery, MPC ceremony orchestration, ElectrumX-based Bitcoin network interactions).

2. Assessment Summary

Halborn was allocated 25 days for this engagement and assigned one full-time security engineer to conduct a comprehensive review of the system components within scope. The engineer(s) have expertise in blockchain protocol security, Bitcoin coordination security, and cryptographic integration, with advanced skills in penetration testing and exploitation of node-side APIs and MPC systems.


The objectives of this assessment were to:

    • Identify potential security vulnerabilities within the system.

    • Verify that the system functionality operates as intended.


In summary, Halborn identified several areas for improvement to reduce the likelihood and impact of risks, which were fully addressed by the VerifiedX team. The main recommendations were:

    • Implement and enforce end-to-end MPC correctness: ensure DKG yields valid Bech32m P2TR addresses derived from the group key, and ensure signing produces verifiable Schnorr witnesses over correct BIP341 sighashes (per-input as required), failing closed on any mismatch.

    • Ensure consensus/state coverage matches the protocol for all vBTC V2 transaction types, binding state transitions to consensus-validated transaction properties and preventing “no-op” or divergent behavior.

    • Harden validator/MPC networking surfaces (validator discovery, FROST endpoints, ElectrumX I/O) with strict input validation, bounded resource usage, timeouts, and clear operational runbooks to prevent liveness failures and abuse.

3. SCOPE

REPOSITORY
(a) Repository: VerifiedX-Core
(b) Assessed Commit ID: 7a2e38b
(c) Items in scope:
  • ReserveBlockCore/Controllers/ActionFilterController.cs
  • ReserveBlockCore/Bitcoin/Controllers/VBTCController.cs
  • ReserveBlockCore/Bitcoin/Services/VBTCService.cs
  • ReserveBlockCore/Bitcoin/Services/VBTCThresholdCalculator.cs
  • ReserveBlockCore/Bitcoin/Services/BitcoinTransactionService.cs
  • ReserveBlockCore/Services/BlockTransactionValidatorService.cs
  • ReserveBlockCore/Services/BlockValidatorService.cs
  • ReserveBlockCore/Data/StateData.cs
  • ReserveBlockCore/Models/SmartContractStateTrei.cs
  • ReserveBlockCore/Models/SmartContractStateTreiTokenizationTX.cs
  • ReserveBlockCore/Services/TransactionValidatorService.cs
  • ReserveBlockCore/Models/Transaction.cs
  • ReserveBlockCore/Data/AccountData.cs
  • ReserveBlockCore/Bitcoin/Models/VBTCContractV2.cs
  • ReserveBlockCore/Bitcoin/Models/VBTCTransferInput.cs
  • ReserveBlockCore/Bitcoin/Models/VBTCValidator.cs
  • ReserveBlockCore/Bitcoin/Models/VBTCWithdrawalRequest.cs
  • ReserveBlockCore/Bitcoin/Models/VBTCWithdrawalCancellation.cs
  • ReserveBlockCore/Bitcoin/Models/MPCCeremonyState.cs
  • ReserveBlockCore/Bitcoin/Services/FrostMPCService.cs
  • ReserveBlockCore/Services/ValidatorService.cs
  • ReserveBlockCore/Bitcoin/FROST/FrostStartup.cs
  • ReserveBlockCore/Bitcoin/FROST/FrostServer.cs
  • ReserveBlockCore/Bitcoin/FROST/FrostNative.cs
  • ReserveBlockCore/Bitcoin/FROST/Models/FrostMessages.cs
  • ReserveBlockCore/Bitcoin/FROST/Models/FrostSessions.cs
  • ReserveBlockCore/Bitcoin/Integrations/MempoolSpaceTestnet4.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Client.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/ClientService.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/ClientSettings.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Converter.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/IdCounter.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Subscriber.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/RequestBase.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainEstimateFeeRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainBlockHeaderGetRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainHeadersSubscribeRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainScripthashGetBalance.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainScripthashGetHistoryRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainScripthashListunspentRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainScripthashSubscribeRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainTransactionBroadcastRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainTransactionGetMerkleRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/BlockchainTransactionGetRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/ServerPingRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Request/ServerVersionRequest.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/ResponseBase.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/Error.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainEstimatefeeResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainBlockHeaderGetResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainHeadersSubscribeResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainScripthashGetBalanceResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainScripthashGetHistoryResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainScripthashListunspentResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainScriphashSubscribeResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainTransactionBroadcastResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainTransactionGetConfirmsResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainTransactionGetMerkleResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/BlockchainTransactionGetResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/ServerPingResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Response/ServerVersionResponse.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainEstimatefeeResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainBlockHeaderGetResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainHeadersSubscribeResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainScripthashGetBalanceResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainScripthashGetHistoryResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainScripthashListunspentResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainTransactionBroadcastResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainTransactionGetConfirmsResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainTransactionGetMerkleResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/BlockchainTransactionGetResult.cs
  • ReserveBlockCore/Bitcoin/ElectrumX/Results/ServerVersionResult.cs
  • ReserveBlockCore/Controllers/ActionFilterController.cs
  • ReserveBlockCore/Bitcoin/Controllers/VBTCController.cs
  • ReserveBlockCore/Bitcoin/Services/VBTCService.cs
↓ Expand ↓
Out-of-Scope: Third party dependencies.
Remediation Commit ID:
  • f7bf16c
  • 8187862
  • 6cadea9
  • 45d59fc
  • 3b142ba
  • 331c854
  • 9a007b3
  • 2accf60
  • b16762a
  • 372c027
  • f576bc1
  • a6aff5a
  • d57ff37
  • a659575
  • 4222bd4
  • 87c2fde
  • 5a1a169
  • 2bab0a9
  • bd73934
  • a621c46
  • 427604c
  • d29a78a
  • 549e809
Out-of-Scope: New features/implementations after the remediation commit IDs.

4. Findings Overview

Security analysisRisk levelRemediation
Incorrect block-level transaction parsing can make valid vBTC V2 validator lifecycle transactions unmineableCriticalSolved - 02/06/2026
A broken validator heartbeat check can cause the active validator set to decay to zero and break vBTC V2 livenessCriticalSolved - 02/06/2026
Inconsistent client–server API contracts can break FROST DKG and signing ceremonies and prevent core vBTC V2 flowsCriticalSolved - 02/15/2026
Non-deterministic validator service startup can prevent the FROST server from running and break vBTC V2 MPC livenessCriticalSolved - 02/18/2026
Incorrect Taproot signing semantics can produce invalid Bitcoin withdrawals and leave funds stuckCriticalSolved - 02/16/2026
Insufficient consensus validation of transfer data enables arbitrary vBTC V2 balance manipulationCriticalSolved - 01/29/2026
Missing sender binding in the vBTC V2 withdrawal lifecycle enables unauthorized state transitions and unbacked burnsHighSolved - 01/29/2026
Insufficient validation of validator network endpoints can enable SSRF and internal network targetingHighSolved - 02/06/2026
Insufficient validation of FROST protocol inputs can expose native FFI to crash and resource-exhaustion risksHighSolved - 02/15/2026
Weak DKG session authorization can enable ceremony sabotage and quorum manipulationHighSolved - 02/15/2026
Missing consensus support for withdrawal cancellation can leave funds stuck and prevent recovery governanceHighSolved - 02/16/2026
Incorrect replay-prevention keying can enable cross-user collisions and denial of serviceMediumSolved - 01/29/2026
Non-canonical address encodings can enable address aliasing and user-assisted fund lossMediumSolved - 02/06/2026
Missing state-transition handling can cause vBTC V2 transfers to burn fees without applying on-chain balance updatesMediumSolved - 02/13/2026
Missing consensus-state handling can cause vBTC V2 contract creation to succeed locally but have no on-chain effectMediumSolved - 02/16/2026
Ambiguous local contract records can bypass withdrawal authorization and enable unauthorized vBTC V2 withdrawalsMediumSolved - 01/29/2026
Placeholder MPC artifacts can break deposit address generation and withdrawal signing for vBTC V2MediumSolved - 02/24/2026
Hardcoded deposit address outputs can misdirect vBTC deposits and cause irreversible fund lossMediumSolved - 02/20/2026
Unrestricted FROST session creation can enable remote resource exhaustion and degrade MPC availabilityMediumSolved - 02/15/2026
vBTC v2 validator registration and exit flow blocked by zero fee requirement conflicting with global transaction validationMediumSolved - 01/29/2026
Insufficient trust and I/O hardening for ElectrumX can allow chain-data tampering and withdrawal disruptionMediumSolved - 02/16/2026
Withdrawal state machine can enter a terminal state that blocks future withdrawalsLowSolved - 01/29/2026
Inaccurate deployment documentation can cause misconfiguration and break vBTC V2 MPC livenessLowSolved - 02/18/2026

Halborn strongly recommends conducting a follow-up assessment of the project either within six months or immediately following any material changes to the codebase, whichever comes first. This approach is crucial for maintaining the project’s integrity and addressing potential vulnerabilities introduced by code modifications.

Table of Contents

  • 1. Introduction
  • 2. Assessment summary
  • 3. Scope
  • 4. Findings overview

// Download the full report

VerifiedX-Core

* Use Google Chrome for best results

** Check "Background Graphics" in the print settings if needed