Bitcoin In UML
Abstraction Is Selective Ignorance – Andrew Koenig
All Models Are Wrong, Some Are Useful – George Box
The following figure attempts to show the relationships between major Bitcoin system entities as captured in a UML class diagram .
Starting from the bottom of the diagram, a Bitcoin user can own zero or more Hardware, Web, Mobile, PC, and/or Paper Wallets. Each type of Wallet is a Bitcoin node. A Miner is also a BTC network node. Each BTC node establishes a one-to-many relationship with other peer BTC nodes connected to the network.
An alternative UML structural “view” of the BTC system is given as:
Each BTC node retains a copy of the global, publicly shared Blockchain. As of this writing, the Blockchain has 380K+ Blocks. Each Block has one or more validated BTC Transactions embedded within it. Via the interface facilities provided by a BTC Node, a User composes a Transaction and submits it to the network for validation and execution. Each instance of a BTC Transaction contains a source address, destination address, the BTC amount to be transacted, and the source address owner’s signature.