Crypto Biz Magazine—July, 2014/Issue.02
Digital Currencies & Crypto Innovations—We observe and explore all aspects of the crypto world, including mining, financial trading, exchanges, development and business.
Digital Currencies & Crypto Innovations—We observe and explore all aspects of the crypto world, including mining, financial trading, exchanges, development and business.
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
GITHUB BITCOIN GLOSSARY CONTINUED<br />
Sequence<br />
A 32-bit unsigned integer in a transaction input used to<br />
replace older version of a transaction by a newer one. Only<br />
used when locktime is not zero. Transaction is not considered<br />
valid until the sequence number is 0xFFFFFFFF. By default,<br />
the sequence is 0xFFFFFFFF.<br />
Signature<br />
A sequence of bytes that proves that a piece of data is<br />
acknowledged by a person holding a certain public key.<br />
Bitcoin uses ECDSA for signing transactions. Amounts of<br />
bitcoins are sent through a chain of transactions: from one to<br />
another. Every transaction must provide a signature matching<br />
a public key defined in the previous transaction. This way, only<br />
the proper owner of a secret private key, associated with a<br />
given public key, can spend bitcoins further.<br />
Simplified Payment Verification (SPV)<br />
A scheme to validate transactions without storing the whole<br />
blockchain (only block headers) and without trusting any<br />
external service. Every transaction must be present with<br />
all its parent and sibling hashes in a merkle tree up to the<br />
root. SPV client trusts the most difficult chain of block<br />
headers and can validate if the transaction indeed belongs<br />
to a certain block header. Since SPV does not validate all<br />
transactions, a 51% attack may not only cause a double<br />
spend (like with full nodes), but also make a completely<br />
invalid payment with bitcoins created from nowhere.<br />
However, this kind of attack is very costly and probably<br />
more expensive than a product in question. Bitcoinj library<br />
implements SPV functionality.<br />
Secret key<br />
Either the Private Key or an encryption key used in encrypted<br />
wallets. Bitcoin protocol does not use encryption anywhere,<br />
so secret key typically means a private key used for signing<br />
transactions.<br />
Soft Fork<br />
Sometimes the soft fork refers to an important change of<br />
software behavior that is not a hard fork (e.g. changing<br />
mining fee policy). See also Hard Fork and Fork.<br />
Spam<br />
Incorrect peer-to-peer messages (like sending invalid<br />
transactions) may be considered a denial of service attack<br />
(see DoS). Valid transactions sending very tiny amounts and/<br />
or having low mining fees are called Dust by some people.<br />
The protocol itself does not define which transactions<br />
are not worth relaying or mining, it’s a decision of every<br />
individual node. Any valid transaction in the blockchain must<br />
be accepted by the node if it wishes to accept the remaining<br />
blocks, so transaction censorship only means increased<br />
confirmation delays. Individual payees may also blacklist<br />
certain addresses (refuse to accept payments from some<br />
addresses), but that’s too easy to work around using mixing.<br />
Spent Output<br />
A transaction output can be spent only once: when another<br />
valid transaction makes a reference to this output from its<br />
own input. When another transaction attempts to spend<br />
the same output, it will be rejected by the nodes already<br />
seeing the first transaction. Blockchain as a proof-of-work<br />
scheme allows every node to agree on which transaction<br />
was indeed the first one. The whole transaction is considered<br />
spent when all its outputs are spent.<br />
Split<br />
A split of a blockchain. See Fork.<br />
SPV<br />
See Simplified Payment Verification.<br />
Standard Transaction<br />
Some transactions are considered standard, meaning<br />
they are relayed and mined by most nodes. More complex<br />
transactions could be buggy or cause DoS attacks on<br />
the network, so they are considered non-standard and<br />
not relayed or mined by most nodes. Both standard and<br />
non-standard transactions are valid and once included in<br />
the blockchain, will be recognized by all nodes. Standard<br />
transactions are: 1) sending to a public key; 2) sending to an<br />
address; 3) sending to a P2SH address; 4) sending to M-of-N<br />
multi-signature transaction where N is 3 or less.<br />
Target<br />
A 256-bit number that puts an upper limit for a block header<br />
hash to be valid. The lower the target is, the higher the difficulty<br />
to find a valid hash. The maximum (easiest) target is<br />
0x00000000FFFF0000000000000000000000000000000000000000000000000000.<br />
The difficulty and the target are adjusted every 2016 blocks<br />
(approx. 2 weeks) to keep interval between the blocks close<br />
to 10 minutes.<br />
Testnet<br />
A set of parameters used for testing a Bitcoin network.<br />
Testnet is like mainnet, but has a different genesis block (it<br />
was reset several times, the latest testnet is testnet3). Testnet<br />
uses a slightly different address format to avoid confusion<br />
with main Bitcoin addresses and all nodes relaying and mining<br />
non-standard transactions.<br />
Testnet3<br />
The latest version of testnet with another genesis block.<br />
Timestamp<br />
UNIX timestamp is a standard representation of time as a<br />
number of seconds since January 1st, 1970, GMT. Usually<br />
stored in a 32-bit signed integer.<br />
Transaction<br />
A chunk of binary data that describes how bitcoins are<br />
moved from one owner to another. Transactions are stored<br />
in the blockchain. Every transaction (except for coinbase<br />
transactions) has a reference to one or more previous<br />
transactions (inputs) and one or more rules on how to spend<br />
these bitcoins further (outputs). See Transaction Input and<br />
Transaction Output.<br />
Transaction Fee<br />
Also known as “miners’ fee,” an amount that an author of<br />
transaction pays to a miner who will include the transaction in a<br />
block. The fee is expressed as the difference between the sum<br />
of all input amounts and a sum of all output amounts. Unlike<br />
traditional payment systems, miners do not explicitly require<br />
fees and most miners allow free transactions. All miners are<br />
competing between each other for the fees and all transactions<br />
July.<strong>2014</strong> Page.65 <strong>Crypto</strong> <strong>Biz</strong> Magazine