PROOFOFCUSTODY
Bitcoin
Data
Get the Report
PROOFOFCUSTODY

The independent scoring system for Bitcoin custody. Every platform scored and ranked.

$1B+ in assets under custody expertise

No spam. Unsubscribe anytime.

PLATFORM SCORES
All ScoresCompareMethodologyCustody Assessment
LEARN
Bitcoin 101Custody GuidesFAQQuiz
RESOURCES
DataPodcastReportEditorial Independence
CONNECT
Twitter / XLinkedInYouTubehello@proofofcustody.io
2026 Proof of Custody. Published by Onramp Bitcoin. Editorial Independence.proofofcustody.io
Glossary
WGlossary

Witness

The witness of a transaction is a section of SegWit transactions not included when a transaction is hashed and signed.

The witness of a transaction is a section of SegWit transactions not included when a transaction is hashed and signed. The witness contains the Script Witnesses for all SegWit inputs of a transaction. The Script Witness is analogous to a ScriptSig in legacy transactions: it contains signatures and scripts required to spend a previous SegWit output. Learn more about SegWit. Because the spending script is included in the witness, the ScriptSig of SegWit transactions is left blank. Since the witness is not included in the hash of a transaction, it does not affect the txid. This architecture was implemented in order to eliminate transaction malleability. Witness data is considered part of a transaction, and is stored alongside each transaction by all Bitcoin nodes who implemented the SegWit upgrade. However, witness data receives a discount when the weight of a transaction is calculated. While a regular byte of a transaction is equivalent to 4 weight units, a byte of witness data weighs only 1 weight unit. This discount makes spending SegWit outputs cheaper than legacy outputs. It also effectively increases the maximum size of blocks from 1MB to 4MB. In order to ensure that a transaction’s witness cannot be altered once it is included in the blockchain, a separate witness txid (wtxid) is calculated. This wtxid is used to create a distinct Merkle tree of all SegWit transactions in a block, similar to a block’s regular Merkle tree. This Merkle tree is added as the scriptPubKey of an empty coinbase output using OP\_RETURN.

Related Terms
SegWitScriptSigMalleability

Stay Informed

Get weekly custody analysis and Bitcoin education delivered to your inbox.