09.07.2014 Views

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.

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!