VTA Benchmark
Deep Technical Audit

Address Generation + Base58Check + Key/Address Validation

This audit maps the address layer from public-key material to a serialized human-readable address and then separates encoding/checksum validation from actual transaction-script validation. VTA-specific version-byte values and exact address-format behavior must be pinned to the target VTA release before being presented as verified constants.

Public Key → Hash

PIPELINE

Address construction starts from public-key material and derives a payload used by the address format.

Base58Check

PIPELINE

Human-readable encoding adds a version/prefix and checksum before Base58 serialization.

VTA Version Bytes

VERIFY

The exact VTA address prefix/version-byte values should be read from the pinned release source, not guessed from another coin.

Address Validation Flow

Public Keykey material Hash Payloadkey-hash layer Version + Checksumaddress payload Base58human-readable string Decode + Validateprefix + length + checksum Encoding ≠ spending authorization A valid Base58Check string only establishes that the address encoding is structurally valid. Actual spending is enforced by the transaction's script and signature validation path. Address checks decode → prefix → payload → checksum reject malformed encodings Consensus boundary address display is not itself a consensus proof script validation remains authoritative

Audit Matrix

AreaFindingStatus
Base58 conceptBase58 is an encoding layer; it is not a cryptographic authorization mechanism by itself.Architecture
Checksum conceptBase58Check-style addresses include checksum data so decoding can detect common transcription/corruption errors.Architecture
Version/prefixAn address version distinguishes the intended address format/network namespace.Architecture
VTA version bytesExact VTA prefix/version-byte constants are intentionally not hard-coded here without release-pinned source evidence.Needs VTA source pin
Public-key encodingCompressed/uncompressed public-key representation affects the derived key-hash payload and therefore the resulting address.Protocol concept
Address vs scriptA valid address string does not prove that a transaction spending its associated output is valid.Verified architecture
Wrong checksumA modified Base58Check string with an invalid checksum should be rejected by the decoding/validation layer.Format rule
Invalid prefixA syntactically decodable address with an unexpected network/version prefix should not be treated as a valid VTA destination.Format rule
Live VTA address testNo live address-generation/decoding corpus was executed by this package.Not measured

Release-Pinned Test Plan

1. Pin exact VTA Core release / commit.
2. Locate base58.cpp / address classes / destination encoding.
3. Record exact version bytes and payload length.
4. Generate a fresh test key on a disposable wallet.
5. Derive its address using VTA Core.
6. Decode the address and recompute the checksum independently.
7. Flip one character → expect checksum failure.
8. Change the version byte → expect wrong-network/prefix rejection.
9. Test compressed and uncompressed public keys.
10. Confirm the decoded destination maps to the expected scriptPubKey.
Security: Use only disposable test keys for address-format testing. Never paste a private key, seed phrase or wallet.dat into the benchmark site.