cpt.Blockchain-Network (bcnnet)

Cpt-created: {2016-03-04}

bcnnet'DESCRIPTION

Description::
Blockchain-network (bcnnet) is a-peer-to-peer-network that stores in a-shared-file (blockchain) a-chain of blocks with the-history of the UNMODIFIABLE, TRANSPARENT transactions-of-information among its nodes.
[hmnSgm.2017-05-06]
===
Bcnnet is a young and fluid technology.
Our view about it is double fluid.
Do-NOT-expect my view to cover all its attributes and to-have a-small-amount of mistakes.
[hmnSgm.2017-03-26]

Name::
* cpt.bcndescription,
* cpt.bcnnet'description,

Description::
The blockchain is a recent development in the field of computer science, which uses a global peer-to-peer network to provide an open platform that can deliver neutrality, reliability and security.
[https://www.provenance.org/whitepaper]

Description::
These cryptoeconomic networks come in many flavors — ASIC-based PoW, GPU-based PoW, naive PoS, delegated PoS, hopefully soon Casper PoS — and each of these flavors inevitably comes with its own underlying philosophy.
[https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51#.gwuvm0m26]

Description::
Blockchain technology is the technological basis of Bitcoin, first described by its mysterious author Satoshi Nakamoto in his white paper “Bitcoin: A Peer-to-Peer Electronic Cash System”, published in 2008.
While the use of blockchains for more general uses was already discussed in the original paper, it was not until a few years later that blockchain technology emerged as a generic term.
A blockchain is a distributed computing architecture where every network node executes and records the same transactions, which are grouped into blocks.
Only one block can be added at a time, and every block contains a mathematical proof that verifies that it follows in sequence from the previous block. In this way, the blockchain’s “distributed database” is kept in consensus across the whole network.
Individual user interactions with the ledger (transactions) are secured by strong cryptography.
Nodes that maintain and verify the network are incentivized by mathematically enforced economic incentives coded into the protocol.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain]

bcnnet'NAME

Name::
* cpt.bcnnet, {2017-03-05}
* cpt.blockchain-based-system,
* cpt.blockchain-ecosystem,
* cpt.blockchain-framework,
* cpt.blockchain-network,
* cpt.blockchain-technology,
* cpt.consensus-technology,
* cpt.cryptoeconomic-network,
* cpt.decentralised-consensus-based-transaction-system,
* cpt.decentralized-consensus-network,
* cpt.distributed-ledger-technology,
* cpt.DLT,
* cpt.netBcn, {2016-03-25}

NameGreek::
* ενν.αλυσιδωτών-μπλοκ-δίκτυο, {2017-01-25}
* ενν.δίκτυο-αλυσιδωτών-μπλοκ, {2017-01-25}
* ενν.δίκτυο-αλυσίδας-μπλοκ,
* ενν.μπλοκτσέιν-δίκτυο, {2017-05-06}

bcnnet'whole.DAO (bcndao)

Cpt-created: {2017-03-28}

Description::
IF a-bcnnet incorporates (= buildin) a-decentralized-autonomous-governing-system
THEN it is-becoming a-DAO (Decentralized-Autonomous-Organization).
[hmnSgm.2017-05-06]

Name::
* cpt.bcndao,
* cpt.blockchain-Decentralized-Autonomous-Organization,
* cpt.blockchain-DAO,
* cpt.DAO-of-blockchain,

Description::
Organization is a-system-of-humans with an-administering-system.
IF it has-no administering-system, it is a-GROUP.
No humans, no group, no organization, no DAO.
A-blockchain-network only if it will add an-administering-system is becoming organization.
Bitcoin, Ethereum networks do-not have such a-system and have a-tendency to split.
BitShares clearly states in its whitepaper that it is a-DAO-company (as it runs for profit).
"BitShares is a decentralized autonomous company, and as such offers products to earn their shareholders a profit.
As we have seen in the previous section, it also offers a way to pay for expense, such as development and administration but earns a profit by burnning (i.e. reducing supply).
Of course, the company can only be profitable if the income exceeds the expenses.
Thus, we will now discuss both in detail". [idBtswpr4]
A-DAO RUNS autonomously.
It evolves with decentralized-decision-making.
[hmnSgm.2017-03-29]
===
The proof-of-work structure that secures and maintains the Bitcoin network is one manner of organizing individuals who do not necessarily trust one another to act in the best interest of all participants of the network.
[http://docs.bitshares.eu/bitshares/whatis.html#consensus-technology]

bcndao'Resource

AddressWpg::
* {2013-09-19} Vitalik Buterin: Bootstrapping A Decentralized Autonomous Corporation: Part I: https://bitcoinmagazine.com/articles/bootstrapping-a-decentralized-autonomous-corp.../

SPECIFIC

Specific::
* Bitshares-DAO,
* BOScoin-DAO,
* DASH-DAO,
* Dfinity-DAO,
* Tezos-DAO,

bcnnet'Protocol (bcnprl)

Description::
Protocol is A-DESCRIPTION of the-communication-process of the-network.
[hmnSgm.2017-03-18]
===
Algorithm usually is-called a-description of info processing.
[hmnSgm.2017-04-03]

Name::
* cpt.bcnnet'protocol,
* cpt.bcnprl,
* cpt.blockchain-protocol,
* cpt.protocol-of-blockchain,

Generic::
* p2p-network-protocol,

bcnprl'White-paper (bcnwpr)

Description::
Usually, PDF-files that DESCRIBE the-protocol in natural-language.
[hmnSgm.2017-03-18]

Name::
* cpt.bcnprl'white-paper,
* cpt.bcnprlwpr,
* cpt.bcnwpr, {2017-03-26}
* cpt.blockchain-white-paper,
* cpt.white-paper-of-blockchain,

Specific::
* Bitcoin-white-paper,
* BitShares-white-paper,
* Ethereum-white-paper,
* ChronoBank-white-paper,

bcnprl'Implementation-language

Description::
The-computer-language used to write the-protocol.
[hmnSgm.2017-03-18]
===
Nxt was built from scratch in Java – one of the most popular programming languages for developers and users alike, and one ideally suited to the needs of the web. Most other cryptocurrencies are written in C++ (including Bitcoin and its immediate derivatives), which has a smaller base of developers. Java is cross-platform, meaning that it can be run on any operating system without modification. It’s also used on 3 billion phones and mobile devices worldwide.

The widespread use of Java and the open source nature of Nxt makes it a universal application that can be used on any mainstream device or operating system and can be maintained by potentially millions of software developers worldwide. The Nxt protocol reflects the values and strengths of the project itself: its development was entirely decentralised, spread across many different countries as its core members came together to create a platform that would not only improve upon the first generation of cryptocurrencies but add totally new features to position it for a whole new era in the history of the internet.
[http://nxt.org/about/what-is-nxt/]

Name::
* cpt.bcnnet'coding-language,
* cpt.bcnnet'implementation-language,
* cpt.bcnnet'source-code-language,
* cpt.bcnprl'implementation-language,
* cpt.blockchain-implementation-language,
* cpt.implementation-language-of-blockchain,

SPECIFIC

Name::
* bcnprl.specific,
* cpt.bcnprl.specific,

Specific::
* bitcoin-protocol,
* ethereum-protocol,

bcnnet'Node (bcnnod)

Description::
A blockchain is a distributed computing architecture where every network node executes and records the same transactions, which are grouped into blocks.
Only one block can be added at a time, and every block contains a mathematical proof that verifies that it follows in sequence from the previous block. In this way, the blockchain’s “distributed database” is kept in consensus across the whole network.
Individual user interactions with the ledger (transactions) are secured by strong cryptography.
Nodes that maintain and verify the network are incentivized by mathematically enforced economic incentives coded into the protocol.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain]

Name::
* cpt.bcnnet'network-node,
* cpt.bcnnet'node,
* cpt.bcnnod,
* cpt.blockchain-node,
* cpt.node-of-blockchain,

bcnnod'Operator (link)

SPECIFIC

Name::
* bcnnod.specific,
* cpt.bcnnod.specific,

Specific::
* Full-node,
* Light-node,
* Miner-node,
* Updater-node,

bcnnod.FULL

Description::
Full nodes are servers running on a p2p network, that allow peers to use them to receive updates about the events on the network.
These nodes require significant amounts of traffic and other resources that carry substantial cost.
[idDashwpr2]

Name::
* cpt.bcnnod.full,
* cpt.blockchain-full-node,
* cpt.full-node-of-blockchain,

bcnnod.LIGHT

Description::
A-light-node does-not-store the-whole-blockchain, only what interest it.

Name::
* cpt.bcnnod.light,
* cpt.blockchain-light-node,
* cpt.light-node-of-blockchain,

bcnnod.MINER

Description::
* Miner-node is a-node that adds blocks in a-blockchain with proof-of-work-consensus-algorithm.
It is-called 'miner' because in this process, new coins are-created.
[hmnSgm.2017-05-12]

Name::
* cpt.bcnnet'node.miner,
* cpt.bcnnodeMnr,
* cpt.netBct'miner-node,
* cpt.miner-node-of-blockchain,

NameGreek::
* ενν.εξoρύκτης-αλλυσίδας-μπλοκ-κόμβος,

bcnnodMnr'Human.Miner (bcnmnr)

Description::
* Miner-human is a-human that owns|operates a-miner-node.
[hmnSgm.2017-05-07]

Name::
* cpt.bcnhmn.miner,
* cpt.bcnminer-human,
* cpt.bcnnet'miner-human,
* cpt.miner-human-of-blockchain,

bcnnodMnr'Mining (bcnmng)

Description::
A-blockchain is-updating ONLY by adding new blocks by consensus.
Its history is unmodifiable.
[hmnSgm.2017-05-07]
===
In pow blockchains, updating is-called mining because in this process new coins are-created and resembles gold finding.
[hmnSgm.2017-05-09]
===
In NEM harvesting is the act of forming blocks (mining/forging).
[http://wiki.nem.io/index.php/Harvesting]

Name::
* cpt.bcnmining,
* cpt.bcnminting,
* cpt.bcnmng,
* cpt.bcnnet'mining,
* cpt.bcnnet'Forging,
* cpt.bcnnet'Harvesting,
* cpt.blockchain-mining,
* cpt.blockchain-updating,
* cpt.mining-of-blockchain,
* cpt.updating-blockchain,

Specific::
* Bitcoin-mining,
* Ethereum-mining,
* Lisk-mining,

bcnnodMnr'Pre-mining

Description::
Pre-mining:
The mining of coins by a cryptocurrency’s founder before that coin has been announced and details released to others who may wish to mine the coin.
Pre-mining is a common technique used with scamcoins, although not all pre-mined coins are scamcoins (see Scamcoins).
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.blockchain-pre-mining,
* cpt.bcnpre-mining,
* cpt.pre-mining-of-blockchain,

bcnnodMnr'CLOUD-MINING

Description::
Most Bitcoin Cloud Mining Companies are Scams
Like the heading says, most cloud mining contracts are scams. Why? Because it’s easy for companies to take peoples’ money, and then not pay out. A company can claim to be a cloud mining company without any proof of actually owning any hardware.
So remember: 99% of cloud mining companies are scams.
Which Companies Are Not Scams?
There is only one cloud mining company we are willing to recommend on this site: Genesis Mining.
Just because it is not a scam, however, does not mean that you will make a profit by using it.
[https://www.hobbymining.com/bitcoin-cloud-mining/]

Name::
* cpt.blockchain-cloud-mining,
* cpt.cloud-mining-of-blockchain,

Specific::
* Bitcoin-cloud-mining,

bcnnodMnr'MINING-POOL (bcnmgpl)

Description::
Mining pools are groups of cooperating miners who agree to share block rewards in proportion to their contributed mining hashing power.
While mining pools are desirable to the average miner as they smooth out rewards and make them more predictable, they unfortunately concentrate power to the mining pool’s owner.
Miners can, however, choose to redirect their hashing power to a different mining pool at anytime.
[https://bitcoinworldwide.com/mining/pools/]

Name::
* cpt.bcnnet'mining-pool,
* cpt.mining-pool-of-blockchain,

bcnmgpl'Fee

bcnmgpl'Token-supported

SPECIFIC

bcnmgpl.MinerGate

Description::
MinerGate is a mining pool created by a group of cryptocoin enthusiasts.
It is the first pool which provides service for merged mining. This means that while mining on our pool you can mine different coins simultaniously without decrease of hashrate for major coin.
[https://minergate.com/faq/about]
===
Changelly was developed by MinerGate, one of the oldest mining pools on the market, that has
about two mln users all over the world.
[https://cointelegraph.com/news/with-charlie-shrem-as-advisor-shangelly-is-set-to-outperform-shapeshift]

Name::
* cpt.MinerGate,
* cpt.minergate,

AddressWpg::
* https://minergate.com/

bcnnod.UPDATER

Description::
Updater-node is a-node that updates the-blockchain.
[hmnSgm.2017-05-12]

Name::
* cpt.bcnnod.updater,
* cpt.blockchain-updater-node,
* cpt.updater-node-of-blockchain,

Specific::
* Miner-node,

bcnnet'Blockchain (bcnbcn)

Description::
A-blockchain is a-file which contains a-chain of blocks with the-history of the-transactions-of-information among the-nodes of the-network.
The-blockchain is-shared by all the-nodes and it is unmodifiable.
New-blocks with the-new-transactions are-added AUTOMATICALLY in the-blockchain with an-algorithm builtin in the-network (the-consensus-algorithm).
[hmnSgm.2017-05-06]

Name::
* cpt.bcnbcn,
* cpt.bcnledger,
* cpt.bcnlgr, {2017-03-19}
* cpt.blockchain,
* cpt.blockchain-database,
* cpt.blockchain-file,
* cpt.blockchain-ledger,
* cpt.blockchain-record,
* cpt.bcnnet'blockchain,
* cpt.bcnnet'distributed-database,
* cpt.consensus-ledger,
* cpt.distributed-database-of-bcnnet,
* cpt.mnyBcn'blockchain-ledger,
* cpt.mnyBcn'ledger,

NameGreek::
* ενν.βάση-δεδομέων-αλυσιδωτών-μπλοκ, {2017-01-25}
* ενν.καθολικό-αλυσιδωτών-μπλοκ, {2017-01-25}
* ενν.μητρώο-αλυσιδωτών-μπλοκ, {2017-01-25}
* ενν.μπλοκ-αλυσίδα,
* ενν.μπλοκτσέιν, {2017-04-10}

Description::
A blockchain is essentially just a record, or ledger, of digital events — one that’s “distributed,” or shared between many different parties.
It can only be updated by consensus of a majority of the participants in the system.
And, once entered, information can never be erased.
The bitcoin blockchain contains a certain and verifiable record of every single bitcoin transaction ever made.
[http://recode.net/2015/07/05/forget-bitcoin-what-is-the-blockchain-and-why-should-you-care/]

Description::
A blockchain is fundamentally a public record of state changes.
[https://media.consensys.net/time-sure-does-fly-ed4518792679#.rjkzhxgwo]

Description::
The security of cryptocurrency ledgers is based on the assumption that the majority of miners are honestly trying to maintain the ledger, having financial incentive to do so.
[https://en.wikipedia.org/wiki/Cryptocurrency]

Description::
The blockchain is a state-machine and every time a transaction takes place the state is updated.
So, you can always see at which block what transaction took place.
[https://www.newscombinator.com/article/7/ethereum-dapp-essentials-part-1]

Description::
blockchain
A list of validated blocks, each linking to its predecessor all the way to the genesis block.
[Mastering Bitcoin, Adonopoulos, https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/glossary.asciidoc]

Description::
Blockchain is a decentralized database shared among a network of computers, all of which must approve an exchange before it can be recorded. There’s no need for a trusted intermediary like a bank because the information is held securely and transparently on a digital ledger for all users on the network to see.
[https://www.weforum.org/agenda/2016/12/fighting-human-trafficking-tracing-blood-diamonds-and-other-surprising-uses-for-blockchain?]

Description::
A blockchain in all it’s incarnations is a database type designed specifically for use in a DCN.
It can hold any information, and can set rules on how information is updated.
Its primary feature is that it is updated in discrete chunks called ‘blocks’ which are ‘chained’ together using hashes of the previous blocks content.
A blockchain contains not only the information that is currently stored in the database, but also every change made to the database in its history.
Known as the state and transactions respectively it makes for a database with a complete custodial history that cannot be altered without altering every subsequent block.
A private key always signs ‘Transactions’ or requests to change the state of the database, and the signature is stored in the blockchain.
[https://dappsforbeginners.wordpress.com/tutorials/introduction-to-development-on-ethereum/]

Description::
The major story from 2015 is undoubtedly the increasing focus on bitcoin's underlying technology, commonly referred to as blockchain or distributed ledger technology (DLT). Many parties, from government authorities to financial institutions, began to examine potential applications of DLT for securities transaction settlement and other use cases.
[http://www.coindesk.com/state-of-bitcoin-blockchain-2016/]

Description::
Nxt’s innovation is built on the idea of the blockchain: a public, secure record of every transaction that has ever occurred between any two parties within the network. Whilst the blockchain is completely transparent and anyone can access it, once an entry has been added it is impossible to change or remove it. The blockchain allows anyone to prove ownership and exchange of anything that has been agreed between two parties: money, property, rights, IP and more. The revolution that this enables cannot be underestimated.
[http://nxt.org/about/how-nxt-change-world/]

Description::
Blockchain technology, introduced by Satoshi Nakamoto with the proof-of-concept implementation of a simple value transfer system known as bitcoin, represents the best digital system we have (after the internet itself) for administering multi-user interactions without any need for centralized coordination or oversight.
[http://ethereum.gitbooks.io/frontier-guide/content/ethereum.html]

Description::
Satoshi Nakamoto's development of Bitcoin in 2009 has often been hailed as a radical development in money and currency, being the first example of a digital asset which simultaneously has no backing or "intrinsic value" and no centralized issuer or controller.
However, another, arguably more important, part of the Bitcoin experiment is the underlying blockchain technology as a tool of distributed consensus, and attention is rapidly starting to shift to this other aspect of Bitcoin.
Commonly cited alternative applications of blockchain technology include using on-blockchain digital assets to represent custom currencies and financial instruments ("colored coins"), the ownership of an underlying physical device ("smart property"), non-fungible assets such as domain names ("Namecoin"), as well as more complex applications involving having digital assets being directly controlled by a piece of code implementing arbitrary rules ("smart contracts") or even blockchain-based "decentralized autonomous organizations" (DAOs). What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create "contracts" that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code.
[https://github.com/ethereum/wiki/wiki/White-Paper]

bcnbcn'Attribute (bcnatt)

Recorded digital-information:

Timestabed:

Unchangeable:

bcnbcn'Block (bcnblk)

Description::
Block is a-package of transactions and meta-information that proves that it follows the-last confirmed block.
[hmnSgm.2017-05-08]
===
Block is a-package of transactions.
[hmnSgm.2017-04-21]
===
A blockchain is a distributed computing architecture where every network node executes and records the same transactions, which are grouped into blocks.
Only one block can be added at a time, and every block contains a mathematical proof that verifies that it follows in sequence from the previous block.
In this way, the blockchain’s “distributed database” is kept in consensus across the whole network.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain]

Name::
* cpt.bcnblk,
* cpt.bcnnet'block,
* cpt.block-of-blockchain,

bcnblk'part'Header

Description::
A-block contains information that proves that it follows the-last block and a-number of transactions.
[hmnSgm.2017-05-07]

Name::
* cpt.bcnblk'header,
* cpt.bcnblkhdr,
* cpt.bcnnet'block-header,
* cpt.header-of-block-of-blockchain,

Specific::
* Bitcoin-block-header,
* Ethereum-block-header,

bcnblk'part'Transaction-list

Description::
A-block contains information that proves that it follows the-last block and a-number of transactions.
[hmnSgm.2017-05-07]

Name::
* cpt.bcnblk'transaction,
* cpt.bcnblk'transaction-list,
* cpt.bcnblktx,
* cpt.bcnnet'block-transaction,

BLOCK-NUMBER-OF-TRANSACTIONS:
The-number of transactions contained in a-block.

bcnblk'Consensus-algorithm (link)

bcnblk'Explorer (link)

bcnblk'Height

Description::
The number of blocks preceding a particular block on a block chain.
For example, the genesis block has a height of zero because zero block preceded it.
[https://bitcoin.org/en/glossary/block-height]

Name::
* cpt.bcnblock-height,
* cpt.bcnblock-number,
* cpt.bcnnet'block-height,
* cpt.block-height-of-blockchain,

bcnblk'Reward

Description::
The-miner who adds a-new block in the-blockchain is-rewarded with new coins or transaction-fees or both.
[hmnSgm.2017-05-07]

Name::
* cpt.bcnnet'block-reward,
* cpt.block-reward-of-blockchain,

bcnblk'Time (bcnblktim)

Description::
Time related with a-block.

Name::
* cpt.bcnblktime,
* cpt.bcnblk'time,
* cpt.bcnnet'Block-time,
* cpt.time-of-block-of-blockchain,

bcnblktim.Age

Description::
How long ago a-block was-added to a-blockchain.

Name::
* cpt.bcnblk'age,
* cpt.bcnnet'age-of-Block,

bcnblktim.Timestamp

Description::
The-time a-block created.

Name::
* cpt.bcnblk'timestamp,
* cpt.bcnnet'Block-timestamp,

bcnblktim.Generation

Description::
The-time BETWEEN block creation.

Name::
* cpt.bcnblk'blocktime,
* cpt.bcnnet'Blocktime,
* cpt.block-generation-time,
* cpt.block-interval-of-blockchain,
* cpt.blockchain-block-interval,
* cpt.blocktime-of-blockchain,

bcnblk'Hash

Description::
* Block-hash is the-hash of a-block's-header.
[hmnSgm.2017-05-07]

Name::
* cpt.blockchain-block-hash,
* cpt.blockchain-hash-of-block,
* cpt.bcnhash-of-block,

bcnblk'Size

Description::
The-size (in bytes) of a-block.

Name::
* cpt.bcnblksize,
* cpt.bcnnet'Block-size,

SPECIFIC

Name::
* bcnblk.specific,
* cpt.bcnblkSpc,

Specific::
* Bitcoin-block,
* Ethereum-block,

bcnblk.GENESIS

Description::
The-first block, height 0, written programatically into the-blockchain.

Name::
* cpt.bcnblk.genesis,
* cpt.bcnblkGns,
* cpt.genesis-block-of-blockchain,

Specific::
* Bitcoin-genesis-block,
* Ethereum-genesis-block,

bcnbcn'Block-Explorer (bcnbex)

Description::
Website that presents information about the-parts of a-blockchain-network.

Name::
* cpt.bcnblock-explorer,
* cpt.bcnnet'block-explorer,
* cpt.bcnnet'explorer,
* cpt.block-explorer-of-blockchain,
* cpt.blockchain-block-explorer,
* cpt.blockchain-explorer,

Specific::
* https://chainz.cryptoid.info/
* Bitcoin-block-explorer,
* Ethereum-block-explorer,

bcnbcn'Consensus-algorithm (bcncsa)

Description::
The-consensus-algorithm is an-algorithm describing how to UPDATE the-blockchain.
How the next block will-be-added with consensus.
[hmnSgm.2017-03-30]

Name::
* cpt.bcnnet'block-verification-method,
* cpt.bcnnet'consensus-algorithm,
* cpt.bcnnet'mining-system,
* cpt.bcnnet'model-of-security,
* cpt.bcnnet'transaction-verification-method,
* cpt.block-validation-algorithm-of-bcnnet,
* cpt.consensus-algorithm-of-bcnnet,

Description::
The consensus algorithm is core to any blockchain based currency or system.
The algorithm attempts to answer the question, ‘how can we prove with confidence that all distributed databases hold the same set of information?’
[BOScoin-whitepaper]

Description::
Ethereum Frontier like all blockchain technologies uses an incentive-driven model of security.
Consensus is based on choosing the block with the highest total difficulty.
[https://github.com/ethereum/wiki/blob/master/Mining.md]

Description::
Timestamping
Cryptocurrencies use various timestamping schemes to avoid the need for a trusted third party to timestamp transactions added to the blockchain ledger.

Proof-of-work schemes
The first timestamping scheme invented was the proof-of-work scheme. The most widely used proof-of-work schemes are based on SHA-256, which was introduced by bitcoin, and scrypt, which is used by currencies such as Litecoin.[22] The latter now dominates over the world of cryptocurrencies, with at least 480 confirmed implementations.[42]

Some other hashing algorithms that are used for proof-of-work include Blake, SHA-3, and X11.

Proof-of-stake and combined schemes
Some cryptocurrencies use a combined proof-of-work/proof-of-stake scheme,[22][43] The Proof-of-stake is a method of securing a cryptocurrency network and achieving distributed consensus through requesting users to show ownership of a certain amount of currency. It is different from proof-of-work systems that run difficult hashing algorithms to validate electronic transactions. The scheme is largely code dependent on the coin, and there's currently no standard form of it.
[https://en.wikipedia.org/wiki/Cryptocurrency]

bcncsa'Mining (link)

bcncsa'Evaluating

Description::
Distributed timestamping protocols were first applied to decentralizing a financial network in the ground-breaking paper on Bitcoin by Nakamoto[1]. The field has seen explosive research follow-up from both amateurs and professionals, competing to offer extensions, adjustments, improvements, and refinements of the existing protocol. Notable implementations of new ideas include Ethereum[2], which extended scripting, CryptoNote[3], which refined privacy, and Sidechains[4], which investigated two-way pegs with 1:1 Bitcoin tokens. These protocols all utilize proof-of-work (PoW) as originally described in the Bitcoin whitepaper.

A common extension to the Bitcoin protocol modifies the consensus mechanism to either completely or partially use proof-of-stake (PoS), or the use of one’s stake (tokens) rather than one’s computational power to participate in the timestamping process. The first proof-of-stake blockchain based on the Bitcoin protocol was implemented in 2012 by King and Nadal[5], and includes both PoW and PoS that gradually skew towards complete PoS over time. Criticisms of pure PoS consensus systems have themselves been abundant[6] [7], with the most vehement opposition coming from those working with purely PoW blockchains. The most common argument against PoS for distributed timestamping is “nothing-at-stake” or “costless simulation”, describing the systematic instability resulting from stakeholders being able to generate alternatively timestamped histories with no cost to themselves.

Despite the controversy, it is apparent that systems who have a PoS overlay dependent on a PoW timestamping system may be able to independently achieve consensus. This is mathematically explored by Bentov and colleagues[8] in a paper on their scheme, proof-of-activity (PoA), and appears to be a viable extension to the PoW protocols that may enable some interesting new properties. A similar design called MC2 was earlier proposed by Mackenzie in 2013[9]. Here we describe the construction and implementation of a similar consensus system that we have named “Decred”.
1.Nakamoto S. 2008. Bitcoin: A peer-to-peer electronic cash system.
2.Buterin V. 2014. A Next-generation smart contract and decentralized application platform.
3.von Saberhagen N. 2013. CryptoNote v2.0.
4.Back A., Corallo M., Dashjr L., Friedenbach M., Maxwell G., Miller A., Poelstra A., Timon A., Wuille P. 2014. Enabling Bitcoin innovations with pegged sidechains.
5.King S. and Nadal S. 2012. PPCoin: Peer-to-peer crypto-currency with proof-of-stake.
6.Bentov I., Gabizon A., Mizrahi A. 2015. Cryptocurrencies without proof-of-work.
7.Poelstra A. 2015. On stake and consensus.
8.Bentov I., Lee C., Mizrahi A., Rosenfeld M. 2014. Proof-of-activity: Extending Bitcoin’s proof-of-work via proof-of-stake.
9.Mackenzie A. 2013. MEMCOIN2: A hybrid proof-of-work, proof-of-stake crypto-currency.
[https://docs.decred.org/research/overview/]

bcncsa.SPECIFIC

Specific::
* Proof-of-work,
* Proof-of-stake,
* Proof-of-importance,

bcncsa.Proof-of-work (bcnpow)

Description::
proof-of-work (majority of computing power says which transactions settle) for
proof-of-stake (majority of coin wealth says which transactions settle)
[https://lykke.com/Whitepaper_LykkeExchange.pdf]

Name::
* cpt.bcnnet'pow,
* cpt.bcnpow,
* cpt.proof-of-work,

NameGreek::
* ενν.αλγόριθμος-απόδειξης-εργασίας,
* ενν.απόδειξη-εργασίας-σε-μπλοκτσέιν-δίκτυο,
* ενν.μπλοκτσέιν-απόδειξη-εργασίας,

Description::
Originally envisioned as a spam prevention system proof of work is a simple method for proving that you have *probably* performed a large number of mathematical operations.
It is implemented in the majority of cases using a cryptographic hash function; given an arbitrary piece of data, (like a list of transactions and the header of a block) you must find a second piece of data which, when combined with the first, produces a hash that has certain characteristics (like a number of trailing zeros).
Because it is impossible to predict what second piece of data will produce the required hash, you must randomly iterate through possible data until you find one that produces the hash you require.
[https://dappsforbeginners.wordpress.com/tutorials/introduction-to-development-on-ethereum/]
===
HashCash {1997} Antispam mechanism: you have to do some work in order to send a message.
This work for ONE message is almost nothing.
For a spammer of 1000000 messages is huge.
===
In 2009, a decentralized currency was for the first time implemented in practice by Satoshi Nakamoto, combining established primitives for managing ownership through public key cryptography with a consensus algorithm for keeping track of who owns coins, known as "proof of work".
The mechanism behind proof of work was a breakthrough in the space because it simultaneously solved two problems. First, it provided a simple and moderately effective consensus algorithm, allowing nodes in the network to collectively agree on a set of canonical updates to the state of the Bitcoin ledger. Second, it provided a mechanism for allowing free entry into the consensus process, solving the political problem of deciding who gets to influence the consensus, while simultaneously preventing sybil attacks. It does this by substituting a formal barrier to participation, such as the requirement to be registered as a unique entity on a particular list, with an economic barrier - the weight of a single node in the consensus voting process is directly proportional to the computing power that the node brings. Since then, an alternative approach has been proposed called proof of stake, calculating the weight of a node as being proportional to its currency holdings and not computational resources; the discussion of the relative merits of the two approaches is beyond the scope of this paper but it should be noted that both approaches can be used to serve as the backbone of a cryptocurrency
[https://github.com/ethereum/wiki/wiki/White-Paper]
===
A proof-of-work (POW) system (or protocol, or function) is an economic measure to deter denial of service attacks and other service abuses such as spam on a network by requiring some work from the service requester, usually meaning processing time by a computer. The concept may have been first presented by Cynthia Dwork and Moni Naor in a 1993 journal article.[1] The term "Proof of Work" or POW was first coined and formalized in a 1999 paper by Markus Jakobsson and Ari Juels.[2]
A key feature of these schemes is their asymmetry: the work must be moderately hard (but feasible) on the requester side but easy to check for the service provider. This idea is also known as a CPU cost function, client puzzle, computational puzzle or CPU pricing function. It is distinct from a CAPTCHA, which is intended for a human to solve quickly, rather than a computer. Proof of space (PoS) proposals apply the same principle by proving a dedicated amount of memory or disk space instead of CPU time. Proof of bandwidth approaches have been discussed in the context of cryptocurrency. Proof of ownership aims at proving that specific data are held by the prover.
[https://en.wikipedia.org/wiki/Proof-of-work_system]

Description::
A proof-of-work (POW) system (or protocol, or function) is an economic measure to deter denial of service attacks and other service abuses such as spam on a network by requiring some work from the service requester, usually meaning processing time by a computer. The concept may have been first presented by Dwork and Naor in a 1993 journal.[1] The term "Proof of Work" or POW was first coined and formalized in a 1999 paper.[2]

A key feature of these schemes is their asymmetry: the work must be moderately hard (but feasible) on the requester side but easy to check for the service provider. This idea is also known as a CPU cost function, client puzzle, computational puzzle or CPU pricing function. It is distinct from a CAPTCHA, which is intended for a human to solve quickly, rather than a computer.
[https://en.wikipedia.org/wiki/Proof-of-work_system]

Specific::
* CryptoNight,
* Dash,
* Primecoin,
* Scrypt,
* SHA-256,
* X11,
* Zerocoin,

bcnpow.CryptoNight

Description::
DigitalNote is an experimental open-source cryptocurrency based on CryptoNote technology and CryptoNight algorithm. It is a fork of Bytecoin - the very first implementation of CryptoNote.
[https://changelly.com/supported-currencies]
===
Bytecoin is a first CryptoNote-based cryptocurrency. A CPU-mined coin, it's primary advantages are extraordinary transaction untraceability and unlinkability features. BCN is stated to be much more anonymous than Bitcoin and all its existing forks. The developers claim a person’s right to privacy is their primary concern and strictly observe their own privacy. Bytecoin was started on July 4th, 2012.
BCN is based on CryptoNote, an open-source technology for anonymous cryptocurrencies. It utilizes ring signature and one-time addresses for completely anonymous payments. CryptoNote is designed in a way, which makes block chain analysis impossible. CryptoNote is focused on CPU-mining in order to make the special purposes devices useless.
[https://changelly.com/supported-currencies]

Name::
* cpt.CryptoNote-pow,
* cpt.pow.CryptoNight,
* cpt.pow.CryptoNote's-CryptoNight,
* cpt.proof-of-work.CryptoNight,

AddressWpg::
* https://cryptonote.org/,

bcnpow.Scrypt

Description::
In cryptography, scrypt is a password-based key derivation function created by Colin Percival, originally for the Tarsnap online backup service.[1]
The algorithm was specifically designed to make it costly to perform large-scale custom hardware attacks by requiring large amounts of memory.
In 2012, the scrypt algorithm was published by IETF as an Internet Draft, intended to become an informational RFC.[2]
A simplified version of scrypt is used as a proof-of-work scheme by a number of cryptocurrencies first implemented by Litecoin.[3]
[https://en.wikipedia.org/wiki/Scrypt]
===
Scrypt:
An alternative proof of work system to SHA-256, designed to be particularly friendly to CPU and GPU miners, while offering little advantage to ASIC miners.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bcnpow.scrypt,
* cpt.bcnscrypt-pow,

bcnpow.X11

Description::
Dash uses a chained hashing algorithm approach called X11 for the proof-of-work. Instead of using the SHA-256 (from well-known Secure Hash Algorithm family) or scrypt it uses 11 rounds of different hashing functions.[3]
[https://en.wikipedia.org/wiki/Dash_%28cryptocurrency%29]

Name::
* cpt.bcnpow.X11,
* cpt.bcnX11-pow,

bcncsa.Proof-of-stake (bcnpos)

Description::
proof-of-work (majority of computing power says which transactions settle) for
proof-of-stake (majority of coin wealth says which transactions settle)
[https://lykke.com/Whitepaper_LykkeExchange.pdf]

Name::
* cpt.bcnnet'proof-of-stake,
* cpt.bcnpos,
* cpt.proof-of-stake,
* cpt.proof-of-stake-security,

Description::
Proof-of-stake is a method by which a cryptocurrency blockchain network aims to achieve distributed consensus.
While the more mainstream proof-of-work method asks users to repeatedly run difficult hashing algorithms to validate electronic transactions,[1] proof-of-stake asks users to prove ownership of a certain amount of currency (their "stake" in the currency).
Peercoin[2] was the first cryptocurrency to launch using Proof-of-Stake.
Other prominent implementations are found in BitShares, Nxt, BlackCoin, NuShares/NuBits and Qora.
[https://en.wikipedia.org/wiki/Proof-of-stake]
===
The proof-of-stake approach means that the security of the network is maintained by every existing holder of Nxt, who earn transaction fees in proportion to the number of coins they already own – rather than the network being maintained by the relatively small number of miners who can afford the expensive hardware required.
Improved security. This property also protects the network from the problems of mining power being concentrated in a few big pools or organisations, which renders it vulnerable to a ‘51 percent’ attack. Nxt’s proof-of-stake means that even if one person owns 90 percent of all the coins available, the network remains secure.
[http://nxt.org/about/what-is-nxt/]
===
Proof-of-stake (PoS) is a type of algorithm by which a cryptocurrency blockchain network aims to achieve distributed consensus. Unlike Proof-of-Work (PoW) based cryptocurrencies (such as bitcoin), where the algorithm rewards participants who solve complicated cryptographical puzzles in order validate transactions and create new blocks (i.e. mining), in PoS-based cryptocurrencies the creator of the next block is chosen in a deterministic (pseudo-random) way, and the chance that an account is chosen depends on its wealth (i.e. the stake). In PoS cryptocurrencies the blocks are usually said to be forged (in the blacksmith sense of this word), or minted, rather than mined. Also, usually all the coins are created in the beginning and the total number of coins never changes afterwards (although there are some other versions of PoS where new coins can be created). Therefore, in the basic version of PoS there are no block rewards (e.g. as in bitcoin); so, the forgers take only the transaction fees.[1]
Peercoin[2] was the first cryptocurrency to launch using proof-of-stake. Other prominent implementations are found in ShadowCash, Nxt, BlackCoin, NuShares/NuBits, Qora and Nav Coin.[3] Ethereum has planned a hard fork transition from PoW to PoS consensus. Both Peercoin and Decred[4] hybridize PoW with PoS and combine elements of both consensus approaches in an attempt to garner the benefits of the two systems and create a more robust notion of consensus.
[https://en.wikipedia.org/wiki/Proof-of-stake {2017-01-29}]

bcncsa.Proof-of-importance (bcnpoi)

Description::
The consensus of the Blockchain network is achieved utilizing the unique environmental and energy friendly algorithm “POI” (Proof of Importance).
POI is a technologically advanced algorithm compared to the earlier established PoW (Proof of Work) and PoS (Proof of Stake).
[https://blog.nem.io/nem-mijin-blockchain-technology-briefing-january-2017/]

Name::
* cpt.bcnnet'proof-of-importance,
* cpt.bcnpoi,
* cpt.proof-of-importance,
* cpt.proof-of-importance-consensus-algorithm,

bcnbcn'Address (bcnads)

Description::
Address is a-sequence of symbols a-blockchain uses to denote ownership of crypto-info in the-blockchain.
[hmnSgm.2017-04-03]

Name::
* cpt.bcnads,
* cpt.bcnnet'address,
* cpt.blockchain-address,

Specific::
* bitcoin: 1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV,
* ethereum: 0x0998c9a0c7224Ec4ED782A4Ecfef53A0e25fA9FC,

bcnbcn'Transaction (bcntx)

Description::
Transactions are documents that broadcasted to the-network and change THE-STATE of the-blockchain.
Information on the-blockchain (exchange-value, programs, etc) is-stored cryptographically with public-private-keys.
Blockchain-addresses are unique-names of blockchain-info[1] which[1] can-be-managed only by the-owners of its[1] private-key.
[hmnSgm.2017-04-02]

Name::
* cpt.bcntransaction,
* cpt.bcntsn,
* cpt.bcntx,

Description::
A blockchain is a globally shared, transactional database. This means that everyone can read entries in the database just by participating in the network. If you want to change something in the database, you have to create a so-called transaction which has to be accepted by all others. The word transaction implies that the change you want to make (assume you want to change two values at the same time) is either not done at all or completely applied. Furthermore, while your transaction is applied to the database, no other transaction can alter it.

As an example, imagine a table that lists the balances of all accounts in an electronic currency. If a transfer from one account to another is requested, the transactional nature of the database ensures that if the amount is subtracted from one account, it is always added to the other account. If due to whatever reason, adding the amount to the target account is not possible, the source account is also not modified.

Furthermore, a transaction is always cryptographically signed by the sender (creator). This makes it straightforward to guard access to specific modifications of the database. In the example of the electronic currency, a simple check ensures that only the person holding the keys to the account can transfer money from it.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#transactions]

Description::
Transaction: a transaction is a document authorizing some particular action associated with the blockchain. In a currency, the dominant transaction type is sending currency units or tokens to someone else; in other systems actions like registering domain names, making and fulfilling trade offers and entering into contracts are also valid transaction types.
[https://github.com/ethereum/wiki/wiki/Glossary#blockchains]

NameGreek::
* ενν.συναλλαγή-μπικόιν-εννΠτ,

bcntx'Creator (sender)

Name::
* cpt.bcntx'creator,
* cpt.bcntx'sender,

bcntx'Fee

Description::
Transaction-fee is fee applied to transaction to support the-network. This fee is-collected by the-nodes that update the-blockchain.
[hmnSgm.2017-05-12]
===
As blocks began to fill up in 2015, it became clear that the best practice is to use a dynamic fee algorithm because it can respond to changing conditions on the network.
Bitcoin Core started calculating dynamic fee estimates as of the 0.10 release in February 2015, and Alex Morcos has been steadily improving them since then. Core's fee estimate algorithm is rather complex; you can view its code here and the english explanation here.
[http://www.coindesk.com/building-better-bitcoin-fee-market/]

bcntx'Number-per-second

Name::
* cpt.bcnnet'Number-of-transactions-per-second,
* cpt.bcnnet'Transactions-per-second,
* cpt.bcnnet'Transaction-speed,

Specific::
Bitcoin:  7tx/sec
Ethereum: 25tx/sec
BOSnet:   1,000tx/sec (target)

SPECIFIC

Name::
* bcntx.specific,
* cpt.bcntx.specific,

Specific::
* Bitcoin-transaction,
* Ethereum-transaction,

Specific::
Ethereum is at its heart based on the same fundamental technology as Bitcoin, and even shares many of the same principles, but with Ethereum we can create almost any conceivable type of transaction, opening new opportunities to automate industry verticals that previously were impossible.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

bcntx.MICROTRANSACTION

Description::
Microtransaction:
Paying a tiny amount for an asset or service, primarily online.
Micro-transactions are difficult to perform under conventional payment systems, because of the heavy commissions involved.
It is difficult to pay two cents to read an online article using your credit card, for example.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.blockchain-microtransaction,
* cpt.bcnmicrotransaction,

bcnbcn'Crypto (bcncrpt)

Description::
Cryptography:
The use of mathematics to create codes and ciphers that can be used to conceal information.
Used as the basis for the mathematical problems used to verify and secure bitcoin transactions.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.blockchain-cryptography,
* cpt.bcncryptography,

bcncrpt'Algorithm (cipher)

Description::
In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure.
An alternative, less common term is encipherment.
To encipher or encode is to convert information from plain text into code or cipher.
[http://en.wikipedia.org/wiki/Cipher]

Name::
* cpt.blockchain-algorithm.cryptography,
* cpt.blockchain-cipher, /'saifer/
* cpt.blockchain-cypher,
* cpt.blockchain-encryption-algorithm,
* cpt.bcncipher,

bcncrpt'Cryptographic-hash-funciton (bcnchf)

Description::
Cryptographic hash functions are a third type of cryptographic algorithm.
They take a message of any length as input, and output a short, fixed length hash which can be used in (for example) a digital signature.
For good-hash-functions, an attacker cannot find two messages that produce the same hash.
MD4 is a long-used hash function which is now broken;
MD5, a strengthened variant of MD4, is also widely used but broken in practice.
The U.S. National Security Agency developed the Secure Hash Algorithm series of MD5-like hash functions:
SHA-0 was a flawed algorithm that the agency withdrew;
SHA-1 is widely deployed and more secure than MD5, but cryptanalysts have identified attacks against it;
the SHA-2 family improves on SHA-1, but it isn't yet widely deployed, and the U.S. standards authority thought it "prudent" from a security perspective to develop a new standard to "significantly improve the robustness of NIST's overall hash algorithm toolkit."[25]
Thus, a hash function design competition is underway and meant to select a new U.S. national standard, to be called SHA-3, by 2012.
[http://en.wikipedia.org/wiki/Cryptography#Symmetric-key_cryptography]

Name::
* cpt.blockchain-cryptographic-hash-function,
* cpt.blockchain-hash-function,
* cpt.bcncryptographic-hash-function,
* cpt.bcnhash-function,
* cpt.hash-algorithm-of-blockchain,
* cpt.hash-function-of-blockchain,

bcnchf'Input

bcnchf'Hash (output)

Description::
Hash is-called the-output of a-hash-function.
[hmnSgm.2017-04-08]

Name::
* cpt.blockchain-hash,
* cpt.bcncryptographic-has,
* cpt.bcndigest,
* cpt.bcnhash,
* cpt.bcnhash-function-output,
* cpt.bcnhash-value,
* cpt.hash-of-blockchain,

NameGreek::
* ενν.κατακερματισμός-μπλοκτσέιν,
* ενν.κρυπτογραφικός-κατακερματισμός-μπλοκτσέιν,
* ενν.μπλοκτσέιν-κατακερματισμός,

bcnchf'Hashing

Description::
Hashing is-called THE-PROCESS of using a-hash-function on input-data[1] and producing its[1] hash.
[hmnSgm.2017-04-08]

Name::
* cpt.blockchain-hashing,
* cpt.bcnhashing,
* cpt.hashing-of-blockchain,

bcncrpt.Public-key-cryptography

Description::
Public key cryptography, or asymmetric cryptography, is any cryptographic system that uses pairs of keys: public keys which may be disseminated widely, and private keys which are known only to the owner.
This accomplishes two functions:
- authentication, which is when the public key is used to verify that a holder of the paired private key sent the message, and
- encryption, whereby only the holder of the paired private key can decrypt the message encrypted with the public key.
[https://en.wikipedia.org/wiki/Public-key_cryptography]

Name::
* cpt.asymmetric-cryptography-of-blockchain,
* cpt.blockchain-asymmetric-cryptography,
* cpt.blockchain-publickey-cryptography,
* cpt.publickey-cryptography-of-blockchain,

bcnbcn'Hash-rate (bcnhhr )

Description::
The hash rate is the measuring unit of the processing power of the Bitcoin network. The Bitcoin network must make intensive mathematical operations for security purposes. When the network reached a hash rate of 10 Th/s, it meant it could make 10 trillion calculations per second.
[https://bitcoin.org/en/vocabulary#hash-rate]
===
Hash (Rate) ~ A hash is the output of a hash function and, as it relates to Bitcoin, the Hash Rate is the speed at which a compute is completing an operation in the Bitcoin code. A higher hash rate is better when mining as it increases your opportunity of finding the next block and receiving the reward.
[http://bitcoinsimplified.org/definitions/]

Name::
* cpt.bcnnet'hash-rate,
* cpt.bcnnet'hashing-power,
* cpt.blockchain-hash-rate,
* cpt.blockchain-hashing-power,
* cpt.blockchain-hashing-rate,
* cpt.hash-rate-of-blockchain,
* cpt.hashing-rate-of-blockchain,

bcnbcn'Size-of-blockchain

bcnbcn'State-of-blockchain

Description::
A blockchain contains not only the information that is currently stored in the database, but also every change made to the database in its history.
Known as the state and transactions respectively it makes for a database with a complete custodial history that cannot be altered without altering every subsequent block.
[https://dappsforbeginners.wordpress.com/tutorials/introduction-to-development-on-ethereum/]

Name::
* cpt.bcnbcnstate,
* cpt.blockchain-state,

bcnbcn'Doing

Specific::
* Blockchain-creating,
* Blockchain-updating,

bcndng.UPDATING (link)

bcnbcn.SPECIFIC

Specific::
* Bitcoin-blockchain,
* Ethereum-blockchain,

bcnnet'Exchange-Value-Unit (bcnevu)

Cpt-created: {2013-08-24}

bcnevu'DESCRIPTION

Description::
Blockchain-Exchange-Value-Unit (bcnevu) is digital-information recorded on the-blockchain that REPRESENTS units of exchange-value (= no double-spending).
Information can-represents anything.
IF this bcnevu represents AND a-commodity, we say that this bcnevu IS-BACKED with this commodity.
Generally, there-are two theories about the-exchange-value of a-commodity.
1) the-supply-demand-theory (capitalism advocating):
the supply and demand of a-commodity defines its exchange-value.
2) the-average-work-TIMES-the-supply-demand-theory (sosialism advocating):
when there-is equilibrium between supply and demand the-exchange-value is the-average-work needed to produce a-commodity (= an-entity we exchange, not an-entity we use).
No matter what theory we accept, when we exchange commodities we accept|set an-exchange-value.
The-problem is to use A-FAIR-ONE.
Blockchain-DAOs can define a-fair-exchange-value and use it automatically.
[hmnSgm.2017-05-07]
===
Blockchain-Exchange-Value-Token (bevtkn) is digital-information recorded on the-blockchain that REPRESENTS units of exchange-value (= no double-spending).
Information can-represents anything.
IF this bevtkn represents AND a-commodity, we say that this bevtkn IS-BACKED with this commodity.
Generally, there-are two theories about the-exchange-value of a-commodity.
1) the-supply-demand-theory (capitalism advocating):
the supply and demand of a-commodity defines its exchange-value.
2) the-average-work-TIMES-the-supply-demand-theory (sosialism advocating):
when there-is equilibrium between supply and demand the-exchange-value is the-average-work needed to produce a-commodity (= an-entity we exchange, not an-entity we use).
No matter what theory we accept, when we exchange commodities we accept|set an-exchange-value.
The-problem is to use A-FAIR-ONE.
Blockchain-DAOs can define a-fair-exchange-value and use it automatically.
[hmnSgm.2017-04-02]
===
Exchange-value-token (bcnevt) is digital-information recorded on the-blockchain that REPRESENTS exchange-value.
Information can-represents anything.
IF this bcnevt represents AND a-commodity, we say that this bcnevt IS-BACKED with this commodity.
Generally, there-are two theories about the-exchange-value of a-commodity.
1) the-supply-demand-theory (capitalism advocating):
the supply and demand of a-commodity defines its exchange-value.
2) the-average-work-TIMES-the-supply-demand-theory (sosialism advocating):
when there-is equilibrium between supply and demand the-exchange-value is the-average-work needed to produce a-commodity (= an-entity we exchange, not an-entity we use).
Societies have to choose which view serves better their interests, because they have to correlate exchange-values to their commodities, fair or not.
[hmnSgm.2017-03-29]
===
exchange-value-of-commodity = average-work-measure TIMES demand / supply.
[hmnSgm.2017-04-15]
===
No matter what theory we accept, when we exchange commodities we accept|set an-exchange-value.
The-problem is to use A-FAIR-ONE.
Blockchain-DAOs can define a-fair-exchange-value and use automatically.
[hmnSgm.2017-04-01]
===
Satoshi Nakamoto solved the-double-spending-problem WHITHOUT a-central trust entity.
So blockchain is ideal for holding information representing exchange-value, ie any financial-product.
[hmnSgm.2017-03-30]
===
Blockchain-money is money a-bcnnet needs to operate or issued by it.
[hmnSgm.2017-03-27]

Description::
Ether is a necessary element -- a fuel -- for operating the distributed application platform Ethereum.
[https://www.ethereum.org/ether]

Description::
A cryptocurrency (or crypto currency) is a medium of exchange using cryptography to secure the transactions and to control the creation of new units.[1] Cryptocurrencies are a subset of alternative currencies, or specifically of digital currencies. Bitcoin became the first decentralized cryptocurrency in 2009.[2] Since then, numerous cryptocurrencies have been created. These are frequently called altcoins, as a blend of bitcoin alternative.[3][4]
Cryptocurrencies typically feature decentralized control[citation needed] (as opposed to a centralized electronic money system, such as PayPal) and a public ledger[citation needed] (such as bitcoin's block chain) which records transactions.
[https://en.wikipedia.org/wiki/Cryptocurrency] {retrieved 2015-08-12},

Description::
A cryptocurrency is a type of digital currency (which in turn is a type of alternative currency) that relies on cryptography, usually alongside a proof-of-work scheme, in order to create and manage the currency.[1][2] Cryptocurrencies are peer-to-peer and decentralized, and are currently all based on the first cryptocurrency, Bitcoin.[1][2][3][4][5][6] They are generally designed to have no inflation (once all the currency has been produced), in order to keep scarcity and hence value.[7][8] However, a few cryptocurrencies, such as PPCoin, do have a small amount of inflation. Cryptocurrencies are also designed to ensure that funds can neither be frozen nor seized.[7][9] Existing cryptocurrencies are all pseudonymous, though additions such as Zerocoin have been suggested, which would allow for anonymity.[10][11][12][13]
[http://en.wikipedia.org/wiki/Cryptocurrency]

Description::
Digital currencies or cryptocurrencies are a way of transferring money over the internet. These combine cutting-edge encryption with far-reaching developments in social networking. The resulting advantages that cryptocurrencies offer over traditional methods of payment are truly remarkable.

We have used the same way of transferring money for centuries. Even with the advent of the internet, these methods didn’t really change much. Cryptocurrency is something completely new – so new that it cannot be described in terms of these traditional means of payment.

Instead, it’s easier to understand cryptocurrencies in terms of what they can do. For the first time in history, it is possible to send money anywhere on the planet within a few minutes, directly between individuals and completely securely, without relying on any banks, payment companies or other third parties, and virtually free of cost.
[http://nxt.org/about/what-is-nxt/]

Description::
Cryptocurrency:
A form of currency based on mathematics alone.
Instead of fiat currency, which is printed, cryptocurrency is produced by solving mathematical problems based on cryptography.
[http://www.coindesk.com/information/bitcoin-glossary/]

bcnevu'NAME

Name::
* cpt.bcnevu, {2017-05-07}
* cpt.bcnnet'exchange-value-unit, {2017-05-07}
* cpt.blockchain-exval-unit, {2017-05-07}
* cpt.blockchain-exchange-value-unit, {2017-05-07}
* cpt.exchange-value-unit-of-bcnnet, {2017-05-07}
===
* cpt.bcnevt, {2017-04-14}
* cpt.bcnevtkn, {2017-03-29}
* cpt.bcnnet'exchange-value-token, {2017-03-29}
* cpt.bevtkn, {2017-04-02}
* cpt.blockchain-exval-token, {2017-03-30}
* cpt.blockchain-exchange-value-token, {2017-03-29}
* cpt.exchange-value-token-of-bcnnet, {2017-03-29}
===
* cpt.bcnmny,
* cpt.bcnnet'currency,
* cpt.bcnnet'money,
* cpt.bcnnet'token,
* cpt.blockchain-evu,
* cpt.blockchain-exchange-value-unit, {2017-05-12}
* cpt.blockchain-coin,
* cpt.blockchain-currency,
* cpt.blockchain-money,
* cpt.blockchain-token,
* cpt.coin-of-blockchain,
* cpt.cryptocoin, {2017-01-31}
* cpt.cryptocurrency,
* cpt.decentralized-currency,
* cpt.evu,
* cpt.mnyBcn, {2016-04-08}
* cpt.mnyBlockchain,
* cpt.mnyCrypto,
* cpt.money.blockchain, {2016-04-08}
* cpt.money.decentralized, {2016-06-01}
* cpt.netBcn'currency,
* cpt.netBcn'money,
* cpt.netBcn'token,

NameGreek::
* ενν.μπλοκτσέιν-μαα, {2017-05-09}
* ενν.μπλοκτσέιν-μονάδα-ανταλλακτικής-αξίας, {2017-05-09}
* ενν.κρυπτονόμισμα,

Internet-currency:
* including internet currencies such as Bitcoin and Ven,
[http://en.wikipedia.org/wiki/Ripple_monetary_system]

bcnevu'Short-name

Description::
Many bcnevu have and a 3 or 4 letter short-name ie BTC for bitcoin.

Name::
* cpt.bcnevu-code,
* cpt.bcnevu'short-name,
* cpt.bcnevu-short-name,

bcnevu'Symbol

Description::
A small picture denoting the-bcnevu.

bcnevu'Key

Description::
The-bcnevus are-stored cryptographically in the-blockchain.
We use public-keys to receive them and the corresponding private-keys to spend them.

Name::
* cpt.bcnevu'key,
* cpt.key-of-blockchain,

bcnevu'Wallet (link)

bcnevu'Exchange-rate (bcnexr|value)

Description::
Exchange-rate (value) of a-blockchain-token is its exchange-value measured with another UNIT of exchange-value.
[hmnSgm.2017-04-02]

Name::
* cpt.bcnevt'exchange-rate,
* cpt.bcnevt'foreign-exchange-rate,
* cpt.bcnevt'forex,
* cpt.bcnevt'rate,
* cpt.bcnevt'value, {2017-04-02}
* cpt.bcnevt'forex,
* cpt.bcnexr, {2017-04-15}

NameGreek::
* ενν.ισοτιμία-μπλοκτσέιν-μαα,

AddressWpg::
* https://coinmarketcap.com/
* https://www.cryptonator.com/rates,
* http://coincap.io/?gclid=CjwKEAiAn7HEBRDHw...FYokrLGFyNNJ1vGnktBoC3nLw_wcB,

bcnevu'BACKNESS

Description::
All bcnevt REPRESENT (as digital-info) exchange-value.
Backness is A-SECOND-REPRESENTATION with a-commodity.
Some are-backed with gold or other precious-metals.
Others are-backed with fiat-money, us-dollars, euros, etc.
Any commodity, financial or not can-be-used.
[hmnSgm.2017-04-19]

bcnevu'Activeness

Description::
Is the-token alive or dead?.

bcnevu'Blockchain-network (link)

bcnevu'Distribution

Description::
So, as of Dec. 3. [{2013}], using a price of $1,000 (which is basically where we are now), and assuming 12 million Bitcoins in circulation, here's the breakdown: 47 individuals own 28.9% of the approximately 12 million Bitcoins in existence so far.
Another 880 own 21.5%, meaning 927 people control half of the entire market cap of the digital currency.
Another 10,000 individuals control about a quarter.
And the rest of us (around a million of us) get the crumbs (500,000 are out of circulation, whether through government seizure or people losing their passwords).
[http://www.businessinsider.com/927-people-own-half-of-the-bitcoins-2013-12]
===
- NEM relatively large egalitarian distribution
[http://wiki.nem.io/index.php/About:_General]

bcnevu'Evaluation

Description::
Evaluating an Alt Coin
With so many alt coins out there, how does one decide which ones are worthy of attention?
Some alt coins attempt to achieve broad distribution and use as currencies.
Others are laboratories for experimenting on different features and monetary models.
Many are just get-rich-quick schemes by their creators.
To evaluate alt coins, I look at their defining characteristics and their market metrics.

Here are some questions to ask about how well an alt coin differentiates from bitcoin:
- Does the alt coin introduce a significant innovation?
- Is the difference compelling enough to attract users away from bitcoin?
- Does the alt coin address an interesting niche market or application?
- Can the alt coin attract enough miners to be secured against consensus attacks?

Here are some of the key financial and market metrics to consider:
- What is the total market capitalization of alt coin?
- How many estimated users/wallets does the alt coin have?
- How many merchants accept the alt coin?
- How many daily transactions (volume) are executed on the alt coin?
- How much value is transacted daily?
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch09.asciidoc#evaluating-an-alt-coin]

Description::
Without mentioning Litecoin, he ranks Bitcoin, Monero and Decred as his highest coins citing that Decred spent a year doing coding to improve its consensus and governance system, and Monero which didn’t have a GUI wallet. Ethereum is close, he adds, but the decision to hardfork and go back on the “uncensorable transaction” promise really hurts.
[https://cointelegraph.com/news/what-to-watch-out-for-before-investing-in-altcoins-litecoin-creator]

bcnevu'Fungibility

Description::
FUNGIBLE CRYPTOCURRENCY
In order to remain equally interchangeable, units of cryptocurrency must be unlinked from their history so that one unit is as good as any other unit.
Zcash brings fungibility to cryptocurrency by unlinking shielded coins from their history on the blockchain.
[https://z.cash/]

bcnevu'Human

bcnevuhmn.Creator

Name::
* cpt.bcnevt'creator,
* cpt.bcnevt'founder,
* cpt.bcnevt'founder,

bcnevuhmn.User-base

Name::
* cpt.bcnevt'adoption,
* cpt.bcnevt'usage,
* cpt.bcnevt'user-base,
* cpt.bcnevt'adoption,
* cpt.bcnevt'usage,

bcnevu'Law

Description::
As of 2013 cryptocurrencies were illegal in Iceland, due to its freeze on foreign exchange.[28] Controversy over the misuse of cryptocurrency has also led to restrictions in certain countries – regulators in China banned the handling of bitcoins by financial institutions during an extremely fast adoption period in early 2014.[29] In Russia, though cryptocurrencies are legal, it is illegal to actually purchase goods with any currency other than the Russian ruble.[30]

On March 25, 2014, the United States Internal Revenue Service (IRS) ruled that bitcoin will be treated as property for tax purposes as opposed to currency. This means bitcoin will be subject to capital gains tax. One benefit of this ruling is that it clarifies the legality of bitcoin. No longer do investors need to worry that investments in or profit made from bitcoins are illegal or how to report them to the IRS.[31] In a paper published by researchers from Oxford and Warwick it was shown that Bitcoin has some characteristics similar to the precious metals market more than to traditional currencies, hence in agreement to the IRS decision even if based on different reasons.[32]

Some cryptocurrency have legal issues such as Coinye, an altcoin that used, without permission, rapper Kanye West as its logo. This altcoin has been compared to the popular Dogecoin. Upon hearing of the release of Coinye, originally called Coinye West, attorneys for Kanye West sent a cease and desist letter to the email operator of Coinye, who since revealed himself as David P. McEnery Jr. The letter stated that Coinye was willful trademark infringement, unfair competition, cyberpiracy, and dilution and instructed Coinye to stop using the likeness and name of Kanye West.[33]
[https://en.wikipedia.org/wiki/Cryptocurrency]

AddressWpg::
* http://cointelegraph.com/news/ russian-law-enforcement-considers-further-criminalizing-cryptocurrencies,

bcnevu'Organization (bcnevtogn)

bcnevuogn.EXCHANGE (link)

bcnevuogn.MERCHANT (link)

bcnevuogn.EDUCATING

AddressWpg::
* http://digitalcurrency.unic.ac.cy/?utm_source=Twitter&utm_medium=Banner&utm_campaign=MScDigital,

bcnevu'Security

Description::
Reliable wallet/service for storage of your altcoins is the most important thing for you.
Every owner of cryptocurrency can tell their own story of how they failed to rescue their PC flooded with beer, on which wallet files were stored, or could not restore access to the online wallet linked to their lost mobile phone.
[http://cointelegraph.com/news/tips-for-revamping-your-cryptocurrency-job-search-in-2016]

bcnevu'Transaction (link)

bcnevu'Time

bcnevu'Time.release

Name::
* cpt.date-of-introduction-of-bcnevt,
* cpt.bcnevt'introduction,

bcnevu'Resource

AddressWpg::
* http://www.coinwarz.com/ How frequently is the information updated on CoinWarz?
The current difficulty, exchange rate, exchange volume, and current profit ratio versus BTC are updated every 5 minutes. All other information, including the difficulty charts, exchange rate charts, and profit ratio versus BTC charts are updated every hour.
* http://cointelegraph.com/news/ auroracoin-sterlingcoin-scotcoin-national-cryptocurrencies-provide-alternative-to-central-banking,
* http://cointelegraph.com/news/central-banking-is-broken-solution-is-bitcoin-panama-papers-reveal,
* http://www.links.org/files/decentralised-currencies.pdf,
* 2015-03-10: Masters joins cryptocurrency start-up http://www.ft.com/intl/cms/s/0/e29808a8-c744-11e4-9e34-00144feab7de.html?siteedition=intl#axzz3U5OWaspl,

bcnevu'env.OTHER-VIEW

Description::
XRP: Math-Based Currency
Feb 20, 2015 | Julian Martinez
A math-based currency, also referred to as a cryptocurrency, is a digital asset with verifiable mathematical properties, similar to how we can reliably verify gold as a substance made of atoms with 79 protons. Math-based currencies exist as digital assets in their own right and can be transferred directly between users (as fiat cash can be) without relying on a centralized protocol operator. XRP exists as a math-based currency on the Ripple protocol.

The supply of a math-based currency is governed by mathematics. There is no human intervention after the creation & implementation of the protocol rules. This is in contrast to the many “virtual currencies” that can be issued without restriction by companies and people (such as airline miles, reward points, etc.). In this example, XRP cannot be ‘devalued’ by the creation of additional XRP.

Bitcoin was the first example of a math-based currency. Bitcoin exists natively as a digital asset. On the network, it is not a balance that is redeemable at a central point of failure, and does not carry risk from a counterparty as “digital fiat” currencies do (as with an online balance from a bank that is not FDIC insured). You could hand someone a thumb drive with Bitcoin on it, and in doing so, you are transferring the asset itself, like handing over cash, as opposed to transferring an IOU or someone’s promise to pay. It does not require trust in any third party.

XRP exists natively within the Ripple protocol as a counterparty-free currency, as Bitcoin does on the Blockchain. Because XRP is an asset, as opposed to a redeemable balance, it does not require that users trust any specific financial institution to trade or exchange it. All other currencies on Ripple do require some amount of trust, as they each have an issuer, from whom that currency can be redeemed (this includes BTC on the Ripple network).

Users of the Ripple protocol are not required to use XRP as a medium of exchange or as a store of value. The Ripple protocol is currency agnostic. Users can use their preferred currency, whether that’s USD, BTC, XRP, or any other currency. Similarly, users may freely choose to trust any issuers they find reliable; this includes the trust implied by users trading in an issued non-XRP currency.
[https://ripple.com/knowledge_center/math-based-currency-2/]

Name::
* cpt.money.math-based,
* cpt.mny.math-based,

bcnevu'DOING

bcnevu'Acquiring

Description::
You can-acquire bcnevu:
- from an-exchange,
- updating the-blockchain,
- selling commodities,
- from an-ICO,
[hmnSgm.2017-05-09]

Name::
* cpt.bcnevt'acquiring,
* cpt.bcnevt'obtaining,
* cpt.bcnevt'acquiring,
* cpt.bcnevt'obtaining,

Specific::
* exchanging,
* mining,
* selling-goods-and-services,
* ICO,

bcnevu'Issuing

Description::
The-process of creating new bcnevu.
===
- NEM zero monetary inflation (fixed supply, all 9 billion coins released at launch).
[http://wiki.nem.io/index.php/About:_General]

Name::
* cpt.bcnevt'creating,
* cpt.bcnevt'issuing,
* cpt.bcnevt'issuance,

bcnevu'Rate-of-issuance

Name::
* cpt.bcnevt'Rate-of-issuance,

SPECIFIC

Name::
* bcnevu.specific,
* bcnevt.specific,
* cpt.bcnevtSpc,
* cpt.bcnevt.specific,

Specific::
=== GENERIC:
* Active-bcnevu,
* ActiveNo-bcnevu,
* Altcoin,
* Consensus-bcnevu,
* ConsensusNo-bcnevu,
* Minable-bcnevu,
* MinableNo-bcnevu,
* Protocol-bitcoin-based,
* Protocol-CryptoNote-based,
=== INSTANCE:
* Ardor-ARDR,
* Augur-REP,
* AuroraCoin-AUR,
* Bitcoin-BTC,
* BitShares-BTS,
* Bytecoin-BCN,
* BlackCoin-BLK,
* Counterparty,
* CureCoin-CURE,
* Dash,
* Dogecoin-DOGE,
* Ether-ETH,
* Factom-FCT,
* Faircoin-FAIR,
* Freicoin-FRC,
* Gulden-NLG,
* LBRY-Credits-LBC,
* Lisk-LSK,
* Litecoin-LTC,
* MaidSafeCoin-MAID,
* Mastercoin,
* Monero-XMR,
* Namecoin-NMC,
* NAV-Coin-NAV,
* Nxt-NXT,
* Nubits-USNBT,
* Peercoin-PPC,
* Radium-RADS,
* Reddcoin-RDD,
* Ripple-XRP,
* STEEM,
* Stellar,
* StorjcoinX,
* Stratis-STRAT,
* Synereo-AMP,
* Tether-USDT,

Specific::
* SHA-256-based: Bitcoin, Peercoin, Namecoin, Titcoin,
* Scrypt-based: Auroracoin, Dogecoin, Litecoin, PotCoin,
* Zerocoin-based: Zcash, Zcoin, ZeroVert,
* CryptoNote-based: Bytecoin, Monero,
* Other proof-of-work: Ethereum, Primecoin,
* Non proof-of-work: BlackCoin, Counterparty, Gridcoin, Lisk, NEM, Nxt, Ripple, Stellar, Shadow,
[https://en.wikipedia.org/wiki/Monero_(cryptocurrency)]

bcnevu.SPECIFIC-DIVISION.consensus-algorithm

Specific::
* consensus-bcnevu,
* consensusNo-bcnevu,

bcnevu.SPECIFIC-DIVISION.governance

Specific::
* builtin-governace-bcnevu,
* builtin-governaceNo-bcnevu,

bcnevu.SPECIFIC-DIVISION.time-of-genesis

Specific::
* {2017}:

* {2016}:
- Decred-DCR,
- LBRY-Credits-LBC,
- Lisk-LSK,
- NAV-Coin-NAV,
- PIVX,
- STEEM,
- Stratis-STRAT,
- WAVES,
- Zcash-ZEC,
* {2015}:
- BitShares-BTS,
- Ether-ETH,
- Factom-FCT,
- NEM-XEM,
- Radium-RADS,
* {2014}:
- AuroraCoin-AUR,
- BlackCoin-BLK,
- DASH,
- FairCoop-FAIR,
- Gulden-NLG,
* MaidSafeCoin-MAID,
- NuBits-USNBT,
* {2013}:
- DogeCoin-DOGE,
- Nxt-NXT,
* {2012}:
- Freicoin-FRC,
- Peercoin-PPC,
- Ripple-XRP,
* {2011}:
- Litecoin-LTC,
- Namecoin-NMC,
* {2010}:

* {2009}:
- Bitcoin-BTC,

bcnevu.SPECIFIC-DIVISION.protocol

Specific::
* Bitcoin-based,
* CryptoNote-based,
* Nxt-based,

bcnevu.protocol.Bitcoin-based

Name::
* cpt.bitcoin-based-cryptocurrency,
* cpt.bitcoin-based-token,
* cpt.bitcoin-fork-cryptocurrency,

Specific::
* Litecoin-LTC,

bcnevu.protocol.CryptoNote-based

Description::
CryptoNote Phylosophy
CryptoNote is the technology that allows the creation of completely anonymous egalitarian cryptocurrencies. A number of our community members have been focused on research and development for more than a decade. We aim to promote the derived principles to influence the contemporary economic paradigm.
The current power distribution on our planet is the legacy of the world where the economy is controlled by the few. The status quo was shaped throughout centuries, making human beings engage in rat races, detrimental rivalry, and bloodshed. In spite of humanity's hope to overcome local crises through education and internationalization, we still fail to have full control over our lives.
However, state-of-the-art advancements in technology, mathematics, and cryptography may become the key to subvert this paradigm. The advent of cryptocurrencies is the first sign that the new world is coming. It is marked with a hope that the economy will interlace with the technology, that communities will set new transparent principles, and impartial cryptographic algorithms will control its implementation.
It is in our philosophy to encourage enlightenment through breakthrough innovations. Emancipation begins with laymen getting access to financial resources that will give the oppressed the hope for quality education, drinking water, and a better life. CryptoNote is not about creating yet another digital currency. It is the mindset and concepts that represent the first small step to regain the power over ourselves in order to live peacefully and prosper.
[https://cryptonote.org/inside/]

Name::
* cpt.CryptoNote-based-cryptocurrency,
* cpt.CryptoNote-based-token,
* cpt.CryptoNote-fork-cryptocurrency,

AddressWpg::
* https://cryptonote.org/

Specific::
* AEON,
* ByteCoin-BCN,
* DarkNetCoin-DNC,
* Dashcoin-DSH,
* DigitalNote-XDN,
* Fantomcoin-FCN,
* Monero-XMR,
* Pebblecoin-XPB,
* QuazarCoin-QCN,

bcnevu.CryptoNote.Aeon (AEONcevu {2014-06-06})

Description::
Aeon AEON
Aeon is a CryptoNote-based anonymous cryptocurrency using the CryptoNight-light algorithm. It offers data protection features, untraceable payments with ring signatures and unlikable transactions to its users. Aeon was launched on 06.06.2014.
[https://changelly.com/supported-currencies]
===
AEON
AEON (Anonymous Electronic On-line coiN) is a Monero fork and also a privacy focused coin that is aimed towards open-source community to deliver fast and secure payment method while being simple enough to be used by anyone. ?AEON has started as an experiment but then found its supporters and now AEON is fully functional CryptoNote currency.
[https://cryptonote.org/coins/]
===
Aeon (AEON)
$0.235153 (5.35%)
0.00019879 BTC (5.74%)
Rank 96
Mineable Currency
Market Cap
$3,280,079
2,773 BTC
Volume (24h)
$10,689
9.04 BTC
Circulating Supply
13,948,703 AEON
[https://coinmarketcap.com/currencies/aeon/] {2017-04-16}

Name::
* cpt.AEONcevu,
* cpt.AEON-money,
* cpt.AEON-token,

AddressWpg::
* https://coinmarketcap.com/currencies/aeon/
* ANN: https://bitcointalk.org/index.php?topic=641696.0, {2014-06-06}
* http://chainradar.com/aeon/blocks,
* BlockH1: http://chainradar.com/aeon/block/1,

bcnevu.CryptoNote.ByteCoin (BCN byncevu {2012-07-04})

Description::
Bytecoin (BCN)
Bytecoin is the first CryptoNote-based currency, which has reached mass adoption successfully. Bytecoin also possesses one of the largest ecosystems. Bytecoin has been originally created in close cooperation with CryptoNote team. It is the first implementation of CryptoNote technology, with the release dating back to July 2012. Up to this date Bytecoin developers has been making significant contributions to the development of CryptoNote technology.
[https://cryptonote.org/coins/]
===
Bytecoin BCN
Bytecoin is a first CryptoNote-based cryptocurrency. A CPU-mined coin, it's primary advantages are extraordinary transaction untraceability and unlinkability features. BCN is stated to be much more anonymous than Bitcoin and all its existing forks. The developers claim a person’s right to privacy is their primary concern and strictly observe their own privacy. Bytecoin was started on July 4th, 2012.
BCN is based on CryptoNote, an open-source technology for anonymous cryptocurrencies. It utilizes ring signature and one-time addresses for completely anonymous payments. CryptoNote is designed in a way, which makes block chain analysis impossible. CryptoNote is focused on CPU-mining in order to make the special purposes devices useless.
[https://changelly.com/supported-currencies]
===
Bytecoin (BCN)
$0.000153 (10.58%)
0.00000013 BTC (10.99%)
Rank 31
Mineable Currency
Market Cap
$27,885,394
23,574 BTC
Volume (24h)
$99,601
84.20 BTC
Circulating Supply
182,759,167,360 BCN
[https://coinmarketcap.com/currencies/bytecoin-bcn/] {2017-04-16}

Name::
* cpt.BCN-token,
* cpt.byncevt, {2017-04-02}
* cpt.byncevu, {2017-05-10}
* cpt.ByteCoin-Consensus-Exval-Token, {2017-04-02}
* cpt.ByteCoin-token,
* cpt.mnyBCN,
* cpt.mnyByteCoin,

AddressWpg::
* https://bytecoin.org/
* http://chainradar.com/bcn/blocks,
* BlockH1: http://chainradar.com/bcn/block/1,

bynevuC'Exchange-rate

{time.2017-01-31}:
1 BTC is 14,721,300 BCN (Changelly)

bcnevu.CryptoNote.DarkNetCoin (DNC )

Description::
DarkNetCoin (DNC)
DarkNetCoin is the general currency of DarkNetSpace, a platform for anonymous applications such as p2p exchange, on-chain shop, lotto, gambling and bets. It uses Wild Keccak hash function instead of CryptoNight. Starting with the 4550th block 1% of block reward is donated to CryptoNote team and 9% to DarkNetSpace team.
DARKNETSPACE.ORG
[https://cryptonote.org/coins/]

Name::
* cpt.DarkNetCoin,
* cpt.DarkNetCoin-token,
* cpt.DNC-evuC,
* cpt.DNC-token,
* cpt.mnyDarkNetCoin,
* cpt.mnyDNC,

bcnevu.CryptoNote.Dashcoin (DSHevuC {2014-07-05})

Description::
Dashcoin (DSH)
Dashcoin is a cryptocurrency started on July 5, 2014. Dashcoin is a fork of Bytecoin and it also utilizes CryptoNote algorithm. ?The goal of Dashcoin is to automatically create a perfect mirror image of Bytecoin, the first CryptoNote based cryptocurrency, at any given moment of time. ?The only difference is the supply amount.
[https://cryptonote.org/coins/]
===
Dashcoin DSH
Dashcoin is a Next generation anonymous cryptocurrency and the first automatically mutating cryptocurrency created with CryptoNote technology.
[https://changelly.com/supported-currencies]
===
Dashcoin (DSH)
$0.018697 (-9.18%)
0.00001580 BTC (-8.86%)
Rank 228
Mineable Currency
Market Cap
$322,974
273 BTC
Volume (24h)
$1,508
1.27 BTC
Circulating Supply
17,273,729 DSH
[https://coinmarketcap.com/currencies/dashcoin/] {2017-04-16}

Name::
* cpt.Dashcoin,
* cpt.Dashcoin-token,
* cpt.DSH-evuC,
* cpt.DSH-token,
* cpt.mnyDashcoin,
* cpt.mnyDSH,

AddressWpg::
* http://dashcoin.info/
* BlockH1: http://chainradar.com/dsh/block/1,

bcnevu.CryptoNote.DigitalNote (XDNevuC {2014-05-30})

Description::
DigitalNote XDN
DigitalNote is an experimental open-source cryptocurrency based on CryptoNote technology and CryptoNight algorithm. It is a fork of Bytecoin - the very first implementation of CryptoNote. Nobody own or control DigitalNote. It is a scalable decentralized cryptocurrency with strong privacy protection. DigitalNote uses ring signatures, to provide unlinkable and untraceable transactions.
[https://changelly.com/supported-currencies]
===
DigitalNote (XDN)
$0.000155 (3.69%)
0.00000013 BTC (4.04%)
Rank 148
Mineable Currency
Market Cap
$1,068,910
903 BTC
Volume (24h)
$21,022
17.77 BTC
Circulating Supply
6,878,755,652 XDN
[https://coinmarketcap.com/currencies/digitalnote/] {2017-04-16}

Name::
* cpt.DigitalNote,
* cpt.DigitalNote-token,
* cpt.mnyDigitalNote,
* cpt.mnyXdn,
* cpt.mnyXdn,
* cpt.XDN-evuC,
* cpt.XDN-token,
* cpt.xdncevt,

AddressWpg::
* http://digitalnote.org/
* BlockH1: http://chainradar.com/xdn/block/1,

bcnevu.CryptoNote.Fantomcoin (FCNevuC {2014-05-06})

Description::
Fantomcoin FCN
Unlike other CryptoNote based cryptocurrencies, Fantomcoin supports merged mining. It can be possible with Bytecoin, Monero, QuazarCoin or any CN based coin. New blockchain needs no additional hashpower - it uses Bytecoin, Monero, QuazarCoin blocks or shares as PoW. Miners are free to choose "donor" chain they like. In case other chains based on CryptoNote will appear they also can be used as "donor" chains.
[https://changelly.com/supported-currencies]
===
Fantomcoin (FCN)
Fantomcoin is the first CryptoNote currency with merged mining support. Users who mine Fantomcoin are also able to mine other CryptoNote-based coins without additional hash power. This feature allows user to receive not only FCNs but also any other CryptoNote-based currency. As the result, Fantomcoin encourages fair distribution and stabilization of the cryptocurrency market through diversification.
FANTOMCOIN.ORG
[https://cryptonote.org/coins/]
===
Fantomcoin (FCN)
$0.089940 (3.15%)
0.00007601 BTC (3.50%)
Rank 193
Mineable Currency
Market Cap
$508,843
430 BTC
Volume (24h)
$1,159
0.98 BTC
Circulating Supply
5,657,591 FCN
[https://coinmarketcap.com/currencies/fantomcoin/] {2017-04-16}

Name::
* cpt.Fantomcoin,
* cpt.FCN-evuC,
* cpt.FCN-token,
* cpt.mnyFantomcoin,
* cpt.mnyFcn,
* cpt.mnyFCN,

AddressWpg::
* http://fantomcoin.org/
* BlockH1: http://chainradar.com/fcn/block/1,

bcnevu.CryptoNote.Monero (XMRevuC {2014-04-18})

Description::
Monero XMR
Monero is a new coin using the CryptoNote protocol. It's based on Bytecoin, which was coded from scratch and is not a descendent of Bitcoin. XMR was launched on April 18, 2014.
[https://changelly.com/supported-currencies]
===
Monero (XMR) is an open-source cryptocurrency created in April 2014 that focuses on privacy, decentralisation and scalability. Unlike many cryptocurrencies that are derivatives of Bitcoin, Monero is based on the CryptoNote protocol and possesses significant algorithmic differences relating to blockchain obfuscation.[1] Monero has ongoing support from the community,[2] and its modular code architecture has been praised by Wladimir J. van der Laan, a Bitcoin Core maintainer.[3] Initially meeting little popularity with the general public, Monero experienced rapid growth in market capitalization (from US$5M to US$185M)[4] and transaction volume[5] during the year 2016, partly due to adoption by major darknet market AlphaBay at the end of summer 2016.[6]
[https://en.wikipedia.org/wiki/Monero_(cryptocurrency)]
===
Monero (XMR)
Monero (previously known as Bitmonero) is one of the first CryptoNote coins. It utilizes the same values every CryptoNote coin does – privacy, decentralization and fungibility. Monero development is community-driven, based on donations and with a focus on decentralization and scalability.
MONERO.CC| BITMONERO.ORG
[https://cryptonote.org/coins/]
===
Monero (XMR)
$20.69 (-0.47%)
0.01746860 BTC (-0.22%)
Rank 6
Mineable Currency
Market Cap
$295,879,036
249,864 BTC
Volume (24h)
$4,271,650
3,607 BTC
Circulating Supply
14,303,624 XMR
[https://coinmarketcap.com/currencies/monero/] {2017-04-16}

Name::
* cpt.mnyMonero,
* cpt.mnyXmr,
* cpt.Monero-cryptocurrency,
* cpt.mnyMonero,
* cpt.Monero,
* cpt.XMR-evuC,
* cpt.XMR-token,
* cpt.xmrcevt,

AddressWpg::
* https://getmonero.org/
* Block1: http://chainradar.com/xmr/block/1,

bcnevu.CryptoNote.Pebblecoin (XPB)

Description::
Pebblecoin (XPB)
Pebblecoin is a CryptoNote-based coin with certain adjustments. XPB implemented a mining algorithm called Boulderhash that requires 13 GB RAM. This has been the successful attempt to block botnet-controlled computers from mining. XPB has a distinct emission curve: the standard block reward of 300 coins remains unchanged for the whole period of XPB mining.
[https://cryptonote.org/coins/]

Name::
* cpt.mnyQuazarCoin,
* cpt.mnyQCN,
* cpt.QuazarCoin,
* cpt.QCN-evuC,
* cpt.QCN-token,

bcnevu.CryptoNote.QuazarCoin (QCN {2014-05-08})

Description::
QuazarCoin QCN
QuazarCoin is a new cryptocurrency based on the CryptoNote and uses the CryptoNight algorithm. QCN protects your data and privacy with help of completely anonymous transactions with ring signatures.
[https://changelly.com/supported-currencies]
===
Quazarcoin (QCN)
Quazarcoin is a CryptoNote-based coin, which has been launched as a result of community discussions. It has a flatter emission curve and fair, open launch to attract the wider community. QCN's developers focus on usability aspects of the currency. Its main contribution is the popularization of CryptoNote technology.
QUAZARCOIN.ORG
[https://cryptonote.org/coins/]
===
QuazarCoin (QCN)
$0.009481 (3.45%)
0.00000800 BTC (3.65%)
Rank 448
Mineable Currency
Market Cap
$52,191
44 BTC
Volume (24h)
$13
0.01 BTC
Circulating Supply
5,505,034 QCN
[https://coinmarketcap.com/currencies/quazarcoin/] {2017-04-16}

Name::
* cpt.mnyQuazarCoin,
* cpt.mnyQCN,

AddressWpg::
* BlockH1: http://chainradar.com/qcn/block/1,

bcnevu.SPECIFIC-DIVISION.bitcoin

Specific::
* Bitcoin,
* BitcoinNo-altcoin,

Altcoin

Description::
Altcoin:
The collective name for cryptocurrencies offered as alternatives to bitcoin.
Litecoin, Feathercoin and PPcoin are all altcoins.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Altcoin:
A clone of the protocol with some modifications.
Usually all altcoins have rules incompatible with Bitcoin and have their own genesis blocks.
Most notable altcoins are Litecoin (uses faster block confirmation time and scrypt as a proof-of-work) and Namecoin (has a special key-value storage).
In theory, an altcoin can be started from an existing Bitcoin blockchain if someone wants to support a different set of rules (although, there was no such example to date).
See also Fork.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.altcoin-of-blockchain,
* cpt.blockchain-altcoin,
* cpt.bcnaltcoin,

bcnevu.SPECIFIC-DIVISION.activeness

bcnevu.ACTIVE

Name::
* cpt.bcnevu.active,

bcnevu.ACTIVE.NO

Description::
CT: Has CoinMarketCap ever permanently removed a coin from being listed on the site? If so is there a list of delisted coins? How about delisting an exchange?
G: About 40% of the coins ever added to the site are now "inactive" due to failing to meet the basic criteria. In virtually all cases, the reason for delisting is because all exchanges have delisted the coin. There is not currently a list of these coins, but perhaps in the future. Exchanges get delisted when their API fails ceases to work for a significant period of time.
[https://cointelegraph.com/news/coinmarketcap-about-40-of-the-coins-ever-added-to-the-site-are-now-inactive] {2015-08-21}

Name::
* cpt.bcnevu.activeNo,
* cpt.bcnevu.inactive,

Specific::
* Solocoin-SOL, https://coinmarketcap.com/currencies/solcoin/

bcnevu.SPECIFIC-DIVISION.mining

bcnevu.MINABLE

Name::
* cpt.bcnevu.minable,

Specific::
* Bitcoin-BTC,
* Ethereum-ETH,
* Litecoin-LTC,
* Dash-DASH,
* Monero-XMR,
* Ethereum Classic-ETC,
* Zcash-ZEC,
* Steem-STEEM,
* Decred-DCR,
* BitConnect-BCC,
* Dogecoin-DOGE,
* Bytecoin-BCN,
* GameCredits-GAME,
* Siacoin-SC,
* Peercoin-PPC,
* Emercoin-EMC,
* Komodo-KMD,
* Nexus-NXS,
* SysCoin-SYS,
* ZCoin-XZC,
* Creditbit-CRBIT,
* Namecoin-NMC,

bcnevu.MINABLE.NO

Name::
* cpt.bcnevu.minable,

Specific::
* Ripple-XRP,
* NEM-XEM,
* PIVX-PIVX,
* Stratis-STRAT,
* Waves-WAVES,
* Lisk-LSK,
* Stellar Lumens-XLM,
* BitShares-BTS,
* Ark-ARK,
* Nxt-NXT,
* Bitcrystals-BCY,
* Byteball-GBYTE,
* Counterparty-XCP,
* AntShares-ANS,
* I/O Coin-IOC,
* Rubycoin-RBY,
* Nexium-NXC,
* BlackCoin-BLK,
* NAV Coin-NAV,
* YbCoin-YBC,
* Radium-RADS,
* BitBay-BAY,
* ION-ION,
* Omni-OMNI,

bcnevu.MINABLE.SIGNIFICANTLY-PREMINED

Name::
* cpt.bcnevu.sigificantly-premined,

Specific::
* Gulden-NLG,

bcnevu.AGGREGATE

Description::
Most cryptocurrencies are designed to gradually decrease production of currency, placing an ultimate cap on the total amount of currency that will ever be in circulation.
This can mimic the scarcity (and value) of precious metals and avoid hyperinflation.
Compared with ordinary currencies held by financial institutions or kept as cash on hand, cryptocurrencies are less susceptible to seizure by law enforcement.
Existing cryptocurrencies are all pseudo-anonymous, though additions such as Zerocoin and its distributed laundry[13] feature have been suggested, which would allow for true anonymity.
[https://en.wikipedia.org/wiki/Cryptocurrency]

Name::
* cpt.bcnevu.supply,
* cpt.supply-of-bcnevu,

Description::
This is a list of notable cryptocurrencies. There were more than 530 cryptocurrencies available for trade in online markets as of 5 January 2015 and more than 740 in total[1] but only 10 of them had market capitalizations over $10 million.[2]
[https://en.wikipedia.org/wiki/List_of_cryptocurrencies]

SPECIFIC

Specific::
* Circulating-supply,
* Total-supply,
* Market-cap,

bcnevu.Market-cap

Description::
The-product of aggregate-tokens times its exchange-rate.

Name::
* cpt.bcnmarket-cap-of-bcnevt,
* cpt.blockchain-market-cap-of-bcnevt,
* cpt.market-cap-of-bcnevt,
* cpt.market-capitalization-of-bcnevu,

bcnevu.csa.CONSENSUS (bcnevuC)

Description::
Blockchain-Consensus-Exval-Token[1] is the main token of a-bcnnet, needed to make consensus to upadate the-blocs in a-blockchain.
As long as a-blockchain-network is public, this[1] token is a-commodity with exchange-value the-work needed to exist the-network TIMES demand/supply.
[hmnSgm.2017-04-09]
===
Blockchain-Consensus-Exval-Token is AUTOBACKED.
[hmnSgm.2017-04-04]

Name::
* cpt.bcnevuC, {2017-07-17}
* cpt.bcncevu, {2017-07-17}
* cpt.consensus-exchange-value-unit-of-blockchain, {2017-07-17}

* cpt.bcncevt, {2017-04-15}
* cpt.bcncet, {2017-03-31}
* cpt.blockchain-CEV-Token, {2017-04-04}
* cpt.blockchain-Consensus-Exval-Token, {2017-03-31}
* cpt.bcnctk, {2017-03-29}
* cpt.blockchain-consensus-token, {2017-03-29}
===
* cpt.core-token-of-bcnnet,
* cpt.basic-blockchain-token, [BitShares {2017-03-28}]
* cpt.base-token-of-bcnnet, [BitShares {2017-03-28}]
* cpt.bcncrc, {2017-03-28}
* cpt.bcnevt.consensus,
* cpt.bcnevt.main,
* cpt.bcnevt.currency,
* cpt.bcnnet'currency,
* cpt.bcnnet-currency,
* cpt.blockchain-currency, {2017-03-28}
* cpt.consensus-money, {2017-03-28}
* cpt.main-blockchain-token,
* cpt.main-network-token,
* cpt.bcnevt.currency,
* cpt.currency-in-blockchaine-network,

Description::
We believe that Bitcoin is in fact the first ever decentralized job network to exist, if we define jobs on the bitcoin network as actions by network participants who are paid directly and autonomously from a purely decentralized source such as the block reward.
[https://www.dash.org/binaries/evo/DashPaper-v13-v1.pdf, Evan Duffield]

Description::
Blockchain-currency is the main money of a-bcnnet, needed to create the-blockchain.
[hmnSgm.2017-03-28]

Description::
A-cryptocoin used in a-blochain that transacts money.
[hmnSgm.2017-02-06]

bcnevtC'Exchange-rate

Description::
As long as a-blockchain-network is public, this[1] token is a-commodity with exchange-value the-work needed to exist the-network TIMES demand/supply.
[hmnSgm.2017-04-09]

Name::
* cpt.bcncevt'exchange-rate,

bcnevtC'Energy-consumption

Description::
Low energy consumption.
Many cryptocurrencies rely on a ‘proof-of-work’ model to create new coins and secure the network.
This is an intensive computational process that can only be carried out by highly specialised hardware and requires huge amounts of electricity.
Nxt’s ‘proof-of-stake’ solution needs very little energy by comparison, with the result that the network has a fraction of the carbon footprint of other cryptocurrencies.
[http://nxt.org/about/what-is-nxt/]

Name::
* cpt.bcnnet'energy-consumption,
* cpt.blockchain-energy-consumption,
* cpt.energy-consumption-of-bcnnet,

SPECIFIC

Name::
* bcnevuC.specific,
* cpt.bcnevuC.specific,

Specific::
* {2017}:

* {2016}:
- Decred-DCR,
- LBRY-Credits-LBC,
- Lisk-LSK,
- NAV-Coin-NAV,
- PIVX,
- STEEM,
- Stratis-STRAT,
- WAVES,
- Zcash-ZEC,
* {2015}:
- BitShares-BTS,
- Ether-ETH,
- Factom-FCT,
- NEM-XEM,
- Radium-RADS,
* {2014}:
- AuroraCoin-AUR,
- BlackCoin-BLK,
- DASH,
- FairCoop-FAIR,
- Gulden-NLG,
- NuBits-USNBT,
* {2013}:
- DogeCoin-DOGE,
- Nxt-NXT,
* {2012}:
- Freicoin-FRC,
- Peercoin-PPC,
- Ripple-XRP,
* {2011}:
- Litecoin-LTC,
- Namecoin-NMC,
* {2010}:

* {2009}:
- Bitcoin-BTC,

bcnevu.csa.CONSENSUS.NO (bcnevtCNo)

Description::
Non-consensus-exchange-value-unit is an-exchange-value-unit which is-not-used as incentive in the-consensus-algorithm.
[hmnSgm.2017-05-17]
===
A-secondary-cryptocoin created in a-blochain with different MAIN money.
[hmnSgm.2017-02-13]

Name::
* cpt.bcnevuCN, {2017-05-17}
* cpt.consensusNo-exchange-value-of-blockchain, {2017-05-17}
* cpt.non-consensus-exchange-value-of-blockchain, {2017-05-17}

* cpt.bcnevuCNo, {2017-05-11}
* cpt.bcncevtNo, {2017-03-31}
* cpt.blockchain-consensusNo-exval-token, {2017-03-31}
* cpt.bcnctkNo, {2017-03-29}
* cpt.blockchain-consensusNo-token, {2017-03-29}
===
* cpt.bcnevt.consensusNo,
* cpt.bcnevt.secondary,
* cpt.bcnevt.subcurrency,
* cpt.bcnnet'subcurrency,
* cpt.bcnnet-subcurrency,
* cpt.bcnscrc, {2017-03-28}
* cpt.custom-blockchain-token,
* cpt.bcnevt.subcurrency,
* cpt.subcurrency-in-blockchaine-network,

Specific::
* Chronobank-LHT,
* Chronobank-TIME,
* Colored-coin,
* Ethereum-evuCN,

bcnevtCNo.Colored-coin

Description::
ColoredCoins started in 2013 as method to push metadata to the Bitcoin blockchain, and evolved over the years to a vibrant ecosystem for digital currencies.

As the open source community continues to develop, a consortium of stake-holders has formed with the realization that the blockchain movement will transform the way we do business in the future and that this revolution, much like the internet, will happen after standards will form around every layer of the stack.

The ColoredCoins project taps into the biggest and the most successful crypto-currency ecosystem in the world, Bitcoin, and creates a blockchain agnostic framework for digital-currencies that will apply those best practices to traditional finance.
[http://coloredcoins.org/]

Name::
* cpt.ColoredCoin,
* cpt.colored-coin,

bcnevtCNo.Bitcoin-colored-coin

Description::
Colored_coins:
A proposed add-on function for bitcoin that would enable bitcoin users to give them additional attributes.
These attributes could be user-defined, enabling you to mark a bitcoin as a share of stock, or a physical asset.
This would enable bitcoins to be traded as tokens for other property.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Colored_Coin:
A concept of adding a special meaning to certain transaction outputs.
This could be used to create a tradable commodity on top of Bitcoin protocol.
For instance, a company may create 1 million shares and declare a single transaction output containing 10 BTC (1 bln *satoshis*) as a source of these shares.
Then, some or all of these bitcoins can be moved to other addresses, sold or exchanged for anything.
During a voting process or a dividend distribution, share owners can prove ownership by simply singing a particular message by the private keys associated with addresses holding bitcoins derived from the initial source.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-ColoredCoin,
* cpt.bitcoin-colored-coin,
* cpt.btccolored-coin,

bcnevtCNo.ICO

Name::
* cpt.bcnico,

AddressWpg::
* http://cofound.it/ (ethereum-based),

bcnevu.NATIONAL

Description::
National cryptocurrencies provide a meaningful alternative to the central banking system, allow a people to gather equity instead of debt, and have a more focused distribution model than general purpose cryptocurrencies such as Bitcoin.
[http://cointelegraph.com/news/could-iceland-embrace-crypto-before-anyone-else]

Name::
* cpt.bcnevt.national,
* cpt.national-cryptocurrency,
* cpt.mnyNational-cryptocurrency,

AddressWpg::
* {2017-05-15} Palestine May Launch Its Own Cryptocurrency as Sovereign Legal Tender: https://bitcoinmagazine.com/,

Senegal

Name::
* cpt.eCFA-money,
* cpt.mnyeCFA,

NOV 27, 2016
By Joseph Young
Senegal Introduces Cryptocurrency Based on its National Currency

Senegal Introduces Cryptocurrency Based on its National Currency
Senegalmay become the first country to release a cryptocurrency based on its national currency.

Earlier this month, Senegal introduced eCFA, a digital currency currently in development in collaboration with Banque Regionale de Marches (BRM) and eCurrency Mint Limited. BRM bank, a Senegal-based financial institution specializing in capital markets and the implementation of tailor-made banking solutions, is leading both the development and integration of the digital currency, which the Senegal government states would serve as a legal tender.

Similar to the vision of Norway’s largest bank DNB, Senegal is attempting to secure a significant market share of Africa’s severely underbanked and underserved populations, which are struggling to find access to reliable and cost-efficient financial platforms and networks to settle cross-border transactions.

Interestingly, the development and launch of eCFA is overseen by the West African Economic and Monetary Union (WAEMU), which suggests that once ready for commercial roll-out, eCFA will be made available for other African countries including Benin, Burkina Faso, Cote d’Ivoire, Niger, Togo and more.

Criticisms and future plans

Upon the first announcement of plans to develop eCFA, BRM bank as well as the Senegal government received criticisms from cryptography experts and analysts due to eCFA’s dependence on a centralized banking system. It has been said that if eCFA is based on its national currency, it defeats the purpose of implementing a digital currency.

In spite of these criticisms, BRM bank CEO Alioune Camara, stated earlier this month that it will assist the Senegal government in creating a system which can facilitate interoperability between all financial applications, platforms and networks within the region.

Camara stated:

“An eCFA backed by our banking system and the central bank is the safest and most secure way to enable the digital economy. We can now facilitate full interoperability between all e-money payment systems. This is a great leap forward for Africa.”

Ambiguity in Blockchain specifications

However, BRM and eCurrency Mint Limited have yet to release any technical information and background on their Blockchain-based digital currency. In fact, it is still unknown whether the currency will be based on a permissioned ledger or a decentralized Blockchain network. If the latter, the bank will struggle with existing financial regulations.

If the bank opts for a permissioned ledger, various security consequences will lead to issues with the deployment process, which may turn out increasingly inefficient for both the bank and its future users.
[https://cointelegraph.com/news/senegal-introduces-cryptocurrency-based-on-its-national-currency]

bcnevu.Stratis (STRATevuC {2016-08-09})

Description::
Stratis STRAT
Stratis is a flexible and powerful Blockchain Development Platform designed for the needs of real-world financial services businesses.
[https://changelly.com/supported-currencies]

Name::
* cpt.STRAT-evuC,
* cpt.Stratis-token,
* cpt.mnyStratis,
* cpt.mnySTRAT,

AddressWpg::
* https://stratisplatform.com/
* Block#1: https://chainz.cryptoid.info/strat/block.dws?1.htm,

bcnevu.LBRY-Credits (LBCevuC {2016-06-23})

Description::
LBRY Credits LBC
LBRY is the first digital marketplace to be controlled by the market’s participants rather than a corporation or other 3rd-party.
[https://changelly.com/supported-currencies]
===
LBRY Credits (LBC)
$0.082279 (-4.60%)
0.00006966 BTC (-5.48%)
Rank 71
Mineable Currency
Market Cap
$5,039,968
4,267 BTC
Volume (24h)
$413,316
349.94 BTC
Circulating Supply
61,254,380 LBC
Total Supply
459,154,380 LBC
[https://coinmarketcap.com/currencies/library-credit/] {2017-04-16}

Name::
* cpt.LBC-evuC,
* cpt.LBC-token,
* cpt.lbccevt,
* cpt.lbry-credits,
* cpt.lbry-credits-token,
* cpt.mnyLBRY-Credits,
* cpt.mnyLBC,

AddressWpg::
* https://lbry.io/
* https://explorer.lbry.io/
* BlockH1: https://explorer.lbry.io/block/decb9e2cca03a...1b088f22f8f38556d93ac4358b86c24,

bcnevu.NAV-Coin (NAVevuC {2016-05-12})

Description::
NAV Coin NAV
NAV Coin is a X13 POS cryptocurrency. Anonymous Technology using Subchains and Community's Foundation
[https://changelly.com/supported-currencies]
===
NAV Coin (NAV)
$0.101782 (15.79%)
0.00008618 BTC (14.79%)
Rank 64
Currency
Market Cap
$6,198,229
5,248 BTC
Volume (24h)
$430,299
364.32 BTC
Circulating Supply
60,897,100 NAV
[https://coinmarketcap.com/currencies/nav-coin/] {2017-04-16}

Name::
* cpt.NAV-evuC,
* cpt.NAV-token,
* cpt.NAV-Coin-token,
* cpt.mnyNAV-Coin,
* cpt.mnyNAV,

AddressWpg::
* http://navcoin.org/
* Block#1: https://chainz.cryptoid.info/nav/block.dws?1.htm,

bcnevu.Steem (STEEMcevu {2016})

Description::
Steem STEEM
Steem is the first Reddit-like social media platform based on blockchain technologies. Each worthy content, instead of likes, is rewarded by STEEM, a crypto that fuels the platform. STEEM may also be mined through the p2p network.
[https://changelly.com/supported-currencies]
===
Steem (STEEM)
$0.216145 (9.80%)
0.00018364 BTC (10.63%)
Rank 19
Mineable Currency
Market Cap
$51,158,750
43,465 BTC
Volume (24h)
$1,942,640
1,650 BTC
Circulating Supply
236,687,178 STEEM
Total Supply
253,661,272 STEEM
[https://coinmarketcap.com/currencies/steem/] {2017-04-16}

Name::
* cpt.mnySTEEM,
* cpt.STEEM-evuC,
* cpt.STEEM-token,
* cpt.STEEMcevu,

AddressWpg::
* https://steem.io/
* ANN: https://bitcointalk.org/index.php?topic=1410943.0, {2016-03-24}

bcnevu.Factom (FCTevuC {2015-09-01})

Description::
Factom FCT
Factom is an open source project implementing blockchain technology for businesses. Entries in the ledger cannot be altered, thus there is no place for fraud and forgery, the system becomes transparent. Factom cryptocurrency is alternatively called Factoids.
Users of the system can exchange them for Entry Credits, in this case the coins are burnt.
Individuals who run FCT Servers pay transaction fees for Bitcoin and get Factoids as an incentive for that.
[https://changelly.com/supported-currencies]
===
Factom (FCT)
$5.84 (18.27%)
0.00494316 BTC (17.05%)
Rank 18
Currency
Market Cap
$51,078,534
43,269 BTC
Volume (24h)
$3,704,120
3,138 BTC
Circulating Supply
8,753,219 FCT
[https://coinmarketcap.com/currencies/factom/] {2017-04-16}

Name::
* cpt.Factom-token,
* cpt.FCT-evuC,
* cpt.FCT-token,
* cpt.mnyFactom,
* cpt.mnyFCT,

AddressWpg::
* http://factom.org/

bcnevu.Radium (RADSevuC {2015-05-25})

Description::
Radium RADS
Radium and its blockchain serve as a basis for the Radium SmartChain, a foundation for the progressive blockchain development. The ultimate goal is to set up an environment for completely decentralized services. RADS can be sent using traditional addresses or usernames recorded in the blockchain of the coin.
[https://changelly.com/supported-currencies]
===
Radium (RADS)
$1.53 (3.94%)
0.00129289 BTC (3.30%)
Rank 72
Currency
Market Cap
$4,880,240
4,134 BTC
Volume (24h)
$52,415
44.40 BTC
Circulating Supply
3,197,641 RADS
[https://coinmarketcap.com/currencies/radium/] {2017-04-16}

Name::
* cpt.Radium-token,
* cpt.RADS-evuC,
* cpt.RADS-token,
* cpt.mnyRadium,
* cpt.mnyRADS,

AddressWpg::
* http://projectradon.info/
* https://chainz.cryptoid.info/rads/
* Block#1: https://chainz.cryptoid.info/rads/block.dws?1.htm,

bcnevu.NuBits (USNBTevuC {2014-08-03})

Description::
NuBits NBT
NuBits is a digital currency developed in 2014 by the creators of Peershares. The unique feature of this cryptocurrency is its stable price. NuBits is always equal to $1 and it is the first decentralized cryptocurrency to maintain the $1 peg for over a year. They accomplish it by adjusting the coin supply to match investor demand, the markets don’t control the price.
[https://changelly.com/supported-currencies]
===
Nu is the first decentralized central bank in the world who issue NuBits, the first crypto-dollar with a stable prize 1NBT = 1USD. Value stability is highly desirable in a currency, and we expect more and more users will begin using NuBits for online purchases.
[http://cointelegraph.com/news/beyond-bitcoin-how-stable-are-alternative-cryptocurrencies]
===
NuBits (USNBT)
$0.988734 (1.19%)
0.00083747 BTC (0.51%)
Rank 294
Currency
Market Cap
$134,075
114 BTC
Volume (24h)
$838
0.71 BTC
Circulating Supply
135,603 USNBT
Total Supply
4,845,406 USNBT
[https://coinmarketcap.com/currencies/nubits/] 2017-04-16

Name::
* cpt.NBT-evuC,
* cpt.NBT-token,
* cpt.Nubits-token,
* cpt.mnyNuBits,
* cpt.mnyNBT,

AddressWpg::
* https://www.nubits.com/
* https://nuexplorer.ddns.net/
* BlockH0: https://nuexplorer.ddns.net/blocks/000003cc2d...9ddc1204efd169e947dd4cbad73f/1,

bcnevu.MaidSafeCoin (MAIDevuCN {2014-04-22})

Description::
MaidSafeCoin MAID
MaidSafeCoin is a part of MaidSafe network. The developers created SAFE (Secure Access For Everyone) network for invulnerable and private data storage with no governing party. Users of the network who grant their resources are automatically rewarded with the coins. They can exchange the received Safecoins for the services within SAFE Network or trade them as any other cryptocurrency.
[https://changelly.com/supported-currencies]
===
MaidSafeCoin (MAID)
$0.200548 (2.10%)
0.00016979 BTC (1.14%)
Rank 11
Asset
Market Cap
$90,758,481
76,838 BTC
Volume (24h)
$424,330
359.25 BTC
Circulating Supply
452,552,412 MAID
[https://coinmarketcap.com/assets/maidsafecoin/] {2017-04-16}

Name::
* cpt.MAID-evuCN,
* cpt.MAID-token,
* cpt.mnyMAID,
* cpt.mnyMaidSafeCoin,
* cpt.mnySafecoin,

AddressWpg::
* http://maidsafe.net/
* ann: https://bitcointalk.org/index.php?topic=579797.0, {2014-04-22}
* http://omnichest.info/lookupsp.aspx?sp=3, {2014-04-22}

bcnevu.Gulden (NLGevuC {2014-03-29})

Description::
Gulden NLG
Gulden is the first digital currency with a human approach. It is a Dutch cryptocurrency named after the national defunct currency of Netherlands. The crypto is determined by the demand for gold and silver. Guldens are stored on a mobile or desktop app and can be used anywhere Bitcoin is accepted, including IBAN banks.
[https://changelly.com/supported-currencies]
===
Gulden (NLG)
$0.040189 (12.73%)
0.00003402 BTC (11.60%)
Rank 44
Mineable Premined Currency
Market Cap
$13,817,731
11,698 BTC
Volume (24h)
$67,784
57.39 BTC
Circulating Supply
343,822,145 NLG
Total Supply
445,842,300 NLG
[https://coinmarketcap.com/currencies/gulden/] {2017-04-16}

Name::
* cpt.Gulden-token,
* cpt.mnyGulden,
* cpt.mnyNLG,
* cpt.NLG-evuC,
* cpt.NLG-token,

AddressWpg::
* https://gulden.com/
* BlockH1: https://blockchain.gulden.com/block/756e5147f4...950819c82d8d17ee7ceaa8e3a6628,

bcnevu.BlackCoin (BLKcevu {2014-02-24})

Description::
BlackCoin (BLK)
$0.081931 (12.03%)
0.00006927 BTC (10.84%)
Rank 63
Currency
Market Cap
$6,232,987
5,270 BTC
Volume (24h)
$163,031
137.84 BTC
Circulating Supply
76,076,517 BLK
[https://coinmarketcap.com/currencies/blackcoin/] {2017-04-15}
===
BlackCoin is a peer-to-peer cryptocurrency. BlackCoin uses a proof-of-stake system and is open-source.[3] BlackCoin was created by the developer Rat4, with the goal of proving that BlackCoin’s way of disabling proof-of-work is stable and secure.[4] BlackCoin secures its network through a process called "minting". Transactions in BlackCoin were called "significant" in a Citibank whitepaper.[5]
[https://en.wikipedia.org/wiki/BlackCoin]

Name::
* cpt.BlackCoin-token,
* cpt.BLK-evuC,
* cpt.BLK-token,
* cpt.BLKcevu,
* cpt.mnyBlackCoin,

AddressWpg::
* http://blackcoin.co/
* Block#1 https://chainz.cryptoid.info/blk/block.dws?1.htm,

bcnevu.Auroracoin (AURevuC {2014-01-24})

Description::
Auroracoin (AUR)
$0.177925 (8.19%)
0.00015040 BTC (7.06%)
Announcement
Rank 130
Mineable Premined Currency
Market Cap
$1,540,499
1,302 BTC
Volume (24h)
$2,686
2.27 BTC
Circulating Supply
8,658,139 AUR
[https://coinmarketcap.com/currencies/auroracoin/] {2017-04-15}
===
Auroracoin is a cryptocurrency launched in February 2014 as an Icelandic alternative to Bitcoin and the Icelandic krona.[1][2][3] Its unknown creator or creators use the pseudonym Baldur Friggjar O?insson (or Odinsson).[1][2][3] They stated that they planned to distribute half of auroracoins that would ever be created to all 330,000 people listed in Iceland's national ID database beginning on March 25, 2014, free of charge, coming out to 31.8 auroracoins per person.[1][3]
Auroracoin was created as an alternative currency to address the government restrictions on Iceland's krona, in place since 2008, which severely restricts movement of the currency outside of the country.[1] Iceland's Foreign Exchange Act also prohibits the foreign exchange of bitcoins from the country, according to a government minister.[4]
[https://en.wikipedia.org/wiki/Auroracoin]

Name::
* cpt.AUR-evuC,
* cpt.AUR-token,
* cpt.AURcevu,
* cpt.AuroraCoin-token,
* cpt.mnyAUR,
* cpt.mnyAuroraCoin,
* cpt.mnyAuroraCoin,

AddressWpg::
* http://new.auroracoin.is/
* https://github.com/aurarad/auroracoin,
===
* http://cointelegraph.com/news/saving-icelands-economy-did-auroracoin-fail-its-mission {2016-04-19}
* http://cointelegraph.com/news/could-iceland-embrace-crypto-before-anyone-else,

bcnevu.Dogecoin (DOGEevuC {2013-12-06})

Description::
Dogecoin (DOGE)
$0.000441 (4.92%)
0.00000037 BTC (3.83%)
Rank 21
Mineable Currency
Market Cap
$48,045,918
40,702 BTC
Volume (24h)
$1,411,570
1,196 BTC
Circulating Supply
108,982,504,127 DOGE
[https://coinmarketcap.com/currencies/dogecoin/] {2017-04-16}
===
Dogecoin DOGE
Dogecoin is a cryptocurrency featuring a likeness of the Shiba Inu dog from the "Doge" Internet meme as its logo. Started as a "joke currency" in late 2013, Dogecoin quickly developed its own online community and reached reasonable capitalization nowadays.
[https://changelly.com/supported-currencies]
===
Date of introduction     December 8, 2013; 19 months ago
User(s)     International
Inflation     Approximately 100 billion coins to be mined by early 2015, and 5.256 billion new coins per year.
Symbol     ?[1]
Nickname     Doge
Plural     DOGE, Dogecoins
Dogecoin (/?do??k??n/ DOHZH-koyn,[2] code: DOGE, symbol: ?[1] and D) is a cryptocurrency featuring a likeness of the Shiba Inu dog from the "Doge" Internet meme as its logo.[3][4][5][6] It was introduced on December 8, 2013.[7]

Started as a "joke currency" in late 2013, Dogecoin quickly developed its own online community and reached a capitalization of USD 60 million in January 2014;[8] as of January 2015, it had a capitalization of USD 13.5 million.[9]

Compared with other cryptocurrencies, Dogecoin has a fast initial coin production schedule: 100 billion coins have been in circulation by mid 2015 with an additional 5.256 billion coins every year thereafter. As of 30 June 2015, the 100 billionth Dogecoin has been mined.[10] While there are few mainstream commercial applications, the currency has gained traction as an Internet tipping system, in which social media users grant Dogecoin tips to other users for providing interesting or noteworthy content.[11] Many members of the Dogecoin community, as well as members of other cryptocurrency communities, use the phrase "To the moon!" to describe the overall sentiment of the coin's rising value.[12][13][14]
[https://en.wikipedia.org/wiki/Dogecoin]

Name::
* cpt.DOGE-evuC,
* cpt.DOGE-token,
* cpt.dogecevt,
* cpt.Dogecoin,
* cpt.mnyDogeCoin,
* cpt.mnyDOGE,

AddressWpg::
* http://dogecoin.com/

bcnevu.Freicoin (FRCcevu {2012-12-21})

Description::
Freicoin is a decentralized, distributed, peer-to-peer electronic currency designed to address the grievances of the working class and re-align financial interests of the wealthy elite with the stability and well-being of the economy as a whole. Whereas inflationary currencies like the U.S. Dollar or Euro are controlled by central bankers under rules that intentionally or not benefit the establishment, Freicoin is completely decentralized and self-regulating, with a demurrage fee that ensures its circulation and bearers of the currency pay this fee automatically to those community members who contribute work to secure the currency.
Freicoin is an implementation of the accounting concept of a proof-of-work block chain used by Satoshi Nakamoto in the creation of Bitcoin. It includes a downloadable client for Mac OS X, Windows, and Linux, and an electronic network for transferring funds denominated in Freicoin world-wide. You can download, review and improve the code of this free software project on Github.
[http://freico.in/about/]
===
Freicoin:
A cryptocurrency based on the inflation-free principles outlined by the economist Silvio Gessell.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Freicoin (FRC)
$0.001772 (1.05%)
0.00000150 BTC (0.00%)
Rank 335
Mineable Currency
Market Cap
$49,021
41 BTC
Volume (24h)
$1,112
0.94 BTC
Circulating Supply
27,665,859 FRC
Total Supply
100,000,000 FRC
[https://coinmarketcap.com/currencies/freicoin/] {2017-04-16}

Name::
* cpt.FRC-evuC,
* cpt.FRC-token,
* cpt.FRCcevu,
* cpt.Freicoin,

AddressWpg::
* http://freico.in/

bcnevu.Tether (USDTevt)

Description::
We’ve combined the best of both worlds
Get the joint benefits of the Bitcoin blockchain and traditional currency
[https://tether.to/]
===
Add more value to your business
Start reaping the rewards of stable currency on the Blockchain

Custodial Account
Avoid the hassle of the banking system.
Store cash as if it were bitcoin.

Provide a Bitcoin Alternative
Offer your customers stable currency with the benefits and functionality of the Blockchain.

Transact with Digital Currency
Store, send and receive 1-to-1 backed digital currency across exchanges, platforms, and wallets.
[https://tether.to/why-use-tether/]
===
Tether (USDT)
$0.999837 (0.00%)
0.00084977 BTC (0.79%)
Rank 19
Asset
Market Cap
$50,735,502
43,121 BTC
Volume (24h)
$11,925,500
10,136 BTC
Circulating Supply
50,743,773 USDT
Total Supply
54,950,871 USDT
[https://coinmarketcap.com/assets/tether/] {2017-04-16}

Name::
* cpt.mnyTether,
* cpt.Tether-token,
* cpt.USDT-evu,

AddressWpg::
* https://tether.to/
* https://bravenewcoin.com/assets/Whitepapers/Tether-White-Paper.pdf,
* http://omnichest.info/lookupsp.aspx?sp=31,

bcnevu.SCAM

Description::
Scamcoin:
An altcoin produced with the sole purpose of making money for the originator.
Scamcoins frequently use pump and dump techniques and pre-mining together.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.blockchain-scamcoin,
* cpt.bcnscamcoin,
* cpt.scamcoin,
====

bcnevu.EVOLUTING (bcnevuEvn)

Name::
* cpt.bcnevuEvn,
* cpt.bcnevt.evoluting,

{time.1998}:
=== GENESIS Wei-Dai:
Bitcoin is the first implementation of a concept called "cryptocurrency", which was first described in 1998 by Wei Dai on the cypherpunks mailing list, suggesting the idea of a new form of money that uses cryptography to control its creation and transactions, rather than a central authority.
The first Bitcoin specification and proof of concept was published in 2009 in a cryptography mailing list by Satoshi Nakamoto.
Satoshi left the project in late 2010 without revealing much about himself.
The community has since grown exponentially with many developers working on Bitcoin.
[https://bitcoin.org/en/faq#who-created-bitcoin]

bcnnet'Statistics (bcnstat)

Description::
Quantifiable information about many attributes of a-blockchain-network.

Name::
* cpt.bcnnet'statistics,
* cpt.blockchain-network-statistics,
* cpt.blockchain-statistics,

bcnstat'Block-explorer (link)

bcnnet'Governance-system (bcngov)

Description::
Recently, new blockchains equipped with built in governance system tried to cope with this problem.
Dash is the forerunner to implement governance system in their blockchain.
Dash, who call themselves as the “First Self Governing, Self Funding Protocol”,proposed a decentralized management system based on the masternode voting mechanism in 2015.
Dash has been steadily developed using this governance system.
Recently the price of Dash surpassed over $100 {March 16th, 2017}.
A stable governance structure may be the reason for the increased value.

More and more recent cryptocurrencies have governance systems.
Qtum, a Chinese cryptocurrency, has governance system named the “Judgement Committee”.
Dfinity and Tezos also have governance systems.
Needless to say BOScoin has a governance system as well.
...
If these systems are implemented in blockchain, the blockchain can adjust and evolve itself according to the contemporary environment.
If these systems work successfully, we can build a true DAO(Decentralized Autonomous Organization) self-governing community which is the dream of blockchain enthusiasts.
I believe these kinds of democratic systems are the key to sustaining and growing the cryptocurrency ecosystem.
Cryptocurrencies equipped with a governance structure will be the next wave of blockchain technology.
Myung Sahn Juhn
[http://cryptocentral.info/topic/913/boscoin-bos-a-congressional-cryptocurrency-platform-for-trust-contracts/4]

Name::
* cpt.bcngov,
* cpt.bcnnet'governance-system,
* cpt.blockchain-governance-system,

Attribute:

[http://cryptocentral.info/topic/913/boscoin-bos-a-congressional-cryptocurrency-platform-for-trust-contracts/4]

bcngov'Builtin

Description::
whether the-governance-system is built-in or not.

bcngov'Auto-updating

Description::
whether a-new-version or policy is applied automatically or manually.
Dash has no auto-updating function so have a penalty policy to urge the masternode to maintain the latest program.

bcngov'GOVERNING

Name::
* cpt.bcnnet'decision-making-process,
* cpt.bcnnet'governing,
* cpt.bcnnet'managing,

Specific::
Bitcoin:  Non-systematic
Ethereum: Non-systematic
BOSnet:   Democratic Congress (One node = One vote)

bcnnet'Program (bcnpgm)

Description::
Bcnnet-program is any computer-program used in a-blockchain-network.
[hmnSgm.2017-05-15]

Name::
* cpt.bcnnet-program,
* cpt.bcnnetpgm,
* cpt.blockchain-network-program,

SPECIFIC

Specific::
* Blockchain-program,
* Client-program,
* dApp,
* Wallet-program,

bcnpgm.CLIENT

Description::
Blockchain-client is the-program that implements the-protocol of the-blockchain-network.

Name::
* cpt.blockchain-client,

bcnpgm.BLOCKCHAIN-PROGRAM

Description::
Blockchain-program[1] is a-computer-program stored in a-blockchain that[1] process arbitrary transitions of the-blockchain's-information.
[hmnSgm.2017-05-15]
Smart-contract is a-program deployed on a-blockchain.

Name::
* cpt.smart-contract,

Specific::
* Ethereum-smart-contract,
* BOScoin-smart-contract,

bcnpgm.dApp (bcndap)

Cpt-created: {2016-02-24}

Description::
Dapp or decentralised-app is an-app running on a-decentralised-network.
Dapp CAN-HAVE a-front-end-code or user-interface written on any language.
[hmnSgm.2017-03-23]
===
Definition of a Dapp
For an application to be considered a Dapp (pronounced Dee-app, similar to Email) it must meet the following criteria:

The application must be completely open-source, it must operate autonomously, and with no entity controlling the majority of its tokens. The application may adapt its protocol in response to proposed improvements and market feedback but all changes must be decided by consensus of its users.

The application's data and records of operation must be cryptographically stored in a public, decentralized blockchain in order to avoid any central points of failure.

The application must use a cryptographic token (bitcoin or a token native to its system) which is necessary for access to the application and any contribution of value from (miners / farmers) should be rewarded in the application’s tokens.

The application must generate tokens according to a standard crytptographic algorithm acting as a proof of the value nodes are contributing to the application (Bitcoin uses the Proof of Work Algorithm).
[https://github.com/DavidJohnstonCEO/DecentralizedApplications#definition-of-a-dapp]

Name::
* cpt.blockchain-application.
* cpt.dApp,
* cpt.decentralised-application.

SPECIFIC

Specific::
* Ethereum-dApp,
* Lisk-dApp,

bcnnet'Wallet (bcnwlt)

Description::
Wallets are containers for private keys, usually implemented as structured files or simple databases.
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch04.asciidoc#wallets]

Name::
* cpt.bcnwlt,
* cpt.bcnwallet,
* cpt.blockchain-wallet,

Description::
A Bitcoin wallet can refer to either a wallet program or a wallet file.
Wallet programs create public keys to receive satoshis and use the corresponding private keys to spend those satoshis.
Wallet files store private keys and (optionally) other information related to transactions for the wallet program.
[https://bitcoin.org/en/developer-guide#wallets]
===
Now that you are connected to the network, the next thing you need to do is create a wallet that will hold your account addresses and DCR balance.
[https://docs.decred.org/getting-started/user-guides/windows/#create-your-wallet]

bcnwlt'Exval-unit

Description::
Wallet-evu is the-evu the-wallet stores.

Name::
* cpt.bcnwlt'exval-unit,
* cpt.bcnwlt'evu,
* cpt.bcnwlt'token,
* cpt.wallet-token-of-blockchain,

bcnwlt'Fee

Description::
What are transaction fees, and what fees does Jaxx apply?
Fees applied to transaction go to support the networks that run the coin/token - so, for instance, every standard (non-contract) ETH transaction currently applies a fee of .000441 ETH. This fee does not go to us; it goes to reward miners (thereby ensuring that the transaction is logged into the blockchain in a timely fashion) and support the Ethereum network itself. Note that transactions that interact with a contract address will be more costly.

The same is true of Bitcoin - BTC fees applied go to the Bitcoin network. The difference is that the BTC fees applied are dynamic - they are subject to go up or down based on the state of the network. Jaxx lets you specify between three different fee options depending on whether your transaction is time-sensitive or not (as the lower fee may face a longer confirmation period).

As newer coins are implemented, each coin is subjected to their own transaction fee that goes to their respected networks.
[https://decentral.zendesk.com/hc/en-us/articles/225024248-What-are-transaction-fees-and-what-fees-does-Jaxx-apply-]

Name::
* cpt.bcnwlt'fee,
* cpt.wallet-fee-of-blockchain,
* cpt.wallet-transaction-fee-of-blockchain,

Generic::
* Transaction-fee,

bcnwlt'Resource

AddressWpg::
* https://wallet.mycelium.com/index.html,
* http://www.walletrecoveryservices.com/
* http://www.coindesk.com/meet-man-will-hack-long-lost-bitcoin-wallet-money/

bcnwlt'Seed

Description::
This is the list of words that make up your private key
[https://docs.decred.org/getting-started/user-guides/windows/]

Name::
* cpt.bcnwlt'seed,

bcnwlt'Creating

bcnwlt'Backuping

bcnwlt'Deleting

SPECIFIC

Specific::
=== Specific-division.network:
* Bitcoin-wallet,
* Ethereum-wallet,
=== Specific-division.medium:
* Program-wallet,
* Brain-wallet,
* Paper-wallet,
* Hardware-wallet,
=== Specific-division.same-address:
* Static-wallet,
* StaticNo-wallet,
 - HD-wallet,
=== Specific-division.determinism:
* Deterministic-wallet,
* Deterministic.No-wallet,
=== Specific-division.online:
* Online-wallet,
 - Web-wallet,
* OnlineNo-wallet,
=== Specific-division.number-of-tokens:
* Mono-wallet,
* MonoNo-wallet,
=== INSTANCE:
* Jaxx-wallet,

bcnwlt.PROGRAM

Description::
Computer-program that manages the-keys of coins. Public-keys to receive coins and the corresponding private-keys to spend them.

Name::
* cpt.bcnwlt.program,
* cpt.program-wallet-of-blockchain,

AddressWpg::
* https://coinomi.com/ Free Secure Open-Source Multi-Coin HD Wallet for Bitcoin and Altcoins,

bcnwlt.BRAIN

Description::
The-storage of private-key, as a memorable phrase, in once brain.

Name::
* cpt.bcnwlt.brain,
* cpt.blockchain-brain-wallet,
* cpt.brain-wallet-of-blockchain,

Specific::
* bitcoin-brain-wallet,

bcnwlt.PAPER

Description::
The-storage of keys on paper.

Name::
* cpt.blockchain-paper-wallet,
* cpt.bcnwlt.paper,
* cpt.paper-wallet-of-blockchain,

bcnwlt.HARDWARE

Description::
Hardware-wallet is a-device, such as trezor, ledger etc, that stores the-keys of bcnevus.

Name::
* cpt.blockchain-hardware-wallet,
* cpt.bcnwlt.hardware,
* cpt.hardware-wallet-of-blockchain,

bcnwlt.STATIC

Description::
Static (non-HD) wallets stick to using a single address for all transactions.
While that's simpler, address reuse greatly undermines your privacy.
[https://decentral.zendesk.com/hc/en-us]

Name::
* cpt.bcnwlt.static,
* cpt.static-wallet-of-blockchain,

bcnwlt.STATIC.NO

Description::
A-wallet that changes the-addressess of the-transactions to improve privacy.
[hmnSgm.2017-05-12]

Name::
* cpt.staticNo-wallet-of-blockchain,

bcnwlt.HD

Description::
HD (or "hierarchical deterministic") wallets like Jaxx generate a new address every time funds are sent to the current address.
All addresses generated from the same wallet can be used to receive funds, and all funds sent to any of these addresses will show up in your Jaxx balance.
The balance you see on your main wallet screens represent the total sum between those addresses.
[https://decentral.zendesk.com/hc/en-us]

Name::
* cpt.HD-wallet-of-blockchain,
* cpt.hierarchical-deterministic-wallet,

bcnwlt.DETERMINISTIC

Description::
A deterministic wallet is a system of deriving keys from a single starting point known as a seed. The seed allows a user to easily back up and restore a wallet without needing any other information and can in some cases allow the creation of public addresses without the knowledge of the private key.
[https://en.bitcoin.it/wiki/Deterministic_wallet]

Name::
* cpt.bcnwlt.deterministic,
* cpt.deterministic-wallet-of-blockchain,

bcnwlt.ONLINE

AddressWpg::
* https://www.cryptonator.com/ Online cryptocurrency wallet
Free multi-cryptocurrency accounts with instant exchange

bcnwlt.WEB

Description::
A-web-wallet is A-WEBPAGE using javascript to manage addresses.
It can store your keys locally or online.
[hmnSgm.2017-04-03]

Name::
* cpt.bcnwlt.web,
* cpt.blockchain-web-wallet,

HolyTransaction (Luxembourg)

Description::
Universal Wallet
Access Bitcoin, Litecoin, Dogecoin, Peercoin, Dash, Ethereum, Decred, Zcash, Faircoin, Gamecoin, Gridcoin and Blackcoin from one unified interface. Easy and instantly, right from this website. No software downloads required.
[https://holytransaction.com/]

Name::
* cpt.HolyTransaction,

AddressWpg::
* https://holytransaction.com/

bcnwlt.MONO

Description::
Mono-wallet is a-wallet that stores ONE token.

Name::
* cpt.bcnwlt.mono,
* cpt.mono-wallet-of-blockchain,

bcnwlt.MONO.NO

Description::
Mono-wallet is a-wallet that stores MANY token.

Name::
* cpt.bcnwlt.mono,
* cpt.bcnwlt.multi,
* cpt.mono-wallet-of-blockchain,
* cpt.multi-wallet-of-blockchain,

bcnwlt.Jaxx (jaxwlt)

Description::
Your Blockchain Interface.
Bye-bye gatekeepers. With Jaxx, you have the keys to control the new digital world.
[https://jaxx.io/]

Name::
* cpt.jaxwlt,
* cpt.Jaxx-wallet,

jaxwlt'Exchange-value-unit

Description::
Jaxx currently supports:
Bitcoin
Ether
TheDAO
Dash (not available for iOS wallets)
Ethereum Classic
Augur REP
Litecoin
Zcash (not available for iOS wallets)
Rootstock Testnet (not available for iOS wallets)
[https://decentral.zendesk.com/hc/en-us]

jaxwlt'Fee

Description::
What are transaction fees, and what fees does Jaxx apply?
Fees applied to transaction go to support the networks that run the coin/token - so, for instance, every standard (non-contract) ETH transaction currently applies a fee of .000441 ETH.
This fee does not go to us; it goes to reward miners (thereby ensuring that the transaction is logged into the blockchain in a timely fashion) and support the Ethereum network itself.
Note that transactions that interact with a contract address will be more costly.

The same is true of Bitcoin - BTC fees applied go to the Bitcoin network. The difference is that the BTC fees applied are dynamic - they are subject to go up or down based on the state of the network. Jaxx lets you specify between three different fee options depending on whether your transaction is time-sensitive or not (as the lower fee may face a longer confirmation period).

As newer coins are implemented, each coin is subjected to their own transaction fee that goes to their respected networks.
[https://decentral.zendesk.com/hc/en-us/articles/225024248-What-are-transaction-fees-and-what-fees-does-Jaxx-apply-]

jaxwlt'Doing

What can Jaxx do?
Jaxx can perform the following functions:

Send currencies to another currency address
Receive currency from another currency address
Manage your DAO Tokens
Convert between currencies through the in-app ShapeShift integration
Pair from or to another device's Jaxx wallet so that you can access that same wallet across all devices (mobile, desktop, tablet, or browser extension format)
Transfer funds from a paper wallet / private key, including encrypted paper wallets
Send to contract addresses
Use your device's camera to scan addresses in QR code form (mobile only) for sending and receiving bitcoin and ether, as well as pairing wallets and transferring funds from a paper wallet
Scan websites for valid addresses (browser extensions only)
Split ETH/ETC
[https://decentral.zendesk.com/hc/en-us]

jaxwlt'Updating

How do I update Jaxx on desktop? (iOS / Windows)
Please visit Jaxx.io to find and download the latest version of Jaxx. Please make sure you write down your 12-word Backup Phrase in the exact sequence prior to updating.
[https://decentral.zendesk.com/hc/en-us]

bcnnet'Problem (bcnpbm)

Name::
* cpt.bcnnet'problem,
* cpt.bcnpbm,
* cpt.blockchain-issue,
* cpt.blockchain-problem,

bcnpbm.Security

Description::
Bcnnet solved the-problem of information-security.
And this is THE-TRANSPARENCY.
All security-systems are-created by humans and other humans broke them.
Our history shows that.
Transparency destroys the-need for security.
[hmnSgm.2017-03-26]

Name::
* cpt.bcnnet'security,
* cpt.bcnscrt,
* cpt.bcnsecurity,
* cpt.blockchain-security,

bcnscrt'Consensus-algorithm (link)

bcnscrt'51-percent-attack

Name::
* cpt.bcnnet'51-percent-attack,

bcnscrt'Resource

Name::
* cpt.bcnnet'resource.security,
* cpt.bcnnet'security-resource,

AddressWpg::
* https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51,

bcnnet'Human (bcnhmn)

Name::
* cpt.bcnhmn,
* cpt.bcnnet'human,
* cpt.blockchain-human,

bcnhmn'Skill

Name::
* cpt.bcnhmn'skill,

AddressWpg::
* https://cointelegraph.com/news/what-blockchain-skills-are-in-high-demand-digital-headhunter,

SPECIFIC

Name::
* bcnhmn.specific,
* cpt.bcnhmn.specific,

Specific::
* dapp-user-human,
* developer-human,
* miner-human,
* user,
* wallet-user-human,

bcnhmn.DEVELOPER (bcnhmnDvr)

Name::
* cpt.bcnhmnDvr,
* cpt.bcnhmn.developer,
* cpt.bcnnet'developer,

bcnhmn.USER (bcnusr)

Description::
User is a-human who uses the-services of the-network.

Name::
* cpt.bcnhmn.user,
* cpt.bcnusr,
* cpt.blockchain-user,

bcnhmn.NODE-OPERATOR (bcnhmnNor)

Name::
* cpt.bcnhmnNor,
* cpt.bcnhmn.node-operator,
* cpt.bcnhmn.node-owner,
* cpt.bcnnet'node-operator,

bcnhmn.WALLET-USER

Name::
* cpt.bcnhmn.user,
* cpt.bcnnet'node-operator,
* cpt.bcnnet'user,

bcnnet'Organization (bcnogn)

Name::
* cpt.cryptocurrency-venture,
* cpt.bcnnet'ogn,
* cpt.bcnogn,
* cpt.blockchain-organization,

AddressWpg::
* http://cryptovalleyzug.net/links.html,

bcnogn'ICO

Description::
DEFINITION of 'Initial Coin Offering (ICO)'
An unregulated means by which funds are raised for a new cryptocurrency venture. An Initial Coin Offering (ICO) is used by startups to bypass the rigorous and regulated capital-raising process required by venture capitalists or banks. In an ICO campaign, a percentage of the cryptocurrency is sold to early backers of the project in exchange for legal tender or other cryptocurrencies, but usually for Bitcoin.

Also called an Initial Public Coin Offering (IPCO).

BREAKING DOWN 'Initial Coin Offering (ICO)'
When a cryptocurrency startup firm wants to raise money through an Initial Coin Offering (ICO), it usually creates a plan on a whitepaper which states what the project is about, what need(s) the project will fulfill upon completion, how much money is needed to undertake the venture, how much of the virtual tokens the pioneers of the project will keep for themselves, what type of money is accepted, and how long the ICO campaign will run for. During the ICO campaign, enthusiasts and supporters of the firm’s initiative buy some of the distributed cryptocoins with fiat or virtual currency. These coins are referred to as tokens and are similar to shares of a company sold to investors in an Initial Public Offering (IPO) transaction. If the money raised does not meet the minimum funds required by the firm, the money is returned to the backers and the ICO is deemed to be unsuccessful. If the funds requirements are met within the specified timeframe, the money raised is used to either initiate the new scheme or to complete it.

Early investors in the operation are usually motivated to buy the cryptocoins in the hope that the plan becomes successful after it launches which could translate to a higher cryptocoin value than what they purchased it for before the project was initiated. An example of a successful ICO project that was profitable to early investors is the smart contracts platform called Ethereum which has Ethers as its coin tokens. In 2014, the Ethereum project was announced and its ICO raised $18 million in Bitcoins or $0.40 per Ether. The project went live in 2015 and in 2016 had an ether value that went up as high as $14 with a market capitalization of over $1 billion.

ICOs are similar to IPOs and crowdfunding. Like IPOs, a stake of the startup or company is sold to raise money for the entity’s operations during an ICO operation. However, while IPOs deal with investors, ICOs deal with supporters that are keen to invest in a new project much like a crowdfunding event. But ICOs differ from crowdfunding in that the backers of the former are motivated by a prospective return in their investments, while the funds raised in the latter campaign are basically donations. For these reasons, ICOs are referred to as crowdsales.

Although there are successful ICO transactions on record and ICOs are poised to be disruptive innovative tools in the digital era, investors are cautioned to be wary as some ICO or crowdsale campaigns are actually fraudulent. Because these fund-raising operatives are not regulated by financial authorities such as the Securities Exchange Commission (SEC), funds that are lost due to fraudulent initiatives may never be recovered.

Read more: Initial Coin Offering (ICO) Definition | Investopedia http://www.investopedia.com/terms/i/initial-coin-offering-ico.asp#ixzz4WU1TYEkA
Follow us: Investopedia on Facebook

Name::
* cpt.bcnico,
* cpt.bcnogn'ICO,
* cpt.ICO,
* cpt.initial-coin-offering,

bcnogn.SPECIFIC

Specific::
* Exchange-ogn,
* Foundation-ogn,
* Merchant-ogn,
* Mining-pool-ogn,
* Wallet-ogn,
===
* Akasha International, Zug, www.akasha.world,
* Bitcoin Suisse AG, Baar, www.bitcoinsuisse.ch,
* Bitfinitum GmbH, Zug, www.bitfinitum.com,
* Blockchain Source, Zug, www.blockchainsource.ch,
* Crypto AG, Zug, www.crypto.ch,
* Cryptocash AG, Uster, www.cryptocash.ch,
* Ethereum Foundation, Baar, www.ethereum.org,
* IFZ Zug, www.ifz.ch,
* InfoGuard AG, Zug, www.infoguard.ch,
* iprotus, Walchwil, www.iprotus.ch,
* MME Legal, Zug, www.mme.ch,
* Monetas AG, Zug, www.monetas.net,
* Mount10, Baar, www.mount10.ch,
* Netmon GmbH, Zurich, www.netmon.ch,
* Patria Digitalis, Zug, www.pd.coop,
* Sapphire Innovation, Zug, www.sapphireinnovation.com,
* Shapeshift, Zug, shapeshift.io,
* Xapo GmbH, Zug, www.xapo.com,

bcnogn.EXCHANGE (bcnx)

Description::
Crypto-exchange is a-company that shells and buys benevu.
[hmnSgm.2017-05-09]

Name::
* cpt.bcnnet'exchange,
* cpt.bcnx, {2017-02-04}
* cpt.blockchain-exchange, {2017-05-13}
* cpt.blockchainX, {2017-02-04}
* cpt.crypto-exchange,
* cpt.exchange-ogn-of-blockchain-currencies,
* cpt.exchange-organization-of-blockchain-currencies,

bcnx'Fee

Specific::
* Lykke    0
* Bittrex  0.25%
* Cashilla 1% plus 1€ for fiat deposit.

bcnx'Blockchain-token

Description::
The different bcnevu an-exchange offers.

Name::
* cpt.blockchain-exchange-token,

bcnx.SPECIFIC

Specific::
* BitPay-exchange,
* BitStamp-exchange,
* Blockchain-exchange,
* Changenlly-exchange,
* Coinbase-exchange,
* Kraken-exchange,
* LakeBTC-exchange,
* Liqui-exchange,
* LiteBit-exchange,
* Poloniex-exchange,
* QuadrigaCX-exchange,
* ShapShift-exchange,

bcnx.BitPay {2011}

Description::
BitPay was founded in 2011, while Bitcoin was still in its infancy. We saw the potential for bitcoin to revolutionize the financial industry, making payments faster, more secure, and less expensive on a global scale.

We started BitPay with the intention of making it easy for businesses to accept bitcoin payments, and we are currently the largest bitcoin payment processor in the world, serving more than 60,000 merchants on six continents.

Payment processing was our first contribution to the Bitcoin ecosystem, but it is not our last. We're building open source software to power the next applications of Bitcoin. Bitcoin's future looks very bright, and we plan on remaining on the forefront of this technology, creating more tools and services for everyone to use in innovative new ways.
[https://bitpay.com/about]

Name::
* cpt.BitPay,
* cpt.ognBtcsvc.BitPay

bitpay'Card

How works:
1.Order
Order your card for $9.95. Once your ID has been verified, your card will arrive within 7-10 business days.
2.Activate
When your card arrives in the mail, activate the card at bitpay.com/card/activate and create a cardholder account.
3.Load
Load your card with dollars using any bitcoin wallet, or via direct deposit through your employer.
4.Spend
Spend dollars anywhere Visa® debit cards are accepted, or withdraw cash from any Visa®-compatible ATM.
[https://bitpay.com/card]

bcnx.Bitstamp (3rd - EU)

Description::
Bitstamp is a European Union based bitcoin marketplace. It allows people from all around the world to safely buy and sell bitcoins.
ARE YOU SELLING BITCOINS?
No. We are providing a service. You are always buying bitcoins from another individual, who is selling them. All we do is provide a safe and simple environment to trade. We guarantee that buyers get their bitcoins and sellers get their money at agreed price.
[https://www.bitstamp.net/faq/]
===
This morning, Bitstamp announced that it has received a license from the Luxembourg Ministry of Finance to operate as a payment institution, and according to the company, this license applies to the European Union as a whole. “With this,” says Dan Morehead, the chairman of Bitstamp and the CEO of Pantera Capital, a firm that specializes in investments related to bitcoin, “Bitstamp is able to do business in all 28 countries of the EU.”
... FIFTEEN MONTHS AGO, hackers lifted more than $5 million from the bitcoin exchange operated by Bitstamp, a Slovenian company that aspired to push the digital currency across Western Europe. The hack wasn’t nearly as large or as devastating as the one that pilfered $460 million from Mt. Gox and sent the Japan-based exchange, then one of the world’s largest, spiraling into bankruptcy. But it was yet another black eye for bitcoin, the digital currency that holds so much promise as an alternative to fiat currencies but has never really broken into the mainstream.
[http://www.wired.com/2016/04/bitcoin-exchange-receives-approval-operate-across-eu/?mbid=social_twitter]

Name::
* cpt.Bitstamp-ogn,
* cpt.bitstamp,
* cpt.ognBtcsvc.Bitstamp,

Generic::
* blockchain-exchange,

AddressWpg::
* https://www.bitstamp.net/

bitstamp'office

OFFICES
UNITED KINGDOM
Bitstamp Ltd.
5 New Street Square
London EC4A 3TW
United Kingdom

LUXEMBOURG
Bitstamp Europe S.A.
10 rue Antoine Jans
L-1820 Luxembourg
Luxembourg

UNITED STATES
Bitstamp USA Inc.
2930 Magnolia Street
Berkeley, CA 94705
United States
[https://www.bitstamp.net/about_us/]

bcnx.Blockhain {2011}

Description::
Blockchain is the world’s most popular Bitcoin wallet. It is often confused with the core innovation that Bitcoin introduced. Founded in 2011, the company is one of the oldest and biggest Bitcoin’s companies.
Experiencing a rapid expansion in the last few years, the company has passed 6.7 million users, and the amount of wallets created on the platform is constantly increasing.
[http://cointelegraph.com/news/our-goal-is-to-replace-your-need-for-a-bank-says-blockchain-co-founder-and-ceo-nicolas-cary]
===
Blockchain is the world’s most popular Bitcoin wallet, and home to the most widely used Bitcoin APIs and trusted block explorer and search engine. It is recognized as the strongest, most trusted brand in Bitcoin.
[https://blockchain.com/about/]

Name::
* cpt.ognBlockchain,
* cpt.ognBlockchain,
* cpt.blockchain-service,
* cpt.ognBtcsvc.Blockhain,

bcnx.Changenlly-exchange {2016}

Description::
Changelly, an automated cryptocurrency exchange and a relatively new player on the market of cryptocurrency exchanges, made its services available to its users in April 2016 after six months of a successful beta.
[https://cointelegraph.com/news/with-charlie-shrem-as-advisor-shangelly-is-set-to-outperform-shapeshift]
===
https://cointelegraph.com/news/with-charlie-shrem-as-advisor-shangelly-is-set-to-outperform-shapeshift
[https://changelly.com/]
===
Changelly launched in 2013 as an instant exchange app, similar to the well-known ShapeShift. Rather than being a traditional exchange that requires users register before trading against an order book, with variable depth and the problems of slippage that can result, it aggregates rates from the largest trading platforms and offers a single rate. The commission is just 0.5%. By fundamentally rethinking the way cryptocurrencies are exchanged, Changelly aims to remove technical impediments to customers engaging with this critical element of the cryptocurrency world’s infrastructure.
[https://blog.chronobank.io/chronobank-makes-a-strategic-partnership-with-instant-exchange-service-changelly-b4fa39ca243e]

Name::
* cpt.bcnnet'Changenlly,
* cpt.ognChangenlly,

ognChangelly'Fee

Description::
Fair
Other cryptocurrency trading services charge you with withdrawal fees and commissions. We have a reasonable fee of 0.5%.
[https://changelly.com/]

ognChangelly'Exchange-rate-chart

2017-01-30:
1 BTC = 023.69664034 ZEC, {2017-01-30}
1 BTC = 057.98876409 DASH, {2017-01-30}
1 BTC = 072.59264636 XMR, {2017-01-30}
1 BTC = 087.7577885 ETH, {2017-01-30}
1 BTC = 219.63516402 REP, {2017-01-30}
1 BTC = 237.42056798 LTC, {2017-01-30}
1 BTC = 262.5505738 FCT, {2017-01-30}
1 BTC = 706.47412891 ETC, {2017-01-30}
1 BTC = 914.12273926 SBD, {2017-01-30}
1 BTC = 919.07541013 NBT, {2017-01-30}
1 BTC = 002,186.00736684 RADS, {2017-01-30}
1 BTC = 003,086.5626495 EXP, {2017-01-30}
1 BTC = 005,702.06699928 STEEM, {2017-01-30}
1 BTC = 005,749.10888812 LSK, {2017-01-30}
1 BTC = 006,724.72344574 MAID, {2017-01-30}
1 BTC = 007,403.29446603 AEON, {2017-01-30}
1 BTC = 008,836.26402756 STRAT, {2017-01-30}
1 BTC = 018,537.39920289 AMP, {2017-01-30}
1 BTC = 021,466.13716861 NAV, {2017-01-30}
1 BTC = 028,985.50724637 FCN, {2017-01-30}
1 BTC = 030,688.96731624 LBC, {2017-01-30}
1 BTC = 034,387.89546079 NLG, {2017-01-30}
1 BTC = 046,019.3281178 ARDR, {2017-01-30}
1 BTC = 144,927.53623188 NXT, {2017-01-30}
1 BTC = 146,735.14306676 XRP, {2017-01-30}
1 BTC = 179,856.11510791 XEM, {2017-01-30}
1 BTC = 222,222.22222222 QCN, {2017-01-30}
1 BTC = 257,367.13421696 DSH, {2017-01-30}

1 BTC = 04,444,444.44444444 DOGE, {2017-01-30}
1 BTC = 10,822,510.82251082 XDN, {2017-01-30}
1 BTC = 15,797,788.30963665 BCN, {2017-01-30}

bcnx.Coinbase (USA {2012})

Description::
Founded in June of 2012, Coinbase is a bitcoin wallet and platform where merchants and consumers can transact with the new digital currency bitcoin. We're based in San Francisco, California.
Bitcoin is the world's most widely used alternative currency with a total market cap of approximately $5.3 billion. The bitcoin network is made up of thousands of computers run by individuals all over the world.
[https://www.coinbase.com/about?locale=en]
===
Bitcoin, made simple.
Coinbase is an international digital wallet that allows you to securely buy, use, and accept bitcoin currency ›
[https://coinbase.com/]

Name::
* cpt.coinbase,
* cpt.ognBtcsvc.Coinbase

AddressWpg::
* https://coinbase.com/

coinbase'Exchange

Description::
Coinbase Exchange is the leading platform to trade bitcoin.
[https://exchange.coinbase.com/]

coinbase'API

AddressWpg::
* https://docs.exchange.coinbase.com/?javascript#introduction,

coinbase.EVOLUTING

{time.2015}:
Coinbase opens bitcoin exchange in UK
Company targets British enthusiasm for digital currency as it eyes an international expansion
[Financial Times Briefing 2015-04-29]

bcnx.Kraken-exchange (USA {2011})

Description::
KRAKEN BITCOIN EXCHANGE PUTS YOU FIRST
Founded in 2011, San Francisco-based Kraken is the largest Bitcoin exchange in euro volume and liquidity and also trading Canadian dollars, US dollars, British pounds and Japanese yen. Kraken is consistently rated the best and most secure Bitcoin exchange by independent news media. Kraken was the first Bitcoin exchange to have trading price and volume displayed on the Bloomberg Terminal, the first to pass a cryptographically verifiable proof-of-reserves audit, and is a partner in the first cryptocurrency bank. Kraken is trusted by hundreds of thousands of traders, the Tokyo government's court-appointed trustee, and Germany's BaFin regulated Fidor Bank.
[https://www.kraken.com/en-us/about]

Name::
* cpt.LiteBit,
* cpt.LiteBit-exchange,

bcnx.LakeBTC (CHINA)

Description::
Location Addr: Suite 613, 231-1 Ludi Avenue, Kunshan, Jiangsu, China
[https://en.bitcoin.it/wiki/LakeBTC]
===
LakeBTC project was started in early 2013 as a virtual bitcoin exchange initially for traders and other financial professionals interested in cryptocurrencies and blockchain technology. Later that year, the exchange was incorporated and operated under the current domain name. Today, LakeBTC stands for Lake Banking Technology Company.
With years of experience trading treasuries, agency bonds, currencies, commodities, interest rates, volatilities and all types of derivatives and structured products, LakeBTC is dedicated to building a bitcoin platform for pricing, liquidity, security, derivatives and indexes. On LakeBTC, individuals, merchants and institutions can easily trade bitcoins, lock down the prices, manage their exposures, and hedge their risks.
Today, as cryptocurrencies gained more and more exposures to the general public, LakeBTC is becoming one of the best bitcoin platforms around the globe. Our years of risk management and internal control experience in financial industries build the most solid foundation for ensuring customers' fund and privacy being safe and secure. LakeBTC is one of the Big Four exchanges in the world that determinesCoinDesk Bitcoin Price Index (BPI).
[https://www.lakebtc.com/s/about]

Name::
* cpt.LakeBTC,

AddressWpg::
* https://www.lakebtc.com/

lakebtc'security

Description::
Our years of risk management and internal control experience in financial industries build the most solid foundation for ensuring customers' fund and privacy being safe and secure.

To protect your fund, we implemented a number of rigorous mechanisms including SSL encryption, cold storage, 2-step verification, SMS withdrawal confirmation, trade notifications and so on.

High availability and fast trade matches, even under enormouse amount of load, are two attributes that are critical to high liquidity and make us stand out in the crowd.

Besides, we also provide highly-secure market data and trading API's for advanced users who prefer arbitrages, market making, or alogrithm trading.
[https://www.lakebtc.com/]

bcnx.Liqui ({2016})

Description::
Liqui is the latest exchange to add ChronoBank’s TIME token. The exchange launched on 1 September 2016, and is still a relatively new but fast-growing entrant to the cryptocurrency world. Its team of seven are located in various countries and jurisdictions around the world, and in a short period of time have managed to build a strong business that has gained the trust of an increasing number of traders thanks to its user-friendly interface, commitment to user support and rapid listing of some of the most popular and promising Ethereum-based tokens?—?including Iconomi, Golem and Wings.
One of Liqui’s unique features is its deposit accounts that allow users to earn annual interest of 24% for BTC and ETH, within a fixed limit. The exchange’s trading API has recently been implemented, and in the near future a Tether (USDT) market is expected. Liqui has established a reputation for pro-active cooperation with leading market-makers and businesses within the cryptocurrency industry.
[https://blog.chronobank.io/chronobank-announced-partnership-with-liqui-exchange-652140c46d84]

Name::
* cpt.Liqui-exchange,

bcnx.LiteBit-exchange (Netherlands {2013})

Description::
LiteBit is a young innovative company established in Zoetermeer, The Netherlands. LiteBit exists now more than two year and we, as a team, are very proud of that! LiteBit ensures that you and others can buy & sell bitcoins easily, safely and quickly. All our employees work accurately with a aim for the customer. We provide all kinds of services to make your life with crypto currency easier, quicker and more efficient. Did you try out our price alerts for bitcoin or any other crypto currency? It’s free!
Besides LiteBit we develop new applications that are using Blockchain Technology. We are also known as 2525 Ventures B.V.
Kenny Rokven
CEO
“I started LiteBit on 7th of december in 2013. I am responsible for all general business of LiteBit. ”
[https://www.litebit.eu/en/about]

Name::
* cpt.LiteBit,
* cpt.LiteBit-exchange,

bcnx.Lykke-exchange (lkx Swiss)

Description::
What is Lykke?
Lykke is a movement to build one global marketplace that is a level playing field where everyone has access.
We start with foreign exchange and expand to equities, fixed income, commodities and other asset classes.
Lykke Corp is incorporated in Switzerland and issued it's shares on the blockchain (Lykke Coins).
[https://lykke.com/city/faq]

Name::
* cpt.Lykke,
* cpt.Lykke-exchange,
* cpt.Lykke-exchange-ogn,
===
Why did we choose the name Lykke?
Lykke was the surname of Richard's grandmother on his father's side. The word means luck and happiness. His father explained to them that they are Lykke.
[https://lykke.com/city/faq]

lkx'Fee

Description::
What is the business-model?

Commissions & fees at Lykke Wallet are essentially zero. Lykke will make money on providing liquidity, issuance services and consulting.
[https://lykke.com/city/faq]

lkx'Blockchain

lkx'Block-Explorer

Name::
* cpt.Lykke-block-explorer,
* cpt.Lykke-explorer,
* cpt.lkxblk'explorer,
* cpt.lkxnet'explorer,
* cpt.lkxblkexr,

AddressWpg::
* https://blockchainexplorer.lykke.com/

lkx'Exchange-Value-Unit

Name::
* cpt.Lykke-asset,
* cpt.Lykke-evu,
* cpt.Lykke-token,

AddressWpg::
* https://blockchainexplorer.lykke.com/assets,

lkx'Lykke-coin

Description::
What is a Lykke coin?
A Lykke coin is a colored coin that is issued by Lykke Corp.
One Lykke colored coin is 0.01 (one one-hundredth) of one share of Lykke Corp. 100 Lykke colored coins are one share of Lykke Corp.
Lykke Corp has committed 2.5 Mio Lykke Corp shares (20% of Lykke's capital) for issuance as Lykke colored coins, which means that a total of 250 Mio Lykke colored coins will be outstanding.
Lykke Corp makes a market for its coins so that citizens can sell their coins and cash out.
See Lykke Coinprism Metadata
[https://lykke.com/city/faq]

What's the total supply of Lykke coins?
Total number of Lykke Coins issued is 1,285,690,000. The ownership structure is stored on the blockchain: https://www.coinprism.info/asset/AXkedGbAH1XGDpAypVzA5eyjegX4FaCnvM/owners
[https://lykke.com/city/faq]

lkx'Resource

AddressWpg::
* http://lykke.world/

bcnx.Poloniex-exchange (USA)

Description::
WELCOME TO POLONIEX
We are a US-based cryptocurrency exchange offering maximum security and advanced trading features.
[https://poloniex.com/]

Name::
* cpt.Poloniex-exchange,
* cpt.Poloniex-exchange-ogn,

bcnx.QuadrigaCX (Canada)

Description::
Quadriga CX is a Canadian Cryptocurrency exchange platform, with offices in Vancouver, BC. Our goal is to provide an easy to use platform to simplify the process of buying and selling Bitcoins.
[https://www.quadrigacx.com/about]

Name::
* cpt.ognBtcsvc.QuadrigaCX,

bcnx.ShapeShift

Description::
ShapeShift is a new piece of infrastructure in Bitcoinland. It is how digital currency exchange should work. From start to finish you can change currencies in under ten seconds, no account required.
...
Let's assume you have Bitcoin and you want Litecoin. It goes like this:
1. Select Bitcoin as the input and Litecoin as the output
2. Provide your Litecoin address in the box, then click the Start button
3. ShapeShift will generate a BTC deposit address for you. Please send your BTCs to this generated address. (Don't send more than the Deposit Limit).
That's it. In a few moments, your Litecoin will be sent to you.
No emails or passwords. No lengthy sign­up process. No accounts. No bid and ask orders. No friction.
[https://info.shapeshift.io/about]

Name::
* cpt.ShapeShift-ogn,
* cpt.ShapeShift,

AddressWpg::
* https://shapeshift.io/#/coins,

Exchange-rate

What exchange rate do you use?
Jon April 05, 2016 22:12
The exchange rate is our own, derived from several market sources and based on the amount we feel comfortable exchanging at that fixed rate (whether you do small or large order, the rate stays the same - no slippage).
We earn a profit to the extent we can source coins in other markets for a lower cost to replenish our reserves.
[https://shapeshift.zendesk.com/hc/en-us/articles/202585612-What-exchange-rate-do-you-use-]

Fee

What’s your fee structure?
January 08, 2017 11:04
ShapeShift does not charge a per exchange fee, while our exchange rates depend on the depth and spread of particular coin pairs and markets.
This means the amount that ShapeShift makes on any particular transaction varies based on current market conditions.
Depending on the liquidity and spread of a particular coin/coin pair, ShapeShift's spread usually falls in the range of about 0.5-1% or so.
[https://shapeshift.zendesk.com/hc/en-us/articles/202585602-What-s-your-fee-structure-]

bcnogn.MERCHANT

Description::
Wholesaler or retailer who may buy goods from any or all sources for resale to anyone and everyone for profit, using bitcoins.

Name::
* cpt.bcnogn.merchant,

bcnogn.Chain.com

Description::
The Chain Platform
Our solutions enable institutions to design, deploy, and operate blockchain networks that can power any type of asset in any market.
[http://chain.com/]

Name::
* cpt.chain.com,

bcnogn.Coin-Center

Coin Center, the industry’s leading public policy research and advocacy center.
[http://www.coindesk.com/events/consensus-2016/]

Name::
* cpt.Coin-Center,

bcnogn.CoinDesk

Description::
CoinDesk is the world leader in news and information on digital currencies such as bitcoin, and its underlying technology – the blockchain.

We cover news and analysis on the trends, price movements, technologies, companies and people in the bitcoin and digital currency world.

Our per-minute Bitcoin Price Index, a derived measure of bitcoin's value based on an agreed set of criteria, also serves as a point of reference for those involved in the bitcoin industry.

If you're new to bitcoin, read our straightforward guides on the basics of what bitcoin is, why people use it, where to buy bitcoins and how to spend them. We also explain the basics of bitcoin mining, how to set up a bitcoin miner, and how bitcoin transactions work.

Digital currency is a rapidly evolving industry and we believe one of the biggest developments in internet history in the making.

There are bitcoin exchanges, merchants accepting and promoting bitcoin, investors, traders, startups and developers all contributing to the ecosystem. There are also regulatory bodies all over the world trying to understand more about bitcoin, take a stance on it and assign guidelines to companies trading in or otherwise involved with bitcoin.

We strive to cover news accurately, fairly, objectively and responsibly. Obtaining original comment, corroborating information from other sources, and showcasing original opinion are fundamental to this. View our editorial policy here.

CoinDesk is an independent publication with reporters all over the world. If you're interested in writing for us, whether as a freelancer or occasional contributor, get in touch or check out our Jobs page.

If you have a question or a story, send us a tip. Contact us for anything else.
[http://www.coindesk.com/about-us/]

Name::
* cpt.CoinDesk,

bcnogn.Digital-Currency-Group

Description::
Digital Currency Group (DCG), the blockchain industry’s most active investor
[http://www.coindesk.com/events/consensus-2016/]

Name::
* cpt.DCG,

bcnogn.GBBC

Description::
Expanding Blockchain Technology Around the World
The Global Blockchain Business Council (GBBC) brings together the world’s leading businesses and business leaders to highlight the latest innovations and advances in Blockchain technology.
The GBBC is committed to fostering partnerships, raising awareness of the potential of this groundbreaking technology and providing a forum for education, collaboration and partnership.
[http://www.gbbcouncil.org/]
===
By Alicia Naumoff {2017-01-22}
The Blockchain Council Announced in Davos That Bitcoin Price Will Grow as Trump Takes Office
The Bitfury Group that develops Bitcoin mining hardware and operates mining farms has announced that in collaboration with the international law firm Covington it has launched the Global Blockchain Business Council (GBBC).

The announcement was made at the event held alongside the World Economic Forum’s annual meeting in Davos.

It happened just before the new United States President Donald Trump sent jitters down the spine of the world’s political and financial elite announcing at his inauguration: “From this day forward, a new vision will govern our land.” Trump has promised the American people “challenges” and “hardships” on the way of “getting the job done.” The price of Bitcoin took a cue from that message and immediately shot forward.

Top heads sighted

A number of technology, banking and financial experts and thought leaders were spotted at the Davos event where the Blockchain council has been created. They include former Swedish Prime Minister and senior advisor at Covington Carl Bildt, former Estonian President Toomas Hendrik, Dr. Wei Wang, founding chairman of China Mergers & Acquisitions (CMAA), and Don Tapscott the author of the best-seller “Blockchain Revolution”, just to name a few.

The Bitfury Group is a global team of experts in technology, business, communications, security and civil society, who are all big believers in the potential of Blockchain to open new doors for global economic opportunity and prosperity.

The main idea behind the Council is to bring together leading businesses, executives and government authorities to collaborate driving forward development and adoption of Blockchain technology around the globe.

A resource center and an educational forum

Valery Vavilov, the CEO of Bitfury Group, described the newly established Council as “a much-needed forum for businesses, innovators and technologists” to join forces and facilitate the advancement of Blockchain technology.

The GBBC will fulfill the role of a resource center and an educational forum to foster collaboration and partnerships across industries. It will assist companies by raising awareness of the potential of Blockchain technology and help engaging businesses interested in developing within the Blockchain space.

Covington brings to the table its broad-based experience in advising their clients in connection with policies, regulation litigation, enforcement and investigation, privacy and data security, consumer protection and transactional matters related to distributed ledger technology.

Sebastian Vos, Co-Chair of Covington’s global public policy and government affairs practice, said:

“Through advocacy and international engagement, Covington looks forward to working with the Global Blockchain Business Council to unlock the potential of Blockchain technology.”

Blockchain revolution

We saw how the Internet revolutionized many industries. We are now witnessing Blockchain technology steadily changing our approach to commerce, communications, financial services, entertainment industries, and many other spheres.

A lot has been said about the beauty of this technology and how it allows for any asset to be digitized, transferred and recorded on transparent and extremely secure ledgers.

Blockchain is marching across industries sweeping away slow, expensive and hackable intermediaries. When talking about the ways to facilitate this process, many experts often emphasize the need to increase collaboration between businesses and government authorities. Well, some are moving from words to deeds.

To learn more about the Global Blockchain Business Council please visit www.gbbcouncil.org.
[https://cointelegraph.com/news/the-blockchain-council-announced-in-davos-that-bitcoin-price-will-grow-as-trump-takes-office]

Name::
* cpt.GBBC,
* cpt.Global-Blockchain-Business-Council,

bcnogn.Guardtime

Description::
About Guardtime
Who we are
We are a team of over 100 cryptographers, network architects, hardware engineers, software developers and security architects, with decades of experience building cybersecurity solutions for enterprise, financial, telecommunications service providers, and military customers among others.

In 2007 we invented Keyless Signature Infrastructure, the first and only blockchain platform for ensuring the integrity of systems, networks and data at industrial scale.

What we do
We build products using our technology that solve problems no one else can solve. Examples include Anti-Tamper hardware designed to resist nation-state reverse engineering, a quantum-immune replacement for RSA digital signatures, cryptographic provenance tracking for software and IOT life cycles, insider threat mitigation and deterministic data loss prevention.

What we believe
We believe that integrity must be the basis for building reliable, resilient and secure systems. For the last 40 years security has come to mean confidentiality and encryption. Integrity has largely been forgotten, primarily because there hasn't been the tools to address it. Our contrarian view is that confidentiality is what you get when your systems have integrity.

If you can guarantee integrity (of systems, of processes, of supply chains) then you can guarantee the absence of compromise and replace a security strategy based on hope (that your security is working) with one based on mathematical certainty.

Office locations

Amsterdam
The Netherlands
Pinnacle Tower, Rapenburgerstraat 177/S,
1011 VM Amsterdam,
The Netherlands

Irvine, CA
United States
5151 California Ave,
Irvine, CA 92617,
United States

Tallinn
Estonia
A. H. Tammsaare tee 60,
Tallinn, 11316,
Estonia

Tartu
Estonia
Kόόni 5b,
Tartu, 51004,
Estonia

Please e-mail us at info@guardtime.com

For press inquiries: pr@guardtime.com and +1 (415) 625-8555
[https://guardtime.com/about]

Name::
* cpt.guardtime,

bcnogn.HyperLedger-Project (hlp)

Description::
The Hyperledger Project is a collaborative effort created to advance blockchain technology by identifying and addressing important features for a cross-industry open standard for distributed ledgers that can transform the way business transactions are conducted globally. The Project is a Linux Foundation Collaborative Project and implements many open source best practices familiar to other leading projects.

To facilitate an open ecosystem, the Hyperledger Project was structured with an open governance model.

The Technical Steering Committee (TSC) will provide leadership regarding the technical direction of the Hyperledger Project.
The Board of Directors will manage business leadership for the Hyperledger Project including governance, marketing and operational decisions.
For more information on the Hyperledger Project's Governance Model, IP Policy, Antitrust Guidelines, and other operational aspects, please read the Hyperledger Project Charter
[https://www.hyperledger.org/about]

Name::
* cpt.bcnogn.hyperledger,
* cpt.HLP,
* cpt.hyperLedger-project,

AddressWpg::
* https://www.hyperledger.org/
* {2017-04-18} https://cointelegraph.com/news/permissible-smart-contr...tion-with-ethereum,

hlp'Project

hlppjt'Ligecycle

AddressWpg::
* https://wiki.hyperledger.org/community/project-lifecycle,

Project Lifecycle
The term “project” within the Hyperledger Project will refer to a collaborative endeavor to deliver a work item. There may be some projects that are intended to produce a document, such as a requirements or use cases document, a whitepaper, or analysis. Others may be to develop a new capability, or refactor (or remove) an existing capability for the Hyperledger technology releases. Such projects may take the form of a new component (e.g. a new repository) or may propose additions, deletions or changes to an existing repository(s).

Many other open source initiatives leverage an incubation process for new work items, and this seems to have a desired effect of encouraging new ideas and tracks of work, while at the same time providing clear guidance to the broader community as to what is real and supported, versus what is still in the exploratory/experimental/developmental phases.

Therefore the Hyperledger Project has adopted a similar lifecycle process as follows:
Projects are in one of five possible states:
Proposal
Incubation
Active
Deprecated
End of Life
Projects may not necessarily move through those states in a linear way and may go through several iterations.

Proposal

Project Proposals shall be submitted to the TSC for review, using a Proposal Template. Proposals that are approved shall enter into an Incubation state, unless they are of a refactoring nature, in which case they will be turned over to the relevant project maintainer(s) to handle as they deem fit.

A Proposal must:

have a clear description
have a well-defined scope
identify committed development resources
identify initial maintainers
be vendor neutral
Incubation

Approved project proposals enter into Incubation. For new components/modules, a repository will be created under the hyperledger Github org, and optionally under Gerrit and JIRA, if requested. New features/capabilities should be handled through pull requests labeled with tags that identify the project and tag it as “incubator” (and will ideally be capable of being enabled/disabled with feature-flags).

Projects in Incubation may overlap with one another. Entering Incubation is meant to be fairly easy to allow for community exploration of different ideas.

Once a project qualifies to be declared Active, the project’s maintainers can then vote to request a graduation review by the TSC.

Projects seeking to graduate from Incubation must:

have fully functional code base
have test coverage commensurate with other Active projects
have an active and diverse community of developers
have a history of releases that follow the Active release process
Entering Incubation does not guarantee that the project will eventually get to Active state. Projects may never get to Active state.

The criteria to exit Incubation are defined in the Incubation Exit Criteria document.

Active

Projects that have successfully exited the Incubation phase are in the Active phase.

Anyone may propose that a project be deprecated, by submitting a rationale and identifying a substitute project/component (if any). The maintainers of the project shall vote on such a request and if it passes, make that recommendation to the TSC. Members of the community that disagree with the request shall make their case before the TSC. The TSC shall consider all points of view and render a final decision to deprecate or not.

Deprecated

A Deprecated project will be maintained for a six month period by its community, after which it will be removed from any subsequent formal releases. Notice will be given to the public of the project’s deprecation. After the six-month deprecation period, the project will be labeled End of Life.

End of Life

A project that is no longer actively developed or maintained.

bcnnet'Evaluation

Name::
* cpt.bcneln,
* cpt.bcnevaluation,
* cpt.bcnnet'evaluation,
* cpt.blockchain-evaluation,

Evaluation::
Throughout all the years I’ve been working as a software engineer, there has never been a technology breakthrough that I thought had more potential to change people’s lives for the better than Bitcoin.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

Evaluation::
“Wherever trust is a problem, blockchain can be a solution.”
- Amanda Gutterman
[https://cointelegraph.com/news/podcast-amanda-gutterman-innovators-lab]

Evaluation::
Blockchain Features
Blockchains have the following properties.
Undeletable
The data that is on the blockchain will exist as long as there is some node in the network still operating. Once data has been put in a block, it can never be removed.
Unmodifiable
Using public-private key cryptography, all data are verifiably signed and cannot be modified by a third party.
No Downtime
Using the blockchain, zero downtime systems can finally be realized.
Advanced Features for the Blockchain
Mijin is not only a simple platform for creating points or custom currencies, but will have many advanced features.
Support for Multiple Assets
Unlike Bitcoin that has only a single digital asset, Mijin supports any arbitrary asset, allowing you to freely create and manage all your assets. We call these.
Support for Multi-signature Accounts
Mijin supports m-of-n multi-signature accounts at the platform level. You can designate multiple signatory accounts that need to sign off on transactions from an account. This can be useful for managing departmental budgets for companies or governments.
Smart Contract Support
Mijin will allow for powerful computational contracts and programs to be run in a decentralized and verifiable manner.
[http://mijin.io/en/about-mijin]

Evaluation::
Over a year ago, Marc Andreessen, the doyen of Silicon Valley’s venture capitalists, listed the blockchain’s distributed consensus model as the most important invention since the Internet itself.
[http://recode.net/2015/07/05/forget-bitcoin-what-is-the-blockchain-and-why-should-you-care/]

Evaluation::
This is why blockchain technology is so exciting – it is not just about an incremental improvement in utility e.g. escrow smart contracts, it is not just about dramatically lowering the cost of setting up a trusted business, see the Great Unbundle blog, it is also about the ability to quickly and cheaply experiment with new money creation models.
[https://www.linkedin.com/pulse/crypto-20-musings-bitcoin-money-creation-alex-batlin?]

Evaluation::
Blockchain technology allows the elimination of any centralized point of failure, storing all the platform data on all system nodes in a distributed fashion.
[http://wavesplatform.com/]

bcnnet'Law (bcnlaw)

Description::
A-bcnnet to exist must-issue money-(cryptocurrency).
Since {1971} money is-backed by thin-air and controlled by governments and financial-institutions.
This destroyed the-link (the-invisible-hand) of money with real-economy and was one of the-reasons that drived the-world into the-2008-global-cirisis.
Bcnnets decentralize the-control of money.
Obviously there-is a-conflict between the-usefulness-of-bcnnets and the-control of money by governments and financial-institutions.
That's why the-law on cryptocurrencies varies substantially from country to country and is still UNDEFINDED or CHANGING in many of them [wikipedia].
[hmnSgm.2017-03-26]

Name::
* cpt.bcnlaw,
* cpt.bcnnet'law,
* cpt.blockchain-law,
* cpt.law-of-blockchain,

bcnnet'Relation-to-other-computer-systems

Description::
To grasp the potential that applications built on top of blockchains can deliver, it is essential to understand the three key differences between blockchains and most existing computer designs.
We present these below as non-localization, security, and auditability.
[https://www.provenance.org/whitepaper]

Name::
* cpt.blockchain-relation-to-other-computer-systems,

bcnnet'Conference

Name::
* cpt.bcncfc,
* cpt.bcnnet'conference,
* cpt.bcnnet'event,
* cpt.blockchain-conference,
* cpt.conference-of-blockchain,

{time.2016-05-02-04} CONSENSUS-2016

CONSENSUS 2016
CoinDesk is proud to present its 2nd annual blockchain technology summit, Consensus 2016, in collaboration with Digital Currency Group (DCG), the blockchain industry’s most active investor, and Coin Center, the industry’s leading public policy research and advocacy center. The multi-day event will define what is “real” in blockchain technology and focus on how to mainstream real-world applications for consumers and enterprises alike. This May 2-4, professionals from leading industry startups, investment firms, financial services institutions, academic and policy groups will congregate at the New York Marriott Marquis for Consensus 2016.
[http://www.coindesk.com/events/consensus-2016/]

{time.2015} CONSENSUS-2015

CONSENSUS 2015
Consensus 2015, CoinDesk's inaugural summit on digital currencies and blockchain tech brought together more than 600 professionals from the tech, finance, and investment sectors – organizations such as Citi, PayPal, Wells Fargo, IBM and more. Experts, innovators, and executives across multiple sectors convened to explore the digital currency economy in-depth.
[http://www.coindesk.com/events/consensus-2016/]

bcnnet'Resource (bcnrsc)

Name::
* cpt.bcnnet'resource,
* cpt.bcnrsc,
* cpt.blockchain-resource,
* cpt.resource-of-blockchain,

AddressWpg::
* {2016-07-27} Vitalik Buterin: https://blog.ethereum.org/2016/07/27/inflation-transaction-fees-cryptocurrency-monetary-policy/,
* {2016-06-22} http://cointelegraph.com/news/bitcoin-is-potential-national-threat-says-us-regulator,
* {2016-04-07} http://www.wsj.com/articles/ bitcoins-blockchain-technology-proves-itself-in-wall-street-test-1460021421,
* {2016-03-04} Jeff John Roberts: The Crisis in Bitcoin and the Rise of Blockchain
http://fortune.com/2016/03/04/crisis-in-bitcoin-rise-of-blockchain/
* https://www.weforum.org/agenda/2016/03/ could-blockchain-technology-make-big-banks-a-thing-of-the-past/
* https://www.weforum.org/agenda/2016/03/could-blockchain-technology-help-the-worlds-poor,
* http://recode.net/2015/07/05/forget-bitcoin-what-is-the-blockchain-and-why-should-you-care/
* http://www.ibm.com/blockchain/what_is_blockchain.html,
* http://edcab.eu/read/about,
* http://nakamotoinstitute.org/about/

bcnrsc.BOOK

Blockchain Revolution: How the Technology Behind Bitcoin Is Changing Money, Business and the World Paperback – 26 May 2016
[https://www.amazon.co.uk/Blockchain-Revolution-Technology-Changing-Business/dp/0241237858/]

"Mastering Bitcoin". Andreas M. Adonopoulos.
- https://www.bitcoinbook.info/
- https://github.com/bitcoinbook/bitcoinbook,
- (in Greek) http://synagonism.net/dirMiwMcs/dirTchInf/book-Mastering-Bitcoin.html,

bcnnet'DOING

Name::
* cpt.bcndng,
* cpt.bcnnet'doing,
* cpt.blockchain-doing,

bcndng.CREATING

Name::
* cpt.bcnnet'creating,
* cpt.bcndng.creating,
* cpt.blockchain-creating,

bcndng.UPGRATING

Description::
One of the important arguments in the blockchain space is that of whether hard forks or soft forks are the preferred protocol upgrade mechanism.
[http://vitalik.ca/general/2017/03/14/forks_and_markets.html]
===
To update means to bring someone or something up to date, whereas to upgrade means to raise or improve something to a higher standard.
The difference between these two is particularly apparent in the world of computers: an update is not always and improvement!
[https://english.stackexchange.com/a/13356]

Name::
* cpt.bcndng.upgrating,
* cpt.bcnnet'protocol-upgrate-mechanism,
* cpt.bcnnet'upgrating,
* cpt.blockchain-upgrating,

Hardfork (link)

Softfork (link)

Resource

AddressWpg::
* http://vitalik.ca/general/2017/03/14/forks_and_markets.html,

bcndng.GOVERNING (link)

bcndng.FUNDING

Description::
Money received (ICO) to build the system.

Name::
* cpt.bcndng.funding,
* cpt.blockchain-funding,

bcndng.SERVICE (bcnsvc)

Description::
Although currency transactions are the most common applications of the blockchain technology, some groups are also attempting to transfer other digital assets, such as financial products and services, logistics information, property ownership, identity etc.
[https://www.boscoin.io/wordpress/wp-content/themes/boscoin/src/pdf/boscoinwhitepaperv20170202.pdf]
===
The-service of a-blockchain-network and the-service of its consensus-money is the-same.
[hmnSgm.2017-02-04]

Name::
* cpt.bcnnet'adoption,
* cpt.bcnnet'application,
* cpt.bcnnet'service,
* cpt.bcnnet'usage,
* cpt.bcnsvc,
* cpt.blockchain-service,

bcnsvc'Resource

AddressWpg::
* http://www.blockchaintechnologies.com/blockchain-applications,
* {2016-12-13} Beyond bitcoin: 4 surprising uses for blockchain: https://www.weforum.org/agenda/...fighting-human-trafficking-tracing-blood-diamonds-and-other?
* https://news.bitcoin.com/ecb-plans-blockchain-e-governance/
* {2016-11-28} 5 Blockchain Applications That Are Shaping Your Future: http://www.huffingtonpost.com/ameer-rosic-/5-blockchain-applications_b_13279010.html,
* {2016-04-27} ECB Reveals Plans for Blockchain E-Governance http://cointelegraph.com/news/...blockchain-is-gaining-unprecedented-traction,
* {2016-04-10} Match & Teach Me: Blockchain, Psychometrics To Help Teach Refugees: http://cointelegraph.com/news/match-teach-me-blockchain-psychometrics-to-help-teach-refugees,
* {2016-04-09} Blockchain: Overhyped or Underexplored, It Will Be Deployed At Scale: http://cointelegraph.com/news/blockchain-overhyped-or-underexplored-it-will-be-deployed-at-scale,
* {2016-04-08} Filipino Breach: How Blockchain Can Bring Privacy Revolution To Masses: http://cointelegraph.com/news/filipino-breach...bring-privacy-revolution-to-masses,
* {2016-04-06} Blockchain Goes On A Brand Protection Mission, Fights Counterfeiting: http://cointelegraph.com/news/blockchain...brand-protection-mission-fights-counterfeiting,
* {2016-03-16} Response to Marcella Atzori: can the blockchain provide governance? https://bitnation.co/blog/response-marcella-atzori-can-blockchain-provide-governance/
* {2016-01-08} The Top 10 Blockchain Startups to Watch in 2016: https://medium.com/the-intrepid-review/the-top-...changing-the-game,

SPECIFIC

Name::
* bcnsvc.specific,
* cpt.bcnsvc.specific,

Specific::
* Academic-degree-blockchain-service,
* Administering-decentralized-blockchain-service,
* Asset-exchange-blockchain-service,
* Banking-blockchain-service,
* Birth-certificate-blockchain-service,
* Blockchain-service-providing,
* Charity-blockchain-service,
* Cloud-computing-blockchain-service,
* Cloud-storage-blockchain-service,
* Content-providing-blockchain-service,
* Coordination.global-blockchain-service,
* Crownd-funding-blockchain-service,
* Economy-blockchain-service,
* Energy-sector-blockchain-service,
* Exchange-value-blockchain-service,
* Financial-sector-blockchain-service,
* Freight-blockchain-service,
* General-purpose-computing-blockchain-service,
* Gold-exchange-blockchain-service,
* Healthcare-sector-blockchain-service,
* Identification-blockchain-service,
* Info-tech-sector-blockchain-service,
* Intellectual-property-blockchain-service,
* Invoice-managing-blockchain-service,
* Land-registry-blockchain-service,
* Legal-sector-blockchain-service,
* Manufacturing-sector-blockchain-service,
* Marketplace-blockchain-service,
* Money-transfer-blockchain-service,
* Music-service-blockchain-service,
* Notarization-blockchain-service,
* Program-blockchain-service,
* Proof-of-existance-blockchain-service,
* Recruitmen-sector-blockchain-service,
* Record-blockchain-service,
* Smart-contract-blockchain-service,
* Social-security-blockchain-service,
* Startup-funding-blockchain-service,
* Tech-info-blockchain-service,
* Trade-sector-blockchain-service,
* Transportation-sector-blockchain-service,
* Voting-blockchain-service,
* Wedding-certificate-blockchain-service,
* Welfare-benefit-blockchain-service,
* Will-blockchain-service,

bcnsvc.SPECIFIC-DIVISION.info-stored

Description::
Blockchain stores timestamped and unchanged information with many applications.

Name::
* cpt.bcnsve.info-stored-specific-division,

Specific::
* academic-degree-service,
* birth-certificate-service,
* charity-service,
* exchange-value-service,
* land-info-service,
* music-service,
* program-service,
* voting-service,
* wedding-certificate-service,
* will-service,

bcnsvc.SPECIFIC-DIVISION.sector

Name::
* cpt.bcnnet'industry,
* cpt.bcnnet'sector,
* cpt.bcnsvc.sector-division,

AddressWpg::
* {2017-02-07} Banking Is Only The Start: 27 Big Industries Where Blockchain Could Be Used, https://www.cbinsights.com/blog/industries-disrupted-blockchain/

Specific::
* Banking-sector,
* Energy-sector,
* Financial-sector,
* Healthcare-sector,
* Info-tech-sector,
* Legal-sector,
* Manufacturing-sector,
* Music-sector,
* Trade-sector,
* Transportation-sector,
==

bcnsvc.sector.FINANCIAL

Description::
“Bitcoin—or more precisely, the underlying technology that allows it to function, called distributed ledgers, or blockchain—could allow what many see as a radical rewiring of the financial sector.”
[http://cointelegraph.com/news/imf-magazine-examines-present-and-future-of-bitcoin]

Name::
* cpt.bcnsvc.financial,
* cpt.financial-sector-blockchain-service,

AddressWpg::
* https://www.bloomberg.com/news/articles/2016-06-06/ central-bankers-told-they-should-be-sprinting-toward-blockchain,
* https://www.weforum.org/agenda/2016/05/how-blockchain-could-shake-up-stock-markets/

bcnsvc.BANKING

Name::
* cpt.bcnsvc.banking,
* cpt.banking-blockchain-service,

AddressWpg::
* {2017-05-18} Bank Blockchain Pilot in India Sees Transactions Going From Weeks to Hours: https://cointelegraph.com/,
* Polybius Bank will combine features of modern banking, IoT, Big Data and Blockchain-based technologies while also meeting security and UX requirements.
- https://polybius.io/,
* Humaniq is a simple and secure 4th generation mobile bank. We are developing a completely new banking experience by dissolving all the barriers of archaic banks such as the need to come to a branch, doing endless paperwork, dealing with hard-to-use, buggy mobile apps, and protecting data with hard-to-remember, complex passwords.We have created a safe, strong financial tool, specifically designed to be used by people who are undereducated or who don’t possess identification. Most of them live in emerging economies on less than two dollars a day. We believe we can change that. Learn more about Humaniq…
- https://humaniq.co/

exchange.Gold

Name::
* cpt.bcnsvc.gold-exchange,
* cpt.gold-exchange-blockchain-service,

AddressWpg::
* https://www.dinardirham.com/

money

Name::
* cpt.bcnsvc.money,
* cpt.money-blockchain-service,

AddressWpg::
* http://dcebrief.com/tunisia-becomes-first-nation-to-put-nations-currency-on-a-blockchain/ {2015-12-28}
* https://cointelegraph.com/news/ukraine-to-become- next-country-to-go-cashless-plans-national-digital-currency,

Startup-funding

Name::
* cpt.bcnsvc.startup-funding,
* cpt.startup-funding-blockchain-funding,

Specific::
* Neufund-ogn,

Neufund-organization

Description::
Neufund is building a blockchain-based and investor-directed platform which bridges the world of cryptocurrency and equity. The fund unlocks the resources of cryptocurrency and blockchain to fund startups and all forms of technological innovation and disruption.
[http://neufund.org/]

Name::
* cpt.Neufund-ogn,

bcnsvc.sector.RECRUITMENT

Name::
* cpt.bcnsvc.recruitment,
* cpt.recruitment-sector-blockchain-service,

AddressWpg::
* https://chronobank.io/ ChronoBank.io is an ambitious and wide-ranging blockchain project, aimed at disrupting the HR/recruitment/finance industries in a similar way to how Uber disrupted the taxi business and how Upwork represented an evolution in freelancing.

bcnsvc.sector.TRADE

Name::
* cpt.bcnsvc.trade,
* cpt.trade-sector-blockchain-service,

AddressWpg::
* https://cointelegraph.com/news/wells-fargo-and-australian-bank- begin-sending-physical-products-via-blockchain,

bcnsvc.ASSET-EXCHANGE

Name::
* cpt.bcnsvc.asset-exchange,
* cpt.asset-exchange-blockchain-service,

bcnsvc.FREIGHT

Name::
* cpt.bcnsvc.handover,
* cpt.freight-blockchain-service,

AddressWpg::
* https://cointelegraph.com/news/ibm-maersk-to-deliver-first-blockchain-project-by-end-of-2017,

bcnsvc.Invoice-managing

Description::
The government in Singapore has turned to Blockchain developing a system to prevent invoice fraud cases.
[https://cointelegraph.com/news/power-to-the-people-blockchain-replaces-government-in-europe]

Name::
* cpt.bcnsvc.invoice-managing,
* cpt.invoice-managing-blockchain-service,

bcnsvc.Provenance-project

Description::
Project Provenance began with a frustration for how little we know about the things we buy
We are now a growing collective with backgrounds in software design, product manufacturing and data science. Our base is in London, but our mission is global. Our common goal is to deliver meaningful change to commerce through open and accessible information about products and supply chains.
[https://www.provenance.org/about]

Name::
* cpt.provenance-ogn,

AddressWpg::
* The woman whose mum inspired her to track ethical food
By Matthew Wheeler
Business reporter
13 February 2017
- http://www.bbc.com/news/business-38773878,

bcnsvc.sector.ENERGY

Name::
* cpt.bcnsvc.energy,
* cpt.energy-blockchain-service,

AddressWpg::
* http://www.greentechmedia.com/articles/read/ the-energy-blockchain-could-bitcoin-be-a-catalyst-for-the-distributed-grid?

bcnsvc.sector.LEGAL

Name::
* cpt.bcnsvc.legal,
* cpt.law-blockchain-service,
* cpt.legal-blockchain-service,

AddressWpg::
* {2016-10-14} Argentina-Based Notarization Platform Launches Public Beta, Brings Bitcoin to Legal Industry: https://cointelegraph.com/news/argentina-based-notarization...legal-industry,
* Agrello: Have your own AI counselor help you create and manage smart-contract-based legal agreements. No coding or legal skills required.
- https://www.agrello.org/,

bcnsvc.sector.MANUFACTURING

Name::
* cpt.bcnsvc.manufacturing,
* cpt.manufacturing-blockchain-service,

AddressWpg::
* {2016-06-08} http://cointelegraph.com/news/ blockchain-watch-manufactures-start-using-blockchain-to-confirm-authenticity-of-luxury-goods,
- Upon the sale or transfer of assets, the original owner performs a simple operation on the blockchain to automatically transfer their right to ownership to the new owner.

bcnsvc.sector.MUSIC

Name::
* cpt.bcnsvc.music,
* cpt.music-blockchain-service,

AddressWpg::
* http://www.ibtimes.co.uk/ pink-floyd-blockchain-technology-music-could-be-truly-revolutionary-1569649,

bcnsvc.sector.TECH.INFO

Name::
* cpt.bcnsvc.info-tech,
* cpt.info-tech-blockchain-service,

GENERAL-PURPOSE-COMPUTING

Name::
* cpt.bcnsvc.general-purpose-computing,
* cpt.general-purpose-computing-blockchain-service,

AddressWpg::
* https://sonm.io/ SONM is a decentralized worldwide fog supercomputer for general purpose computing from site hosting to scientific calculations.
The purpose of SONM project is to replace traditional Proof-of-Work cryptocurrency mining prevalent in the blockchain community at the moment.

CLOUD-COMPUTING

Name::
* cpt.bcnsvc.cloud-computing,
* cpt.cloud-computing-blockchain-service,

AddressWpg::
* BLOCKCHAIN-BASED DISTRIBUTED CLOUD COMPUTING: http://iex.ec/

CLOUD-STORAGE

Name::
* cpt.bcnsvc.cloud-storage,
* cpt.cloud-storage-blockchain-service,
* cpt.sector.storage-bcnnet-service,

AddressWpg::
* https://cointelegraph.com/news/ sia-v103-comes-out-aims-at-revolution-in-blockchain-cloud-storage,
* http://cointelegraph.com/news/ cloud-storage-meets-bitcoin-blockchain-siacoin-takes-on-amazon-google-microsoft,
* https://sia.tech/

CONTENT-PROVIDING

Name::
* cpt.bcnsvc.content-providing,
* cpt.content-providing-blockchain-service,

AddressWpg::
* https://cointelegraph.com/news/how-to-monetize-content-using-blockchain-platforms,

bcnsvc.BLOCKCHAIN-SERVICE-PROVIDING

Name::
* cpt.bcnsvc.blockchain-service-providing,
* cpt.blockchain-service-providing,

AddressWpg::
* http://cointelegraph.com/news/emercoin-blockchain-engine-becomes- first-blockchain-solution-available-on-microsoft-azure-marketplace,
Emercoin joined the Microsoft Azure program in January 2016, becoming one of the first partners and blockchain implementing service providers. On this day, the Emercoin Blockchain Engine has become the first Microsoft Azure Market application to provide blockchain services to end users around the world.
* Blockchain-as-a-service-network,

bcnsvc.GOVERNANCE

Description::
Blockchain technology and dApps have the ability to decentralize power from existing authorities in business, law, and technology to a broad set of stakeholders.
This shift will disrupt current business, economic and social paradigms.
Transaction costs and barriers to entry in various industries will be reduced in these industries.
The result will likely be an increase in economic exchange and prosperity.
[https://consensys.net/vision/]

Name::
* cpt.bcnsvc.governance,
* cpt.administering-blockchain-service,
* cpt.governance-blockchain-service,

bcnsvc.GOVERNANCE.SOCIETY

Description::
The need to look beyond the currency and investigate the potential use of the technology in industries outside payments is often emphasized. So should global governments be embracing Blockchain?
Backing e-government platforms with Blockchain can solve a number of issues that arise when dealing with public authorities nowadays. Citizens feel so disconnected from their governments and think the general level of state bureaucracy is unbelievable. Therefore, digitization of state services in general and especially the integration of Blockchain in this sphere is an interesting process to follow.
[https://cointelegraph.com/news/power-to-the-people-blockchain-replaces-government-in-europe]

Name::
* cpt.administering-socidety-blockchain-service,
* cpt.bcnsvc.governance,
* cpt.government-services-on-blockchain,
* cpt.bcnsvc.Public-sector,
* cpt.bcnsvc.sector.Public,
* cpt.public-services-on-blockchain,
* cpt.state-services-on-blockchain,

AddressWpg::
* http://www.borderless.tech/

bcnsvc.Land-registry

Description::
Ghana has been playing around with Blockchain to apply it in land registry with 28 communities involved in the project to enable tamper-resistant property ownership.
[https://cointelegraph.com/news/power-to-the-people-blockchain-replaces-government-in-europe]
===
For instance, Sweden is working to back real estate transactions with Blockchain technology, enabling all parties involved to easily track the progress of agreements.
[https://cointelegraph.com/news/power-to-the-people-blockchain-replaces-government-in-europe]

Name::
* cpt.bcnsvc.land-registry,
* cpt.bcnsvc.real-estate-transaction,
* cpt.blockchain.land-registry,
* cpt.land-registry-blockchain-service,

AddressWpg::
* {time.2017-04-04} https://cointelegraph.com/news/blockchain-land-registry-trial-in-sweden-concludes-second-phase,

bcnsvc.Social-security

Name::
* cpt.bcnsvc.social-security,
* cpt.social-security-blockchain-service,

AddressWpg::
* China recently announced that they would put their entire social security system on a Blockchain.
[https://cointelegraph.com/news/ukraine-to-become-next-country-to-go-cashless-plans-national-digital-currency 2016-11-13]

bcnsvc.Voting

Name::
* cpt.bcnsvc.voting,
* cpt.blockchain-voting,
* cpt.voting-blockchain-service,
* cpt.voting.blockchain,

AddressWpg::
* {2017.04-06} https://cointelegraph.com/news/blockchain-voting-may-lead-to-liquid-democracy-globally-in-20-years,
* {2016-06-30} https://cointelegraph.com/news/australia-to-make-blockchain-voting-app-a-global-democratic-movement,
While Russia is testing an e-proxy voting system based on a distributed ledger, Australia is launching a Blockchain voting app in hopes of starting a global political movement.
The Flux Party is a new Australian political party that aims to return power over important decisions made in Parliament to individual electors.
* http://cointelegraph.com/news/russia-tests-blockchain-voting-plans-to-launch-it-in-2017, National Settlement Depository, Russia’s central securities depository, has successfully tested an e-proxy voting system based on a distributed ledger (blockchain) technology.
* {2016} http://www.europarl.europa.eu/RegData/etudes/ATAG/2016/581918/EPRS_ATA(2016)581918_EN.pdf, European Parliament Research Service.

Specific::
* bitcoin-voting,

bcnsvc.Welfare-benefit

Description::
The UK has been exploring the use of Blockchain to manage and monitor the distribution of welfare benefits.
[https://cointelegraph.com/news/power-to-the-people-blockchain-replaces-government-in-europe]

bcnsvc.ECONOMY

Name::
* cpt.bcnsvc.decentralized,
* cpt.blockchain-decentralized-economy,
* cpt.economy-blockchain-service,

AddressWpg::
* {2017-03-30} How Amir Taaki Tried to Build Bitcoin Economy in Syria While Fighting ISIS: https://cointelegraph.com/news/how-amir...build-bitcoin-economy-in-syria-while-fighting-isis,

bcnsvc.IDENTIFICATION

Name::
* cpt.bcnsvc.identification,
* cpt.bcnsvc.ID,
* cpt.identification-blockchain-service,

AddressWpg::
* {2017-05-15} RegTech: New Blockchain Platform Seeks To Disrupt Identity Industry: https://cointelegraph.com/,
* https://uport.me/#home, Your universal digital passport
Simple, secure, self-sovereign identity on Ethereum
Self-sovereign identity puts you 100% in control of your identity and data
* https://shocard.com/how-it-works/

Specific::
* bitcoin-ID-service,

bcnsvc.COORDINATION.GLOBAL

Name::
* cpt.bcnsvc.coordination.global,
* cpt.bcnsvc.global-coordination,
* cpt.coordination.global-blockchain-service,

AddressWpg::
* http://www.telegraph.co.uk/business/2016/06/20/ skype-inventor-jaan-tallinn-wants-to-use-bitcoin-technology-to-s/

bcnsvc.FERMAT-FRAMEWORK

Description::
Fermat is a Decentralized, Blockchain enabled, Modular App Platform that unleashes the P2P “Internet of People” Economy.
Fermat seeks to deliver the better world, initially promised by Bitcoin. Through a decentralized app framework that incentivizes collaborative development, shared ownership and hyper-customization of modular software, the Project aims to unshackle free markets, by removing intermediaries from their current levels of influence, and to earn widespread mainstream adoption.
Fermat’s central premise is that there is a path to software development that is smarter, better and more efficient than the status quo. The Fermat framework allows anyone from anywhere to collaborate and mutually profit from shared ownership of modular applications: it enables an open-ended stream of micropayments to authors of reusable software components that can be perpetually combined and recombined across an ever-expanding library of useful, highly-customizable, peer-to-peer commercial applications (apps).
The blockchain-enabled system is built to be user-controlled, censorship-resistant and flexible – a platform for person-to-person exchange of goods, service, assets and data, free from the whims, risks, costs and interference of unwanted, self-interested third parties who put their priorities ahead of those of the people directly involved in the exchange.
Our roadmap to a better world starts from the view of mass adoption. Our first step is to envision a future where cryptocurrency is mass-adopted; fiat currencies are already completely digitized; and people have the freedom to choose which electronic currency to use, where to store them and how and when to exchange that purchasing power.
In this future people manage multiple online identities, using the one that best fits their current needs in each situation. They transact with whatever privacy level they choose. They not only have money on their devices, but a whole suite of software that can use their digital money to enable and sustain all kinds of p2p business models. Fermat is making this possible.
I envision a future where humans are more important than legal fictions like companies and corporations and non-objective realities like nations and states.
–LUIS FERNANDO MOLINA
[http://www.fermat.org/fermat-about-us/our-vision/]

Name::
* cpt.bcnsvc.Fermat-framwork,
* cpt.Fermat-framwork-blockchain-service,

AddressWpg::
* https://drive.google.com/file/d/0Bzq6JfsbkKrAUFAwWUNyNS12ekU/view?ts=56f6c013,

bcnsvc.MARKETPLACE

Description::
MARKETPLACE
The Nxt Marketplace feature allows you to list items for sale and make sales on the blockchain.

You do not need to rely on external market sites to conduct your business. Instead, transactions are done between seller and buyer directly.
[https://nxt.org/what-is-nxt/marketplace/]

Name::
* cpt.bcnsvc.marketplace,
* cpt.marketplace-blockchain-service,

bcnsvc.NOTARIZATION-service

Name::
* cpt.bcnsvc.notarization,
* cpt.notarization-blockchain-service,

NameGreek::
* συμβολαιογραφική-υπηρεσία,

AddressWpg::
* https://cointelegraph.com/news/argentina-based-notarization-platform-launches-public-beta- brings-bitcoin-to-legal-industry,

bcnsvc.RECORD-KEEPING

Description::
The opening for a blockchain intern at Disney illustrates that banks and financial institutions are no longer the only companies looking at blockchain solutions.
The blockchain can find applications in any industry where records need to be securely maintained and processed – whether they be land records, medical records or shipping records.
We can expect companies in other industries to follow Disney's lead and start looking at blockchain solutions in the near future.
[http://cointelegraph.com/news/walt-disney-now-loves-blockchain-going-trustless-in-seattle]

Name::
* cpt.bcnsvc.record-keeping,
* cpt.record-keeping-blockchain-service,

AddressWpg::
* student-credintials: http://www.cnbc.com/2016/05/09/schools-are-recording-students-results-on-the-blockchain.html,

Specific::
* Academic-degrees,
* intellectual-property,
* land-registry,
* medical-records-registry,
* shipping-registry,
* strudents-credentials,
* wedding-agreement,

bcnsvc.INTELLECTUAL-PROPERTY

Name::
* cpt.bcnsvc.intellectual-property,
* cpt.intellectual-property-blockchain-service,

AddressWpg::
* https://cointelegraph.com/news/blockai-uses-bitcoin-blockchain-to-protect-intellectual-property, blockai.com,

bcnsvc.WEDDING-AGREEMENT

Name::
* cpt.bcnsvc.wedding-agreement,
* cpt.wedding-agreement-blockchain-service,

{time.2014}:
This isn't the first connection that Disney has with the blockchain.
Way back in 2014, the first blockchain wedding took place at Disneyland, Florida.
David Mondrus and Joyce Bayo registered their wedding agreement on the blockchain, eliminating the role of both religious and government officials.
[http://cointelegraph.com/news/walt-disney-now-loves-blockchain-going-trustless-in-seattle]

bcnsvc.Blockstack (bsksvc)

Cpt-created: {2017-03-14}

Description::
Blockstack is a new internet for decentralized, server-less applications.
Building on Blockstack starts with single-page applications built in Javascript that are downloaded onto user devices.
Developers plug into blockstack.js, which provides API’s for authenticating the user, grabbing application data from the user, and storing new application data with the user (encrypted and backed up to cloud storage).
The blockchain is utilized to maintain a cross-application identity system, securely mapping user IDs to usernames, public keys, and data storage URIs.
Developers don’t have to worry about running servers, maintaining databases, or building out user management systems, and decentralized, server-less applications can be built more simply than their traditional counterparts.
[https://blockstack.org/about]

Name::
* cpt.bcnbsk,
* cpt.blockstack-platform,
* cpt.bsksvc,

bcnbsk'Resource

AddressWpg::
* {2017-03-14} https://cointelegraph.com/news/blockstack-launches-third-ever-blockchain-product-on-amazon-marketplace,

bcnnet'doing.service.ChronoBank (chbsvc)

Description::
The-ChronoBank-project is a-blockchain-service for the-recruitment-sector.
The second major attribute of the-project is that issues exchange-value-units, the-LH, BACKED with human-work.
The-project uses ethereum-dApps to achieve its goals.
[hmnSgm.2017-05-20]

Name::
* cpt.bcnchb,
* cpt.chbsvc, {2017-03-20}
* cpt.ChronoBank,
* cpt.ChronoBank-blockchain-based-project,
* cpt.ChronoBank-initiative,
* cpt.ChronoBank-platform,
* cpt.ChronoBank-service,

Description::
The ChronoBank project aims to make short-term employment as accessible and rewarding as long-term employment, giving workers the flexibility to determine their own schedules whilst being paid a fair rate for their time, expertise and reputation.
[https://blog.nem.io/the-chronobank-project/]

Description::
ChronoBank is a new blockchain-based project that takes aim at the short-term recruitment sector. By placing buyers and sellers of labour in direct contact, and paying in a native Labour Hour token (LH), the platform offers the possibility of substantial savings for employers, since it cuts out the expensive middlemen of the recruitment industry -- in the same way that Uber disintermediates the taxi business.
[https://blog.chronobank.io/chronobanks-time-launches-on-four-exchanges-71c2bb5c989a#.wnktm5kng]
===
ChronoBank is designed to allow businesses to connect directly with professionals seeking work, cutting out recruitment agencies in much the same way that Uber disintermediates the taxi business.
[https://blog.chronobank.io/chronobank-partners-with-nem-to-create-chrononem-wallet-eebdc176351d]
===
Have you ever wanted a service that would let you do what you’re good at and get paid at the same time, but you struggle to find clients for your work? Chronobank solves this problem by utilizing a system that allows anybody to sell their labor and get money for it, as Chronobank’s system is designed to be similar to Uber’s in the sense that anybody can get paid and anyone can get work quickly without a middleman (which can get costly) and without any other fees.
[https://www.crypto-news.net/chronobank-time/]

chbsvc'Protocol (chbprl)

Name::
* cpt.chbprl,
* cpt.chronobank-protocol,

chbprl'White-paper (chbwpr)

Name::
* cpt.chbwpr,
* cpt.chronobank-whitepaper,

AddressWpg::
* https://chronobank.io/files/whitepaper.pdf,
* https://github.com/ChronoBank/Documentation/blob/master/whitepaper.pdf,

CHRONOBANK - PHASE 1: A NON-VOLATILE DIGITAL TOKEN BACKED BY LABOUR-HOURS
THE CHRONOBANK TEAM
CHRONOBANK.IO
INFO@CHRONOBANK.IO
{Retrieved 2017-03-20}

Abstract

This whitepaper abstractly describes a system designed to tokenise labour-hours using blockchain technology.
ChronoBank is a proposed implementation of the described system that can be deployed in several economic localities.
The proposed system leverages smart contract techniques to automate a process whereby a country-specific ‘labour-hour’ token may be redeemed for real labour-hours via legally binding (traditional) contracts with labour-offering companies.
The proposed ‘stable-coin’ implementation provides a non-volatile, inflation-resistant digital asset transfer system.

1. Introduction

With the advent of cryptocurrencies, relatively instant low-cost transfers of value have become a reality.
Blockchain technology, which is a defining feature of most cryptocurrencies, has recently been applied to solve a great variety of problems.
Currently the most widespread implementation of blockchain technology is Bitcoin [ 1 ], which is a simple asset transfer system.
The asset in Bitcoin’s case is a bitcoin (BTC).
The value of this token has seen rapid variation since its inception in 2009, which has hindered its feasibility as a global currency.

There have been a variety of attempts to realise the advantages of blockchain technology while simultaneously mitigating issues regarding the stability of value for cryptocurrency applications.
To achieve this, many attempts employ the notion of a stable-coin, whereby each token of value in the system has a counterpart of equal worth stored in a non-digital and tangible form in the ‘real world’.

Two example implementations of the aforementioned stable-coin paradigm are listed below:

USDT by Tether[ 2 ]:
Each USDT token is backed by an equivalent amount of United States Dollars (USD) held in a reserve account by the private company Tether Limited.

Digix[ 3 ]:
Each token is backed by an equivalent amount of gold, which is stored in reserves by a dedicated precious metal storage custodian.

In both examples, it is always possible for a token holder to redeem that token for its counterpart, thus ensuring its fundamental ‘stable’ value.

Another notable example of a stable-coin is Bitshares [ 4 ], which attempts to decentralise the entire system through the use of digital Contract For Differences (CFD) [ 5 ] interactions.
The system presented in this whitepaper does not attempt to achieve decentralisation, but instead attempts to address some of the drawbacks surrounding existing centralised stable-coins.
These drawbacks include difficulties regarding the storage of physical or economic wealth, and the increasing likelihood of attacks, as a single entity centralises the entire wealth of the system.
Typical stablecoins are also subject to fluctuations in the value of their underlying asset.
While these fluctuations are usually very small when compared with fluctuations in traditional cryptocurrencies, they are still significant.
For example, USDT is subject to the devaluation of USD due to inflation.

In this paper, we propose a stable cryptocurrency system which addresses the aforementioned drawbacks of existing stable currency solutions.
Specifically, we propose a new type of token which is not backed by any existing fiat currency or physical store of wealth, but instead is backed by legally binding contractual obligations to provide real-world labour-hours.
As such, the system and its controlling entity are not responsible for the centralised storage and management of wealth.
Further, the value of an unskilled labour-hour in a particular geographic region naturally adjusts according to economic conditions such as inflation, thereby maintaining the long-term intrinsic value of the cryptocurrency.

This paper is organised as follows:
In Section 2 we provide an overview of the system as a whole before discussing the technical details of the necessary system components and processes.
Section 3 provides economic considerations in brief, regarding the real-world deployment of this system and its feasibility.
Finally, Section 4 discusses future directions and applications of the system and of ChronoBank.
The appendix of this document provides supporting reference of several concepts introduced throughout the paper.
In particular Appendix B and C list the variables that encapsulate the functionality of the system.
These variables are also summarised in Table 1.

2. The ChronoBank System

Similar to existing stable-coins (such as USDT by Tether and Digix), we propose a centralised entity that coordinates the creation, redemption, and destruction of Labour-Hour Tokens (LHT).
We refer to this entity as the ChronoBank Entity (CBE).
It is responsible for the acquisition and coordination of legally binding contracts for labour, in addition to the creation and dissemination of LHT.
Ultimately the role of the CBE is to ensure the stability of the LHT system through careful management of the system’s underlying processes.
This section will provide details describing the proposed processes, practices, and operations undertaken by the CBE and its associates.
An overview of the functionality of the ChronoBank system’s
constituents is shown in Figure 1.

imgChbwprFig1.png
Figure 1.
An overview of the ChronoBank system.
This diagram shows the system’s constituents and their interactions.
CBE refers to the ChronoBank Entity, LOC to Labour-Offering Companies, LHT to Labour-Hour Tokens and TIME to the token purchased during the crowdsale.

The system as a whole is designed with the intent of a single deployment per economic region.
For instance, the system could be deployed once in Australia using the value of one labour-hour in the Australian economy, measured in Australian dollars.
As this document is an abstract description of the system, it does not refer to any region-specific implementation but instead refers to generalised system parameters that must be tailored for each region.
With few exceptions, all processes and structures described in this document may have slight variations in implementation between regions in which ChronoBank operates.

The initial implementation of the CBE will utilise the Ethereum[ 6 ] blockchain; however, future implementations may tokenise assets on alternative blockchain systems (e.g. Waves [ 7 ], Bitcoin [ 1 ]) when it is deemed appropriate.

The CBE provides economic benefit both to the environment in which it is deployed, and to a group of stakeholders that assist the CBE by providing initial operating capital.
Unlike the region-specific deployment of the CBE system, only one group of CBE stakeholders (a.k.a. TIME token holders) exists globally.
These stakeholders provide initial operating capital to the CBE in the form of both fiat and cryptocurrencies, in exchange for a portion of future profits attained by the CBE.

2.1. Stakeholders & TIME Tokens

In order to fund the development and operation of the ChronoBank system, there will be a fundraising phase known as the crowdsale.
During the crowdsale, individuals may purchase TIME tokens at a fixed rate, which provides the token holder with the right to receive a proportion of the profits arising from the operation of the system.
In addition to the entitlements regarding the system’s operating profit, holders of TIME tokens will also be granted the right to vote on important decisions regarding the ChronoBank system.

TIME tokens will be developed utilising the Ethereum ecosystem, specifically leveraging the ERC20 token standard[ 8 ].
The ERC20 specification will be extended to provide voting functionality and rewards distribution; this is discussed further in Sections 2.1.3 and 2.1.2 below.

2.1.1. Crowdsale

During the crowdsale, TIME tokens will be created as necessary and sold at the fixed price of 100 TIME tokens for 1 bitcoin (BTC).
There is no limit to the number of TIME tokens generated during the crowdsale; however, no further TIME tokens will be generated after this phase of the project.

imgChbwprTbl1.png
ρ Total percentage of minted LHT taken by the CBE
fc Fee taken during minting by the CBE
fr Fee taken during redemption by the CBE
fi Issuance fee taken during minting
S Percentage of minted LHT put into the SGF
LT Percentage of minted LHT put into the Liquidity Reserve
L0 Percentage of minted LHT used for LOC insurance
M Number of months until L0 is transferred into the SGF
l Percentage of LT used for LOC insurance
P Interval between TIME token reward payouts

Table 1. List of abstract variables and constants used throughout this paper for reader’s reference. See the Appendix for further details.

All TIME tokens purchased during the crowdsale will constitute 88% of the total TIME tokens generated during the initialisation of the ChronoBank system.
The remaining 12% of tokens will be split with 10% given to the ChronoBank.io team (for ongoing research and development) and 2% to advisors and early adopters of the system.

imgChbwprFig2.png
Figure 2.
Issuance fees (fi) and transaction fees (ft) are deposited into the rewards contract.
TIME holders can withdraw a portion of the LHT after each snapshot, if their TIME tokens were deposited into the contract.

2.1.2. TIME Token Rewards

For the use of the LHT, users will be charged a fixed fee, ft = 0.15% on all transactions.
Complementary to transaction fees, issuance fees (fi) will be taken during the minting process (further details in Section 2.2.1).
The issuance fees will start at 3% during the first year of operation and will stepwise decrease by 1% each year until a final issuance fee of 1% is achieved and maintained.

Both the transaction and issuance fees will be automatically collected and sent to a rewards contract on the Ethereum blockchain as shown in Figure 2.
The rewards contract is designed such that TIME token holders can withdraw their earned rewards in a manner that makes them non-unique (i.e. withdrawal of rewards is not tracked on a per-token basis) and hence tradeable on exchanges for equal value.

The rewards contract will allow TIME token holders to retrieve their rewards at regular payout intervals, P.
At any given stage, TIME holders may deposit their tokens into the rewards contract.
At the onset of a payout interval, a snapshot of deposited TIME tokens and the current contract reward balance will be taken.( 1 )
The rewards will be divided equally among the TIME tokens that were deposited at the time of the snapshot.
Depositors may then withdraw their share of rewards during the following payout interval.
At the next payout snapshot, any unclaimed rewards will be forfeited and added to the total balance of that snapshot.
Figure 3 illustrates this concept by plotting the rewards contract balance over time.
We also note that we expect P to be of the order of a few months.

TIME holders may deposit and withdraw their TIME tokens at any stage, however only TIME holders who have deposited before the snapshot of each payout interval can claim rewards.
Withdrawing TIME tokens from the contract will also withdraw any rewards currently owed to the depositor.
TIME holders may also leave their tokens deposited in the rewards contract indefinitely and claim their rewards periodically.

imgChbwprFig3.png
Figure 3.
The rewards contract receives Pr rewards for every payout interval P (in our example, we assume that Pr is constant).
At each snapshot, the portion of rewards that are not withdrawn is d.
Rewards that are not withdrawn roll over to the following payout interval P.
The dashed line indicates the withdrawable balance, which reduce over each payout interval as TIME holders withdraw their rewards.

This reward payout system gives upper bounds to the amount of rewards that can be stored in the contract in any interval, under some reasonable assumptions.
The total rewards obtained via fees for a particular payout interval, P, is Pr.
If we assume a constant amount of transaction and issuance fees per payout interval (i.e. a constant Pr), and an average percentage of locked TIME holders that do not withdraw in any payout interval, d, we can calculate the upper bound of the LHT stored in the smart contract through the limiting geometric series relation( 2 ):

To clarify this, let us take a conservative estimate, that 90% of all locked TIME token holders do not withdraw their rewards in every payout interval (only 10% actually withdraw).
In this scenario, no more than 10Pr worth of rewards will be stored in the rewards contract at any given time.
A less conservative estimate, being 50% of locked TIME holders withdrawing each payout interval, will ensure the rewards contract never contains more than 2Pr worth of rewards.
Through the careful (and potentially dynamic) choice of P we can find a balance between practicality (frequency of reward withdrawal) and security (safe level of stored value in a smart contract).

2.1.3. TIME Voting

From time to time, the CBE may hold polls on the Ethereum blockchain to elicit the opinion of TIME token holders.
Poll results will be incorporated into decisions made by the CBE concerning the financial or technical direction and/or implementation of the CBE system.
Only valid TIME holders are considered current stakeholders in the CBE system and are the only parties authorised to participate in a poll.

2.2. Labour-Hour Tokens

Labour-Hour Tokens (LHT) are the fundamental unit of value within the ChronoBank system.
The purpose of these tokens is to provide a non-volatile, inflationary-resistant digital store of value on various blockchains.
We envisage these tokens for utilisation in future systems, such as LaborX (see Section 4 for a brief overview).

A Labour-Hour Token will be derived from a standard Ethereum ERC20 token and will be tradeable on all major exchanges.
The ChronoBank system will ensure that these tokens will always have a 1 to 1 mapping with legally bound promises of labour-hours from various Labour-Offering Companies (LOC).
As such, token holders may also redeem these tokens at any given time for their real-world labour-hour counterpart.
This section details the various processes required to feasibly sustain the 1 to 1 mapping of LHT to offered labour-hours and ensure the economic stability of the ChronoBank system.

2.2.1. Minting

The minting process takes place when a company offering labour-hours (Labour-Offering Company (LOC)) chooses to enter into a legally binding agreement with the CBE.
The CBE must then run strict checks (the guidelines of which are described in the business outline [ 9 ]) of the LOC wishing to participate in the ChronoBank system.
Once the LOC is approved, the CBE and LOC will negotiate on various parameters (summarised in Appendix B) before entering a legally binding contract whereby the LOC promises labour-hours in exchange for LHT (or the fiat equivalent).
The CBE will then publish a hash of the contract on the Ethereum blockchain and store the contract on a decentralised storage system such as IPFS [10] or SWARM [11].
This gives a transparent ledger detailing the current state of the backed LHT.
The exact mechanisms behind the minting process are non-trivial and we refer the reader to Figures 4 and 5 during the following discussion of the process.
When an LOC and the CBE have agreed on terms, the CBE mints the equivalent amount of LHT as labour-hours offered by the LOC, ensuring the 1 to 1 relationship between the two.
Of the newly minted tokens, the CBE will retain ρ percent( 3 ), providing the remaining (1 - ρ) of minted LHT to the LOC.
In practice, the CBE can sell the (1 - ρ) of minted LHT on exchanges and provide the LOC with the fiat equivalent, should they not wish to deal with cryptocurrencies.
The ρ percent held by the CBE will be immediately subdivided into the following portions (shown diagrammatically in Figure 5).
• fc ;sblisin; [0, 0.01] - A fee charged by the CBE for services provided.
• fi - The issuance fee which will go to the rewards contract for TIME token holders (see Section 2.1.2).
• S - A portion to be sent to the Security Guarantee Fund (SGF) (see Section 2.3.2).
• LT - The total portion sent to the Liquidity Reserve (Section 2.3.1). This fund is further split by a variable percentage, l, into LI (LOC insurance) and L0 (liquidity) (see Section 2.3.1 for further details).

For clarity, we write the obvious explicit relation,

ρ = fc + fi + S + LT . (2)

We expect that the system will maintain fixed fees, but will vary S, l and LT (and hence ρ) on a case-by-case basis to control the stability and viability of the ChronoBank ecosystem.
The purpose of the Liquidity Reserve and Security Guarantee Funds are detailed in the Funds Section (2.3) and a brief discussion of the economic feasibility of this system is discussed in Section 3.

imgChbwprFig4.png
Figure 4.
Procedural overview of the ChronoBank minting process.

imgChbwprFig5.png
Figure 5.
Fund distribution of minted LHT.

2.2.2. Redemption

As LHT are fundamentally backed by real-world labourhours, holders may redeem their tokens at any time for these backed hours.
To do so, holders will deposit their LHT into a redemption contract on the Ethereum blockchain.
Along with the deposit, holders will provide relevant data detailing their redemption request, such as labour type(s), location(s) of work, date/time of work, contact information, etc.
The request will trigger the CBE to search and match relevant LOCs to the redemption request.
If found, the CBE will return the most suitable LOCs that fit the request.
To discourage recurrent requests and to remunerate the CBE for its service, the CBE will take a small fee, fr ;sblisin; [0, 0.01] from the deposited tokens.
The amount of labour-hours matched will be less than or equal to the LHT tokens deposited, less the CBE’s fee.
Any unmatched requests or unfulfilled hours can be withdrawn from the redemption contract by the depositor.
As a redundancy, the redemption contract will have a built-in holding period, after which depositors may withdraw their deposited LHT.
This protects depositors from inactive or stagnant CBEs.

Once the CBE has returned a list of compatible LOCs, a depositor may accept or reject the offered LOC(s).
If rejected, the depositor can withdraw their deposited LHT less the CBE’s service fee.
If accepted, the CBE will advise the chosen LOC of all relevant details.
The redemption contract will hold the LHT until the work has been completed and the depositor is satisfied.
A dispute resolution system may be used to ensure work is completed as requested.
Once the labour has been satisfactorily completed, the deposited LHT will be destroyed, again ensuring the 1 to 1 relationship of LHT to backed labour-hours.

2.2.3. Intrinsic Value

We have thus far ensured a 1 to 1 correspondence between LHT and labour-hours but have not yet defined the value of either.
The intrinsic value of one LHT and thus one labour-hour is region-dependant.
Although any arbitrary value can be chosen, we peg the value of one LHT to be roughly the average hourly wage of a region for practical reasons.

The average hourly wage of a region will be defined via the official statistics bureau of that specific region.
If one were to trivially adjust the LHT to the most recent statistics released for a given region, the price of LHT would stepwise shift on the release date of the statistics.
Typically these statistics are released yearly and in such scenarios a predictive stepwise jump each year would occur.
To implement a smooth transition from one statistics point to another, we propose that the pegged price of LHT be a linear interpolation between the two points.
This would require the LHT price to lag behind the most recent statistics by the duration of at least one extra statistics release.

Let us illustrate this with a clear example, as depicted in Figure 6.
Let us determine the price of LHT during April, 2010 in a region where the statistics bureau publishes a data point in January each year.
This data point indicates the average wage in that region for the previous year.
The price will be calculated by retrieving two data points: A2008
and A2009, the average wage in 2008 (released in January, 2009) and the average wage in 2009 (released in January, 2010) respectively.
We take a linear interpolation between these two points to find the price of LHT in April, 2010.
In this example, this will over-approximate( 4 ) the average wage in April, 2008.
This example shows that the LHT price in April 2010 will be the over-approximated average wage in April 2008, demonstrating how the pegged price of LHT will lag behind the current actual average wage.
It should be noted that this doesn’t affect any aspects of offering or redeeming labour.
The value of labour offered or redeemed is independent of the price of a single LHT.
However, the value will be measured with respect to the fixed price of a single LHT token.

imgChbwprFig6.png
Figure 6. The base price of one LHT in April 2010, X, can be calculated as the linear interpolation between the average wage in 2008 and 2009 (A2008 and A2009).

For any given region, typically there are sub-regions which have varying costs associated with providing labour work.
We wish to integrate these costs within our definition of a single LHT.
To do so, we take the maximum of each cost within a sub-region and add it to the average wage of the region to provide the fundamental price of LHT.
Specifically we have:

L = (1 + max(Y )) X , (3)

where X is the linearly interpolated function of average wages described above and Y is the individual cost in a sub-region as a percentage of work done.
L as defined in equation (3) is the pegged price of LHT for any given region.
This value will vary linearly throughout each year in a transparent and predictable manner.

2.3. Funds

The uniqueness of backing a digital token with contractual debt requires various safeguards to ensure contracts are always upheld and potential defaulting is accounted for.
There are a number of adverse scenarios that can occur with a debt-backed system.
Our proposed solutions involve the careful maintenance of two extra funds, the Liquidity Reserve and the Security Guarantee Fund (SGF).
In this section we detail the operation of these funds and how they address some of the issues that can arise in this system.

2.3.1. Liquidity Reserve

The liquidity reserve is an offline LHT storage fund controlled by the CBE.
It receives a percentage, LT, of newly minted LHT during the minting process (Section 2.2.1).
There are two services that this function provides the ChronoBank system:

(1) LOC Risk Mitigation - During the minting process, an LOC will be paid (1 - ρ) percent of the labourhours they contractually agree to provide.
Therefore LOCs inherently take some risk in the form of immediate redemption.
If an LOC’s promise of
labour-hours is immediately redeemed, they stand
to lose ρ percent of these hours. To mitigate this,
the CBE will store a percentage of minted LHT,
LI (see Section 2.2.1) for each LOC, to reimburse
the LOC in the event that more than (1 - ρ) labourhours
are redeemed. LI will cover all excess (i.e. more than (1 - ρ) ) redeemed tokens until the reserve, LI , is depleted.

We formalise this by introducing the mitigated tokens payed to an LOC, LM, as

LM = min(LI, E). (4)

where E is the excess LHT to be redeemed by the LOC, defined as:

E =
 a) R - (1 - ρ), if R > (1 - ρ).
 b) 0, if R = (1 - ρ). (5)


with R being the total percentage of LHT redeemed.

The mitigation reserve, LI is not constant, but is gradually transferred to the SGF (Section 2.3.2).
The rate at which this fund is transferred is derived from the parameter, M, which specifies the total number of months until the funds are entirely transferred, and is negotiated during the minting process.
The mitigation reserve funds will be transferred monthly at a uniform rate (LI / M).

This procedure then allows the CBE to statistically choose ρ, LT and M given the risk profile and reputation of any given LOC during the minting process.
For example, ρ, LT and M can be designed such that within a 95 percent confidence interval, an LOC does not lose more than (ρ - ζ) worth of the labour-hours promised over a given time( 5 ).
Here ζ is a number that quantifies the risk that the LOC is willing to accept.
This degree of freedom allows the CBE to manage LOCs of varying risk profiles.

(2) LHT Liquidity - The price of LHT will ultimately be governed by the price at which the CBE buys and sells LHT( 6 ).
The funds used for this are stored in the Liquidity Reserve.
L0 of newly minted tokens (see Section 2.2.1) will be accrued in this fund.
The CBE will then stabilise the price of LHT and provide liquidity in various markets by buying and selling LHT at the fundamental price detailed in Section 2.2.3.

The parameter, l, chosen during contract negotiations, specifies the percentage of LT that goes to LI (the amount used for LOC insurance and which is gradually transferred to the Safety Guarantee Fund) and L0 (the amount that is permanently used for liquidity).
Through careful management of the parameter, l, the CBE can maintain the desired volume of funds in the Liquidity Reserve.
As this fund will hold both LHT and volatile currencies, care must be taken to manage volume due to the potential price fluctuations of the held currencies.

One immediate-use case of this fund will be in the initial system set-up.
When the first LOCs become part of the system, the freshly minted LHTs will need to be sold to transfer the resulting funds to the LOC.
Initially the demand for LHT will be low and funds from the Liquidity Reserve will be used to bootstrap this process.
A percentage of the crowdsale funds will be deposited into the Liquidity Reserve for this purpose.

2.3.2. Security Guarantee Fund

One of the major drawbacks in a debt-backed currency system is the possibility of backers (LOC in our case) defaulting on their contractual obligations.
Despite the care in vetting LOCs during the minting process, we expect there to be a percentage of companies that will inevitably default.
The SGF’s main purpose is to provide a fund reservoir as insurance to protect against defaulting companies.
In practice, this fund will burn held LHT tokens to the equivalent amount of outstanding labour-hours promised by the defaulting LOC.

Statistical estimates should be taken for the average probability of LOCs defaulting.
These estimates will give a measure defining the amount of LHT that should be stored inside the SGF fund at any given time.
The amount stored in the SGF will be proportional to the amount of debt, and hence be proportional to the amount of LHT in existence (as every LHT is backed by one owed labour-hour).
This required value can be reached and maintained through the management of the minting variables, S, l and LT .

3. Economic Considerations

In this section we briefly mention some interesting properties and immediate economic consequences of this system.

3.1. Economic Incentives

First and foremost, the system must be designed such that there are economic incentives for both LOCs and LHT holders to participate in the system.
For an LOC, the incentive to participate in the ChronoBank system comes in the form of an interest-free-like loan.
When an LOC agrees to participate in the system and offers labour-hours, the company effectively receives an interest-free loan, which needs to be paid back when their contract expires.
For this to be enticing to an LOC, we require that over the period of the contract the amount of money paid for the service of the loan is less than that of alternate means for loans, e.g. local bank loans.

We consider a simplistic example to demonstrate the feasibility of such a scenario.
Consider that a bank loan, which charges IB percent in interest per annum, has an upfront cost of C and is of total amount H.
Over a period of time, t, and assuming no regular repayments are necessary( 7 ), the LOC stands to lose:

C + H((1 + IB)t - 1) - HIIt. (6)

The first term corresponds to the upfront cost of the loan, the second term to total interest owed at time, t, and the final term is potential interest earnings from external investments.
Here we’ve defined an average yearly interest gain from external investments, II.
Alternatively, the LOC may participate with the ChronoBank system.
If the LOC offers H hours of labour, it would receive H(1 - ρ) LHT in return, and would be required to pay (1 + st)H worth of LHT back upon the expiration of the contract (assumed at time, t).
Here s is a percentage representing the average yearly price increase( 8 ) of LHT. It quantifies an inflated price of LHT due to an assumed increase in average wage over the contract period.
Therefore, with the ChronoBank system, the LOC stands to lose,

H(ρ + st) - (1 - ρ)H II t. (7)

The first term here originates from the initial sum taken by ChronoBank, Hρ, and from the price fluctuation of LHT over time.
The second term comes from the potential earnings from external investments with the (1-ρ)H LHT received.
In this simplistic example, an LOC would be economically incentivised to participate in the ChronoBank system if the total fees of the ChronoBank system are less than the total fees of the alternative bank loan, explicitly:

H(ρ + (s + ρII)t) < C + H((1 + IB)t - 1). (8)

Here, (s + ρII) represents the average yearly price fluctuation of LHT combined with ρ percent of an average expected investment return.
With the reasonable assumption that this quantity is less than the interest rate of a bank loan, IB, equation (8) can always be satisfied for some time period, t, given all other variables fixed. In fact, the longer the contractual time, t, the greater the cost-saving is to the LOC.
So in this simplistic example, wecan see that this system incentivises LOCs to participate in the ChronoBank system for longer periods of time( 9 ).

Furthermore, the CBE and LOC are able to adjust both H and ρ during the negotiations of their initial contractual agreement, enabling the tuning of economic incentives in less favourable economic regions/scenarios.

As for LHT holders, their economic incentive is more obvious.
LHT, compared to its stable-coin predecessors, is inflationary-resistant.
Therefore, holders should have an economic incentive to use LHT as its value should increase relative to local inflationary fiat currencies.
We should note that buying and holding LHT as an investment (and therefore decreasing the liquidity of the token) is not in a holder’s best interest, as the gains in doing so are often less than external investment strategies.

3.2. System Stability

This section is concerned with the ability of the ChronoBank system to sustain various economic hurdles, which we refer to as its stability.

The stability of the ChronoBank system hinges on the CBE correctly managing the minting process.
Through the minting process, the two funds, Liquidity Reserve and SGF, are controlled and maintained.

As the system grows, funds will accrue in both the Liquidity Reserve and the SGF.
LHT is only removed from the SGF in the event of an LOC defaulting.
The Liquidity Reserve only decreases in value in the event that a held volatile currency devalues.
Therefore, both funds should grow as the system evolves.
As the funds reach a sustainable level, the percentage of LHT taken during the minting, ρ, can be decreased, further enhancing the economic incentive for more LOCs to join the system.
A greater number of LOCs participating will mean a greater number of LHT in existence and a greater volume of funds accrued in both the SGF and Liquidity Reserve.
The stability of the system will be proportional to the value stored in the SGF and Liquidity Reserve and, therefore, we expect the system to become more stable as it develops.

3.3. Potential Pitfalls

A number of potential pitfalls can occur during the operation of this system.
In this section we briefly summarise the major and most obvious ones, along with our proposed solutions.

An LOC defaulting on its promise of labour-hours.
As previously mentioned, this will be covered by the SGF.
The CBE will burn the necessary LHT from the SGF fund to maintain the 1 to 1 relation of LHT to labour-hours.

• Large supply/demand causing price fluctuations.
This can be handled by a sufficiently deep Liquidity Reserve, which will provide demand in times of high supply and vice versa.
Initially funds from the crowdsale will be placed into the liquidity fund, and as the system grows the liquidity fund will be maintained at a level deemed operationally safe to cover this scenario.

• Redemption of all LHT.
The LHT at any given time will always be backed by contractual labourhours in a 1 to 1 mapping.
Therefore, this scenario is possible and the system will continue to function in this event.
However, the risk in this occurrence lies with the participating LOCs, who will be required to pay back their LHT in the form of labour.
The SGF (Section 2.3.1) can also absorb some of the cost of this scenario.
It will be at the CBE’s discretion to use the SGF to assist in this very unlikely scenario.

• Increased demand at contract expiry.
As a contract expires, an LOC will be required to buy back an equivalent amount of LHT to the labour-hours that are left on the contract.
This could potentially create periods of large demand.
In these scenarios, we will counter the demand with the Liquidity Reserve and, if necessary, the SGF.

4. Future Work

Economic Models.
Key to the success of the ChronoBank system is an informed choice of the aforementioned economic parameters.
It is essential to perform further analysis so as to determine how parameter modification impacts the feasibility and sustainability of the system in a wider context.
This will necessarily be performed before a realworld implementation is constructed.

LaborX.
The digital asset transfer system described in this document is proposed as a first step towards a larger decentralised labour system.
LHT as described by this paper forms the base currency for a decentralised labour exchange platform entitled LaborX.
The intention of LaborX is to enable peer-to-peer exchange of labour-hours with LHT, thereby reducing the centralisation of the proposed ChronoBank system.
LaborX will incorporate a rating system whereby holders of LHT can identify fair trades by examining the quality and/or specialisation of the labour provider, given their history on the platform.
By enabling direct exchange of LHT with labour-hours, the system’s dependency on contractual arrangements with LOCs is significantly reduced.
This potentially reduces the cost and increases the stability of the system as a whole.

5. Conclusion

This paper proposes a non-volatile, inflationaryresistant, digital asset transfer system.
This innovative system is only made possible by recent advancements in blockchain and cryptographic technologies.
Leveraging these technologies, this system tokenises contractual debt in a manner that can be both economically feasible and highly practical for digital platforms, such as LaborX.
The intrinsic value of the proposed token mirrors the average hourly rate of human labour - the most fundamental unit of economic value.

References

[1] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. 2008.

[2] Tether.to. Tether: Fiat currencies on the bitcoin blockchain. 2014.

[3] Anthony C. Eufemio Kai C. Chng Shaun Djie. Digix’s whitepaper: The gold standard in crypto-assets. 2016.

[4] Fabian Schuh Daniel Larimer. Bitshares 2.0: Financial smart contract platform. 2015.

[5] Investopedia. Contract for difference.

[6] Gavin Wood. Ethereum: A secure decentralised generalised transaction ledger. Ethereum Project Yellow Paper, 2014.

[7] Sasha Ivanov. Waves whitepaper. 2016.

[8] Ethereum Request for Comments (ERC) 20.

[9] The ChronoBank Team. ChronoBank: Business Outline.

[10] IPFS: A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.

[11] Viktor Tron Aron Fisher Daniel A. Nagy.

Notes

(1) The transaction for which may be initiated by anyone, but typically by the CBE.

(2) Assuming 0 ;sblle; d < 1.

(3) All percentages introduced in this document should be read as decimals. Hence (1 - ρ) ;sblge; 0.

(4) This is a poor approximation that assumes a linear growth, where the start of the year is the average wage of that year and the end of the year the is average wage of the following year.

(5) This can occur because the holdings of an LOC increase over time due to assumed external investment.

(6) Combined with the fact that one LHT has a fundamental intrinsic value of one labour-hour.

(7) We use a no-repayment loan to clarify the analogy to our system and remove some mathematical complexity which obscures our point.

(8) This could also potentially decrease.

(9) Adding regular repayments to bank loans adds complexity to this simplistic example and although decreasing the size of the right-hand side of equation (8) it does not change our final result.

Appendix A. Terminology

The following is a list of terms used throughout this document.
CBE - The ChronoBank Entity.
• LHT - Labour-Hour Token.
LOC - Labour-Offering Company.
SGF - Security Guarantee Fund.

Appendix B. Minting Contract Parameters

There are number of parameters that are required to be negotiated during the minting process.
For clarity we list here the variables that should be considered and determined by the CBE during the minting process:
• S - A percentage of the minted tokens to be stored in the Security Guarantee Fund.
• LT - The total percentage to be stored in the liquidity fund.
• l - The percentage of LT dictating how much of the liquidity fund is used as LOC insurance, LI . The remaining funds will be kept for liquidity in L0.
• M - The total number of months until the LOC Insurance LI is transferred to the Security Guarantee Fund. This dictates the rate at which the funds are transferred, i.e. LI /M per month.
• Expiry Date - The expiry date of the contract, whereby the LOC must buy back the value of the minted LHT.

Through the definition of the above variables, the CBE on a case-by-case basis will fix ρ, the total percentage deducted from LOCs initially through the relation (2).

Appendix C. Fee Summary

The fees of the ChronoBank system can be summarised in the following:
• fc - This is the fee taken by the CBE during the minting process for services rendered. We expect fc ;sblisin; [0, 0.01].
• fi - This is the issuance fee, which will be taken during minting and deposited into the TIME token holder’s rewards contract. This will start at 3 percent and decrease by 1 percent each year until it is maintained at a steady 1 percent.
• ft - These are transaction fees, which are deposited into the TIME token holders rewards contract. This is a flat fee of 0.15%.
• fr - This is a fee taken by the CBE during the redemption process for services provided and to add a deterrent to continual redemption requests. We expect fr ;sblisin; [0, 0.01].

chbprl'LaborX-white-paper (chblxw)

AddressWpg::
* https://github.com/ChronoBank/Documentation/blob/master/laborx_whitepaper.pdf,

WORKING DRAFT: CHRONOBANK - PHASE 2: LABORX DECENTRALISED MARKETPLACE
THE CHRONOBANK TEAM
CHRONOBANK.IO
INFO@CHRONOBANK.IO
{retrieved 2017-03-20}

Abstract

In Phase 1, Chronobank introduced labour-hour tokens which represent the average value of one labour hour.
This phase involves the design and construction of a decentralised platform capable of making labour exchange as easy as riding a taxi with Uber.
This white paper describes a decentralised marketplace where people of real-world professions will be able to sell their labour to any participating client of the system.
LaborX is a proposed implementation of the described system.

This is a draft version of the white paper prepared for community review.
A Bounty of 1000 TIME tokens (an equivalent of 10 BTC) will be divided between the best contributors.
To participate, join our #whitepaper Slack channel.
To a get Slack invite, visit https://chronobank.herokuapp.com

1. Introduction

In 2009 (the same year that Bitcoin emerged), Uber, a mobile application which revolutionised the taxi business, was developed.
The easy to use, fast and comfortable service made Uber a worldwide company with $1.5 billion in revenue.
Uber removes the middleman – in its case, the taxi dispatcher - from the buyer/seller equation, allowing each driver to be his boss and work independently of a central company[ 1 ].

Similarly, LaborX aims to revolutionise the labour hiring industry by providing an open and decentralised ecosystem.
It has the potential to benefit both highly skilled workers, who prefer independence or a more flexible work schedule, as well as low-skilled labourers who will be able to find flexible part-time work when it is convenient for them.
LaborX targets offline workers providing real-life services which cannot be done remotely or supervised by special software.

The Problem.
Currently, numerous agencies are providing centralised services which offer to hire workers listed in their internal databases.
The reputation of such a system is fundamentally linked to the centralised agency which verifies and endorses the workers within the system.
Further, such systems often fail to disclose employee’s experience, reputation, or past jobs.
The situation is complicated even more by inflated agency fees and a plethora of agencies to choose from for any particular job.

Proposed Solution.
The LaborX Platform is a decentralised system that not only provides a labour hire marketplace but also is capable of automating (at least in part) the process of hiring individual workers given specific contract work.
This includes the selection and vetting of workers based on the main attributes, such as availability, location, a field of work, skills, and reputation.
This system leverages blockchain technology, specifically Ethereum, for its core systems and can therefore significantly lower operational and maintenance costs relative to competitors in the labour-hire industry.
Moreover, the public nature of Ethereum will allow participants to view all worker’s previous experience and recommendations.
The system will also utilise the commercial side of blockchain enabling immediate payments for completed work.
In addition, decentralisation allows the system to be global, autonomous, and versatile in the sense that workers and clients can accept a variety of location-independent currencies, in the form of any ERC20[ 2 ] compatible tokens (such as Labour Hour tokens[ 3 ]).

Contributions.
This paper provides a high-level overview of a blockchain-based decentralised labour hiring system and its conceptual realisation in real world applications.
Section 3 provides an overview of the base system components and processes including minor technical details.
Section 4 provides economic considerations in brief, regarding the real-world deployment of this system and its feasibility.
Section 5 describes the rating system that allows the community to have control over LaborX.
Section 6 is focused on interface features.
Section 7 details how privacy issues are handled.

2. Design goals

We aim to make short-term employment as accessible and rewarding as long-term employment, giving workers the flexibility to determine their schedules while being paid a fair rate for their time, expertise, and reputation.
We plan to achieve this through the LaborX platform, which will enable trading of labour time at market rates.
A decentralised reputation system will facilitate feedback for each entity, allowing employers to hire the most competent professionals.
It will also enable individual workers to secure payment in line with their training, skills, and experience.

LaborX system is designed specifically to target workers in the labour industry (areas such as cleaning, plumbing, gardening, etc.).
The system is intended to be distributed and have no central controlling authority.
This means that it wouldn’t be controlled by any single individual or company, but by a set of publicly verifiable predefined rules.
Anyone can fork, modify and redeploy the system, like it can be done with the Ethereum network itself[ 4 ].

The system has to satisfy the following usage requirements:
(1) The client should be offered a selection from the most competent workers based on their search preferences.
(2) Workers that have higher ratings should have higher compensations.
(3) A worker can set their own rate.
(4) Both the client and the worker should have a rating.
(5) Both the client and the worker can reject a given sealed job contract (see more at Section 3.2).
(6) The worker always receives money for the time they spent on labour.
(7) The client should be able to stop work at any time.
(8) The system should vet clients and workers that have bad ratings.
(9) The client could pay with any ERC20 cryptocurrency, should the worker accept these tokens.

3. System overview

The decentralised nature of this system allows clients to hire workers using the Ethereum blockchain.
Thus the core features of the system will run as a set of smart contracts[ 5 ], making the system available for use independently of any particular user interface realisation.
These contracts will govern the behaviour of the system, dictate the agreements between parties, and serve as a public ledger containing profiles of clients and workers.

imgChblxwFig1.png
Figure 1. Sequence diagram

3.1. Actors

This section defines the six most important entities
within the system: the client, worker, evaluator, verificator,
provider, and the LaborX core (whose functionalities
are depicted in Figure 1).

The client - a person or party that requires work to be completed.
They create job(s) with key attributes (such as field of work, skills required, etc( 1 )) which gets posted to the ledger.
The client then retrieves a list of available and qualified workers which they can select based on preference.
The worker(s) may then accept the job and provide approximate estimates for the amount of time required to complete it.
At this point, the system will allow the client and worker(s) to begin direct communication, should it be desired.
Then the client has to agree on the estimations given by the worker.
Upon agreement, a smart contract will facilitate the withdrawal of funds (equivalent to the value of the estimated hours of work) from the client’s account to an escrow-like smart contract on the blockchain.
The funds will then be released on a per-hour basis to the worker as work is completed.
To ensure correct hours are paid, a stop-start timer is used.
As a worker arrives, they seek approval from the client to begin the timer and commence the paid work period.
The same is done at the end of the period or work segment.
The client can revoke the job before it begins and can withdraw the deducted funds from the escrow-like smart contract.
The client may give a rating to the worker upon job completion/termination and optionally a recommendation.

The worker - any person or party seeking jobs who is capable of working and getting paid.
A worker creates a public profile containing labour scopes, working hours, and other relevant information.
Based on this profile, a worker would be offered by LaborX to clients for jobs matching their labour scopes.
If selected, a worker will be notified and asked to provide time estimates to complete the specific job.
The worker is then able to contact the client to finalise details (if needed) before finalising the agreement.
The worker should then arrive at the negotiated time to begin the work.
The approval to start/stop the timer for paid work can then be given by the client, as described above.
Upon completion/termination of a job, the worker can rate the client and optionally provide additional comments.

The evaluator.
The highest ranked members of a community will be able to evaluate and confirm corresponding skills of workers, building a chain of trust.
In this way, clients will be sure that the assigned worker has all the required skills for completing the job.
Workers will be required to have a high rating and enough activity points to become an evaluator.
Evaluators may verify and endorse skills of other workers ensuring clients have a more accurate description of their potential workforce.
Workers with endorsed skills will typically have a greater chance to be selected for any given job by the LaborX core.
After performing worker’s skill assessment the evaluator publishes a record in blockchain.
Evaluator’s profile displays statistics of appraised workers and evaluator’s reputation among LaborX users depends on it.

The verifier - a worker who offers services to verify clients and workers in a particular region (See the functionality in Figure 1).
The fundamental role of verifiers is to check required documents for their respective areas, such as work permit, certificate, injury insurance or other types of insurance.
These entities are essential to adhere to local laws, enhance security, and potentially minimise spam issues.
Both parties (clients and workers) may choose a single or many verifiers to review their documents, based on their rating and popularity.
Each worker has a public profile and private data.
The public profile is available in the blockchain and is accessible to everyone.
The private data is verified and electronically signed by a verifier.
It is only available to a client after they enter into a contract with the worker (more information is given in Section 7).

The provider - an entity who has created a job board.
The nature of the blockchain means that participants are pseudonymous by default.
This opens wide opportunities for spammers, marketing bots and other parties whose behaviour would be disruptive for LaborX.
The decentralisation of the system means that there is no single authority who can ban these entities.
A proposed solution is to give participants ability to create job boards, where the creator is also the moderator.
Each board would have a rating from other participants and each participant having a threshold of activity points would be able to vote up or down on boards.
The job board creator will be able to appoint other members as moderators.
Each board member having sufficient activity points would be able to flag any suspicious entry for review and receive activity points for helpful reports.
The boards would be filtered by tags and sorted by rating in the client application to easily remove/filter all junk boards.
The job board creators also can enforce requirements for the clients and workers that want to use the board.
They could include a requirement to pass verification by one of the listed verifiers, to have at least specified minimal rating, to perform a job in defined fields of work, to accept payment in selected cryptocurrency, to be located in specified area etc.

LaborX core - a sub-system of the LaborX platform encapsulating the majority of the core inner functionality and blockchain-dependent logic.
This system provides the mechanisms that allow jobs, profiles, and other public data to be stored in the blockchain.
It is capable of searching for available workers in job boards based on location, field of work, and skills thus giving clients a choice to pick worker(s) that best suits their needs.
After a client makes this selection, LaborX core provides the functionality that sends notifications to the worker to accept/decline a specific job via Ethereum events.
LaborX core is also responsible for calculating, storing, and retrieval of rating on the blockchain.
Every client and worker will have a rating which increases/decreases as recommendations accrue after jobs are completed.

3.2. LaborX core functionality

LaborX core is a complex system powered by the Ethereum network.
It contains all users’ public profiles, completed jobs with description, executor, status, and mutual ratings.
However, considering the system complexity, we have chosen to distinguish LaborX core from LaborX DApp.
LaborX DApp functionality will include interface for creating profiles, verification, evaluation, searching workers, concluding contracts etc (see Section 6 for full description of features).
This section will provide a more specific description of the key parts of LaborX core and we will postpone further discussion of LaborX DApp to Section 6.

A job object (the programmatic object relating to a real-world job) will contain a location, provider used and work description.
The work description includes attributes such as field of work, job due date, address of ERC20 token contract (that will be used for payment), required skills, and further optional job-specific requirements.
A client would be capable of searching through the list of workers in job boards or choosing a familiar worker.
Fields of work and required skills can be selected from a list offered by the smart contract.
A location is also a selectable parameter that will typically represent a city/region.
If a city/region is large, then a district/sub-region may be specified.
A city/region includes all of its districts/sub-regions.
A location is used to map workers to nearby clients.
Precise addresses (for job locations) will be revealed to workers once the job has been mutually agreed on and solidified by the smart contract.
A job due date can be a present or future time.
If the current time is selected, then LaborX returns all currently available workers ready to start a work now.
If instead a future time was chosen, then the system will find workers available to work at the chosen time.
Once the worker accepts the job, the smart contract will publicly mark the worker as busy, preventing further bookings in that period.

imgChblxwTbl1.png
Table 1. Responsibilities distribution of LaborX core and LaborX DApp

3.3. Billing and penalties

Billing will be governed by the following scheme:
Once a worker’s estimates have been approved by the client, a smart contract withdraws the required tokens/currency from the client’s account.
If the work takes more time than initially estimated and approved by the client, then the smart contract verifies the client’s balance and automatically withdraws additional funds to account for the overtime.
As this is an automatic process, the worker can continue to work freely and be sure that their overtime will be paid.
This procedure repeats hourly.
The process stops if either the job is paused, or marked as finished, or the client runs out of money, or the smart contract reaches a maximum withdraw limit( 2 ).
If this limit is reached, the smart contract may ask the client to increase the maximum withdrawal limit.
If the client declines, the job is considered finished, and any remaining funds are released to the worker.
If the worker works less than the estimated time, the difference is transferred back to the client.
Part of the tokens paid for the job is automatically withdrawn as a fee (see more at Section 4).
Worker has an ability to pause and continue job timer at any time.
If the client is not satisfied with the worker, their accountability, or their work they can cancel the job at any time.
Nevertheless, the client is required to pay a minimum of one hour (which is a minimal time unit that can be paid).
The client may then leave a negative recommendation and rating that will negatively flag the worker for future clients.
A negative rating will also adversely affect evaluator’s reputation.
If the worker doesn’t start work within the agreed time, the client will not be charged but is still able to rate the worker and leave a comment.
It should be noted that client does not pay the worker’s transportation time and expenses.
Instead, they should be included in the worker’s individual rates.

3.4. Scalability and contract upgrades

The implementation of LaborX DApp, specifically the search and worker selection, will allow the system to be easily scalable.
Yet, due to the systems complexity, it is probable that software bugs will be discovered.
Therefore, a mechanism to upgrade smart contracts and core system functionality will be required.
LaborX will use the following approach:
(1) Application data will be stored in contracts that are separated from business logic.
(2) Each record will contain a version number.
(3) Each contract will have a constant external interface.
(4) No migration can happen without a user’s consent.

In this way, contracts can be upgraded without the need to migrate data. Switching to a new contract version is the smart contract equivalent of accepting terms of service, updated by a service provider.
Each user will have an option to either migrate to a new contract version or to continue using the current one.

imgChblxwFig2.png
Figure 2. Relationships between different parties inside decentralised LaborX system.

4. Economic model

LaborX is a multi-currency service that will support any token that complies with the ERC20 standard[ 2 ] including, but not limited to, Labor Hour tokens.
A simple multi-currency wallet capable of receiving and sending any supported ERC20 token will be integrated into the LaborX platform.
Users will be able to pay and get paid by tokens they choose from a list of supported on job boards tokens.
Providers may list local currencies, allowing communities to pay for jobs in unusual digital assets, should both the client and the worker accept the currency by selecting the job board.

As mentioned in the previous section, the LaborX system will deduct 1%( 3 ) from each completed job part of which will go as a revenue to TIME token holders and other part to providers for their services.
Provider receives payment only for completed jobs posted on provider’s job board.

4.1. Benefits

For clients.
There are numerous benefits for clients.
Because of smaller mediator fees than in traditional labour hiring companies, the resulting work price will be lower.
Decentralisation of the service makes it fast, reliable, secure, and permanently available.
A public worker rating system ensures that clients are seeing profiles of real workers along with their unique histories and therefore genuine ratings.
The ability to pay with a variety of digital tokens makes the system universal and not tied to any particular country/region.
Furthermore, LaborX will implement an easy to use interface, paying serious attention to UX.

For workers.
Benefits for workers are also significant.
Due to lower fees than in traditional labour hiring companies workers may ask for higher hourly rates.
The most skilled and responsible workers with the best ratings will be highly sought after and may, therefore, demand a higher hourly fee than their not-so-amazing colleagues.
For the first time in the labour hire industry, diligent and attentive workers will be rewarded for providing better services.
The decentralised nature of LaborX will not only guarantee that workers will get paid, but will enable real-time payment to the worker as the work is completed.
Since the system is fully automated, the workers will be able to plan their schedules corresponding to their preferences.

5. Rating and activity points system

For every worker and client there are two metrics called rating and activity points.
The first describes how well a client or worker performs their duties and is dictated by their partners.
The second is a point system based on all LaborX activity.

The better the individuals rating (based on previous work), the higher the price they are be able to demand for an hour of work.
After a job is completed, both the client and worker are asked to rate to each other.
The rating is in the range between 1 and 10, where 1 corresponds to a total disaster and 10 represents exceptional work.

The rating system will be time and quantity aware.
By this, we mean that older ratings should contribute less to the current rating than recent ratings (i.e., the ratings are recency-weighted).
This means, for example, a bad rating accrued a year ago by a worker, can be redeemed by a series of recent good ratings, thus restoring the reputation of the worker.

Activity points are used only in the LaborX DApp and have a crucial security role by limiting the amount of available functionality to newcomers.
This limits threats such as spamming, posting advertisements with ambiguous links, or evildoers trying to overload the system with an infinite job posting.

Every new user begins with a single activity point which will automatically increase when performing various actions inside the app (see Table 2).
An alternative way to gain activity points is by verifying one’s identity with various verificators or by passing skill assessment with an evaluators.
The activity points count will always be greater than or equal to 1.

An example of activity point elevators are given in Table 2.
Some of the proposed features that will require some amount of activity points is given in Table 3.
The listed values in these tables are examples only and may change during the implementation and system testing period.

imgChblxwFig3.png
Figure 3. Contract interaction diagram

imgChblxwTbl2.png
Table 2. Actions that affect activity points.

imgChblxwTbl3.png
Table 3. Actions that require activity points.

5.1. Rating and activity points growth

imgChblxwTbl4.png
Table 4. Rating and activity points growth example.

6. LaborX DApp features

6.1. Verification and evaluation

One of the top priorities of the LaborX platform is to ensure that every client is comfortable letting workers into their house/workplace and every worker is provided with a safe workplace environment.
To this end, LaborX is designed with specific focus on worker/client confidence.
This is achieved through decentralised verification and evaluation features.
They will offer a range of verification possibilities allowing workers to choose those that suits them best.
The following gives a non-exhaustive list of possible options( 4 ):

Verification.
Entities with high reputation could serve as verification hubs and be paid for their services by workers.
They will check that worker’s documents correspond to the worker’s identity, scan documents, publish document hashes[ 6 ] in the blockchain and confirm this action by signing the hashes with their digital signature (see Section 7 for more information).

Evaluation.
The highest ranked members of a community will be able to evaluate and confirm corresponding skills of workers, building a chain of trust.
In this way, clients will be sure that the assigned worker has all the required skills for completing the job.

Evaluation by Clients.
Any verified client may advertise individual worker’s skills after completing the job if some of them are exceptional.
This information would be used to separately promote the workers who are constantly rated 10/10.

6.2. Workers selection

According to the current model, the governing smart contract returns a selection of workers that fit the criteria of a given job posted by a client.
The LaborX DApp takes preference of workers who have more completed jobs and higher ratings.
The system may grow such that the ratio of workers to jobs becomes quite large.
It is therefore important that the LaborX DApp does some advanced filtering.
This means that the application should not show all workers capable of performing a given job, instead select only several of the available best workers with varying rates and ratings.
In this way, the most competent workers will get more work and will be paid more for their reputation.
Clients may also use different custom filters that will help them to find the most fitting worker to suit their needs.
They may also pick specific workers they are already familiar with.
The application will also utilise smart filtering to minimise the worker intersection between clients.
This is crucial for the system, especially when considering similar jobs.

6.3. Multi-currency support

The LaborX platform will include multi-currency support, making sure users can use different ERC20 tokens to purchase labour.
Each LaborX provider will be able to set cryptocurrencies that will be permitted for payments on their job boards.
Clients and workers who choose a job board, agree to use one of the supported methods of payment.

6.4. Search

High load testing and analysis would be performed while developing LaborX to determine exact implementation and architecture of the search system.
The main part of a search logic should be performed in the LaborX LaborX core.
Only Ethereum transactions that write to blockchain have gas limit and cost Ether.
The search operation is read-only, therefore it would perform computations on user’s Ethereum node and will not require paying Ether.
A worker-to-job matching will include complex queries and therefore require a significant amount of computational power of the machine where Ethereum node software is running.
Therefore LaborX DApp could handle part of the filtering and caching logic on client’s side.
This approach will significantly improve the user experience.

6.5. Messaging

LaborX will use a messaging system with an underlying protocol like Whisper[ 7 ], enabling client and worker to establish an encrypted connection.
These messages could be used to exchange job details, address, confidential instructions, etc.
The exact realisation will be decided at the time of development (specified in the LaborX road map), taking into account the potential research and new possibilities that will be available in 2017.

6.6. Features to be developed

Other features that are planned for LaborX but not described in this white paper include moderation and arbitration system powered by providers, usage of IPFS for data storage, and the Truffle framework for smart contracts on Solidity.
The LaborX DApp will have a modern responsive interface (see, for example, the ’Post new job’ and ’Edit worker profile’ wireframes in the appendix A).

7. Privacy

It is truly unsafe to publish sensitive, private data in a blockchain.
However, we have to eliminate the possibility of a worker re-registering to reset their profile.
Therefore, we have to maintain a balance between anonymity and notoriety.
To achieve this, each worker will have a publicly available blockchain profile containing their nickname (first name and the first letter of their surname), small photo, field(s) of work, skills, rating, rate, activity points, approximate location, a list of completed jobs and payments.
Optionally, a worker may apply for a document verification or a skill evaluation (see Sections 3, 6) which will be reflected in his public profile and confirmed by the electronic signature of the governing party.
There will be a data set which will never appear on the blockchain.
This includes, but is not limited to, the exact geolocation of the client and the worker, additional private instructions for the worker, document scans.

Hashes[ 6 ] of private data blocks will be published on the blockchain to prove that they have not been altered.
These hashes should also be electronically signed by submitter of the stored information and linked to the worker’s public profile.
In this way, only the signature and hash of the sensitive information will be publicly available, and any confidential data may be stored without revealing it to the public.
An entity which gains authorised access to the information will also be able to check the signature to prove the origin of information.

imgChblxwFig4.png
Figure 4. Verification of documents

8. Conclusions

This white paper proposes a decentralised system designed to revolutionise the labour-hire industry.
It will be capable of automatically matching available workers to corresponding jobs according to their location, field of work, skills, and reputation.
Using the Ethereum blockchain as a basis, this system can significantly lower fees for system maintenance, relative to traditional systems offering a similar service.
Moreover, decentralisation makes the system autonomous and global as it runs on Ethereum and is capable of using any currently existing ERC20[ 2 ] tokens.
This innovative system is only made possible by recent advancements in blockchain and cryptographic technologies.
Leveraging these technologies this system allows people to trade human labour - the most fundamental unit of economic value.

References

[1] The Huffington Post. ’uberization’ of everything is happening, but not every ’uber’ will succeed. http://www.huffingtonpost.ca/2015/04/01/uberization-uber-of-everything_n_6971752.html, 2015.

[2] Ethereum Foundation. Erc20: Ethereum token standard. https://github.com/ethereum/EIPs/issues/20, 2015.

[3] The ChronoBank Team. Chronobank - phase 1: A non-volatile digital token backed by labour-hours. https://chronobank.io/files/whitepaper.pdf, 2016.

[4] Ethereum Classic. Website. https://ethereumclassic.github.io/, 2016.

[5] D. Tapscott and A. Tapscott. Blockchain Revolution: The Brilliant Technology Changing Money, Business and the World. Penguin Books Canada, 2016.

[6] Wikipedia. Cryptographic hash function. https://simple.wikipedia.org/wiki/Cryptographic_hash_function.

[7] Ethereum Foundation. Whisper wiki article. https://github.com/ethereum/wiki/wiki/Whisper, 2016.

Notes

(1) Additional requirements are detailed in section 3.2.

(2) This is typically double the estimated total price, but can be adjusted on a per-job basis.

(3) Percentage may change during the implementation and system testing period.

(4) This list has not yet been finalized.

Glossary

activity points:
is an integer in a range of 1 to infinity which measures positive contribution to LaborX ecosystem.
The more activity points the user has, the more advanced actions they can perform.
See the full list in Table 2. 2, 3, 5

client:
is a person that has some work and needs to get it done.
Client posts a job and pays for it. 2

DApp:
is an abbreviated form for decentralised application.
A DApp has its back-end code running on a decentralised peer-to-peer network.
Contrast this with an app where the back-end code is running on centralised servers. 3–7

evaluator:
a highly rated worker with lots of experience and reputation which prove they are a master in their field of work and thus can verify skills of other workers. 2, 5

job:
is some work or task to get done.
Job can be a list of tasks but all within one field of work. 2

job board:
is a publicly available database managed by the creator.
It will be implemented as a smart contract in Ethereum network.
More information in Section 6. 3, 5, 6

LaborX core:
this is a sub-system of the LaborX platform encapsulating the majority of the core inner functionality and blockchain-dependent logic. 2, 3, 6

ledger:
is a publicly available database that holds information.
It will be implemented as a smart contract in Ethereum network. 2

provider:
is an entity which offers its services to connect clients and workers through a job board because of legal, security, or spam issues.
Anyone can become a provider, and both parties (a client and a worker) could choose which providers they trust.
Providers get paid for their services by receiving a percentage of job payment fees. 2, 3, 5–7

rate:
amount of money that will be paid hourly to a worker. 1, 2, 6, 7

rating:
is an integer in a range from 1 to 10 (where 1 is a disaster and 10 is perfect) which measures
the quality of work done by a worker.
LaborX uses rating to select workers for a job. 2–6

verificator:
a worker with flawless reputation who offers services of verification for documents and
identity of other entities. 2, 5

worker:
is a person that is assigned to fulfil client’s job and get paid for it. 2

Appendix A. LaborX Wireframes

imgChblxwFig5.png
Figure 5. Client’s jobs screen10

imgChblxwFig6.png
Figure 6. Worker’s profile editing

chbprl'Business-outline (chbbon)

Name::
* cpt.chbbusiness-outline,
* cpt.chronobank-business-outline,

AddressWpg::
* https://chronobank.io/files/business_outline.pdf,

chbsvc'Blockchain

Description::
ChronoBank.io is a blockchain project aimed to disrupt HR/recruitment/finance industry similar way as Uber revolutionised taxi business.
{2017-01-19}
Why ChronoBank will use multiple blockchains
ChronoBank will use several different blockchains to issue and trade LH tokens, likely including Waves, Ethereum and NEM. The reasons are financial, cultural and ideological.
Many new crypto projects launch their own blockchain and have a single, dedicated token to represent value on their network. ChronoBank is taking the approach of issuing both its native asset, TIME, and Labour Hour (LH) tokens on multiple blockchains. As time goes on and popular new protocols arise, we will issue tokens on those as well. There are several reasons for this, both practical and ideological.
1. Sustainability
Our priority is to create a long-term blockchain-based solution for the labour-hire industry. Cryptocurrency is still in its infancy and we currently don’t know which protocols will survive. Technical problems may become evident in due course, rendering one or more blockchains non-viable. Others may be impacted in ways we cannot foresee. In the past, for example, different cryptocurrencies have fallen from favour due to a large number of factors: the loss of one or more core developers; poor distribution, which led to large quantities of coins being sold and loss of wider confidence; unpopular changes or forks; inadequate funding for promotion and development. All of these and more have hamstrung otherwise healthy blockchain projects.
Therefore we are decentralising our issuance across many blockchains; should popular new platforms arise in the future, we will use these too. That way, ChronoBank will never be rendered obsolete in the way that some other projects that launched on blockchains the market eventually deemed wanting have been.
2. Synergy
We want to engage many different communities to achieve our aims. This means not only seeking investment from several of the major blockchain ecosystems in order to give us the funding to launch ChronoBank, but working with them for their expertise and to build business relationships. As a cross-blockchain project, we think that ChronoBank has the ability to bring together the best elements of these protocols and communities under one roof. That will inevitably bring benefits for our own project, but to each of the others, too.
3. Success
The priority is crypto adoption, the creation of fair money and a more just economy. Using many blockchains is simply the best way to do this. The crypto world is fragmented, with tribal loyalties to specific blockchains often taking precedence over broader ideals like disintermediation and the redistribution of financial power. We know that restricting ourselves to a single blockchain will very likely hamper our overall chances of making the impression we need to in the crypto world and bringing about meaningful change in the recruitment sector. The more communities we work with, the more liquid and better traded our tokens will be; the higher profile our project will have; the more people will have a reason to help us succeed. We’re pleased to be blockchain-agnostic in order to prioritise the success of ChronoBank.
[https://blog.chronobank.io/why-chronobank-will-use-multiple-blockchains-9da5a70eaaea]

chbsvc'Program (chbpgm)

chbpgm'Doing

chbpgm'Developing

Description::
Two Week Software Cycle
We are pleased to announce that we will be switching from a feature-based versioning and release model to a continuous release model with a two-week, two-phase software cycle.
The first phase is a one week merge period. In this week any stable Pull Requests will be accepted into the development branch. The second phase is a one week test/regression and release period. During this stage we will branch a new release/version, then test, patch or undo any PRs that are unstable.
This will allow a process of continual deployment and incremental improvement for LaborX, while also allowing features to develop and mature before being included into the release version. The approach also allows us to ‘roll back’ or regress certain changes, should they become problematic. Hopefully this will enable us to release a new version of LaborX consistently every two weeks .
[https://blog.chronobank.io/chronobank-dev-update-7-49b387396b2c#.odbp6hdr9 {2017-03-26}]

chbpgm.SPECIFIC

Specific::
* Smart-contract,
* LaborX-dApp,
* ChronoMint-dApp,
* ChronoWallet-dApp,
* ChronoWaves-dApp,
* Wallet-dApp,

chbsvc.Smart-Contract (chbctp)

Description::
ChronoMint, Labour Hours and Time contracts.
ChronoBankPlatform.sol acts as a base for all tokens operation (like issuing, balance storage, transfer).
ChronoBankAsset.sol adds interface layout (described in ChronoBankAssetInterface.sol)
ChronoBankAssetWithFee.sol extends ChronoBankAsset.sol with operations fees logic.
ChronoBankAssetProxy.sol acts as a transaction proxy, provide an ERC20 interface (described in ERC20Interface.sol) and allows additional logic insertions and wallet access recovery in case of key loss.
EventsHistory.sol holds all operations events to avoid events lost in case of contract replacement during upgrade or extension.
ChronoBankPlatformEmitter.sol provides platform events definition.
[https://github.com/ChronoBank/SmartContracts]

Name::
* cpt.chbctp,
* cpt.chronobank-smart-contract,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts,

Specific::
* ChronoBankAsset.sol,
* ChronoBankAssetInterface.sol,
* ChronoBankAssetProxy.sol,
* ChronoBankAssetProxyInterface.sol,
* ChronoBankAssetWithFee.sol,
* ChronoBankAssetWithFeeProxy.sol,
* ChronoBankPlatform.sol,
* ChronoBankPlatformEmitter.sol,
* ChronoBankPlatformInterface.sol,
* ChronoMint.sol,
* Configurable.sol,
* ContractsManager.sol,
* ERC20Interface.sol,
* EternalStorage.sol,
* EventsHistory.sol,
* Exchange.sol,
* ExchangeInterface.sol,
* LHT.sol,
* LOC.sol,
* Managed.sol,
* Migrations.sol,
* Owned.sol,
* Rewards.sol,
* Rooted.sol,
* Shareable.sol,
* TIME.sol,
* Vote.sol,

chbctp.ChronoBankPlatform.sol

Description::
ChronoBankPlatform.sol acts as a base for all tokens operation (like issuing, balance storage, transfer).
- keep balances,
- manage transfers,
- manage asset issuance,

Name::
* cpt.ChronoBankPlatform.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankPlatform.sol,

chbctp.ChronoBankAsset.sol

Description::
ChronoBankAsset.sol adds interface layout (described in ChronoBankAssetInterface.sol)
[https://github.com/ChronoBank/SmartContracts]

Name::
* cpt.ChronoBankAsset.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankAsset.sol,

Specific::
* ChronoBankAssetWithFee.sol,
* TIME.sol,

chbctp.ChronoBankAssetWithFee.sol

Description::
ChronoBankAssetWithFee.sol extends ChronoBankAsset.sol with operations fees logic.
[https://github.com/ChronoBank/SmartContracts]

Name::
* cpt.ChronoBankAssetWithFee.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankAssetWithFee.sol,

Generic::
* ChronoBankAsset.sol,
* Owned.sol,

chbctp.TIME.sol

Name::
* cpt.TIME.sol,

Generic::
* ChronoBankAsset.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/TIME.sol,

CodeChbctp::


pragma solidity ^0.4.8;

import "./ChronoBankAsset.sol";

/**
 * @title ChronoBank TIME tokens contract.
 *
 * The official ChronoBank TIME implementation.
 */
contract TIME is ChronoBankAsset {

}
    

chbctp.ChronoBankAssetProxy.sol

Description::
ChronoBankAssetProxy.sol acts as a transaction proxy, provide an ERC20 interface (described in ERC20Interface.sol) and allows additional logic insertions and wallet access recovery in case of key loss.
[https://github.com/ChronoBank/SmartContracts]

Name::
* cpt.ChronoBankAssetProxy.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankAssetProxy.sol,

chbctp.ChronoBankAssetWithFeeProxy.sol

Name::
* cpt.ChronoBankAssetWithFeeProxy.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankAssetWithFeeProxy.sol,

chbctp.EventsHistory.sol

Description::
EventsHistory.sol holds all operations events to avoid events lost in case of contract replacement during upgrade or extension.
[https://github.com/ChronoBank/SmartContracts]

Name::
* cpt.EventsHistory.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/EventsHistory.sol,

chbctp.ChronoBankPlatformEmitter.sol

Description::
ChronoBankPlatformEmitter.sol provides platform events definition.
[https://github.com/ChronoBank/SmartContracts]

Name::
* cpt.ChronoBankPlatformEmitter.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankPlatformEmitter.sol,

chbctp.LHT.sol

Name::
* cpt.LHT.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/LHT.sol,

CodeChbctp::


pragma solidity ^0.4.8;

import "./ChronoBankAssetWithFee.sol";

/**
 * @title ChronoBank LHT tokens contract.
 *
 * The official ChronoBank Labour-Hours implementation.
 */
contract LHT is ChronoBankAssetWithFee {

}
    

chbctp.Owned.sol

Name::
* cpt.Owned.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/Owned.sol,

Specific::
* ChronoBankPlatform.sol,
* Configurable.sol,

chbctp.Configurable.sol

Name::
* cpt.Configurable.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/Configurable.sol,

Generic::
* Owned.sol,

chbctp.Rewards.sol

Name::
* cpt.Rewards.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/Rewards.sol,

chbctp.INTERFACE

Specific::
* ChronoBankAssetInterface.sol,
* ChronoBankAssetProxyInterface.sol,
* ChronoBankPlatformInterface.sol,
* ERC20Interface.sol,
* ExchangeInterface.sol,

chbctp.ChronoBankAssetInterface.sol

Name::
* cpt.ChronoBankAssetInterface.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankAssetInterface.sol,

CodeChbctp::


contract ChronoBankAssetInterface {
    function __transferWithReference(address _to, uint _value, string _reference, address _sender) returns(bool);
    function __transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool);
    function __approve(address _spender, uint _value, address _sender) returns(bool);
    function __process(bytes _data, address _sender) payable {
        throw;
    }
}
    
chbctp.ChronoBankAssetProxyInterface.sol

Name::
* cpt.ChronoBankAssetProxyInterface.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankAssetProxyInterface.sol,

CodeChbctp::


contract ChronoBankAssetProxyInterface {
    function __transferWithReference(address _to, uint _value, string _reference, address _sender) returns(bool);
    function __transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool);
    function __approve(address _spender, uint _value, address _sender) returns(bool);
}
    
chbctp.ChronoBankPlatformInterface.sol

Name::
* cpt.ChronoBankPlatformInterface.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ChronoBankPlatformInterface.sol,

CodeChbctp::


contract ChronoBankPlatformInterface {
    /**
     * Returns asset balance for a particular holder id.
     *
     * @param _holderId holder id.
     * @param _symbol asset symbol.
     *
     * @return holder balance.
     */
    function _balanceOf(uint _holderId, bytes32 _symbol) returns(uint);

    /**
     * Returns current address for a particular holder id.
     *
     * @param _holderId holder id.
     *
     * @return holder address.
     */
    function _address(uint _holderId) returns(address);

    function reissueAsset(bytes32 _symbol, uint _value) returns(bool);
}
    
chbctp.ERC20Interface.sol

Name::
* cpt.ERC20Interface.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ERC20Interface.sol,

CodeChbctp::


contract ERC20Interface {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed from, address indexed spender, uint256 value);

    function totalSupply() constant returns (uint256 supply);
    function balanceOf(address _owner) constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
    function approve(address _spender, uint256 _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint256 remaining);
}
    
chbctp.ExchangeInterface.sol

Name::
* cpt.ExchangeInterface.sol,

AddressWpg::
* https://github.com/ChronoBank/SmartContracts/blob/master/contracts/ExchangeInterface.sol,

CodeChbctp::


contract ExchangeInterface {
  function setPrices(uint _buyPrice, uint _sellPrice) returns(bool);
}
    

chbpgm.ChronoMint-dApp

Description::
Control panel for ChronoBank and Labour-Offering Companies.
[https://github.com/ChronoBank/ChronoMint]

Name::
* cpt.ChronoMint,

chbpgm.ChronoWallet-dApp

Description::
Secure wallet for storing tokens
[https://github.com/ChronoBank/ChronoWallet]

Name::
* cpt.ChronoWallet,

chbpgm.ChronoWAVES-dApp

Description::
Waves is a natural partner for ChronoBank due to its straightforward and user-friendly token-creation facilities. ‘We consider every blockchain with CATs (Custom Application Tokens) functionality as a potential infrastructure for LH tokens,’ comments ChronoBank’s lead developer. ‘We have recently started development of ChronoWAVES and have been in touch with Waves’ developers from the beginning, familiarising ourselves with all the technical details of the platform. ChronoWAVES will be an advanced lite wallet implemented in Javascript and fully compatible with the original Waves GUI.’
In addition to basic features such as blockchain data validation on the client side and multi-address accounts, the Waves version of the ChronoWallet will be tightly integrated with ChronoBank’s services, natively supporting LH tokens issued on the Waves blockchain. A key feature to be used by the wallet is Waves’ decentralised exchange (DEX), soon to be released on mainnet.
‘After release it will allow trades to be settled on the blockchain and we are going to utilise this fully for the exchange of Labour Hours. Additionally, a token-swap feature will offer potential integration of Ethereum tokens with the Waves blockchain. We definitely plan to share our contribution in the JavaScript infrastructure for Waves Platform with the community. We see it as an advanced JavaScript framework similar to the web3.js one that exists for the Ethereum project.’
[https://blog.chronobank.io/chronobank-partners-with-waves-to-create-chronowaves-wallet-c6e24be533a4?goal=0_c14d97ba45-da6d178ca4-32550077#.v6d9i1dc5]

chbsvc'Exchange-Value-Token (chbevt)

Name::
* cpt.chbevtkn,
* cpt.chbtoken,
* cpt.chronobank-exval-token,

Specific::
* LH-evtoken,
* TIME-evtoken,

chbevt.LH-token (chblht)

Description::
One of the major drawbacks in a debt-backed currency system is the possibility of backers (LOC in our case) defaulting on their contractual obligations.
[idChbwpr232]
===
The first stage of our project is to create the financial backbone of ChronoBank.io: national Labour-Hour (LH) tokens.
LH are linked to average hourly wages in the host country and are backed by a real labour force from big recruitment and labour-hire companies.
Labour is abundant enough for everyone to have access to it, yet scarce enough to be valuable. It is the most tradeable resource in the real economy.
LH tokens will tokenise this resource. Because they are backed by real labour, they are absolutely inflation-proof and have next to zero volatility – in comparison to bitcoin and other cryptocurrencies.
This solution is far more sustainable than any of the fiat-pegged or backed coins that currently exist in the crypto market. LH tokens will be hyper-liquid and accessible 24/7 via the LH debit card.
[https://chronobank.io/]

Name::
* cpt.chblht,
* cpt.mnyLh,
* cpt.labour-hours-cryptocurrency,
* cpt.money.blockchain.labour-hours,
* cpt.money.cryptocurrency.LH,
* cpt.money.LH,

chblht'Baker

Description::
One of the major drawbacks in a debt-backed currency system is the possibility of backers (LOC in our case) defaulting on their contractual obligations.
[idChbwpr232]

chblht'Smart-contract (link)

chblht'Issuance

Q: Who are the issuing labour-hire companies?
A: Chronobank selects labour hire/recruitment and HR companies based on their credibility, size, and financial performance, among other factors.
Please refer to our company selection methodology in our business description document, available on our website.
Initial list of companies who agreed to issue LH tokens:
Anderson Recruitment and Training Pty Ltd
http://www.andersonrecruitment.com.au
canderson@andersonrecruitment.com.au
Host Group/Host Labour Hire
http://www.hostaustralia.com.au
john.allery@hostaustralia.com.au
AES Labour Hire Pty Ltd
http://www.aesau.com.au
jammiek@aesau.com.au
Edway Labour Hire
http://www.edwaylabourhire.com.au
stan@edway.com.au
[https://blog.chronobank.io/chronobank-io-faq-4b920f003640#.sraeqe3iv]

chblht'Exchange-rate

Q: What will guarantee that LH value will stay stable relative to fiat, in the case of a massive short-sale attack by speculators?
A: To stop a possible short-sale attack by speculators, Labour Hour tokens will always be refundable at a small discount less the issuance fee. That will remove any motivation for any short-sale attack.
[https://blog.chronobank.io/chronobank-io-faq-4b920f003640#.sraeqe3iv]

chblht.AGGREGATE

Q: What are the total number of LH tokens?
A: The total number of coins will always depend on the number of companies in the system and labour hours available in those companies that companies are able to fulfill.
[https://blog.chronobank.io/chronobank-io-faq-4b920f003640#.sraeqe3iv]

chbevt.TIME-token (link)

chbsvc'Human

Description::
The team features Luke Anderson, a PhD candidate in blockchains, and Adrian Manning, one of the developers of Zcash GPU miners.
[https://www.cryptocoinsnews.com/lifetime-might-become-money-ethereum-blockchain-thanks-startup/]
===
Q: Who is actually programming the smart contracts and wallets?
A: Smart contract architecture by Sigma Prime, Ethereum wallet by in-house developers, smart contract security audit by Mikko Ohtamaa (CTO at Revoltra).
Q: Could you tell us more about the ChronoBank staff and where the headquarters of the company is located?
A: Chronobank core team is based in Sydney, Australia. There are a few members of our team that are based all over the world.
[https://blog.chronobank.io/chronobank-io-faq-4b920f003640#.sraeqe3iv]

Name::
* cpt.ChronoBank-human,

AddressWpg::
* https://chronobank.io/#team,

Specific::
* Sergenko.Sergei: Chronobank CEO, Australia,
* Glover.Paul, Ideologist, USA, creator of Ithaca HOURS, the first modern time-based currency,

chbsvc'LaborX-dApp (chblrx)

Description::
The heart of the ChronoBank project is the LaborX exchange: a decentralised marketplace for work opportunities.
Freelancers and businesses will be able to trade labour on a peer-to-peer basis, without the costs and frictions of using a traditional recruitment company.
The efficiencies this brings can be passed on to both parties, raising pay and lowering costs whilst simultaneously increasing quality of work.
[https://blog.chronobank.io/laborx-core-and-laborx-dapp-c4088a01f12#.5ctlxxa1z]
===
The second stage is to create LaborX, a decentralised marketplace where people in real-world professions will be able to sell labour-hours to anyone.
[https://chronobank.io/]
===
LaborX also introduces a decentralized reputation system that enables workers to be rewarded in line with their talent and experience.
[https://cointelegraph.com/news/how-ethereum-based-uber-of-time-chronobank-could-boost-cryptocurrency-adoption? {2017-01-22}]

Name::
* cpt.laborX,
* cpt.laborX-exchange,
* cpt.laborX-dApp,
* cpt.chblrx, {2017-03-20}

chblrx'Attribute

chblrx'ledger:
is a publicly available database that holds information.
It will be implemented as a smart contract in Ethereum network.. 2
[https://github.com/ChronoBank/Documentation/blob/master/laborx_whitepaper.pdf]

chblrx'LaborX-Core (chblxc)

Description::
LaborX core is a complex system powered by the Ethereum network.
It contains all users’ public profiles, completed jobs with description, executor, status, and mutual ratings.
However, considering the system complexity, we have chosen to distinguish LaborX core from LaborX DApp.
[#idChblxw32P1]
===
LaborX core: this is a sub-system of the LaborX platform encapsulating the majority of the core inner functionality and blockchain-dependent logic. 2, 3, 6, 7
[#idChblxwglrP3]
===
Contains all ratings and recommendations
Contains full job history
Contains all payment logic
Contains all profiles
Stores public profile data
Needs time for transactions to be mined
Is based on smart contracts
[lxwp]

Name::
* cpt.chblrx'core,
* cpt.chblxc, {2017-03-22}
* cpt.laborX-backend,
* cpt.laborX-core,

chblrx'LaborX-DApp-frontend (chblxd)

Description::
LaborX dapp, meanwhile, can be considered the ‘frontend’ of the ChronoBank project or the front desk of the recruitment agency. Whereas LaborX core is based on Ethereum’s smart contracts, LaborX dapp is a client-side application written in Javascript. Its job is to communicate with the LaborX core and provide a user interface for workers and businesses seeking to post or accept jobs -- in the same way that a regular cryptocurrency wallet provides the functionality to interface conveniently with the blockchain.
Employers and employees, as well as TIME investors, will use the LaborX dapp. Employers will create jobs to their required specifications and filter prospective employees by their availability and skill set, whilst freelancers can use the dapp to view their profiles and ratings, and search the database for tasks they may wish to undertake (based on sector, location, pay and so on). TIME holders can use the dapp to lock their tokens to a mining contract, thereby receiving rewards.
It is therefore the LaborX dapp’s task to parse the information held in the Ethereum blockchain, return it in a useful format, and facilitate interaction with LaborX core -- enabling users to make the best choices with regards to the employment opportunities offered by ChronoBank.
[https://blog.chronobank.io/laborx-core-and-laborx-dapp-c4088a01f12#.5ctlxxa1z]
===
DApp is an abbreviated form for decentralised application.
A DApp has its back-end code running on a decentralised peer-to-peer network.
Contrast this with an app where the back-end code is running on centralised servers.. 3–7
[#idChblxwdapp]
===
However, considering the system complexity, we have chosen to distinguish LaborX core from LaborX DApp.
LaborX DApp functionality will include interface for creating profiles, verification, evaluation, searching workers, concluding contracts etc (see Section 6 for full description of features). [#idChblxw32P1]
===
Calculates and displays rating
Performs search over all completed jobs
Provides a user-friendly payment interface
Shows profile data in an informative way
Handles public and private data
Compensates LaborX response time by reactive and fast user interface
Is a client-side application written in JavaScript
[lxwp]

Name::
* cpt.chblrx'DApp,
* cpt.chblxd, {2017-03-22}
* cpt.laborX-DApp-frontend,
* cpt.laborX-frontend,

chblrx'Canceling-job

Description:
If the client is not satisfied with the worker or their work they can cancel the job at any time.
Nevertheless, the client is required to pay a minimum of one hour (which is a minimal time unit that can be paid).
The client may then leave a negative recommendation and rating that will negatively flag the worker for future clients.
[#idChblxw33P1]

Name::
* cpt.chblrx'canceling-job,
* cpt.laborX-canceling-job,

chblrx'Worker (employee)

Description::
is a person that is assigned to fulfil client’s job and get paid for it. 2
[https://github.com/ChronoBank/Documentation/blob/master/laborx_whitepaper.pdf]

Name::
* cpt.chbworker,
* cpt.chronobank-worker,
* cpt.chblrxwkr,
* cpt.chblrx'employee,
* cpt.chblrx'worker,
* cpt.chbwkr,
* cpt.laborX-worker,

chblrxwkr'Compensation-per-hour (rate)

Description::
rate: amount of money that will be paid hourly to a worker. 1, 2, 6, 7
[#idChblxwrate]
===
It should be noted that client does not pay the worker’s transportation time and expenses.
Instead, they should be included in the worker’s individual rates.
[#idChblxw33P1]

Name::
* cpt.chblrx'rate,
* cpt.laborX-rate,

chblrxwkr'Evaluation

Description::
For workers.
Benefits for workers are also significant.
Due to lower fees than in traditional labour hiring companies workers may ask for higher hourly rates.
The most skilled and responsible workers with the best ratings will be highly sought after and may, therefore, demand a higher hourly fee than their not-so-amazing colleagues.
For the first time in the labour hire industry, diligent and attentive workers will be rewarded for providing better services.
The decentralised nature of LaborX will not only guarantee that workers will get paid, but will enable real-time payment to the worker as the work is completed.
Since the system is fully automated, the workers will be able to plan their schedules corresponding to their preferences.
[#idChblxw41P2]

Name::
* cpt.chblrxwkr'evaluation,
* cpt.laborX-worker-evaluation,

chblrxwkr'Profile

Description::
To achieve this, each worker will have a publicly available blockchain profile containing their nickname (first name and the first letter of their surname), small photo, field(s) of work, skills, rating, rate, activity points, approximate location, a list of completed jobs and payments. Optionally, a worker may apply for a document verification or a skill evaluation (see Sections 3, 6) which will be reflected in his public profile and confirmed by the electronic signature of the governing party. There will be a data set which will never appear on the blockchain. This includes, but is not limited to, the exact geolocation of the client and the worker, additional private instructions for the worker, document scans.
[#idChblxw7P1]

chblrxwkr'Rating

Description::
rating: is an integer in a range from 1 to 10 (where 1 is a disaster and 10 is perfect) which measures the quality of work done by a worker.
LaborX uses rating to select workers for a job.. 2–6
[#idChblxwrating]
===
A negative rating will also adversely affect evaluator’s reputation.
[#idChblxw33P1]

Name::
* cpt.chblrxwkr'rating,
* cpt.laborX-worker-rating,

chblrxwkr.EVALUATOR

Description::
evaluator: a highly rated worker with lots of experience and reputation which prove they are a master in their field of work and thus can verify skills of other workers. 2, 5
[#idChblxwglrP2]

Name::
* cpt.chblrxwkr.evaluator,
* cpt.laborX-evaluator,

Description::
Evaluation by Clients. Any verified client may advertise individual worker’s skills after completing the job if some of them are exceptional. This information would be used to separately promote the workers who are constantly rated 10/10.
[#idChblxw61P4]

chblrxwkr.VERIFICATOR

Description:
verificator: a worker with flawless reputation who offers services of verification for documents and identity of other entities. 2, 5
[#idChblxwglrP5]
===
Verification. Entities with high reputation could serve as verification hubs and be paid for their services by workers. They will check that worker’s documents correspond to the worker’s identity, scan documents, publish document LaborX core in the blockchain and confirm this action by signing the hashes with their digital signature (see Section 7 for more information).
[#idChblxw61P2]

Name::
* cpt.chblrxwkr.verificator,
* cpt.laborX-worker-verificator,

chblrx'Employer (client)

Description::
client: is a person that has some work and needs to get it done.
Client posts a job and pays for it. 2
[#idChblxwclient]

Name::
* cpt.chbemployer,
* cpt.chronobank-employer,
* cpt.chblrxemr,
* cpt.chblrx'employer,
* cpt.chblrx'client,
* cpt.laborX-employer,

chbemr'Evaluation

Description:
For clients.
There are numerous benefits for clients.
Because of smaller mediator fees than in traditional labour hiring companies, the resulting work price will be lower.
Decentralisation of the service makes it fast, reliable, secure, and permanently available.
A public worker rating system ensures that clients are seeing profiles of real workers along with their unique histories and therefore genuine ratings.
The ability to pay with a variety of digital tokens makes the system universal and not tied to any particular country/region.
Furthermore, LaborX will implement an easy to use interface, paying serious attention to UX.

Name::
* cpt.chbemr'evaluation,
* cpt.laborX-employer-evaluation,

chbemr'Searching-for-worker

Description::
6.2. Workers selection
According to the current model, the governing smart contract returns a selection of workers that fit the criteria of a given job posted by a client. The LaborX DApp takes preference of workers who have more completed jobs and higher ratings. The system may grow such that the ratio of workers to jobs becomes quite large. It is therefore important that the LaborX DApp does some advanced filtering. This means that the application should not show all workers capable of performing a given job, instead select only several of the available best workers with varying rates and ratings. In this way, the most competent workers will get more work and will be paid more for their reputation. Clients may also use different custom filters that will help them to find the most fitting worker to suit their needs. They may also pick specific workers they are already familiar with. The application will also utilise smart filtering to minimise the worker intersection between clients. This is crucial for the system, especially when considering similar jobs.

Name::
* cpt.chbemr'searching-for-worker,
* cpt.laborX-searching-for-worker,

chbemr'Protection

Description::
However, protections are also built in for the client in the case of poor performance on the part of the worker. Clients can cancel work at any time, though they will always have to pay for time so far worked. If it turns out that a worker has not spent the time well and has been bad value for money, the employer can end the contract and leave negative feedback for the worker. They will need to pay for a minimum of one hour of the worker’s time before doing this, to prevent malicious individuals from trying to ruin a worker’s reputation at no cost to themselves.
[https://blog.chronobank.io/laborx-getting-paid-on-time-every-time-364700e3709#.fa8sj2r0p]

Name::
* cpt.chbemr'protection,

chblrx'Trust-system

Description::
Trust, in such community services, mainly addresses whether a remote user -- called a trustee -- behaves as expected by an interested user (the trustor), through the activity of other users called recommenders. A ‘trust graph’ consists of a trustor, a trustee, recommenders, and the trust relationships among them.
[https://blog.chronobank.io/how-laborxs-reputation-system-will-work-478cdd7aab8e#.vd7xhx1px]

Name::
* cpt.chblrx'trust-system,
* cpt.laborX-trust-system,

chblrx'Recommender

Description::
In LaborX, in addition to the commonly-used roles of Worker and Client, we have introduced another three roles -- Evaluator, Verifier and Provider. Together, these will serve the purpose of recommenders.
[https://blog.chronobank.io/how-laborxs-reputation-system-will-work-478cdd7aab8e#.vd7xhx1px]

Name::
* cpt.chblrx'recommender,
* cpt.laborX-recommender,

chblrx'Evaluator (chblrxevr)

Description::
The Evaluator. The highest-ranked members of a community will be able to evaluate and confirm relevant skills of workers, building a chain of trust. In this way, clients can be sure that the assigned worker has all the required skills for completing the job. Workers will be required to have a high rating and sufficient activity points in order to become an Evaluator. Evaluators may verify and endorse skills of other workers, ensuring clients have a more accurate description of their potential workforce. Workers with skills endorsements will typically have a greater chance of being selected for any given job by the LaborX core. After performing a worker’s skill assessment, the Evaluator publishes a record on the blockchain. The Evaluator’s profile displays statistics of appraised workers, and the Evaluator’s reputation among LaborX users will depend on this.
[https://blog.chronobank.io/how-laborxs-reputation-system-will-work-478cdd7aab8e#.vd7xhx1px]

Name::
* cpt.chblrx'evaluator,
* cpt.laborX-evaluator,

chblrx'Verifier (chblrxvfr)

Description::
The Verifier. This is a worker who offers services to verify clients and workers in a particular region. The fundamental role of a Verifier is to check required documents for their respective areas, such as work permits, certificates, injury insurance or other types of relevant cover. These entities are essential for ensuring local laws are observed, enhancing security, and potentially minimising spam issues. Both parties (clients and workers) may choose either a single Verifier or multiple Verifiers to review their documents, based on their rating and popularity. Each worker has a public profile and private data. The public profile is readily available on the blockchain and is accessible to everyone. Private data is verified and electronically signed by a Verifier. It is only available to a client after they enter into a contract with the worker.
[https://blog.chronobank.io/how-laborxs-reputation-system-will-work-478cdd7aab8e#.vd7xhx1px]

Name::
* cpt.chblrx'verifier,
* cpt.laborX-verifier,

chblrx'Provider (mediator)

Description::
is an entity which offers its services to connect clients and workers through a job board because of legal, security, or spam issues.
Anyone can become a provider, and both parties (a client and a worker) could choose which providers they trust.
Providers get paid for their services by receiving a percentage of job payment fees. 2, 3, 5–7
[https://github.com/ChronoBank/Documentation/blob/master/laborx_whitepaper.pdf]

Name::
* cpt.chbmediator,
* cpt.chbprovider,
* cpt.chblrx'mediator,
* cpt.chblrx'provider,
* cpt.labor-hiring-company,
* cpt.laborX-mediator,
* cpt.laborX-provider,

Compensation

Description::
Provider receives payment only for completed jobs posted on provider’s job board.
[#idChblxw4P2]

chblrx'Job-board

Description::
job-board: is a publicly available database managed by the creator.
It will be implemented as a smart contract in Ethereum network.
More information in Section 6. 3, 5, 6
[#idChblxwjobboard]
===
Each LaborX provider will be able to set cryptocurrencies that will be permitted for payments on their job boards.
Clients and workers who choose a job board, agree to use one of the supported methods of payment.
[#idChblxw63P1]

Name::
* cpt.chblrx'job-board,
* cpt.laborX-job-board,

Searching

Description::
A client would be capable of searching through the list of workers in job boards or choosing a familiar worker.
[#idChblxw32P2]

Name::
* cpt.laborX-job-board-searching,

chblrx'Job

Description::
job: is some work or task to get done.
Job can be a list of tasks but all within one field of work. 2
[#idChblxwjob]
===
A job object (the programmatic object relating to a real-world job) will contain a location, provider used and work description.
The work description includes attributes such as field of work, job due date, address of ERC20 token contract (that will be used for payment), required skills, and further optional job-specific requirements.
[#idChblxw32P2]

Name::
* cpt.chblrx'job,
* cpt.chblrxjob,
* cpt.laborX-job,

chblrxjob'Work-description

Name::
* cpt.chblrxjob'description,
* cpt.chblrxjob'work-description,
* cpt.laborX-job-description,

chblrxjob'Field-of-work
chblrxjob'Skills
chblrxjob'Time-due

Description::
A job due date can be a present or future time. If the current time is selected, then LaborX returns all currently available workers ready to start a work now. If instead a future time was chosen, then the system will find workers available to work at the chosen time. If several clients wish to book one particular worker for the same period, the system prioritises clients based on the time when clients offered the work. Once the worker accepts the job, the smart contract will publicly mark the worker as busy, preventing further bookings in that period.
[#idChblxw32P2]

chblrxjob'Money-used (token)

chblrxjob'Location

Description::
A location is also a selectable parameter that will typically represent a city/region.
If a city/region is large, then a district/sub-region may be specified.
A city/region includes all of its districts/sub-regions.
A location is used to map workers to nearby clients.
Precise addresses (for job locations) will be revealed to workers once the job has been mutually agreed on and solidified by the smart contract.
[#idChblxw32P2]

Name::
* cpt.chblrxjob'location,
* cpt.laborX-job-location,

chblrxjob'Provider-used

chblrx'Rating-system

Description::
For every worker and client there are two metrics called rating and activity points.
The first describes how well a worker performs their duties and is dictated by clients.
The second is a point system based on all LaborX activity.
[https://blog.chronobank.io/how-laborxs-reputation-system-will-work-478cdd7aab8e#.vd7xhx1px]

Name::
* cpt.chblrx'metrics,
* cpt.chblrx'rating-system,

chblrx'Activity-points

Description::
is an integer in a range of 1 to infinity which measures positive contribution to LaborX ecosystem.
The more activity points the user has, the more advanced actions they can perform.
[#idChblxwactivitypoint]

Name::
* cpt.chblrx'activity-points,
* cpt.laborX-activity-points,

Description::
Activity points are used only in the LaborX DApp and have a crucial security role by limiting the amount of available functionality to newcomers.
This limits threats such as spamming, posting advertisements with ambiguous links, or evildoers trying to overload the system with an infinite job posting.
Every new user begins with a single activity point which will automatically increase when performing various actions inside the app (see Table 2).
An alternative way to gain activity points is by verifying one’s identity with various verificators or by passing skill assessment with an evaluators.
The activity points count will always be greater
than or equal to 1.
An example of activity point elevators are given in Table 2.
Some of the proposed features that will require some amount of activity points is given in Table 3.
The listed values in these tables are examples only and may change during the implementation and system testing period.
[#idChblxw5]

chblrx'Rating

Description::
is an integer in a range from 1 to 10 (where 1 is a disaster and 10 is perfect) which measures the quality of work done by a worker.
LaborX uses rating to select workers for a job.. 2–6
[https://github.com/ChronoBank/Documentation/blob/master/laborx_whitepaper.pdf]
===
A negative rating will also affect evaluator’s reputation.

Name::
* cpt.chblrx'rating,
* cpt.laborX-rating,

chblrx'Wallet

Description::
LaborX is a multi-currency service that will support any token that complies with the ERC20 standard[2] including, but not limited to, Labor Hour tokens.
A simple multi-currency wallet capable of receiving and sending any supported ERC20 token will be integrated into the LaborX platform.
Users will be able to pay and get paid by tokens they choose from a list of supported on job board tokens.
Providers may list local currencies, allowing communities to pay for jobs in unusual digital assets, should both the client and the worker accept the currency by selecting the job board.
As mentioned in the previous section, the LaborX system will deduct 1%2 from each completed job part of which will go as a revenue to TIME token holders and other part to providers for their services.
Provider receives payment only for completed jobs posted on provider’s job board. [#idChblxw4]

Name::
* cpt.chblrx'wallet,
* cpt.laborX-wallet,

chblrx'Resource

AddressWpg::
* https://github.com/ChronoBank/Documentation/blob/master/laborx_whitepaper.pdf,

chblrx'White-paper (link)

chblrx'DOING

chblrx'Messaging

Description::
6.5. Messaging
LaborX will use a messaging system with an underlying protocol like Whisper[6], enabling client and worker to establish an encrypted connection. These messages could be used to exchange job details, address, confidential instructions, etc. The exact realisation will be decided at the time of development (specified in the LaborX road map) taking into account the potential research and new possibilities that will be available in 2017. [#idChblxw65]

Name::
* cpt.chblrx'messaging,
* cpt.laborX-messaging,

chblrx'Searching

Description::
6.4. Search
High load testing and analysis would be performed while developing LaborX to determine exact implementation and architecture of the search system.
The main part of a search logic should be performed in the LaborX LaborX core.
Only Ethereum transactions that write to blockchain have gas limit and cost Ether.
The search operation is read-only, therefore it would perform computations on user’s Ethereum node and will not require paying Ether.
A worker-to-job matching will include complex queries and therefore require a significant amount of computational power of the machine where Ethereum node software is running.
Therefore LaborX DApp could handle part of the filtering and caching logic on client’s side.
This approach will significantly improve the user experience.
[#idChblxw64]

Name::
* cpt.chblrx'Searching,
* cpt.laborX-Searching,

chblrx'Matching

Description::
It will be capable of automatically matching available workers to corresponding jobs according to their location, field of work, skills, and reputation.
[#idChblxw8P1]

Name::
* cpt.chblrx'Matching,
* cpt.laborX-Matching,

chblrx.EVOLUTING

chbsvc'Organization (chbogn)

chbogn.Exchange

FAQ:
Q: Can I redeem LH tokens to USD or EUR if so how?
A: Redeeming will be either from an ATM or at any exchange that will trade LH
[https://blog.chronobank.io/chronobank-io-faq-4b920f003640#.sraeqe3iv]

chbogn.Merchant

FAQ:
Q: What will I be able to buy with LH tokens? Which firms will accept them in exchange of (physical) goods?
A: We will issue LH denominated visa/mastercard cards, will work similar to bitcoin cards. We will be converting LH directly into fiat at the start with a small spread. So technically, you will be able to buy anything you buy now, at any organisation you buy it from now.
[https://blog.chronobank.io/chronobank-io-faq-4b920f003640#.sraeqe3iv]

chbogn.Edway-Group

Description::
Edway Group
Co-founder
Australia
edwaygroup.com.au
Edway Group Pty. Ltd. is a consolidated group of Australian companies and industry leader in vocational training and labour supply. The company has multiple divisions in the fields of HR, recruitment, training, technology and auxiliary services to these industries.
[https://chronobank.io/]

Name::
* cpt.chbogn.Edway-Group,
* cpt.Edway-Group,

chbsvc'Resource (chbrsc)

Name::
* cpt.chbresource,

AddressWpg::
* https://github.com/ChronoBank,
===
* {2017-05-14} https://blog.chronobank.io/the-dapps-revolution-70e6ed4ec5cf,
* {2017-03-13} https://blog.chronobank.io/laborx-getting-paid-on-time-every-time-364700e3709#.fa8sj2r0p
* {2017-03-08} ChronoBank’s TIME launches on four exchanges: https://blog.chronobank.io/chronobanks-time-launches-on-four-exchanges-71c2bb5c989a,
* {2017-03-04} TIME token reward model: https://blog.chronobank.io/time-token-reward-model-1c3508208791,

=== COMMUNITY:
* https://chronobank.slack.com/
* https://blog.chronobank.io/

chbrsc'ChronoBank.io-website

Description::
ChronoBank.io is an ambitious and wide-ranging blockchain project, aimed at disrupting the HR/recruitment/finance industries in a similar way to how Uber disrupted the taxi business and how Upwork represented an evolution in freelancing.
[https://chronobank.io/]

Name::
* cpt.ChronoBank.io,
* cpt.ChronoBank-website,

chbsvc.EVOLUTING

{time.2016-12-15-2017-02-14}
=== CROWDSALE:
- 5,416 BTC
- 2,985 participants
[https://chronobank.io/]

Q: How long will it take to go from where Chronobank is now to where it needs to be to start challenging Labour Hire and Recruitment companies?
A: We anticipate this time period to be between a year and year and a half from February 2017
[https://blog.chronobank.io/chronobank-io-faq-4b920f003640#.sraeqe3iv]

SPECIFIC

Name::
* bcnnet.specific,
* cpt.bcnnet.specific,
* cpt.bcnnetSpc,

Specific::
=== GENERIC:
* Blockchain-as-a-Service,
* Blockchain-curency-network,
* Builtin-governance-network,
* Depedent-blockchain-network,
* DepedentNo-blockchain-network,
* One-blockchain-network,
* OneNo-blockchain-network,
* Service.Exchange-value-unit-network,
* Service.Program-network,
* Public-blockchain-network,
* PublicNo-blockchain-network,
=== INSTANCE:
* Aeternity-AE-network,
* Akasha-network,
* Bitcoin-BTC-network {2009},
* Bitshares2-BTS-network {2015},
* BOScoin-network,
* Cosmos-network,
* Dash-DASH-network {2014},
* Decred-DCR-network {2016},
* Dfinity-network,
* Emercoin-EMC-network {2013},
* Ethereum-ETH-network {2015},
* FairCoop-FAIR-network {2014},
* Gnosis-network,
* Humaniq-network,
* IBM-blockchain-network,
* KSI-network,
* Lisk-LSK-network {2016},
* Litecoin-LTC-network {2011},
* Namecoin-NMC-network {2011},
* NEM-XEM-network {2015},
* Nxt-NXT-network {2013},
* Peercoin-PPC-network {2012},
* PIVX-network {2016},
* Qtum-network,
* Ripple-XRP-network {2012},
* RSK-network,
* Synereo,
* Tezos-network,
* Zcash-ZEC-network {2016},
* Waves-WAVES-network {2016},
* Wings-network,

Specific::
Thus, in general, there are two approaches toward building a consensus protocol: building an independent network, and building a protocol on top of Bitcoin
[https://github.com/ethereum/wiki/wiki/White-Paper#alternative-blockchain-applications]

bcnnet.SPECIFIC-DIVISION.builtin-governance

Specific::
* builtin-goverance,
* builtinNo-goverance,

bcnnet.BUILTIN-GOVERNANCE

Description::
Blockchain-network with builtin project decentralized governance.
Not centralized governance.
Not governance only written in a-smart-contract-program.
Decentralized governance of the-people of the-project.
[hmnSgm.2017-04-04]

Name::
* cpt.bcnnetBig,
* cpt.bcnnet.builtin-governance,
* cpt.blockchain-network-with-builtin-decentralized-governance,

Specific::
* Decred-network {2016},
* BitShares-network {2015},
* Dash-network {2014},
* BOScoin-network,
* Dfinity-network,

bcnnet.SPECIFIC-DIVISION.consensus-algorithm

Specific::
* proof-of-stake-bcnnet,
* proof-of-work-bcnnet,
* hybrid-stake-work-bcnnet,

bcnnet.PROOF-OF-WORK

Description::
Proof-of-stake-blockchain-network is a-blockchain-network with proof-of-work consensus-algorithm.

Name::
* cpt.bcnnetPow,
* cpt.bcnnet.proof-of-work,
* cpt.proof-of-work-blockchain-network,

Specific::
* Zcash-ZEC-network {2016},
* Ethereum-ETH-network {2015},
* Bitcoin-BTC-network {2009},

bcnnet.PROOF-OF-STAKE

Description::
Proof-of-stake-blockchain-network is a-blockchain-network with proof-of-stake consensus-algorithm.

Name::
* cpt.bcnnetPos,
* cpt.bcnnet.proof-of-stake,
* cpt.pos-blockchain-network,
* cpt.proof-of-stake-blockchain-network,

Specific::
* Lisk-LSK-network {2016},
* NAV-Coin-NAV-network {2016},
* PIVX-network {2016},
* Waves-WAVES-network {2016},
* BitShares-network {2015},
* BlackCoin-BLK-network {2014},
* Nxt-NXT-network {2013},
* Peercoin-PPC-network {2012} first,

bcnnet.HYBRID-POS-POW

Description::
Hybrid-pos-pow-blockchain-network is a-blockchain-network with both proof-of-stake and proof-of-work, consensus-algorithm.

Name::
* cpt.bcnnetHsw,
* cpt.bcnnet.hybrid-pos-pow,
* cpt.hybrid-pos-pow-blockchain-network,

Specific::
* Decred-DCR-network {2016},

bcnevu.SPECIFIC-DIVISION.number-of-blockchains

Specific::
* one-blockchain-bcnnet,
* many-blockchains-bcnnet,

bcnnet.MANY-BLOCKCHAINS

Description::
Multiblockchain-blockchain-network is a-blockchain-network with many blockchains.

Name::
* cpt.bcnnetOneNo,
* cpt.bcnnet.many-blockchains,
* cpt.bcnnet.multi-blockchain,
* cpt.oneNo-blockchain-blockchain-network,
* cpt.many-blockchain-blockchain-network,
* cpt.multi-blockchain-blockchain-network,

Specific::
* Cosmos-network,

bcnnet.SPECIFIC-DIVISION.dependance

Specific::
* dependent-bcnnet,
* dependentNo-bcnnet,

bcnnet.SPECIFIC-DIVISION.time-of-genesis

Specific::
=== {2017}
*
=== {2016}
* Zcash-network,
* Lisk-network,
* Waves-network,
* Decred-network,
* PIVX-network,
=== {2015}
* Bitshares2-network,
* Ethereum-network,
* NEM-network,
=== {2014}
* Dash-network,
* FairCoop-network,
=== {2013}
* Emercoin-network,
* Nxt-network,
=== {2012}
* Peercoin-network,
* Ripple-network,
=== {2011}
* Litecoin-network,
* Namecoin-network,
=== {2010}
*
=== {2009}
* Bitcoin-network,

bcnnet.SPECIFIC-DIVISION.user

Specific::
* public-bcnnet,
* publicNo-bcnnet,

bcnnet.SPECIFIC-DIVISION.service

Specific::
* app-service,
* government-service,
* exval-token-service,
* record-keeping-service,

bcnnet.SPECIFIC-DIVISION.evoluting

Specific::
* announcement-stage|phase,
* ico-stage,
* planning-stage,
* development-stage,
* experimental-stage,
* testing-stage,
* working|production-stage,
* working.stableNo-stage,
* working.stable-stage,
* working.mature-stage,
===
* conceptual-stage,
* development-stage,
* production-stage,

bcnnet.dependance.DEPENDENT (bcnnetDpt)

Description::
Dependent-bcnnet is a-bcnnet that does-NOT-operate autonomously.
It works as another layer on another bcnnet.
[hmnSgm.2017-03-27]

Name::
* cpt.bcnnet.dependent,
* cpt.bcnnetDpt,

Specific::
* Humaniq, (Ethereum)
* Omni_layer, (Bitcoin)

bcnnetDpt.Lykke-exchange (link)

bcnnetDpt.Omni-layer

Description::
Omni is a platform for creating and trading custom digital assets and currencies.
It is a software layer built on top of the most popular, most audited, most secure blockchain -- Bitcoin.
Omni transactions are Bitcoin transactions that enable next-generation features on the Bitcoin Blockchain.
Our reference implementation, Omni Core is an enhanced Bitcoin Core that provides all the features of Bitcoin as well as advanced Omni Layer features.
[http://www.omnilayer.org/]

Name::
* cpt.Omni-layer,

bcnnetDpt.Raiden-network (rdnnet)

Cpt-created: {2017-03-27}

Description::
Raiden Network
High speed asset transfers for Ethereum
Payment-Channel Network for Ethereum
Raiden is a technology that leverages off-chain state networks to extend Ethereum with some nice properties for asset transfers:
Scalable: it scales linearly with the number of participants (1,000,000+ transfers per second possible)
Fast: Transfers are confirmed and final within the fraction of a second
Confidential: Single transfers don’t show up in the global shared ledger
Interoperable: Works with any token that follows Ethereum’s standardized token API
Low Fees: Transaction fees can be 7 orders of magnitude lower than on the blockchain
Micro-payments: Low transaction fees allow to efficiently transfer tiny values
Technology
The technology enabling this is similar to the proposed Bitcoin Lightning Network.
The basic idea is to switch from a model where all transactions hit the shared ledger on the blockchain (which is the bottleneck) to a model where users can privately exchange messages which sign the transfer of value.
Raiden uses a network of p2p payment channels and deposits in Ethereum to preserve the guarantees expected from a blockchain system.
Raiden is implemented as an extension to Ethereum. A Raiden node runs alongside an Ethereum node and communicates with other Raiden nodes to facilitate transfers and with the Ethereum blockchain to manage deposits. It offers a simple API which makes it easy to use Raiden in DApps.
Applications
Micropayments for content distribution: Alternative to Paywalls, Ads and Subscriptions. (Figure a decentralized youtube where the creators of a video are paid for every second watched)
Decentralized M2M markets: especially in IoT where tiny chunks of bandwidth, storage, cpu time, energy, sensor data, etc. can be traded.
Frictionless Token Systems: Game Tokens, Reward Tokens, Private Currencies
API Access: Accessing and monetizing APIs on a per use basis is at the core of the upcoming Machine-to-Machine economy
Fast Decentralized Exchanges
Complementary to Ethereum
Vitalik Buterin: “State channels are an important technology that has the potential to greatly improve the scalability and privacy of many categories of blockchain applications; in conjunction with sharding and other privacy-preserving cryptographic technologies, they are an important ingredient in helping decentralized systems to achieve the properties that mainstream individual and institutional users expect and deserve.”
Links
Coindesk feature on Raiden: “Will Ethereum Beat Bitcoin to Mainstream Microtransactions?”
Robert McCone’s blogpost about a lightning style network on Ethereum
Oktahedron Podcast with Augusto from the core team, explaining the Raiden Network
Raiden Network IoT Demo - Enabling High Speed Asset Transfers
Development
The Raiden Network is currently under development. Release of an MVP is planned for the end of March 2017. See our GitHub repository and read our latest blog post on development progress for the latest updates.
[http://raiden.network/]

Name::
* cpt.raiden-network,
* cpt.rdnnet,

bcnnetDpt.SIDECHAIN

Cpt-created: {2017-03-19}

Description:: We propose a new technology, pegged sidechains, which enables bitcoins and other ledger assets to be transferred between multiple blockchains.
This gives users access to new and innovative cryptocurrency systems using the assets they already own.
By reusing Bitcoin’s currency, these systems can more easily interoperate with each other and with Bitcoin, avoiding the liquidity shortages and market fluctuations associated with new currencies.
Since sidechains are separate systems, technical and economic innovation is not hindered.
Despite bidirectional transferability between Bitcoin and pegged sidechains, they are isolated: in the case of a cryptographic break (or malicious design) in a sidechain, the damage is entirely confined to the sidechain itself.
[https://blockstream.com/sidechains.pdf, ]

Name::
* cpt.bcnnet.sidechain,
* cpt.sidechain-network,

scnet'Resource

AddressWpg::
* {2014-10-26} https://gendal.me/2014/10/26/a-simple-explanation-of-bitcoin-sidechains/
* {2014-10-22} https://blockstream.com/sidechains.pdf,

bcnnet.dependance.DEPENDENT.NO

Description::
A-blockchain-network with an-independent blockchain.

Name::
* cpt.bcnnet.independent,

bcnnet.service.BLOCKCHAIN-PROGRAM

Description::
Program-blockchain-network is a-blockchain-network that stores blockchain-programs[1] in its blockchain that[1] process arbitrary transitions of the-blockchain's-information.

Name::
* cpt.bcnnetPgm,
* cpt.bcnnet.application,
* cpt.bcnnet.program,
* cpt.bcnnet.smart-contract,
* cpt.blockchain-program-bcnnet,
* cpt.blockchain-program-blockchain-network,
* cpt.program-blockchain-network,

Specific::
* Lisk-LSK-network {2016},
* Ethereum-ETH-network {2015},

* BOScoin-BOS-network,
* Dfinity-DFN-network,
* Qtem-network,
* Rootstock-RSK-network,
* Tezos-network,

bcnnet.service.EXCHANGE-VALUE-UNIT (evunet)

Description::
Exchange-value-token-blockchain-networks were the first networks created, when Satoshi solved the-double-spending-problem without a central authority.
[hmnSgm.2017-03-31]

Name::
* cpt.evtnet, {2017-04-14}
* cpt.exchange-value-token-bcnnet, {2017-04-14}
===
* cpt.bcnnetEvtkn, {2017-03-31}
* cpt.bcnnet.currency-application,
* cpt.bcnnet.evu,
* cpt.bcnnet.exchange-value-unit,
* cpt.bcnnet.money,
* cpt.bcnnet.value-transfer,
* cpt.bcnnetMny,
* cpt.money-bcnnet,
* cpt.net.blockchain.currency,
* cpt.net.currency.blockcain,
* cpt.satoshi-based-blockchain,
* cpt.stmIthMny.currency.crypto,
* cpt.stmIthMny.currency.cryptocurrency,
* cpt.cryptocurrency-network, cptIt51.12,
* cpt.cryptocurrency-platform, cptIt51.12,
* cpt.netBcnMny,
* cpt.netCbc,
* cpt.netCcc, {2016-04-03}
* cpt.sihCcc,
* cpt.sihCcc,
* cpt.sihCrypto,
* cpt.sihCrypto, cptIt51.12,
* cpt.stmIthCrypto,

Generic::
* blockchain-network,

evunet'whole.DAO

Generic::
* Bcnnet-DAO,

evunet'Protocol

Generic::
* Bcnnet-protocol,

evuprl'White-paper

Generic::
* Bcnnet-white-paper,

evuprl'Implementation-language

Generic::
* Bcnnet-protocol-implementation-language,

evunet'Node

Generic::
* Bcnnet-node,

evunet'Blockchain

Generic::
* Bcnnet-blockchain,

Name::
* cpt.blockchain-of-evunet,

evubcn'Block

Generic::
* Bcnnet-block,

evubcn'Block-explorer

Generic::
* Bcnnet-block-explorer,

evubcn'Consensus-algorithm

Generic::
* Bcnnet-consensus-algorithm,

evubcn'Address

Generic::
* Bcnnet-address,

evubcn'Transaction

Generic::
* Bcnnet-transaction,

evubcn'Hash-rate

Generic::
* Bcnnet-hash-rate,

evunet'Exchange-value-unit.Consensus

Generic::
* Bcnnet-consensus-exchange-value-unit,

evunet'Statistics

Generic::
* Bcnnet-statistics,

evunet'Governance-system

Generic::
* Bcnnet-governance-system,

evunet'Program

Generic::
* Bcnnet-program,

evunet'Wallet

Generic::
* Bcnnet-wallet,

evunet'Problem

Generic::
* Bcnnet-problem,

evunet'Human

Generic::
* Bcnnet-human,

evunet'Organization

Generic::
* Bcnnet-organization,

evunet'Evaluation

Generic::
* Bcnnet-evaluation,

evunet'Law

Generic::
* Bcnnet-law,

evunet'Conference

Generic::
* Bcnnet-conference,

evunet'Resource

Generic::
* Bcnnet-resource,

AddressWpg:
* {2017-05-13} Monero 2.0? Why INTCoin Claims to Be Next Generation Decentralized Currency: https://cointelegraph.com/news/monero-20-why-intcoin-claims-to-be-next-generation-decentralized-currency,

evunet'DOING

Generic::
* Bcnnet-doing,

SPECIFIC

Name::
* evunet.specific,
* cpt.evunet.specific,

Specific::
* Bitcoin-BTC-network {2009},
* Bitshares2-BTS-network {2015},
* Dash-DASH-network {2014},
* Decred-DCR-network {2016},
* FairCoop-FAIR-network {2014},
* Humaniq-network,
* Litecoin-LTC-network {2011},
* Namecoin-NMC-network {2011},
* NEM-XEM-network {2015},
* Nxt-NXT-network {2013},
* Peercoin-PPC-network {2012},
* PIVX-network {2016},
* Zcash-ZEC-network {2016},
* Waves-WAVES-network {2016},

bcnnet.BLOCKCHAIN-AS-A-SERVICE

Description::
Microsoft Azure already features a wide range of Blockchain solutions, including Ethereum, Chain Core, Corda, Nxt, Lisk, and Waves.
Together, they form an elaborate ecosystem known as Blockchain as a Service, which supports the creation of all kinds of Blockchain projects for all kinds of purposes and for companies of any size.
[https://cointelegraph.com/news/why-microsoft-azure-integrates-blockchain-crowdfunding-platform-waves]

Name::
* cpt.BaaS,
* cpt.Blockchain-as-a-Service,

bcnnet.time.Zcash (ZECnet {2016-10-28})

Description::
Internet money
Zcash is the first open, permissionless cryptocurrency that can fully protect the privacy of transactions using zero-knowledge cryptography.
[https://z.cash/]

Name::
* cpt.zcash-network,
* cpt.zecnet,

Generic::
* Exchange-value-unit-network,
* Proof-of-work-network,

zecnet'Blockchain (zecbcn)

zecnet'Block-explorer (zecber)

AddressWpg::
* https://explorer.zcha.in/
* BlockH0 https://explorer.zcha.in/blocks/00040fe8ec84719...a8a5c453883c000b031973dce08,

zecnet'Consensus-algorithm

Description::
* Is Zcash proof-of-work? What mining algorithm do you use? Is it ASIC resistant?—
Yes, since launch, Zcash has been based on proof-of-work. Maybe the community will choose to change it to proof-of-stake or something someday. We cannot predict what the community or communities will ultimately decide about such things but are very much open to improvement and evolution. We are currently using Equihash as the proof-of-work for block mining in Zcash. Equihash is a proof-of-work algorithm devised by Alex Biryukov and Dmitry Khovratovich. It is based on a computer science and cryptography concept called the Generalized Birthday Problem. Please read the Why Equihash blog post for more details. The algorithm is currently not economically implementable in ASIC. We’re still evaluating whether we think it will resist custom hardware (“ASIC”) implementation long-term.
[https://z.cash/support/faq.html#mining-algorithm]

zecnet'Exchange-value-unit.Consensus (ZECevuC)

Description::
Zcash ZEC
Zcash is a totally private decentralized crypto using a new cryptographic algorithm for payments using a zero-knowledge proof of construction, providing safe encryption of a sender, a recipient and an amount sent. Zcash has a view key for users to see and control the content.
[https://changelly.com/supported-currencies]
===
Privacy technology for blockchains
Zcash is the first open, permissionless financial system employing zero-knowledge security.
The Zcash genesis block will launch in 7 days. Zcash is currently in testnet (testnet coins have no value and will never hold monetary value); our engineering roadmap is publicly available here. If anyone says that they will pay you Zcash before October 28, 2016, then there must be some mistake, because Zcash will not exist until then.
WHAT IS ZCASH?
Zcash offers total payment confidentiality, while still maintaining a decentralized network using a public blockchain. Unlike Bitcoin, Zcash transactions automatically hide the sender, recipient, and value of all transactions on the blockchain. Only those with the correct view key can see the contents. Users have complete control and can opt-in to provide others with their view key at their discretion.
Zcash transactions do not depend on the cooperation of other parties.
[https://z.cash/] {2016-10-20}

Name::
* cpt.mnyZcash,
* cpt.mnyZEC,
* cpt.Zcash,
* cpt.Zcash-currency,
* cpt.ZEC-token,
* cpt.zecevuC,

zecnet'Resource

AddressWpg::
* https://z.cash/,
* https://z.cash/support/faq.html#what-is-a-zero-knowledge-proof,
* {2016-10-20} https://cointelegraph.com/news/with-launch-of-zcash-approaching-mining-companies-get-prepared,

bcnnet.time.Lisk (LSKnet {2016-05-24})

Cpt-created: {2017-01-29}

Description::
Lisk is a public blockchain platform that provides decentralized blockchain apps.
It was forked from Crypti by Max Kordek and Olivier Beddows in early 2016.
[https://en.wikipedia.org/wiki/Lisk]

Name::
* cpt.lisk-network,
* cpt.lsknet,
* cpt.netLisk,
* cpt.netLsk,

lsknet'Protocol

AddressWpg::
* https://github.com/LiskHQ/lisk-wiki/wiki/Technical-Protocol-Reference,

lsknet'Node

lsknode.MINER

lsknodeMnr'Mining

Description::
Forging
Lisk utilizes an inflationary forging rewards system which creates new LSK for every successful block.
During year 1, the forging rewards are set at 5 LSK per block.
Every 3,000,000 blocks (~1 year) forging rewards are reduced by 1 LSK, ending at 1 LSK per block after 5 years.
The forging rewards will then stay at 1 LSK per block indefinitely.[12]
The Forging Rewards will be equally distributed through all active (top 101) delegates, same as any network fees.
[https://en.wikipedia.org/wiki/Lisk#Forging]

Name::
* cpt.lskmining,
* cpt.lskmng,

lsknet'Blockchain

lskbcn'Block-Explorer (lskbex)

AddressWpg::
* https://explorer.lisk.io/
* BlockH1 https://explorer.lisk.io/block/13658550407518916215,

lskbcn'Consensus-algorithm (lskcsa)

Description::
Lisk uses Delegated-Proof-of-Stake, a highly secured and flexible consensus model, which elects 101 delegates to create blocks.
[https://changelly.com/supported-currencies]

lsknet'Exchange-value-unit.Consensus (LSKevuC {2016})

Description::
Lisk LSK
Lisk is a new decentralized application platform with its own cryptocurrency.
The platform is based on JavaScript and allows to create and distribute decentralised applications (DApps) and so-called sidechains.
These are custom blockchains integrated into the Lisk’s one.
Lisk uses Delegated-Proof-of-Stake, a highly secured and flexible consensus model, which elects 101 delegates to create blocks.
[https://changelly.com/supported-currencies]

Name::
* cpt.lisk-Consensus-Exval-Token,
* cpt.lskcevt,
* cpt.lsknet'cevt,
* cpt.mnyLsk,

Generic::
* Consensus-exchange-value-token,

lskevuC'Exchange-rate

AddressWpg::
* https://coinmarketcap.com/currencies/lisk/

{time.2017-01-30}
1 BTC = 005,749.10888812 LSK,

lsknet'Bapp

Description::
Bapp (Dapp, Blockchain App, App)
A decentralized application, which is running in a sidechain of Lisk. If you add a bapp to Lisk, an entry will be made on the blockchain. This will "register" it and makes it visible to everyone.
[https://github.com/LiskHQ/lisk-wiki/wiki/Glossary]

Name::
* cpt.lisk'Bapp,
* cpt.lisk'Blockchain-App,
* cpt.lisk'Dapp,
* cpt.lskBapp,

lsknet'Problem

AddressWpg::
* {2017-05-09} Beddows: https://blog.lisk.io/what-happened-with-block-2731040-and-how-we-fixed-it-1c397f692d36,

lsknet'Human

Who created Lisk?
Lisk is a more open alternative to Crypti created by former members of the Crypti Foundation, namely Max Kordek and Olivier Beddows.
[https://github.com/LiskHQ/lisk-wiki/wiki/FAQ#who-created-lisk]

lsknet'Relation-to-ethereum

Description::
Differences from Ethereum
- Lisk and Ethereum both try to provide a platform for a similar idea: Decentralized Applications (Lisk calls them Blockchain Applications[13])
- Lisk is an all-around Blockchain (Decentralized) Application platform, that allows for endless possibilities on the developers and/or entities end to build and create, while Ethereum is a platform that only allows for Smart Contract based projects to be created, which in the end limits the overall potential of a set-goal that individuals project can reach or obtain.
- Lisk uses DPoS, while Ethereum currently uses PoW (they have stated they plan to switch to PoS eventually).[14]
- Applications language: Lisk uses Javascript, while Ethereum currently uses Solidity.[15]
- Applications location: Lisk uses sidechains, while Ethereum currently stores it on the main chain.[16]
- Error handling: In Lisk, if your application has an issue it will be contained to only your chain, but require a hard fork to fix. In Ethereum, applications are run in a virtual machine on the main chain so any error should just result in the waste of transaction fees, but be contained to the VM (as long as there is no bug in the VM).
- Applications VM: Ethereum applications are run in the Ethereum Virtual Machine (EVM). Lisks does not have a VM, but it is in development.
[https://en.wikipedia.org/wiki/Lisk#Differences_from_Ethereum]

lsknet'Resource

AddressWpg::
* https://lisk.io/
* https://github.com/LiskHQ/lisk-wiki/wiki,
* https://explorer.lisk.io/delegateMonitor,
* https://blog.lisk.io/what-is-lisk-and-what-it-isnt-e7b6b6188211, (Max Kordek)

lsknet.EVOLUTING

{time.2016-05-24}:
=== mainnet live:
On May 24, 2016, the main network for Lisk went live and it became available for trading on major exchanges.
[https://github.com/LiskHQ/lisk-wiki/wiki]

bcnnet.time.Waves (WAVESnet {2016-04-15})

Description::
WAVES is a decentralized blockchain platform focusing on custom blockchain tokens operations.
National currencies transfer is maintained on the WAVES blockchain through compliant gateway operators.
Decentralized token exchange facilitates fundraising, crowdfunding, and trading of financial instruments on the blockchain.
Lightweight clients provide an easy installation procedure and a flat learning curve for end users.
[https://wavesplatform.com/whitepaper_v0.pdf]

Name::
* cpt.bcnnet.waves,
* cpt.netWaves,
* cpt.waves-network,
* cpt.wavesnet,

wavesnet'Protocol (wavprl)

wavprl'White-paper

AddressWpg::
* {2016-04-01} https://blog.wavesplatform.com/waves-whitepaper-164dd6ca6a23#.4b9dzixu9,

WAVES whitepaper.

Abstract

WAVES is a decentralized blockchain platform focusing on custom blockchain tokens operations.
National currencies transfer is maintained on the WAVES blockchain through compliant gateway operators.
Decentralized token exchange facilitates fundraising, crowdfunding, and trading of financial instruments on the blockchain.
Lightweight clients provide an easy installation procedure and a flat learning curve for end users.

Introduction

‘Hypothesis: Every conceivable application of blockchain technology will be tried, but p2p digital cash will remain most used application’.
Ryan X Charles

‘The killer application of blockchain technology is the blockchain itself.’
Common wisdom

Since its inception, blockchain technology has been fraught with controversy over its most natural application -- value transfer using the network token.
Decentralized money is a ground-breaking development, but blockchain technology cannot be reduced to this alone.
Being essentially a distributed database, the blockchain allows for various types of distributed ledger entries, the nature of which depends on their interpretation by the blockchain’s users.

Introducing the blockchain as a foundation for digital cash attracted a great deal of attention to the technology, putting regulators and governments worldwide on high alert in the process.
There is no doubt that Bitcoin will establish itself as a valid monetary system.
But it is also obvious that there should not be too many blockchain tokens in use as money at the present time, since the low liquidity and high volatility this causes prevent the use of emerging blockchains as a secure store of value.

We propose to focus on other uses of blockchain tokens -- those which are often overlooked in favor of the low-level opportunities which blockchain technology might provide, such as smart contracts.
There is very strong untapped potential in a classical colored coins approach, and the WAVES platform is designed to realize this to its fullest extent.

Smart contracts, being a natural development of Bitcoin scripting, are inevitable and will be one of the cornerstones of blockchain technology.
On the other hand, certain features are much easier to implement using other approaches.
Custom tokens operations realized as an attachment to blockchain transactions are very flexible and can be used in a variety of applications, from national currencies transfer over the blockchain to decentralized trading.
A focus on such operations might well complement the approach introduced by Ethereum.[1]

In the following sections we will describe the technical motivation for WAVES platform’s features and illustrate them with use cases.
We intend to determine the most “production-ready” aspects of current blockchain technology and apply them to the real-world problems.

Custom blockchain tokens and their usage.

Technical motivation.

Blockchain assets and colored coins approaches emerged around 2013, when several protocols utilizing Bitcoin’s blockchain were implemented. [4] [5] [6]
Besides this, there were several attempts to build custom blockchain tokens platform from scratch, of which the most notable is Nxt. [7]

We develop the approach which Nxt implemented, realizing custom tokens creation and transfer through attachments added to blockchain transactions.
This approach has clear merits, such as the ability to implement new transaction types easily, but from practical point of view it is fraught with the problem of mandatory hard forks -- when adding a new transaction type, network client software has to be updated, since old clients cannot support new transaction types.

WAVES approaches this problem by offering an extensible solution, in which new transaction types are introduced through plug-ins that are not included in the core software module, but are instead installed as an extension on top of it.
Clients that do not have the relevant plug-in installed can still relay these custom transactions.
This approach allows third-party developers to introduce new transaction types, and creates an Appstore-like ecosystem.

Only the most basic transaction types are supported at the core level, including:
- Custom token creation, deletion and transfer
- Decentralized token exchange, realized as a distributed order-matching engine, where Bid and Ask network transactions are matched against each other
- Anonymity features -- anonymous order books are a must for an industry-grade trading platform

It should be noted that WAVES makes a crucial step ahead with decentralized blockchain trading by offering trading of one custom token against another (asset-to-asset trading).
This opens up a whole new range of opportunities, including trading against tokens tied to national currencies, thus replicating traditional trading infrastructures.

Use cases
National currencies on the blockchain.

Although using the main network token for value transfer is quite natural, it nevertheless raises several issues. Use of low-liquidity and highly volatile tokens for value transfer has obvious drawbacks for merchants, and creates tension with regulatory bodies. Still, fully decentralized money is viable, which is demonstrated by the slow but steady adoption of Bitcoin as a currency.

However, in order to provide sufficient liquidity and mitigate the volatility that prevents decentralized money usage as a store of value, the overall number of tokens used as currency should be limited (at least in the initial stages of the development of the technology). We strongly advocate using only Bitcoin as a currency for this reason.

Our approach to handling external value transfer tokens and currencies stems from the ‘Multigateway’ approach.[2] In the case of Bitcoin there is a party (or multi-sig parties) that maintains an in-and-out exchange procedure for Bitcoin, swapping it for its corresponding network token. Thus we facilitate Bitcoin transfers using the WAVES blockchain.

This approach is obviously centralized, due to limitations inherent in Bitcoin itself. It is opposed to a “market peg” approach, which relies on providing a dynamic peg though certain market-making procedures. At first sight the market peg approach may seem to be an adequate way of mirroring financial assets on decentralised platform, but with further consideration hidden centralization invariably surfaces.

By explicitly introducing centralization into supporting blockchain national currencies and BTC we are able to open new horizons for existing financial institutions. Their role can be reduced to providing liquidity for their fiat assets and KYC/AML procedures. Maintaining payment infrastructure is fully outsourced to decentralized blockchains.

This approach to providing national currencies on the blockchain was pioneered with the CoinoUSD token on Nxt’s blockchain. It is also similar to Ripple’s gateways approach. We believe that such a strategy can compete with the emerging permissioned blockchains approach and attract financial institutions willing to work on open blockchains.

Crowdfunding, decentralized financial instruments and beyond.

We believe that blockchains are an effective means for managing most aspects of community-based projects, from financial to organizational elements. Blockchain technology, due to its innate latency, cannot support high-frequency trading. Most probably centralized solutions will always be preferable for high-volume transactions with milliseconds execution times. But for applications in which instant transactions are not required, blockchains provide a very natural environment -- for example, for issuing crowdfunding tokens and managing financial flows within a community. This is an area in which using decentralized solutions is beneficial and centralization brings little to the table.

If we consider a Kickstarter-like model of pledging certain amounts of money in exchange for a product to be released in the future, we can see its obvious limitations. A project backer cannot exit her “investment” in the project by selling it another user. On the other hand such a use case is very natural using a blockchain-based system, where custom tokens can be swapped and transferred by design.

Issuing securities is highly regulated in most jurisdictions. Tokens can be associated with securities, especially if some projections about future token price are made or a token issuer promises to pay certain dividend. However, the blockchain is a regulation-agnostic instrument. If a legal entity wishing to utilize the blockchain for a securities issue is compliant with local laws and regulations then issuing securities on a blockchain is as legitimate as conducting a stock exchange listing.

Start-up fundraising, private investment placements and venture-stage investments seem to be the most appropriate areas for blockchain-powered financial instruments. On the other hand it can be used by a larger businesses for specific financial operations too, such as clearing and settlement, so long as these do not entail overly taxing speed requirements.

In most jurisdictions (notably excluding the US), blockchain-based fundraising that does not exceed a given limit can be carried out perfectly legally. Equity crowdfunding laws in the US allow fundraising with a simplified SEC registration procedure.

Strict US securities laws are intended to prevent fraud, and for this a strong centralized watchdog, such as US Securities and Exchange Commission, is needed. But the advance of decentralized technology can introduce some form of community and decentralized issuer vetting, which might eventually replace centralized regulators.

Having crowdfunding as one of WAVES platform’s main use cases means that some form of decentralized KYC/AML must be integrated into the system core. To that end we are realizing a decentralized reputation system, which should eliminate unscrupulous actors on the WAVES blockchain.

Lightweight clients, two-tier architecture, Proof of Stake, and usability.

Technical motivation.

Two-tier architecture and lightweight clients.

The classic Bitcoin approach is essentially a way to synchronize a distributed system through common transaction logs.
It requires that each network node store the full copy of the transaction history.
Obviously this does not scale well, since eventually not every node will be able to store the full history.
There are different ways to mitigate this -- a simplified payment verification procedure that allows storage of only that data essential for a given node; off-chain transactions; bidirectional payment tunnels; reducing blockchain bloat; working directly with the system state [8].
With the simplest approach, where all nodes are equal at Genesis block, centralization may emerge as low-capacity nodes have to rely on full, high-capacity nodes that can afford to store the full blockchain.
Effectively, a two-tier architecture emerges.

Does this make the system inherently centralized?
No, since a new node can always enter the network and become a full node if it has sufficient resources.

Of course, emerging centralization brings trust issues, since lightweight nodes have to trust the full nodes and can become a victim of a rogue full node.
However, there are ways to mitigate this, such as polling several nodes, maintaining trusted nodes lists, and so on.

WAVES platform enforces an approach that might at first seem extreme to a classic cryptocurrency advocate.
Lightweight nodes do not download the blockchain at all, instead relying on full nodes for payment verification and network interaction.
The approach is based on the SuperNET lite client[3] that has successfully been run on the Nxt platform for over a year.

WAVES is built on the Scorex platform,[8] which develops an approach based on using current network state as an alternative to full transaction history.
A simplified payment verification procedure will be realized for the lightweight node, adding another security layer.
System state can be downloaded by a lightweight node, and simplified payment verification procedures based on this.

Proof-of-stake consensus, stake leasing.

We have chosen the Proof-of-Stake protocol as a consensus algorithm for WAVES. This choice is based on its successful use in Nxt, as well as on certain theoretical considerations. At the same time we propose an enhancement to the PoS protocol, which should provide for reduced transaction times and increased transaction throughput -- Leased PoS (LPoS).

In a PoS system each node that holds a balance in the main network token has a chance (proportional to its balance) to produce a block.
In the two-tier architecture it is logical to move payment processing onto the full nodes alone.
At the same time, all nodes with non-zero balances still have to be eligible for staking rewards.

The theoretical issue of reduced security caused by fewer nodes staking can be addressed through explicit balance leasing from lightweight nodes to full nodes.
By leasing their balance to a trusted full node a lightweight node actually increases its chance of collecting transaction fees, since it does not have to stay online, and the full node has an increased chance of producing a block due to its increased balance.

Account leasing is not equivalent to balance transfer; a lightweight node can still transfer its balance to another node and conduct other operations.
By leasing out their balance, lightweight nodes effectively select which full nodes will carry out most of the network’s payment processing.
Reducing the number of nodes that can potentially produce blocks allows for faster confirmation times, lower latency, and a higher system throughput.

Lightweight nodes realization and browser plugins.

The lightweight node is realized as a browser plugin written in JavaScript. It interacts with Scorex-based full nodes. The plugin is installed from browser app-stores. Since no blockchain download is needed a user obtains a fully-fledged blockchain-powered wallet immediately following a simple installation procedure.

The wallet interface resembles traditional online banking/brokerage interfaces. Integrated national currencies allow for native value transfer denominated in fiat. Exchange of national currencies into and out of the blockchain is carried out by a trusted provider. Once a user has completed the national currency token purchase she can transfer it to another user or trade with it on a decentralized exchange.

Asset-to-asset trading makes it possible to provide a stock market-like trading interface, by allowing trading against USD, EUR, CNY, and so on. All in all, the platform interface is closer to traditional financial interfaces than to a normal cryptocurrency client. We find it important to provide an interface to which most users are already well accustomed, at the same time as empowering it with blockchain technology. Users can do things they were unable to do with traditional financial platforms, but the learning curve remains flat, which is a key to mass-market adoption.

Additional key WAVES features.

WAVES targets in the first place community-based development and projects.
To that end decentralized voting and messaging are implemented.
It will allow for a DAO-like experience in managing community projects, whilst remaining straightforward from a technical point of view.
WAVES will allow payment of network transaction fees in custom tokens (assets).
Along with the transaction in question, an order to exchange the asset into the main network token is sent to the decentralized exchange, and the transaction can be included in the next block only after that order has been executed.

Conclusion.

WAVES platform is being built with mass adoption in mind from the start.
In this general overview we have attempted to show the technical solutions that may be used to give the end-user previously unseen opportunities, and to pave the way for the rapid adoption of blockchain technology.

References.

[1] https://github.com/ethereum/wiki/wiki/White-Paper

[2] http://multigateway.org/

[3] https://github.com/Tosch110/SuperNet-Lite

[4] https://github.com/CounterpartyXCP

[5] https://github.com/OpenAssets/open-assets-protocol

[6] https://github.com/OmniLayer/spec

[7] http://wiki.nxtcrypto.org/wiki/Whitepaper:Nxt

[8] http://arxiv.org/abs/1603.07926

wavesnet'Blockchain (wavbcn)

wavbcn'Block-Explorer (wavbex)

AddressWpg::
* http://wavesexplorer.com/
* http://wavesexplorer.com/blocks/1,

wavbcn'Consenus-algorithm

Description::
Q: Why are you using PoS rather than PoW?
A: Proof of work might be more secure in theory, but I still consider it to be an inelegant solution to the problem of consensus due to the wasted computational resource. Something better will come in time. Meanwhile, PoS is the way to go.
Q: Is the PoS consensus system the same as in the Nxt system?
A: At launch we will use a ‘plain vanilla’ PoS. Classical PoS is good enough for all intents and purposes. (‘Nothing-at-stake’ arguments are of a purely theoretical nature.) There will be improvements later, possibly including an entirely new kind of PoS system.
[https://wavestalk.org/general-discussion/waves-faq/]

wavesnet'Exchange-value-unit.Consensus (WAVESevuC)

Description::
Waves (WAVES)
$0.443330 (3.29%)
0.00037363 BTC (2.02%)
Market Cap
$44,333,000
37,364 BTC
Volume (24h)
$169,417
142.78 BTC
Circulating Supply
100,000,000 WAVES
[https://coinmarketcap.com/currencies/waves/] {2017-04-15}

Name::
* cpt.wavesnet'cevt,
* cpt.WAVEScevt,

wavesnet'Funding

Description::
Q: How much funding did Waves receive?
A: 29,636 bitcoins were crowdfunded from 5,790 participants in April and May 2016, with a market value of around $16 million at the time the ICO ended.
[https://wavestalk.org/general-discussion/waves-faq/]

wavesnet'Reletion-to-ethereum

Description::
Q: What is the difference between Waves and Ethereum?
A: Ethereum is developing bitcoin scripting for smart contracts. It’s powerful but makes certain things very complicated.
We took another road where things are simpler: it’s very easy to add all the functionality you need using plug-ins, so you don’t have to code complicated contracts.
Also, our focus is on mass adoption.
We’re specifically targeting two markets: fiat transfers on the blockchain and crowdfunding on the blockchain.
They are ripe for disruption, and we’ll be offering a product for a very general audience.
[https://wavestalk.org/general-discussion/waves-faq/]

wavesnet'Resource

AddressWpg::
* http://wavesexplorer.com/
* https://waveswallet.io/
* http://assets.wavesplatform.com/

wavesnet'Service (wavsvc)

Description::
We’re specifically targeting two markets: fiat transfers on the blockchain and crowdfunding on the blockchain. They are ripe for disruption, and we’ll be offering a product for a very general audience.
[https://wavestalk.org/general-discussion/waves-faq/]
===
A universe of tokens
WAVES is a decentralized platform that allows any user to issue, transfer, swap and trade custom tokens directly on the blockchain.
Decentralized trading
WAVES uses blockchain technology to offer an integrated exchange which does not depend on a central authority, server, or static infrastructure.
Your gateway to the world
The gateways partnered with WAVES make it a breeze to swap digital assets for traditional money right in your bank account, and vice versa.
Blockchain voting
WAVES also includes an innovative means of decentralized voting, with no single authority or the risk of manipulation this carries.
Decentralized crowdfunding
WAVES integrates its own crowdfunding platform, Crowdstarter, which allows entrepreneurs to launch their projects easily and in a decentralized manner.
Innovative reputation system
Absence of governance carries its own risks. WAVES' decentralized reputation system will play a key role in bringing confidence to the assets ecosystem.
[https://wavesplatform.com/]

wavsvc.DEX

Description::
The Blockchain platform Waves has announced the release of its own decentralized exchange, DEX, on its mainnet.
The exchange, which Waves hopes will improve on previous attempts at decentralized trading with new features, is available via a full node or through the API. Later, the resource will become available to all users.
[https://cointelegraph.com/news/waves-debuts-dex-decentralized-exchange-mining-power-leasing {2017-03-30}]

wavesnet.EVOLUTING

{time.2016}:
=== Genesis:
[https://blog.wavesplatform.com/wavesplatform-mainnet-launched-22f65b46d6af#.sxfb1vnjr, {2016-06-10}]
===
Q: Do you have a rough timeline for development?
A: There is a strong emphasis on fast development. Full launch will be in late summer 2016. [https://wavestalk.org/general-discussion/waves-faq/]

bcnnet.time.Decred (DCRnet {2016-02-08})

Description::
An open, progressive, and self-funding cryptocurrency with a system of community-based governance integrated into its blockchain.
[https://github.com/decred]
===
Decred is a cryptocurrency, similar to Bitcoin, with a strong focus on community input, open governance and sustainable funding and development.
It utilizes a hybrid “proof-of-work” and “proof-of-stake” mining system to ensure that a small group cannot dominate the flow of transactions or make changes to Decred without the input of the community.
A unit of currency is called a ‘decred’ (DCR).
To ensure the integrity of the currency and prevent people from making fraudulent transactions or creating their own coins, Decred uses a method of recording transactions known as a blockchain.
[https://docs.decred.org/]

Name::
* cpt.bcnnet.Decred,
* cpt.dcrnet,
* cpt.netDcr,
* cpt.netDecred,
* cpt.Decred-network,
===
DEcentralized-CREDit,

Generic::
* Blockchain-network-with-builtin-decentralized-governance,
* Exchange-value-unit-blockchain-network,

dcrnet'Protocol

dcrprl'Constitution (dcrcttn)

AddressWpg::
* https://docs.decred.org/getting-started/constitution/,

Decred Constitution
Decred (/ˈdi:ˈkred/, /dɪˈkred/, dee-cred) is an open, progressive, and self-funding cryptocurrency with a system of community-based governance integrated into its blockchain. The project mission is to develop technology for the public benefit, with a primary focus on cryptocurrency technology. Decred, as a currency and as a project, is bound by the following set of rules, which include guiding principles, a system of governance, and a funding mechanism. These rules have been established in an effort to create an equitable and sustainable framework within which to achieve Decred's goals.

Principles

Free and Open-Source Software - All software developed as part of Decred shall be free and open source-software.

Free Speech and Consideration - Everyone has the right to communicate opinions and ideas without fear of censorship. Consideration shall be given to all constructive speech that is based in fact and reason.

Multi-Stakeholder Inclusivity - Inclusivity represents a multi-stakeholder system and an active effort shall be maintained to include a diverse set of views and users. While it would be ideal to include everyone, Decred shall comply with all relevant bodies of law in the jurisdictions where applicable, such as embargoes and other trade sanctions.

Incremental Privacy and Security - Privacy and security are priorities and shall be balanced with the complexity of their implementations. Additional privacy and security technology shall be implemented on a continuing and incremental basis, both proactively and on-demand in response to attacks.

Fixed Finite Supply - Issuance is finite and the total maximum number of coins in Decred shall not change. The total maximum supply for Decred is 20,999,999.99800912 coins, with a per-block subsidy that adjusts every 6,144 blocks (approximately 21.33 days) by reducing by a factor of 100/101. The genesis block subsidy starts at 31.19582664 coins.

Universal Fungibility - Universal fungibility is fundamental to Decred being a store of value and attacks against it shall be actively monitored and countermeasures pursued as necessary.

Blockchain Governance

Governance of the network occurs directly through the blockchain via hybridization of a block's proof-of-work ("PoW") with its proof-of-stake ("PoS"). PoS contributors, known as stakeholders, can effectively override PoW contributors, known as miners, if 60% or more of the stakeholders vote against a particular block created by a miner.

A lottery system is used to determine which stakeholders vote on each block and collect a subsidy.

To be a stakeholder, one must purchase one or more tickets, which entails locking a specified amount of coins for approximately 1 day (256 blocks).

After waiting for the ticket to mature, the ticket is entered into a lottery that runs once per block where the winning tickets gain the ability to vote on the previous block.

Stakeholders must wait an average of 28 days (8,192 blocks) to vote their tickets, and during this time the coins used to purchase the ticket remain locked. The wait may be much longer or shorter than the average of 28 days because the ticket selection process is pseudorandom. Tickets expire after approximately 142 days (40,960 blocks).

Stakeholder votes recorded in the blockchain are rewarded with 6% of each block subsidy, and each block can have up to 5 votes for a total of 30% of each block subsidy.

PoW receives 60% of each block subsidy, subject to the constraint that their subsidy scales linearly with the number of PoS votes included, e.g. including 3 of 5 votes reduces PoW subsidy by 60%.

The votes themselves decide by majority decision whether the general transaction tree of the previous block, including the PoW subsidy, is valid. Thus, if PoS voters vote against a particular PoW block, it destroys the PoW subsidy (and development subsidy) and invalidates any regular transactions within that block.

Additional vote bits may be set when stakeholders submit votes, allowing stakeholders to vote on matters besides the previous block.

Project Governance

Off-chain decision-making shall be used to resolve disputes related to development and voted on by the Decred Assembly as they arise, as an effective proof-of-assembly ("PoA"), until such time PoA is integrated into the blockchain.

The Decred Assembly shall be composed of diverse Assembly members who are selected for membership by the Admission Council from the project ecosystem for representation.

Councils that are composed of Assembly members shall be formed to address ongoing and episodic matters. The initial Councils shall serve the separate functions of admission (Admission Council), creation (Creation Council), and attrition (Attrition Council).

The Admission Council shall vote on the inclusion of new members into the Assembly. All additional Councils shall be created by the Creation Council. The Attrition Council shall be responsible for deactivating both Councils and Assembly members as necessary.

Membership of the Decred Assembly shall consist of Assembly members who have been confirmed by a 60% or greater affirmative vote by the Admission Council. There is no restriction on the age or nationality of Assembly members, the only requirement is that of merit as judged by the Admission Council. Merit is judged on the basis of two characteristics: (1) the amount of time over which one has been involved with the project, and (2) one's body of work and its impact in the context of the project.

Attrition is embraced by temporarily deactivating or actively expelling Assembly members by a 60% or greater affirmative vote by the Attrition Council on the basis of: (1) substantial non-fulfillment of duties for one or more Councils or the Assembly, and/or (2) counterproductive behaviour that goes against the framework set forth in the Constitution without constructive action toward solutions.

All matters formally presented to a Council shall be resolved by a vote in 365 days or less.

Funding

Sustainability and longevity require that a subsidy of 10% of all block rewards be given to a development organization on an ongoing basis. The initial development organization shall be Decred Holdings Group LLC ("DHG"), a Nevis LLC that is responsible for funding work related to the development of the project, such as software development, infrastructure, and awareness.

DHG shall only fund work that adheres to the guiding principles.

DHG shall issue public financial statements every six months, starting March 8th, 2016. The frequency of financial statements may increase with activity, but it shall not occur more often than quarterly.

DHG shall put forth a budget proposal each year on March 8th, after the corresponding public financial statement has been issued.

The Funding Council shall review, propose changes, make changes, and ultimately approve the proposal by April 8th, one month from the initial budget proposal.

Final approval of the budget via PoA vote shall occur after Funding Council approval by April 18th, two months from the initial proposal.

DHG shall make public requests for proposals ("RFPs") for projects that are to be completed by parties on a contractual basis. RFPs shall include a scope and an explanation of how the work shall benefit the project. Parties that submit proposals shall be required to include: (1) a detailed description of the work to be performed, (2) a series of milestones that can be verified as work is completed, and (3) a quote for the work, itemized by milestone, in U.S. Dollars ("USD").

All proposals, both submitted and accepted, shall be made public one week after a proposal has been selected. Once the selection occurs, the associated RFP shall be removed. Contracted parties shall be paid exclusively in decred ("DCR") at the current effective DCR/USD rate at the time of payment, unless specifically noted otherwise.

In the future, the development organization may need to change from DHG to another entity that serves an identical function. If and when this occurs, DHG shall transfer all assets to the new entity and the development subsidy shall be directed to the new entity.

dcrnet'Node (dcrnod)

Name::
* cpt.dcrnet'computer-in-the-Decred-network,
* cpt.dcrnod,

Generic::
* Blockchain-network-node,

dcrnod'Peer

FAQ.5. Why am I connecting to only 8 outbound peers?
There is an intentional unconfigurable limit of 8 outbound peers. More outbound peers than that does not help you in any way and is actually worse for both you and the network. This has been tested extremely thoroughly in Bitcoin, including btcsuite (the upstream project for Decred). All you would do by upping your outbound connections is waste valuable slots of the relatively few public peers there are (there are always a much higher number of “leechers” than there are “seeders”).

On the other hand, increasing your maximum connections, which really just increases the number of allowed inbound connections, helps the network by ensuring there are more slots available for new nodes and SPV clients which Decred does not have yet, but it will.
[https://docs.decred.org/faq/configuration/#5-why-am-i-connecting-to-only-8-outbound-peers]

dcrnod.MINER

dcrnet'Mining

dcrnet'mining.POOL

AddressWpg::
* https://docs.decred.org/mining/proof-of-work/solo-mining/cgminer/windows/

Mining-pool

Sign up for a mining pool
These mining pools are known to support Decred:
http://yiimp.ccminer.org
http://coinmine.pl/dcr
https://dcr.maxminers.net
https://dcr.suprnova.cc
https://pool.mn/dcr
https://zpool.ca
Mining pools all work more or less the same but you may wish to sign up at multiple pools and see which one suits you the best.
[https://docs.decred.org/mining/proof-of-work/#sign-up-for-a-mining-pool]

PoW-Mining
PoS-Mining

dcrnet'mining.SOLO

AddressWpg::
* https://docs.decred.org/mining/proof-of-work/solo-mining/cgminer/windows/

PoW-Mining

Description::
Solo mining is not recommended and is not covered by this documentation! The Decred network regularly sees a network hash rate of up to 10,000Gh/s. Solo mining is generally only done by advanced individuals or organized groups with a large cluster of GPUs so it is not addressed here.
[https://docs.decred.org/mining/proof-of-work/]

PoS-Mining

Description::
When you mine in a pool, your hashrate is combined with all the other pool miners’ hashrates to look for the correct solution for a block. You will receive a reward based on the amount of work your miner performs in the pool. Pool mining distributes shares based on blocks found so you can earn a steady amount of Decred rather than the “all or none” of solo mining.
[https://docs.decred.org/mining/proof-of-work/]

dcrnet'Blockchain (dcrbcn)

dcrbcn'Block (dcrblk)

Name::
* cpt.dcrblk,

dcrblk'Hash

block 00000000000004ffcf24b4a7ba827766cdd7bd1f31a42b6c8b83584a068eb154

dcrblk'Header

Block header format
Decred block headers occupy 180 bytes when serialized. The serialization format for a block header is displayed below:

Field    Description    Size
* dcrblk'Version        Block header version    4 bytes
* dcrblk'Previous_block    Hash of the previous block    32 bytes
* dcrblk'Merkle_root    Merkle tree hash calculated using all transactions in the block    32 bytes
* dcrblk'Stake_root    Merkle tree hash calculated using all stake transactions in the block    32 bytes
* dcrblk'Vote_bits    Bit flags. Currently only used to signify votes on the previous merkle root    2 bytes
* dcrblk'Final_state    Commitment to the final state of the PRNG (for lottery purposes)    6 bytes
* dcrblk'Voters        Number of participating voters in the block    2 bytes
* dcrblk'Fresh_stake    Number of new tickets in the block    1 byte
* dcrblk'Revocations    Number of revocations present in the block    1 byte
* dcrblk'Pool_size    Size of the ticket pool    4 bytes
* dcrblk'Bits        Difficulty target for the block    4 bytes
* dcrblk'SBits        Stake difficulty target for the block    8 bytes
* dcrblk'Height        The number of blocks that precede the block in the blockchain    4 bytes
* dcrblk'Size        Number of bytes that the serialized block occupies    4 bytes
* dcrblk'Timestamp    Time that the block was created    4 bytes
* dcrblk'Extra_data    The nonce and any other data that may be used later for consensus purposes    40 bytes
Example encoded block header
0x01, 0x00, 0x00, 0x00, // Version 1
0x6f, 0xe2, 0x8c, 0x0a, 0xb6, 0xf1, 0xb3, 0x72, // PrevBlock
0xc1, 0xa6, 0xa2, 0x46, 0xae, 0x63, 0xf7, 0x4f,
0x93, 0x1e, 0x83, 0x65, 0xe1, 0x5a, 0x08, 0x9c,
0x68, 0xd6, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3b, 0xa3, 0xed, 0xfd, 0x7a, 0x7b, 0x12, 0xb2, // MerkleRoot
0x7a, 0xc7, 0x2c, 0x3e, 0x67, 0x76, 0x8f, 0x61,
0x7f, 0xc8, 0x1b, 0xc3, 0x88, 0x8a, 0x51, 0x32,
0x3a, 0x9f, 0xb8, 0xaa, 0x4b, 0x1e, 0x5e, 0x4a,
0x3b, 0xa3, 0xed, 0xfd, 0x7a, 0x7b, 0x12, 0xb2, // StakeRoot
0x7a, 0xc7, 0x2c, 0x3e, 0x67, 0x76, 0x8f, 0x61,
0x7f, 0xc8, 0x1b, 0xc3, 0x88, 0x8a, 0x51, 0x32,
0x3a, 0x9f, 0xb8, 0xaa, 0x4b, 0x1e, 0x5e, 0x4a,
0x00, 0x00, // VoteBits
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // FinalState
0x00, 0x00, // Voters
0x00, // FreshStake
0x00, // Revocations
0x00, 0x00, 0x00, 0x00, //Poolsize
0xff, 0xff, 0x00, 0x1d, // Bits
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // SBits
0x00, 0x00, 0x00, 0x00, // Height
0x00, 0x00, 0x00, 0x00, // Size
0x29, 0xab, 0x5f, 0x49, // Timestamp
0xf3, 0xe0, 0x01, 0x00, // Nonce
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ExtraData
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
[https://docs.decred.org/advanced/block-header-specifications/]

dcrblk.Block1

Block #1
BlockHash 000000000000437482b6d47f82f374cde539440ddb108b0a76886f0d87d126b9
Summary
Number Of Transactions    1
Height    1 (Mainchain)
Block Reward    1680000.00000000 DCR
Timestamp    Mon, 08 Feb 2016 18:02:15 GMT
Merkle Root   
b4895fb9d0b54822550828f2ba07a68ddb1894796800917f8672e65067696347
Stake Root   
0000000000000000000000000000000000000000000000000000000000000000
Previous Block    0
VoteBits    1
Final State    000000000000
Voters    0
FreshStake    0
Revocations    0
PoolSize    0
Difficulty    32767.74999809
SBits    2
Bits    1b01ffff
Size (bytes)    113521
Version    1
Stake Version    0
Nonce    3671491438
Next Block    2
[https://mainnet.decred.org/block-index/1]

dcrblk.Block0

Description::

Block #0
BlockHash 298e5cc3d985bfe7f81dc135f360abe089edd4396b86d2de66b0cef42b21d980
Summary
Number Of Transactions    1
Height    0 (Mainchain)
Block Reward    0 DCR
Timestamp    Mon, 08 Feb 2016 18:00:00 GMT
Merkle Root   
66aa7491b9adce110585ccab7e3fb5fe280de174530cca10eba2c6c3df01c10d
Stake Root   
0000000000000000000000000000000000000000000000000000000000000000
VoteBits    0
Final State    000000000000
Voters    0
FreshStake    0
Revocations    0
PoolSize    0
Difficulty    32767.74999809
SBits    2
Bits    1b01ffff
Size (bytes)    0
Version    1
Stake Version    0
Nonce    0
Next Block    1
[https://mainnet.decred.org/block-index/0]

dcrbcn'Block-Explorer (dcrbex)

AddressWpg::
* https://mainnet.decred.org/
* blockH0: https://mainnet.decred.org/block/298e5cc3d98...86d2de66b0cef42b21d980,

dcrbcn'Consensus-algorithm

Description::
Each block in the blockchain is a record of transactions that have occurred since the last block (about 5 minutes).
Every computer (node) in the Decred network shares this blockchain.
Nodes in the network run an algorithm many times over a block looking for a solution with a known difficulty.
This process is known as “proof-of-work” mining.
Once the solution is found it is broadcast to the network.
The network then verifies the solution (finding the solution is very hard, but verifying it is easy).
Decred uses an extra step of verification known as “proof-of-stake” mining.
Stakeholders who have purchased tickets now have the chance to vote on the block.
5 tickets are chosen randomly from the ticket pool and if at least 3 of them vote ‘yes’ the block is permanently added to the blockchain and the transactions are cleared.
Both PoS and PoW miners are compensated with DCR for the resources used to mine the block.
[https://docs.decred.org/]

Name::
* cpt.dcrnet'consensus-algorithm,
* cpt.dcrnet'block-verification,
* cpt.dcrnet'transaction-verification,

Overview
Decred has two methods of transaction verification proof-of-work (PoW) and proof-of-stake (PoS).

1. Proof-of-work (PoW) Mining
Proof-of-work mining, more commonly referred to as PoW mining, is the activity of committing your computer’s hardware and resources to process network transactions and build the blocks that make up the blockchain in the Decred network. Each time a block is created (by a miner), about 30 new Decred coins are made. These coins are then split up as follows:
Subsidy    Party
60%    PoW Miners
30%    PoS Voters
10%    Decred development subsidy
You will, on average, receive a reward that is roughly proportional to the hashrate of your miner and the overall hashrate of the network when you commit your computer to PoW mining. To get started, you must have a computer with a video card. Most video cards can be used for mining (including the “mobile” types found in some laptops). In general, higher end video cards perform at higher hashrates and therefore receive higher rewards.

2. Proof-of-stake (PoS) Mining
Proof of Stake mining is the second method of block verification in Decred. It is computationally cheap but it requires you to already have some DCR in your wallet. In the Decred network, PoW miners solve blocks then turn those blocks over to PoS miners to vote on them. When a block is completed, 5 tickets are chosen at random from the ticket pool to vote on the block. If at least 3 votes are ‘Yes’ then the block is validated, included in the block chain and both PoW and PoS miners are paid.
If the vote fails, the block is discarded and the transactions return to be included in another block. The PoW miners are not paid, however the PoS miners are.

This is to incentivize PoW miners to mine according to the wishes of PoS miners.
For example, if the rules of the network change in the future any PoW miners who don’t follow them will not be paid.
It also helps stop large mining pools getting too much influence over the network.
In cryptocurrencies that don’t use PoS, the large groups of PoW miners who effectively control the network can collude to block transactions, stop network changes or even force faked transactions (although this would take a huge amount of resources).
Collusion between PoW and PoS miners is not possible as tickets are not chosen until the time of the vote.
Collusion between PoS miners is likewise remote as the ticket pool is kept at around 40,960 active tickets at any time.
The chance of three tickets belonging to the same individual or group being chosen for the same block is very small.
Even if this did happen every transaction is validated at least twice so the chance of anyone manipulating the blockchain is effectively zero.
[https://docs.decred.org/mining/overview/]

dcrbcn'Address

Description::
9. What are the different types of addresses?
A Decred address is actually just a representation of a public key (which itself could be a script hash) along with a 2-byte prefix which identifies the network and type and a checksum suffix in order to detect improperly entered addresses.

Consequently, you can always tell what type of address it is based on the 2-byte prefix.

The first byte of the prefix identifies the network. This is why all mainnet addresses start with “D”, testnet addresses start with “T”, and simnet addresses start with “S”. The second byte of the prefix identifies the type of address it is.

The most common addresses used at the moment are secp256k1 pubkey hashes, which are identified by a lowercase “s”. It represents a single public key and therefore only has a single associated private key which can be used to redeem it.

The stake pool, however, uses a pay-to-script-hash address, which is identified by the second byte being a lowercase “c” (again that is shown in the linked params). The specific flavor of script it generates is a multi-signature 1-of-2, which is how it allows either the pool, or you, to vote. Both you and the stake pool have your own private keys and since the script only requires one signature of the possible two, that is how it allows delegation of voting rights to the pool without you giving up your voting rights completely.
[https://docs.decred.org/faq/wallets-and-seeds/#9-what-are-the-different-types-of-addresses]

Name::
* cpt.decred-address,

dcrbcn'Hash-rate

Description::
network hash rate of up to 10,000Gh/s.
[https://docs.decred.org/mining/proof-of-work/]

Name::
* cpt.decreed-blockchain-hashing-power,
* cpt.decreed-blockchain-hashing-rate,
* cpt.dcrnet'hash-rate,
* cpt.dcrnet'hashing-power,
* cpt.blockchain-hash-rate,

dcrnet'Exchange-value-unit.Consensus (DCRcevu)

Description::
A unit of currency is called a ‘decred’ (DCR).
[https://docs.decred.org/]

Name::
* cpt.dcrcevt,
* cpt.decret-consensus-exval-token,

Generic::
* consensus-exval-token,

dcrnet'Governance-system (dcrgov)

Description::
Governance
Layered form of transparent meritocratic governance that extends beyond proof-of-work and proof-of-stake mechanisms to bring forward and represent insider and outsider voices in the community [9]
Bottom-up decision-making through the Decred Assembly - an evolving and inclusive list of community members who make non-financial contributions to the project through their work and effort [10]
Project bound by the Decred Constitution on the core principles of finite issuance, privacy, security, fungibility, inclusivity, and progressive development of the technology that keeps these principles together [11]
[https://wiki.decred.org/Main_Page]

Name::
* cpt.dcrgov,
* cpt.dcrnet'governance-system,
* cpt.Decred-governance-system,

dcrgov'Decred-Assembly (dcrasl)

Description::
Off-chain decision-making shall be used to resolve disputes related to development and voted on by the Decred Assembly as they arise, as an effective proof-of-assembly ("PoA"), until such time PoA is integrated into the blockchain.

The Decred Assembly shall be composed of diverse Assembly members who are selected for membership by the Admission Council from the project ecosystem for representation.

Councils that are composed of Assembly members shall be formed to address ongoing and episodic matters. The initial Councils shall serve the separate functions of admission (Admission Council), creation (Creation Council), and attrition (Attrition Council).

The Admission Council shall vote on the inclusion of new members into the Assembly. All additional Councils shall be created by the Creation Council. The Attrition Council shall be responsible for deactivating both Councils and Assembly members as necessary.

Membership of the Decred Assembly shall consist of Assembly members who have been confirmed by a 60% or greater affirmative vote by the Admission Council. There is no restriction on the age or nationality of Assembly members, the only requirement is that of merit as judged by the Admission Council. Merit is judged on the basis of two characteristics: (1) the amount of time over which one has been involved with the project, and (2) one's body of work and its impact in the context of the project.

Attrition is embraced by temporarily deactivating or actively expelling Assembly members by a 60% or greater affirmative vote by the Attrition Council on the basis of: (1) substantial non-fulfillment of duties for one or more Councils or the Assembly, and/or (2) counterproductive behaviour that goes against the framework set forth in the Constitution without constructive action toward solutions.

All matters formally presented to a Council shall be resolved by a vote in 365 days or less.
[idDcrcttnpgov]
===
Decred Assembly
The first of the groups in the layered governance system is the Decred Assembly, a rolling list of the most meritorious members of the Decred community who will be expected to vote episodically on Assembly-wide issues (creating an effective proof-of-assembly) and participate in committees. The Assembly is a threshold meritocracy with rolling appointments for no fixed length of time, where members are admitted on the basis of what they have actually done for Decred not what they promise to do. Assemblypersons will contribute to the advancement of Decred through discussion and voting in various committees that may be long- or short-lived. Proof-of-assembly, in the form of Assembly-wide votes, will be included in the blockchain in the future, but is not included currently.
Additional layers of governance are planned, e.g., proof-of-developers, and will be formalized in conjunction with the community as Decred development progresses.
[https://wiki.decred.org/Introduction]

Name::
* cpt.dcrasl,
* cpt.Decred-Assembly,

dcrnet'Program (dcrpgm)

dcrpgm'Dcrnet-development

Description::
Self-Funded Development
Decred includes a mechanism for self-funding development to ensure the project is and remains sustainable. A major sticking point for many open-source projects is that they require funding to survive, meaning they typically need to ask for donations and are limited by the funding they receive. To ensure that Decred remains free from the problems related to lack of funding, Decred's consensus rules include a 10% development subsidy in each block that is paid to a development organization on an ongoing basis.
The current development organization is Decred Holdings Group, LLC (DHG), a Nevis-based organization. The development organization will be open to anyone who makes contributions to develop Decred, will remain transparent and issue regular financial statements biannually, and will publicly account for how funds are spent. This entity is built to be adaptable and open to community feedback and guidance, and may therefore change in the future if circumstances require adaptation for it to continue serving its goal to make and keep Decred development sustainable as the project and network scale upward.
[https://wiki.decred.org/Introduction]

Name::
* cpt.dcrnet'development,
* cpt.dcrpgm'Dcrnet-development,

dcrpgm'API

Name::
* cpt.dcrapi,
* cpt.Decred-API,

dcrapi'blocks": 105258,

dcrapi'connections": 8,

dcrapi'difficulty": 1.64511796510149e+06,

dcrapi'errors": ""

dcrapi'protocolversion": 2,

dcrapi'proxy": "",

dcrapi'relayfee": 0.01,

dcrapi'testnet": false,

dcrapi'timeoffset": 3,

dcrapi'version": 70000,

dcrpgm'File

Location::
The files and file content are the same on all platforms. The only difference is the file location. Each program (dcrd, dcrwallet, and dcrctl has a directory of its own to store the configuration files.
On Windows they are located in %LOCALAPPDATA% (C:\Users\username\AppData\Local\ you can type that into the Windows explorer location bar to go straight to the folder).
On Linux and other properly behaving UNIX they are in ~/.dcrd/, ~/.dcrwallet/, and ~/.dcrctl/ respectively. These are hidden directories and will not show up with ls, but are accessible using cd .dcrd, cd .dcrwallet, and cd .dcrctl from the home directory.
OS X does not follow the proper UNIX way and puts them in ~/Libraries/Application Support/Dcrd, ~/Libraries/Application Support/Dcrwallet, and ~/Libraries/Application Support/Dcrctl.
Only the dcrd and dcrwallet folders are created by default. If you want to store the login information for dcrctl you will need to manually create the directory for it.
[https://docs.decred.org/advanced/storing-login-details/]

SPECIFIC

Name::
* dcrpgm.specific,
* cpt.dcrpgm.specific,

Specific::
* cgminer,
* dcrctl,
* dcrd,
* dcrwallet,

dcrpgm.cgminer

Name::
* cpt.cgminer,
* cpt.cgminer-program,

AddressWpg::
* https://github.com/ckolivas/cgminer,
* https://docs.decred.org/mining/proof-of-work/solo-mining/cgminer/windows/

dcrpgm.dcrd

Description::
dcrd: The node daemon, this command-line application handles block management and consensus.
[https://docs.decred.org/getting-started/beginner-guide/]

Name::
* cpt.dcrd,

dcrd'Option

Application options
Option    Description
-A or --appdata=    Path to dcrd home directory ($HOME/.dcrd)
-V or --version    Display version information and exit
-C or --configfile=    Path to configuration file
-b or --datadir=    Directory to store data
--logdir=    Directory to log output. ($HOME/.dcrd/logs)
-a or --addpeer=    Add a peer to connect with at startup
--connect=    Connect only to the specified peers at startup
--nolisten    Disable listening for incoming connections – NOTE: Listening is automatically disabled if the --connect or --proxy options are used without also specifying listen interfaces via --listen
--listen=    Add an interface/port to listen for connections (default all interfaces port: 9108, testnet: 19108)
--maxpeers=    Max number of inbound and outbound peers (125)
--banduration=    How long to ban misbehaving peers. Valid time units are {s, m, h}. Minimum 1 second (24h0m0s)
-u or --rpcuser=    Username for RPC connections
-P or --rpcpass=    Password for RPC connections
--rpclimituser=    Username for limited RPC connections
--rpclimitpass=    Password for limited RPC connections
--rpclisten=    Add an interface/port to listen for RPC connections (default port: 8334, testnet: 18334)
--rpccert=    File containing the certificate file
--rpckey=    File containing the certificate key
--rpcmaxclients=    Max number of RPC clients for standard connections (10)
--rpcmaxwebsockets=    Max number of RPC clients for standard connections (25)
--norpc    Disable built-in RPC server – NOTE: The RPC server is disabled by default if no rpcuser/rpcpass is specified
--notls    Disable TLS for the RPC server – NOTE: This is only allowed if the RPC server is bound to localhost
--nodnsseed    Disable DNS seeding for peers
--externalip:    Add an ip to the list of local addresses we claim to listen on to peers
--proxy=    Connect via SOCKS5 proxy (eg. 127.0.0.1:9050)
--proxyuser=    Username for proxy server
--proxypass=    Password for proxy server
--onion=    Connect to tor hidden services via SOCKS5 proxy (eg. 127.0.0.1:9050)
--onionuser=    Username for onion proxy server
--onionpass=    Password for onion proxy server
--noonion=    Disable connecting to tor hidden services
--torisolation    Enable Tor stream isolation by randomizing user credentials for each connection
--testnet    Use the test network
--simnet    Use the simulation test network
--nocheckpoints=    Disable built-in checkpoints. Don’t do this unless you know what you’re doing.
--dbtype=    Database backend to use for the Block Chain (leveldb)
--profile=    Enable HTTP profiling on given port – NOTE port must be between 1024 and 65536 (6060)
--cpuprofile=    Write CPU profile to the specified file
--memprofile=    Write mem profile to the specified file
--dumpblockchain=    Write blockchain as a gob-encoded map to the specified file
--miningtimeoffset=    Offset the mining timestamp of a block by this many seconds (positive values are in the past)
-d or --debuglevel:    Logging level for all subsystems {trace, debug, info, warn, error, critical} – You may also specify <subsystem>=<level>,<subsystem2>=<level>,… to set the log level for individual subsystems – Use show to list available subsystems (info)
--upnp    Use UPnP to map our listening port outside of NAT
--limitfreerelay=    Limit relay of transactions with no transaction fee to the given amount in thousands of bytes per minute (15)
--norelaypriority    Do not require free or low-fee transactions to have high priority for relaying
--maxorphantx=    Max number of orphan transactions to keep in memory (1000)
--generate=    Generate (mine) decreds using the CPU
--miningaddr=    Add the specified payment address to the list of addresses to use for generated blocks – At least one address is required if the generate option is set
--blockminsize=    Mininum block size in bytes to be used when creating a block
--blockmaxsize=    Maximum block size in bytes to be used when creating a block (750000)
--blockprioritysize=    Size in bytes for high-priority/low-fee transactions when creating a block (50000)
--getworkkey=    DEPRECATED – Use the –miningaddr option instead
--addrindex=    Build and maintain a full address index. Currently only supported by leveldb.
--dropaddrindex=    Deletes the address-based transaction index from the database on start up, and the exits.
--nonaggressive    Disable mining off of the parent block of the blockchain if there aren’t enough voters
--nominingstatesync    Disable synchronizing the mining state with other nodes
[https://docs.decred.org/advanced/program-options/]

dcrpgm.dcrctl

Description::
dcrctl Usage
dcrctl provides a way to control both the daemon dcrd and the wallet dcrwallet using the json rpc interface without actually writing json.

To simplify the examples we will assume that you have all password stored in the config files.

Stopping the programs
To cleanly shut down the programs:
dcrctl --wallet stop
dcrctl stop
Finding the current block height
dcrctl getblockcount
See your balance
dcrctl --wallet getbalance
Get a new address
dcrctl --wallet getnewaddress
Send funds to an address
dcrctl --wallet sendtoaddress TseGH6Xfq9k8Co6txJbY3kiiM7vpaYzXD4T 13
[https://docs.decred.org/advanced/dcrctl-usage/]

Name::
* cpt.dcrctl,

dcrctl'Command (dcrctl [command])

You can always see all commands with dcrctl -l:

* dcrctl'getbestblock
Get the most recent block and hash in the chain.
{
"hash": "00000000000004c5c0bcd4f35c4d194bfe240f8003dfc97db29eeacc3aeeb4a0",
"height": 105057
}

* dcrctl'getbestblockhash
Get the hash of the most recent block in the chain.

* dcrctl'getblockcount
Get the current number of blocks in the chain.

* dcrctl'getdifficulty
Get the current PoW mining difficulty.
1.83210056947851e+06

* dcrctl'gethashespersec
Get the network hash rate.

* dcrctl'getinfo
Displays some basic info about the network including current block number and network difficulty.
{
"version": 70000,
"protocolversion": 2,
"blocks": 105063,
"timeoffset": 2,
"connections": 8,
"proxy": "",
"difficulty": 1.83210056947851e+06,
"testnet": false,
"relayfee": 0.01,
"errors": ""
}

* dcrctl'getmininginfo
Probably the most useful PoW command. Shows the current block, size and difficulty, as well as the total network hash rate per second.
{
"blocks": 105063,
"currentblocksize": 9482,
"currentblocktx": 6,
"difficulty": 1.83210056947851e+06,
"stakedifficulty": 11938483761,
"errors": "",
"generate": false,
"genproclimit": 1,
"hashespersec": 0,
"networkhashps": 22452086771892,
"pooledtx": 270,
"testnet": false
}

* dcrctl'getnettotals
Gets the amount of data sent and received by the daemon.
{
"totalbytesrecv": 670119,
"totalbytessent": 341359,
"timemillis": 1486387877568
}

* dcrctl'getpeerinfo
Similar to getnettoals, includes network data transfer, time connected, block height when daemon was started and current block height.
[
{
"id": 10,
"addr": "92.222-84-111:9108",
"services": "00000003",
"lastsend": 1486387854,
"lastrecv": 1486387854,
"bytessent": 25517,
"bytesrecv": 63555,
"conntime": 1486382573,
"timeoffset": 2,
"pingtime": 84412,
"version": 2,
"subver": "/dcrwire:0.2.0/dcrd:0.3.0/",
"inbound": false,
"startingheight": 105047,
"currentheight": 105054,
"banscore": 0,
"syncnode": false
},
...
{
"id": 12,
"addr": "[2001:41d0:2:b57f::9]:9108",
"services": "00000003",
"lastsend": 1486387929,
"lastrecv": 1486387929,
"bytessent": 19671,
"bytesrecv": 69002,
"conntime": 1486383848,
"timeoffset": 2,
"pingtime": 113461,
"version": 3,
"subver": "/dcrwire:0.2.0/dcrd:0.7.0/",
"inbound": false,
"startingheight": 105053,
"currentheight": 105063,
"banscore": 0,
"syncnode": true
}
]

* dcrctl'getstakedifficulty
Returns current PoS difficulty.
{
"current": 119.38483761,
"next": 119.38483761
}

* dcrctl'getticketpoolvalue Gets the DCR value of all tickets in the pool.
1.53768733078834e+06

* dcrctl'help ("command")
Show the help for a command.

* dcrctl'missedtickets
Show all of your tickets that missed voting.
{
"tickets": [
"1921eaed456da8352d6735d17881d4b817b01b0acdc2b8547b07c360d3072800",
"281fb62fca76881935c0eed73ead93bccd13b1690fed6f2cdb1299d013012e00",

* dcrctl'rebroadcastmissed
Rebroadcast missed tickets to the network. This is done automatically on starting the wallet.

* dcrctl'rebroadcastwinners
As above, but for voted tickets.

* dcrctl'stop
Stop the daemon.
[https://docs.decred.org/advanced/program-options/]

dcrctl'Command.wallet (dcrctl --wallet [command])

Name::
* cpt.dcrctlCmdWlt,

Wallet server commands (--wallet)
* dcrctl'addmultisigaddress nrequired ["key",...] ("account")
Adds an address that requires multiple signatures to use.

* dcrctl'consolidate inputs ("account") Cleans up funds in multiple addresses in an account and puts it in a single address. Note there is a transaction fee to use this command.

* dcrctl'createmultisig nrequired ["key",...]
Used for multi signature wallets.

* dcrctl'createnewaccount "account"
Create a new account. Note, this makes a new account within the current wallet, NOT a new wallet.

* dcrctl'dumpprivkey "address"
Disabled on mainnet for security reasons.

* dcrctl'encryptwallet "passphrase"
Encrypt the wallet with the given phrase

* dcrctl'getaccount "address"
This command will tell you what account the given address belongs to.

* dcrctl'getaccountaddress "account"
Return the first address in the given account (default is ‘default’).

* dcrctl'getaddressesbyaccount "account"
Get all the addresses in the given account.

* dcrctl'getbalance ("account" minconf=1 "balancetype")
Get the spendable balance in the given account. To get the entire balance in the wallet, use ‘getbalance * 0 all’.

* dcrctl'getbalancetomaintain This is the minimum balance to maintain in the wallet when using auto stake buying.

* dcrctl'getmasterpubkey
Get the public key for your wallet. This will allow people to view, but not spend funds in your wallet. It is safe to provide to others.

* dcrctl'getnewaddress ("account" verbose=false)
Get a new address in the given account.

* dcrctl'getreceivedbyaccount "account" (minconf=1)
Gets the total amount of DCR ever received by this wallet. This includes stake returns so it could be quite large if you’re PoS mining.

* dcrctl'getreceivedbyaddress "address" (minconf=1)
Get funds received by the given address.

* dcrctl'getseed
Disabled on mainnet for security.

* dcrctl'getstakeinfo
Retreive useful information on the current status of the PoS pool. See PoS Commands.
{
"blockheight": 105683,
"poolsize": 44597,
"difficulty": 137.79580711,
"allmempooltix": 0,
"ownmempooltix": 0,
"immature": 0,
"live": 0,
"proportionlive": 0,
"voted": 0,
"totalsubsidy": 0,
"missed": 0,
"proportionmissed": 0,
"revoked": 0,
"expired": 0
}

* dcrctl'getticketfee
Get the average fee being paid for tickets.

* dcrctl'getticketmaxprice
Get the maximum price that your wallet will auto purchase tickets for.

* dcrctl'gettickets includeimmature
Get all your current tickets. Second argument should be true if you want to see immature tickets too.

* dcrctl'gettransaction "txid" (includewatchonly=false) Get the transaction associated with the given id.

* dcrctl'listaccounts (minconf=1)
See all accounts and their spendable balance in your wallet.
{
"default": 0,
"imported": 0
}

* dcrctl'listreceivedbyaccount (minconf=1 includeempty=false includewatchonly=false)
Get a list of all your accounts and the amount of DCR that has been received by them.

* dcrctl'listreceivedbyaddress (minconf=1 includeempty=false includewatchonly=false) Get a list of all your addresses and the amount of DCR that has been received by them.

* dcrctl'listsinceblock ("blockhash" targetconfirmations=1 includewatchonly=false)
List transactions that occurred since the given block hash.

* dcrctl'listtransactions ("account" count=10 from=0 includewatchonly=false)
List the number of transactions as specified by ‘count’ in the given account.

* dcrctl'move "fromaccount" "toaccount" amount (minconf=1 "comment")
Move funds between accounts in the same wallet.

* dcrctl'purchaseticket "fromaccount" spendlimit (minconf=1 "ticketaddress" "comment")
Manually purchase PoS tickets. ‘fromaccount’ will usually be “default”. ‘spendlimit’ is the amount you want to spend on tickets in total, not per ticket.

* dcrctl'renameaccount "oldaccount" "newaccount"
Rename an account in your wallet.

* dcrctl'sendfrom "fromaccount" "toaddress" amount (minconf=1 "comment" "commentto") Send DCR from the given account to the given address. You can add an optional comment.

* dcrctl'sendtoaddress "address" amount ("comment" "commentto") Similar to above but uses the default account to send from.

* dcrctl'setbalancetomaintain balance Used for auto staking. The wallet will auto buy tickets until it reaches this threshold.

* dcrctl'setticketfee fee Set the (non-refunable) fee for purchasing stake tickets. See FAQ#Ticket fee

* dcrctl'setticketmaxprice max Set the maximum price the wallet will pay when auto buying tickets.

* dcrctl'setticketvotebits "txhash" votebits ("votebitsext") Sets the given ticket to vote ‘yes’ or ‘no’ (default yes)

* dcrctl'settxfee amount
Sets the fee per kB of transaction data you are willing to pay. Note this is NOT the same as setticketfee above.

* dcrctl'walletlock
Lock the wallet (no funds can be sent).

* dcrctl'walletpassphrase "passphrase" timeout
Unlock the wallet using the given pass phrase for the given time period in seconds. 0 will unlock the wallet until it is restarted.

* dcrctlc'walletpassphrasechange "oldpassphrase" "newpassphrase"
Change your wallet passphrase.
[https://docs.decred.org/advanced/program-options/]

dcrpgm.dcrwallet (link)

dcrpgm.AMGR (address_manager)

dcrpgm.BMGR (block_manager)

dcrpgm.SRVR (server)

dcrpgm.RPCS (RPC_server)

dcrpgm.Web-client (link)

dcrnet'Wallet (dcrwlt)

Description::
Decred uses a wallet to store, transfer and receive DCR. This wallet signs every transaction in and out with a special public key that is unique to you. This is how the network knows that the address sending the transaction is the correct one. Think of your bank account and PIN. When you use your card (wallet) you also enter your PIN (public key) so the bank knows it was you that authorized the transaction. The main difference here is that the public key is known by everyone on the network whereas your PIN is not. When you start using Decred, you will generate a private key that you must not give to anyone.
[https://docs.decred.org/]
===
Now that you are connected to the network, the next thing you need to do is create a wallet that will hold your account addresses and DCR balance.
If you participate in mining or stake mining, this is where your payments will go.
[https://docs.decred.org/getting-started/user-guides/windows/#create-your-wallet]

Name::
* cpt.dcrwallet,

dcrwlt'Account

Description::
Decred-account is a-collection of addresses.

Name::
* cpt.Decred-account,

dcrctl --wallet createnewaccount "account"
Create a new account. Note, this makes a new account within the current wallet, NOT a new wallet.

dcrctl --wallet listaccounts (minconf=1)
See all accounts and their spendable balance in your wallet.
{
"default": 0,
"imported": 0
}

dcrctl --wallet renameaccount "oldaccount" "newaccount"
Rename an account in your wallet.

dcrctl --wallet getaddressesbyaccount "account"
Get all the addresses in the given account.

dcrwlt.dcrwallet-cli-program (dcrwltCli)

Description::
dcrwallet is a-cli-program to manage addresses.

Name::
* cpt.dcrwallet-cli-program,

dcrwltCli'Directory

dcrwltCli'File

dcrwltCli'wallet.db

4. Can someone steal my coins if they access wallet.db?
Nobody can steal your coins if they get access to the wallet.db4 file unless they also have your private passphrase. If you chose to use public encryption, they also cannot get access to any of your extended public keys or addresses.
[https://docs.decred.org/faq/wallets-and-seeds/#4-can-someone-steal-my-coins-if-they-access-walletdb]

dcrwltCli'Key.PUBLIC

dcrctl --wallet getmasterpubkey
dpubZFWfp7u3a952Txva4yTCJGUZkNmvwF9uVuZxo1a52ya7QqMSWJwKuqmR8vAQ3dmuhFkKuG3Qam92CC8axLo98aeaYi8QmsqYFse8Tx2GHix

dcrwltCli'Key.PRIVATE (Seed)

Description::
This is the list of words that make up your private key
[https://docs.decred.org/getting-started/user-guides/windows/]

Name::
* cpt.dcrwltCli'seed,

dcrctl --wallet getseed
Disabled on mainnet for security.

5. Can someone use a brute-force attack on a random wallet to regenerate its seed words (the words are not salted)?
All the seed words are is a direct mapping of English words to hex digits. The seed is nothing more than a 256-bit (32-byte) cryptographically random number. Salt does not apply here at all. It has nothing to do with brute-forcing5 random cryptographic numbers.

In other words, since each word can be 256 possibilities and there are 32 words, that yields 256^32 (or 2^256 depending on how you want to look at it, but it is the same number) possibilities. That number is larger than the entire number of hydrogen atoms in the known universe. In fact, it is almost more than the number of atoms total in the known universe.

To put this in perspective, assuming there are 7 billion people on the planet and each person owned 10 computers and each one of those computers could test a billion possibilities a second and that you could find the solution on average after testing only 50% of the total possibilities, it would still take 26x10^48 (that’s 26 trillion trillion trillion trillion) years to brute-force a single seed.
[https://docs.decred.org/faq/wallets-and-seeds/#5-can-someone-use-a-brute-force-attack-on-a-random-wallet-to-regenerate-its-seed-words-the-words-are-not-salted]

dcrseedhextowords

Description::
Simple utility to convert a Decred seed hex to seed words needed for importing into wallets.
[https://github.com/davecgh/dcrseedhextowords]

dcrwltCli'Money

dcrwltCli'Sending-to-address

dcrctl --wallet sendfrom "fromaccount" "toaddress" amount (minconf=1 "comment" "commentto")
Send DCR from the given account to the given address. You can add an optional comment.

dcrctl --wallet sendtoaddress "address" amount ("comment" "commentto")
Similar to above but uses the default account to send from.
dcrctl --wallet sendtoaddress TseGH6Xfq9k8Co6txJbY3kiiM7vpaYzXD4T 13

dcrwltCli'Ballance

dcrctl --wallet getbalance
See your balance

dcrwltCli'Passphrase

* dcrctl -wallet walletpassphrase "passphrase" timeout
Unlock the wallet using the given pass phrase for the given time period in seconds. 0 will unlock the wallet until it is restarted.

dcrctlc --wallet walletpassphrasechange "oldpassphrase" "newpassphrase"
Change your wallet passphrase.

dcrwltCli'Creating

Description::
> dcrwallet --create
Enter the private passphrase for your new wallet:
[https://docs.decred.org/getting-started/user-guides/windows/#create-your-wallet]

dcrwltCli'Connecting-to-network

Description::
Now that you have created your wallet and connected to the Decred network, you need to link your wallet to the network so it can send and receive coins and participate in mining.
[https://docs.decred.org/getting-started/user-guides/windows/#create-your-wallet]

dcrwltCli'Deleting

Deleting Your Wallet
There are a few reasons you might need to delete your wallet.
- You need to restore your wallet from seed.
- You do not have the seed any more and want to make a new wallet.
- You want to remove the wallet from a particular computer.
First you need to find the wallet directory which varies by platform. You can find information for each opperating system here.

In that directory, you need to delete the file mainnet/wallet.db. That will completely remove your wallet from that computer. To access it again you will need to restore from the original seed.

It is important to note that it is possible (but not certain) that a deleted file may be recovered using file recovery tools. If you are deleting this for security reasons you probably need to use a secure deletion tool such as GNU shred.
[https://docs.decred.org/advanced/deleting-your-wallet/]

dcrwlt.WEB

Name::
* cpt.dcrnet'browser-wallet,

FAQ::
1. How secure is the web client?
The web client is a fork of Copay, so it is as secure as that1. The seed (and hence private keys) are kept and computed locally in your browser’s local storage and everything is run client-side. The server never has access to any of the private data needed to spend coins.

2. Can you solo stake mine with the web client?
No, recall that the browser wallet runs locally on your machine. That would not lend itself well to running 24/7. As a result, the browser wallet will never be able to solo stake2. It would however be possible to support stake pooling with it. Stake pools provide you with the ability to not have a wallet running 24/7 since it will be the pool’s responsibility to be online and cast a vote on your behalf at that point.

3. Is it safe to delete the wallet and start over?
It is safe3. The only difference is you will need to go to Import Wallet this time instead of creating a new one.
[https://docs.decred.org/faq/web-client/]

dcrnet'Security

FAQ.4. What are the security implications of using the same RPC server authentication passwords with dcrd and dcrwallet?
There is a lot less you can do with access to dcrd than you can to dcrwallet. The key point is that RPC access to dcrwallet, when the wallet is unlocked, can be used to spend coins.

When they are both on the same machine, it probably does not matter all that much, but when you are running more secure setups where the wallet is on a separate machine than dcrd, you would pretty clearly not want to use the same credentials for both. Remember that dcrd has to be on an Internet-facing machine in order to stay synced to the network (download the block chain data, broadcast transactions, and so on).

On the other hand, the dcrwallet that contains your funds, for best security, should really not be on a system that has Internet access as it is significantly more difficult for someone to steal your coins if the wallet that contains them is not even on a machine that is accessible via the Internet. Obviously, if you are staking your coins, you will need at least one Internet-facing dcrwallet instance. Thus, the most secure setup involves having one “cold” dcrwallet instance that is on a machine that is not Internet-accessible, and a second “hot” dcrwallet instance (using a different seed of course) to which the cold dcrwallet instance delegates voting right via the --ticketaddress parameter, both of which use different credentials.
[https://docs.decred.org/faq/configuration/#4-what-are-the-security-implications-of-using-the-same-rpc-server-authentication-passwords-with-dcrd-and-dcrwallet]

dcrnet'Resource

AddressWpg::
* https://decred.org/
* docs: https://docs.decred.org/
* https://wiki.decred.org/Main_Page,
* download: https://github.com/decred/decred-release/releases,
* source: https://github.com/decred,
* https://stats.decred.org/

dcrnet.MAIN

Name::
* cpt.dcrnet.mainnet,

dcrnet.TEST

Description::
3. Can I run mainnet and testnet daemons and wallets at the same time and on the same machine?¶
Yes3, just add --testnet to the appropriate spots (dcrd, dcrwallet, dcrctl) and everything will work. This is why they use different ports and data/log directories!
[https://docs.decred.org/faq/configuration/#3-can-i-run-mainnet-and-testnet-daemons-and-wallets-at-the-same-time-and-on-the-same-machine]

Name::
* cpt.dcrnet.testnet,

bcnnet.time.PIVX (PIVXnet {2016-01-29})

Cpt-created: {2017-04-16}

Description::
PIVX, Private Instant Verified Transaction, is a privacy-focused, decentralized, open source cryptocurrency run by a global community run by creators, innovators, and technology enthusiasts.
[https://pivx.org/]

Name::
* cpt.PIVX,
* cpt.PIVXnet,
* cpt.PIVX-network,
* cpt.Private-Instant-Verified-Transaction,

Generic::
* Exchange-value-unit-network,
* Proof-of-Stake-network,
* cpt.PIVX-network,
* cpt.Private-Instant-Verified-Transaction,

Description::
People often ask why they should choose PIVX above other crypto currency, here is a short list of features that make PIVX stand out from the crowd.
- PIVX is an anonymous Peer-To-Peer currency.
- PIVX is working towards Private Instant Verified Transactions as its default transaction.
- PIVX is Community Driven
- PIVX uses Blackcoin’s improved Proof of Stake 3.0 protocol instead of Proof of Work. So it is more efficient in keeping the network secure than PoW.
- PIVX has incredibly low transaction fees that are typically a fraction of a penny due to the PoS efficiency. This means it is perfect for micro-transaction business pricing models that previously existed using Bitcoin.
- PIVX had no ICO. Pre-mined coins to start the chain were publicly burned.
- PIVX is based on Bitcoin 0.10.x core which means it is more up to date than most other PoS digital currencies that commonly use a lower Bitcoin core version.
- PIVX uses an innovative variable Seesaw Reward Balance System that dynamically adjusts its reward to masternodes and staking nodes. (See white-paper section.)
- PIVX has a very large and growing active community on multiple social networking sites such as BCT, Slack, Reddit, Twitter, Riot, Gitter, Facebook etc.
- PIVX community also uses Trello for publicly accessible task planning and management.
- PIVX has a highly active, accessible and responsive development team.
- PIVX is available to trade on multiple exchanges including Bittrex with plans to be added to larger exchanges.
- PIVX currently has a monthly decreasing block reward inflation with it reaching its final low inflationary rate of approx. 4.8% pa beginning mid-May 2017.
- PIVX has a repository of guides with more planned including video guides and materials.
- PIVX has had consistently higher profitability percentage compared to other digital currencies utilizing masternodes such as DASH since launch and even now.
[https://pivx.org/features/]

pivxnet'Exchange-value-unit.Consensus (PIVXevuC)

Description::
PIVX (PIVX)
$2.10 (16.06%)
0.00178412 BTC (17.03%)
Rank 10
Currency
Market Cap
$111,236,380
94,560 BTC
Volume (24h)
$2,698,460
2,294 BTC
Circulating Supply
53,000,748 PIVX
[https://coinmarketcap.com/currencies/pivx/] {2017-04-16}

pivxnet'Governance

Description::
Governance:
Our goal for the PIVX Governance system is to involve the community. We’ve got a long way to get there, but soon we expect to be making huge initial steps. This process will take a long time, and we call it Community Designed Governance.
This page explains the 3 areas of the Governance system and how voting is managed.
All areas of DAO Governance follow the same process in terms of submitting a proposal, and Master Node Owners voting to accept/reject the proposal. Such voting can only happen at each Super Block. (Roughly once per month.)
There are 3 types of Proposals:
Manifesto Governance:
This will very rarely – almost never – happen, and will require a high amount of participation (Metric not yet defined) by Master Node Owners (MNOs) during the voting process. Key is to make sure that even MNOs that typically don’t involve themselves with voting for proposals, are made aware a Manifesto Proposal has been submitted, and that they have been well informed of the issue(s) involved in a factual and unbiased way.
Treasury Governance:
These proposals are the most common and are for allocating funds in the monthly treasury budget. These funds can be used for anything related to support PIVX. It may be overhead costs for servers, or Google Apps etc., or it may be for advertising, or to help launch a business that could not be justified otherwise.
Protocol Governance:
These proposals are zero cost and are to make decisions to change the code base – the protocol – of the PIVX system. If such a decision requires funding, then that funding portion would be a separate Treasury Governance proposal submitted after the Protocol Governance proposal has been accepted.
[https://pivx.org/governance/]

pivxnet'Resource

AddressWpg::
* https://pivx.org/
* BlockH0: http://www.presstab.pw/phpexplorer/PIVX/block.php?blockhash=000...80ef818,

bcnnet.time.BitShares2 (BTSnet {2015-10-13})

Cpt-created: {2017-03-28}

Description::
BitShares - Your share in the Decentralized Exchange
Built using the latest in industry research, BitShares 2.0 offers a stack of financial services including exchange and banking on a blockchain.
[https://bitshares.org/]

Name::
* cpt.BitShares-network,
* cpt.btsnet,

Generic::
* Blockchain-network-with-builtin-decentralized-governance,
* Exchange-value-unit-blockchain-network,

btsnet'whole.DAO (btsdac)

Description::
BitShares is a decentralized autonomous company, and as such offers products to earn their shareholders a profit.
As we have seen in the previous section, it also offers a way to pay for expense, such as development and administration but earns a profit by burnning (i.e. reducing supply).
Of course, the company can only be profitable if the income exceeds the expenses.
Thus, we will now discuss both in detail.
[idBtswpr4]

Name::
* cpt.BitShares-Decentralized-autonomous-company,
* cpt.btsdac,

Generic::
* blockchain-DAO,

btsnet'Protocol (btsprl)

btsprl'White-paper.2015-12-18 (btswpr)

AddressWpg::
* http://docs.bitshares.eu/_downloads/bitshares-general.pdf,

BITSHARES 2.0: GENERAL OVERVIEW
Fabian Schuh, Daniel Larimer
Cryptonomex, Cryptonomex.com( * )
Blacksburg (VA), USA
{ fabian, dan}@cryptonomex.com

Release: financial-platform/1.0-rc2-2-gb5c3ca7 (2015-12-18)

Abstract

BitShares 2.0 is an industrial-grade decentralized platform built for high-performance financial smart contracts.
The decentralized exchange that allows for trading of arbitrary pairs without counterparty risk facilitates only one out of many available features.
Market-pegged assets, such as the bitUSD, are crypto tokens that come with all the advantages of traditional cryptocurrencies like bitcoin but trade for at least the value of their underlying asset, e.g. $1.
Furthermore, BitShares represents the first decentralized autonomous company that lets its shareholders decide on its future direction and products.
This paper gives a brief overview over the whole BitShares platform, recapitulates known blockchain technologies and redefines state-of-the-art.

1 Introduction

BitShares is a technology supported by next generation entrepreneurs, investors, and developers with a common interest in finding free market solutions by leveraging the power of globally decentralized consensus and decision making.
Consensus technology has the power to do for economics what the internet did for information.
It can harness the combined power of all humanity to coordinate the discovery and aggregation of realtime knowledge, previously unobtainable.
This knowledge can be used to more effectively coordinate the allocation of resources toward their most productive and valuable use.

Bitcoin is the first fully autonomous system to utilize distributed consensus technology to create a more efficient and reliable global payment network.
The core innovation of Bitcoin is the Blockchain, a cryptographically secured public ledger of all accounts on the Bitcoin network that facilitates the transfer of value from one individual directly to another.
For the first time in history, financial transactions over the internet no longer require a middle man to act as a trustworthy, confidential fiduciary.

BitShares looks to extend the innovation of the blockchain to more industries that rely upon the internet to provide their services.
Whether its banking, stock exchanges [ 1 ], lotteries [ 2 ], voting [ 3 ], music [ 4 ], auctions or many others, a digital public ledger allows for the creation of distributed autonomous companies (or DACs) that provide better quality services at a fraction of the cost incurred by their more traditional, centralized counterparts.
The advent of DACs ushers in a new paradigm in organizational structure in which companies can run without any human management and under the control of an incorruptible set of business rules.
These rules are encoded in publicly auditable open source software distributed across the computers of the companies’ shareholders, who effortlessly secure the company from arbitrary control.

BitShares does for business what bitcoin did for money by utilizing distributed consensus technology to create companies that are inherently global, transparent, trustworthy, efficient and most importantly profitable.
Why and how BitShares achieves a decentralized but profitable business is described in more detail in a distinct paper [?].

BitShares has went through many changes and has done its best to stay on top of blockchain technology.
Towards the end of 2014 some of the DACs were merged and the X was dropped from ”BitShares X” to become simply BitShares (BTS).

The next step in the evolution of BitShares was named Bitshares 2.0, and incorporates all of the feedback and lessons learned from the BitShares stakeholders, partners, developers, marketers, and other community leaders throughout a full year of research and development.

With the former BitShares 1.0, the core development team has closely controlled the development and direction of BitShares.
With BitShares reaching maturity at version 2.0, the team is ready to remove the training wheels, and let the direction of all future development be decided completely by stakeholder vote.

By utilizing a new worker voting system that will be included in BitShares 2.0, the development will continue in whatever direction is approved by its stakeholders.
With this new structure, BitShares will be more robust, and sustainable while being agile, flexible and adaptive to overcome unforeseen hurdles of the future.

This paper is intended as an introduction to BitShares 2.0 and presents the basic concepts of the peer-to-peer nature, the distributed public ledger in form of a blockchain, and give a brief overview of the decentral consensus mechanism applied to reach blockchain state consensus.
We further discuss the basic blockchain tokens (BTS), its distribution and usage in BitShares.
We also describe the wallet and operations with the network as well as outline the functionalities of BitShares accounts.

2 Base Token

In the BitShares network the base token is called a BitShare and carries the abbreviation BTS.
It is dividable into 105 = 100,000 sub-units.

In general, all properties of Bitcoin also apply to BTS, namely, they have value, can be transfered on the blockchain and are secured by an Elliptic Curve Digital Signature Algorithm (ECDSA) on the curve secp256k1.

In contrast to most crypto-currencies, BitShares does not claim to be a currency but rather an equity in a decentral autonomous company (DAC).
As a result, the market valuation of BitShares is free floating and may be as volatile as any other equity (e.g. of traditional companies).

Nonetheless, BTS tokens can be used as collateral in financial smart contracts [ 5 ] such as market pegged assets and thus back every existing smartcoin such as the bitUSD.

The following subsection recapitulate the initial distribution and supply of BTS.

2.1 Distribution of BTS

BitShares has set an example of a social agreement by establishing its own sharedropping standards.
The idea behind sharedropping is that any future chain will always benefit by choosing to align itself with the ones who worked hard at making the technology possible.

The base tokens of BitShares 2.0 will be distributed on a 1:1 basis fully honoring the BTS tokens in the BitShares 1.0 network.
For the sake of completeness, the following paragraphs will describe the initial distribution of BTS tokens in the aforementioned BitShares 1.0 network from PTS and AGS.

2.1.1 Bitshares PTS

The original grandfather prototype, formerly called proto-shares (PTS), BitShares PTS was a simple minable cryptocurrency (similar to Bitcoin) that was created to allow people to advertise their interest in receiving free token samples in future DACs.
PTS functions as a high-tech mailing list for distributing free sample bitshares from many developers of decentral autonomous companies (DACs).
The only people who tended to own PTS tokens were those who understand DACs, so DAC developers prefer to target them with free samples rather than air dropping their samples onto a much less interested general population.

The industry recommendation was that when a DAC is launched, at least 10% of the DAC’s total tokens are given proportionally to holders of PTS.
This was not a contract or a guarantee; it was a social consensus of those in the DAC community about what percentage of a new DAC’s tokens should be distributed to those who have supported the BitShares industry by owning its PTS tokens.

The BitShares DAC honored this social consensus and even sharedropped 47% of its ever existing supply onto BitShares PTS holders.

2.1.2 Bitshares AGS

The original grandmother prototype formerly called angel-shares (AGS) in reference to the patron angels who once funded the performing arts.
That’s why AGS are not liquid. (No one can trade the proof that you were the once willing to donate to this cause.)

The donations have been recorded in the public blockchain of bitcoin which now acts as a book of honorable donors.
The bitcoin address used as donation address was
1ANGELwQwWxMmbdaSWhWLqBEtPTkWb8uDc
Note, that the donation period for AGS lasting 200 days has ended already and that donations to this address never resulted nor will result in any obligations whatsoever.

Since the social consensus includes AGS, the industry recommendation again is to give at least 10% to holders of AGS.
Similar to BitShares PTS, the 47% of the total BTS supply have been sharedropped onto members of the AGS mailing-list proportionally.

2.2 Bitshares Genesis Distribution

We see that the seed allocation (initial distribution) of BitShares, which took place over a 1 year period, from November 2013 to November 2014, was achieved by sharedropping 47% to BitShares PTS and another 47% to BitShares AGS.
This way, the full, fairness was defined by equal opportunity and in the case of BTS we have distributed fairly by CPU mining of PTS while, alternatively, everyone had an additional equal opportunity by contribute to AGS.

Having attracted two different groups of investors with a mined crypto token via PTS and a donation based book of donors via AGS, everyone had a chance to participate and be rewarded with stake in the genesis block of BitShares 1.0.
This genesis block solely consisted of AGS and PTS holders on a 50%/50% ratio such that the BTS tokens initially issued by this genesis can be considered well distributed.

The other 6% are set aside to secure the future of BitShares and funds its development and operational costs.
In practice, they are put into the so called reserves pool that no one has control over except the BitShares protocol.
In contrast to many other cryptocurrencies, every shareholder has a say as to how these funds are spend (see section 4.2).

3 Business Units

Let us discuss the organization structure of the BitShares network when interpreted as a company.
Some of these entities are associated with a cost for the business and need to be accounted for in profit calculations.

3.1 BitShares Witnesses

In BitShares, the witnesses’ job is to collect transactions, bundle them into a block, sign the block and broadcast it to the network.
They essentially are the block producers for the underlying consensus mechanism (see section 5.4).

For each successfully constructed block, a witness is payed in shares that are taken from the limited reserves pool at a rate that is defined by the shareholders by means of approval voting.

3.2 BitShares Committee

Since Bitcoin struggled to reach a consensus about the size of their blocks, the people in the cryptocurrency space realized that the governance of a DAC should not be ignored.
Hence, BitShares offers a tools to reach on-chain consensus about business management decisions.

The BitShares blockchain has a set of parameters available that are subject of shareholder approval.
Shareholders can define their preferred set of parameters and thereby create a so called committee member or alternatively vote for an existing committee member.
The BitShares committee consists of C active committee members.

For each business parameter the protocol will calculate the difference between up- and down-votes (vpro - vcon) for each active committee member and then take the median of the top C active members:

imgBtswprFigAlg.png

Since, C is a parameter as any other, the shareholders decide for the size of the committee.

The BitShares ecosystem has a set of parameters available that are subject of shareholder approval.
Initially, BitShares has the following blockchain parameters:

fee structure:
fees that have to be paid by customers for individual transactions

block interval:
i.e. block interval, max size of block/transaction

expiration parameters:
i.e. maximum expiration interval

witness parameters:
i.e. maximum amount of witnesses (block producers)

committee parameters:
i.e. maximum amount of committee members

witness pay:
payment for each witnesses per signed block

worker budget:
available budget available for budget items (e.g. development)

Please note that the given set of parameters serves as an example and that the network’s parameters are subject to change over time.

Additionally to defining the parameters any active witness can propose a protocol or business upgrade (i.e. hard fork) which can be voted on (or against) by shareholders.
When the total votes for the hard fork are greater than the median witness weight w then the hard fork takes effect.

3.3 BitShares Budget Items/Workers

Thanks to the funds stored in the reserve pool, BitShares can offer to not only pay for its own development and protocol improvement but also support and encourage growth of an ecosystem.

In order to be get paid by BitShares, a proposal containing
(a) the date of work begin,
(b) the date of work end,
(c) a daily pay (denoted in BTS),
(d) the worker’s name, and
(e) an internet address
has to be publish on the blockchain and approved by shareholders.
A worker can also choose on of the following properties:
• vesting: pay to the worker’s account
• refund: return the pay back to the reserve pool to be used for future projects
• burn: destroys the pay thus reducing share supply, equivalent to share buy-back of a company stock.

A blockchain parameter (defined by shareholders through the committee) defines the daily available budget.
No more than that can be paid at any time to all so called workers combined.
The daily budget is distributed as illustrated in fig. 1:
(1) The available budget is taken out of reserves pool.
(2) The budget items are sorted according to their approval rate (vpro - vcon) in a descending order.
(3) Starting at the worker with the highest approval rate, the requested daily pay is payed until the daily budget is depleted.
(4) The worker with the least approval rate that was paid may receive less than the requested pay

Hence, in order to be successfully funded by the BitShares ecosystem, the shareholder approval for your budget item needs to be highly ranked.

Since the payments for workers from the non-liquid reserve pool result in an increased supply of BTS, these payments are vesting over a period of time defined by shareholders.

3.4 Proxy Voting

Proxy Voting denotes the process of handing out ones voting power to someone else.
This process can be reverted to reclaim ones voting power.

The motivation behind proxy voting is to reduce voting apathy and allow active shareholders to react more quickly to business and security concerns.
That way, misbehaving witnesses can be fired more rapidly.

That is centralizing in some respects, but it’s controlled centralization in the sense that nothing can happen too quickly and if shareholders don’t like which way it is going, still have the ability to switch courses.
Compared to classical crypto currencies (e.g. Bitcoin), this process is somewhat similar to pooled mining with the exception that every shareholder can participate and only voting power is handed over.
Furthermore, this allows for independent non-profit oriented decisions because there is no profit variance but purely political influence.

imgBtswprFig1.png
Figure 1: Illustration of budget item payments.

4 BitShares: A profitable DAC

BitShares is a decentralized autonomous company, and as such offers products to earn their shareholders a profit.
As we have seen in the previous section, it also offers a way to pay for expense, such as development and administration but earns a profit by burnning (i.e. reducing supply).
Of course, the company can only be profitable if the income exceeds the expenses.
Thus, we will now discuss both in detail.

4.1 The Products

The BitShares DAC offers their private customers several products and in this paper we would like to briefly highlight some of them.
Of course, all of these come with the properties of cryptocurrencies, namely
(a) global accessibility,
(b) customizable anonymity,
(c) industry-grade security,
(d) freedom from counterparty-risk,
(e) flexible account Control,
(f) low transaction delays, and
(g) world-wide decentralized network.

Keep in mind that, as BitShares has the technical possibilities to upgrade itself with shareholder approval, new products and properties can be added in a timely manner.

4.1.1 Price-stable SmartCoins

The core product of BitShares is a class of assets referred to as Market-Pegged Assets (MPA), BitAssets, or SmartCoins and represent a crypto-token that has at least the value of the underlying asset.
For instance, a bitUSD can always be sold for $1, either to a merchant at face-value, or to the network (by means of settlement of a contract) in return for BitShares’ core currency (BTS) worth $1.

In practice, a SmartCoin always has 100% or more of its value backed by means of a contract for difference (CFD) between two parties with BTS as collateral.
What makes these CFDs unique is that they are free from counterparty risk.
This is achievable by letting the network itself (implemented as a software protocol) be responsible for securing the collateral and performing (forced) settlements if required as is described in more detail in [ 5 ].

Applications for SmartCoins are obvious:
With the aforementioned properties, a bitUSD qualifies for regular and instant payments, for example with a smartphone or a modern browser application.
In contrast, a bitGOLD (with one ounce of gold as underlying asset) would fit those people’s needs that see gold as long-term store of value.
As long as an asset has a unique global price, a SmartCoin could track its value.
This allows for even more sophisticated applications, such as tracking a stock market index, or the price of a liter of gasoline.

4.1.2 Customizable Assets

In addition to market-pegged assets, the BitShares network also offers to register customizable assets on the public ledger.
For instance, a BitShares customer may create the asset FREE and distribute them to friends for free.
Another customer may want his company shares to be traded in the BitShares network.
Yet another use-case would be event tickets that can be sold at a fixed price and allow the holder to enter a concert.

Since the use-cases of these User-Issued Assets (UIA) are manifold and space is limited in this paper, we discuss them in depth in [ 5 ].

4.1.3 Decentralized Exchange

As we have seen in the previous section, the BitShares network offers to register different types of assets.
It also allows for trading between almost( 1 ) any two pairs in an instant, trust-less and secure manner by means of the BitShares Decentralized Exchange (DEX).

In traditional trading, a clearing house is necessary because trades are made much faster than the cycle time for completing the underlying transaction.
Since in BitShares trades between two parties are performed on a global scale in a decentralized network and no middlemen are required, there is no need for settlement or clearing delays.
If a trade in the DEX executes, the bought asset instantly (T+0 [ 6 ]) appears in the customers wallet.

In combinations with SmartCoins, a startup could easily perform a dollar-denominated crowd-funding without legal or tax implications due to the velocity of cryptocurrency tokens.
Furthermore, as all order-books are shared on a global scale, the markets will become more efficient because no different prices existing on different locations on earth.
Of course, the DEX is open 24/7 and does not apply any limits to customers.
A more detailed discussion about the DEX can be found in a distinct paper [ 5 ].

4.1.4 Flexible Identity Management

In BitShares, each account is separated into
• Active Permission which has control over its funds and
• Owner Permission which controls the account itself.

Furthermore, BitShares uses authorities consisting of one or many entities that authorize an action, such as transfers, trades or account modifications.
An authority consists of one or several pairs of an account name with a weight.
In order to obtain a valid transaction, the sum of the weights from signing the parties has to exceed the threshold as defined in the permissions.

Let’s discuss some examples to shed some light on the used terminology and the use-cases.
We assume that a new account is created with it’s active permissions set as described below.
Note that the same scheme also works for the owner permissions!

A flat multi-signature scheme is composed of M entities of which N entities must sign in order for the transaction to be valid.
Now, in BitShares, we have weights and a threshold instead of M and N.
Still we can achieve the very same thing with even more flexibility as we will see now.

Let’s assume, Alice, Bob, Charlie and Dennis have common funds.
We want to be able to construct a valid transaction if only two of those agree.
Hence a 2-of-4 (N-of-M) scheme can look as follows:
Account Weight
Alice 33%
Bob 33%
Charlie 33%
Dennis 33%
Threshold: 51%

All four participants have a weight of 33% but the threshold is set to 51%.
Hence only two out of the four need to agree to validate the transaction.
Alternatively, to construct a 3-of-4 scheme, we can either decrease the weights to 17 or increase the threshold to 99%.

With the threshold and weights, we now have more flexibility over our funds, or more precisely, we have more control.
For instance, we can have separate weights for different people.
Let’s assume Alice wants to secure here funds against theft by a multisignature scheme but she does not want to hand over too much control to her friends.
Hence, we create an authority similar to:
Account Weight
Alice 49%
Bob 25%
Charlie 25%
Dennis 10%
Threshold: 51%

Now the funds can either be accessed by Alice and a single friend or by all three friends together.

Let’s take a look at a simple multi-hierarchical corporate account setup.
We are looking at a company that has a Chief of Financial Officer (CFO) and a some departments working for him, such as the Treasurer, Controller, Tax Manager, Accounting, etc.
The company also has a CEO that wants to have spending privileges.
Hence we construct an authority for the funds according to:
Account Weight
CEO.COMPANY 51%
CFO.COMPANY 51%
Threshold: 51%
whereas CEO.COMPANY and CFO.COMPANY have their own authorities.
For instance, the CFO.COMPANY account could look like:
CFO.COMPANY Weight
Chief.COMPANY 51%
Treasurer.COMPANY 33%
Controller.COMPANY 33%
Tax Manager.COMPANY 10%
Accounting.COMPANY 10%
Threshold: 51%

This scheme allows:
• the CEO to spend funds
• the Chief of Finance Officer to spend funds
• Treasurer together with Controller to spend funds
• Controller or Treasurer together with wither the Tax Manager or Accounting to spend funds.

Hence, a try of arbitrary depth can be spanned in order to construct a flexible authority to reflect mostly any business usecase.

4.1.5 Variable and Flexible Fees

In the BitShares ecosystem every operation is assigned an individual fee that has to be payed in the core asset (BTS) the end user.
These fees are subject to change and are defined by the elected committee members.
Thus each and every shareholder of the BitShares core asset (BTS) has a say as to what the fees should be.
If shareholders can be convinced to reduce a certain fee and consensus is reached, the fee will be reduced automatically by the blockchain.
This allows the ecosystem, to stay flexible and adept the price for the usage of its products over time.

Since the network expects the fees to be payed on the the core asset (BTS) but many users may not want to hold any, the protocol allows to trade an arbitrary asset into BTS from the asset-specific *fee pool* at the *core exchange rate* which is defined by the issuer (or the witnesses in the case of a market pegged asset).

4.2 Revenue and Expenses

Revenue streams are essentially caused by fees that have to be payed when using the DACs products, such as market pegged assets, user-issued assets, or the decentralized exchange [ 5 ].
These fees are variable, can be changed by shareholder approval and include
(a) transfers,
(b) order operations,
(c) account operations,
(d) asset operations,
(e) witness creations
(f) proposal operations
(g) withdraw permission operations
(h) committee member operations,
(i) worker creation, and more.

In contrast to bitcoin, where newly created coins in each block are distributed solely among countless miners that immensely overpay for the network security [ 7 ], the BitShares ecosystem achieves a better security at lower costs by means of an adjustable number of approved and trusted witnesses in DPOS.
Additionally, the BitShares ecosystem has the capability to pay for its own development through budget items.
Both, the payment for witnesses, as well as the budget items are required to be approved by the shareholders.

imgBtswprFig2.png
Figure 2: Cash flow of BitShares 2.0

As an example, an entrepreneur may approach the shareholders and offer to launch a business in the BitShares space that would greatly benefit the ecosystem.
If he succeeds and convinces the shareholders to vote for and not against his plan, he could get an initial funding by the DAC.

Another use-case would be the improvement of the blockchain’s protocol.
A developer could propose a change or extension of the existing software implementation and be payed by the DAC to do so (after shareholder approval).
Hence, as long as the average shareholders acts rational, the BitShares blockchain can be seen as a self-funded but profitable business

4.3 Memberships

Accounts in BitShares are separated into three groups.
We decided to give users the option to upgrade their accounts into a VIP-like status if they desire and profit from reduced fees and additional features.

A regular account is a non-member.

Lifetime Members get a percentage cashback on every transaction fee they pay and qualify to earn referral income (see below) from users they register with or refer to the network.
A Lifetime membership is associated with a certain one-time fee that is defined by the committee and qualifies for reduced transaction fees.

If a lifetime membership is too much you can still get the same cashback for the next year by becoming an annual subscriber for a smaller one-time fee which lasts for only one year and qualifies for reduced transactions fee during that time.

4.4 Referral Program

Every time an account you referred pays a transaction fee, that fee is divided among several different accounts.
The network takes a cut, and the Lifetime Member who referred the account gets a cut.

The registrar is the account that paid the transaction fee to register the account with the network.
The registrar gets to decide how to divide the remaining fee between themselves and their own affiliate.

Fees paid are only divided among the network, referrers, and registrars once every maintenance interval.
The paid fees are divided among two or three parties, depending on the parameter d that can be set by the registrar:

total fee = network fee(20%)
+ registrar(80% · (100% - d%)) (1)
+ referrer(80% · (d%))

Most fees are made available immediately, but fees over the vesting threshold (such as those paid to upgrade your membership or register a premium account name) must vest for some days as defined by the committee.

5 Architecture of BitShares

Before describing how BitShares can be used to secure financial freedom, we first discuss the technical specifications briefly.
Among these is the public ledger (also referred to as the blockchain), the peer-to-peer network, the distributed consensus finding mechanism and the system parameters available to BitShares.

5.1 Public Ledger

As in other crypto-currencies, the public ledger of BitShares is built and stored in a linked series of blocks, known as a blockchain.

The ledger provides a permanent record of transactions that have taken place, and also establishes an order in which transactions have occurred.
Hence, every content of the blockchain can be assigned an permanent and unique identifier in form of a scalar number.

Every full node in the BitShares network stores a full copy of this blockchain and can verify its validity and the evaluate new blocks.

Every block contains
• a reference to the previous block,
• a timestamp,
• a hash of a secret,
• the secret of the previous hash,
• a set of transactions, and
• a signature by the block producing authority

As will be discussed in section 5.4, the consensus mechanism allows for synchronous block production with constant block confirmation times, e.g., one block every 5 s.

Since the blocks mainly embrace customer transactions but has to perform time intensive tasks, or execute rare events from time to time, some actions such as reenumeration of blockchainbased votes and rare events such as newly registered block producers (witnesses) are carried out more rarely but still on a frequent so called maintenance interval.

5.2 Irreversibility of Transactions

Historically we have stated that a blockchain becomes irreversible after one round of block production with greater than 51% participation.
It turns out that this metric is too fuzzy because of noise in how witnesses are ordered.
In an effort to provide stronger/absolute guarantees a new metric has been derived that determines the exact point at which a particular block becomes irreversible.
The algorithm to define the metric goes as follows:

Sort N witnesses by the last block number they signed, then take the highest block number that is lower than 66% of all other witnesses.
This will indicate that said block has been confirmed by 66% of all witnesses and is clearly irreversible.

This particular metric is dynamic and can respond to changes in the order of witnesses and is immune to situations where the network fragments into more than two pieces.
In the event of a major disruption users are guaranteed that no block older than that number can ever be undone.

If we had only 17 witnesses and 3 second block confirmation interval, then this will take an average of 34 seconds.
If we had 101 witnesses and 3 second blocks then this will take an average of 3.3 minutes for block to be irreversible,

Having this metric is important to give everyone in the network peace of mind in the unlikely event that a software bug or network issue causes all witnesses to fall out of sync and gives a clear measure of when they are considered back in sync.

Anyone accepting transactions as final prior to the most recent irreversible block is choosing to take some extra risk on their transaction.

5.3 Low Latency Peer-to-Peer Network

The peer-to-peer network distributes the full blockchain database across the world.
It consists of public and private nodes as well as seed nodes that are used for initial connection to the peer-to-peer network.
Anybody may connect to any known node and download the current global and unique state (i.e. the blockchain).

Once a node is in sync with the peer-to-peer network it received and applies newly created blocks, and assists new network nodes by further distribution of the blockchain.
Additionally, new blocks are broadcast to all connected nodes.

Furthermore, network nodes receive transaction from participants and forward them to the rest of the network until they reach the witness that is in charge of constructing the next block.
Hence, new transaction broadcasts do not necessarily need to reach all nodes.

Building a low-latency network requires P2P nodes that have low-latency connections and a protocol designed to minimize latency.
For the purpose of this document we will assume that two nodes are located on opposite sides of the globe with a ping round-trip time of 250 ms.

In the Bitcoin network architecture, transactions and blocks were broadcast in a following manner: inventory messages notify peers of transactions and blocks, then peers fetch the transaction or block from one peer.
After validating the item a node will broadcast an inventory message to its peers.

Under this model it will take approximately 0.75 s for a peer to communicate a transaction or block to another peer even if their size was 0 and there was no processing overhead.
This level of performance is unacceptable for a network attempting to produce one block every second.

This prior protocol also sent every transaction twice: initial broadcast, and again as part of a block.

To minimize latency each node needs to immediately broadcast the data it receives to its peers after validating it.
Given the average transaction size is less than 100 bytes, it is almost as efficient to send the transaction as it is to send the notice (assuming a 20 byte transaction id).

5.4 Distributed Consensus Mechanism

Consensus is the mechanism by which a subset of people decide upon unitary rational action.
The process of consensus decisionmaking allows for all participants to consent upon a resolution of action even if not the favored course of action for each individual participant.
Bitcoin was the first system to integrate a fully decentralized consensus method with the modern technology of the internet and peer-to-peer networks in order to more efficiently facilitate the transfer of value through electronic communication.
The proof-of-work structure that secures and maintains the Bitcoin network is one manner of organizing individuals who do not necessarily trust one another to act in the best interest of all participants of the network.

It is of importance to distinguish a democratic voting process in which every citizen of a community has one and only one vote from a distributed consensus mechanism in crypto-currencies hand over voting power either in relation to hashing power (e.g. proof-of-work) or on a per stake basis (e.g. proof-of-stake).
In both cases, those that invest in the required infrastructure to increase their voting percentage (i.e. by buying mining hardware or stake) act as shareholder in a distributed community.

The BitShares community employs Delegated Proof-of-Stake (DPOS) in order to find efficient solutions to distributed consensus decision making.
DPOS attempts to solve the problems of both Bitcoin’s traditional proof-of-work system, and the proofof-stake system of Peercoin and NXT by implementing a layer of technological democracy to offset the negative effects of centralization.
For historical reasons, the technology is still called delegated proof-of-stake even though what have been delegates in BitShares 1.0 are now so called witnesses.

In DPOS set of N witnesses (formerly known as delegates) sign the blocks and are voted on by those using the network with every transaction that gets made.
By using a decentralized voting process, DPOS is by design more democratic than comparable systems.
Rather than eliminating the need for trust all together, DPOS has safeguards in place the ensure that those trusted with signing blocks on behalf of the network are doing so correctly and without bias.
A more detailed description about the distributed consensus mechanism as well as a discussion how blockchain forking is prevented during attacks is given in a separate paper [ 8 ].

Additionally, each block signed must have a verification that the block before it was signed by a trusted node.
DPOS eliminates the need to wait until a certain number of untrusted nodes have verified a transaction before it can be confirmed.

This reduced need for confirmation produces an increase in speed of transaction times.
By intentionally placing trust with the most trustworthy of potential block signers, as decided by the network, no artificial encumbrance need be imposed to slow down the block signing process.
DPOS allows for many more transactions to be included in a block than either proof of work or proof of stake systems.

In a delegated proof-of-stake system, centralization still occurs, but it is controlled.
Unlike other methods of securing cryptocurrency networks, every client in a DPOS system has the ability to decide who is trusted rather than trust concentrating in the hands of those with the most resources.
DPOS allows the network to reap some of the major advantages of centralization, while still maintaining some calculated measure of decentralization.
Furthermore, once a witness has reached approval by shareholders, surpasses the threshold of the most N active witnesses, and, hence, is elected to actively participate in the block production procedure, its power is equivalent to all other active witnesses.
This system is enforced by a fair election process where anyone could potentially become a delegated representative (witness) of the majority of users.

Please note that DPOS has a recommended 1 - 2 block confirmation versus bitcoin’s 6 block recommendation.
DPOS is much more resistant against forks for the following reasons:
• When a fork is produced it is very likely that all witnesses have seen and processed your transaction and thus no alternative transactions can be broadcast and the next witness is almost certain to include your transaction.
All witnesses are much more trusted than miners.
• The probability of a fork after a block has been produced is very low (΅ 0.01%) where as Bitcoin has 25 orphans in the last 22 days (about 1 per day in Dec 3, 2014) which translates into 0.7% of blocks are orphaned.
• On normal operations, DPOS achieves a 100% witness participation rate and when we are less than that it is more often because a witness went offline and didn’t produce a block than because they produced a fork.
• In BitShares 1.0 forks have almost always been resolved within 30 seconds.

Assuming a 10 second block interval, Bitshares is mathematically over 70x less likely to orphan after 1 block than Bitcoin after 1 block (10 minutes).
After 3 blocks (30 seconds) any random orphan will have been resolved and the probability of alternative chains is much lower than the 0.000001% of Bitcoin.
By the time Bitcoin gets to .7% orphan probability, BitShares has 60 blocks which would have a probability of being orphaned of less than 10-120.

5.5 Operations

Similar to most crypto-currencies, there is a set of predefined operations that can be performed on the blockchain.
In contrast to Bitcoin, which uses a technique called script to describe operations that shall be performed in a programmatic way using OP codes, the BitShares network has a predefined (but extensible) set of operations that a user may perform.

All operations end up on the blockchain eventually.
Once they are validated and confirmed by a witness by being included into a block, they are executed and update the state of the blockchain accordingly.

The release version of BitShares 2.0 comes with
(a) transfer ops,
(b) trading order ops,
(c) account ops,
(d) asset ops,
(e) witness ops,
(f) committee ops,
(g) worker ops, and
(h) vesting ops,
However, since BitShares allows for shareholder approved, live protocol upgrades, the set of operations can be extended and modified.

On the blockchain level, each operation is assigned an individual id with a custom set of parameters for performance and latency reasons.

5.6 Transactions

Having defined operations, we can now put these into a list of operations and construct a transaction.
In addition to its operations, a transaction also consists of
(a) an expiration date,
(b) a reference block number,
(c) a reference block prefix,
(d) a set of extensions, and
(e) a set of signatures to authorize each operation.

Each node (including witnesses) verifies that all requires signatures to perform the given operations are present and valid prior to propagating the transactions to the rest of the network and hence to the witness node constructing the next block.
If the transaction is included into a block it is considered finally valid or executed.

5.7 Proposed Transactions

Additionally, the Graphene technology allows users to propose a transaction which requires approval of multiple accounts in order to execute.
These transactions are only partially valid and do not execute until they are completely valid.

The user proposes a transaction, then signatory accounts add or remove their approvals from this operation.
When a sufficient number of approvals have been granted, the operations in the proposal are used to create a virtual transaction which is subsequently evaluated.
Even if the transaction fails, the proposal will be kept until the expiration time, at which point, if sufficient approval is granted, the transaction will be evaluated a final time.
This allows transactions which will not execute successfully until a given time to still be executed through the proposal mechanism.
The first time the proposed transaction succeeds, the proposal will be regarded as resolved, and all future updates will be invalid.

The common use-case would be similar to so called multisignature transactions which must be signed by two parties.
Classical crypto currencies had the issue that such proposed transaction had to be communicated on separated channels until all required signatures have been collected.
With BitShares, it is no possible to propose a transaction on the blockchain and have the required signatures be added by the respective parties.

The proposal system in combination with corporate accounts allows for arbitrarily complex or recursively nested authorities.
If a recursive authority (i.e. an authority which requires approval of nested authorities on other accounts) is required for a proposal, then a second proposal can be used to grant the nested authority’s approval.
That is, a second proposal can be created which, when sufficiently approved, adds the approval of a nested authority to the first proposal.
This multiple-proposal scheme can be used to acquire approval for an arbitrarily deep authority tree.

6 Discussion

In general, BitShares has similarities and differences to most known crypto-currencies.
As many others, BitShares is based on a blockchain that stores and propagates transactions, i.e. user operations.
Since, with DPOS, computational resources are used solely for the purpose of transaction propagation and confirmation, rather than wasteful computational work, the block production interval has been reduced to a few seconds.
Eventually, this improves the over-all profitability of the DAC.

Additionally, we make use of named accounts that can be registered on the blockchain.
Users no longer need to send money to an alphanumeric string that can be copied incorrectly.
Rather, funds can be sent as easily as sending an email, and in the same fashion.
Name registration allows for the identification of who transactions are originating with no need to manually create a contact account for a given address.
Transactions may contain a memo field that allow users to describe the nature of the transaction or broadcast secure messages about the price of the current transaction fee.
Since BitShares 2.0 implements confidential transaction, there is no longer a need for mixing or master nodes.
Transactions can be more private in BitShares than in Bitcoin, for example, with no additional work needed from the user.

BitShares is a 100% proof-of-stake system.
This means it is a lot more efficient (cost per security) than proof-of-work and therefore does not have to dilute stakeholders/coinholders (there is a 10% yearly dilution of Bitcoin-holders as per 2015 with Bitcoin and lowering this dilution would mean to lower the security).
Hence, the cost of securing the BitShares network is merely a fraction of all transaction fees accumulated by the network.

The job of the block producers is simple: include as many valid transactions in your given block as possible and sign a single block.
These Block producers compete for the most approval in order to be allowed to produce blocks.
Shareholder votes are proportionate to the relative number of shares they own.
The BitShares DAC is completely shareholder run.
Now people can be hired by the blockchain.
Where coins like Bitcoin dilute to pay for network security, BitShares takes these fees and directs them towards continual improvement of the network and community.
This helps insure BitShares will stay competitive in its feature set.
More details about the consensus scheme of BitShares will be made available in a separated whitepaper.

Recalling the initial distribution of BTS, it seem convincing to assume that most alternative distributions are way more unfair and some disproportionately favor their respective core developers.
Since BitShares is a self-funded DAC, it can pay for its future development autonomously by dilution, if shareholders reach an on-blockchain consensus by approval voting.

Furthermore, it becomes clear from the descriptions that BitShares is governed by its shareholders and the committee whose members have shareholder approval.
This allows for flexible adjustment of blockchain parameters, such as transaction fees, block interval, and more, as well as protocol upgrades to include new features.

Since the BitShares is a self-funded blockchain, that can pay its workers by protocol, a healthy competition for new improvements, upgrades and additional features can be expected.

7 Conclusion

The properties and features mentioned in this paper make clear that the BitShares DAC is well-prepared for its own features.
It was shown that, due to on-blockchain voting, a decentralized development and funding can be achieved.
The consensus mechanism DPOS reaches a trade-off between efficiency and required trust while keeping a better decentralization that mostly every other blockchain consensus scheme.

Release: financial-platform/1.0-rc2-2-gb5c3ca7 (2015-12-18)

References

[1] Daniel Larimer, “Creating a Fiat/Bitcoin Exchange without Fiat Deposits.” https://bitcointalk.org/index.php?topic=223747.0.

[2] “DACPlay,” http://dacPLAY.org.

[3] Adam Ernest, “Follow My Vote,” http://followmyvote.com.

[4] Cedric Cobban, “Follow My Vote,” http://peertracks.com.

[5] “BitShares 2.0: Financial Smart Contract Platform,” BitShares Whitepapers, 2015.

[6] “The trade is the settlement,” http://t0.com/.

[7] Daniel Larimer, “Overpaying for Security,” http://letstalkbitcoin.com/is-bitcoin-overpaying-for-falsesecurity/#.Ui-p9WTFT7s.

[8] “BitShares 2.0: Distributed Consensus,” BitShares Whitepapers, 2015.

(*) This work was supported by Cryptonomex and honorable members of the bitsharestalk.org community.

(1) The issuer of an asset may white-/or black-list trading partners.

btsnet'Blockchain (btsbcn)

btsbcn'Block (btsblk)

btsblk.GENESIS

Description::
Block 1
0 transactions in this block, produced at 2015-10-13 14:12 (UTC)
[https://cryptofresh.com/b/1]

btsbcn'Block-Explorer (btsbex)

AddressWpg::
* http://cryptofresh.com/

btsnet'Exchange-value-unit.Consensus (BTScevu)

Cpt-created: {2017-03-28}

Name::
* cpt.bitshares-token,
* cpt.btscevt,

btsnet'Governance-system (btsgov)

Name::
* cpt.btsgov,
* cpt.btsnet'builin-governance-system,
* cpt.btsnet'Decentralized-Governance-By-Blockchain,

btsnet'Commitee

Description::
Decentralized Committee:
Decisions that can effect the BitShares ecosystem are made using a on-chain committee voted upon by shareholders.
Hence, no single entity can change the deal retroactively.
[http://docs.bitshares.eu/bitshares/user/you-should-know.html]

btsnet'Human (btshmn)

btshmn.SHAREHOLDER (btshsh)

Description::
Become Shareholder: If you buy BTS either from a partner exchange or from the DEX, you become a shareholder of the BitShares decentralized business and as such can take a cut of its profits and participate in votes for future directions.
[http://docs.bitshares.eu/bitshares/user/you-should-know.html#the-investors]

btshmn.DEVELOPER (btshdr)

btsnet'Organization (btsogn)

Name::
* cpt.bitshares'organization,
* cpt.btsogn,

btsogn.Cryptonomex-Inc

Description::
Cryptonomex Inc. is an independent blockchain development company founded by the core developers of the BitShares blockchain. Our mission is to faciliate the growth and adoption of industrial blockchain technology.
[https://cryptonomex.com/]

Name::
* cpt.Cryptonomex-Inc,

btsnet'Resource (btsrsc)

Name::
* cpt.bitshares'resource,
* cpt.btsresource,
* cpt.btsrsc,

AddressWpg::
* https://bitshares.org/

=== DOCS:
* http://docs.bitshares.eu/
* FIRST STEPS FOR END-USERS http://docs.bitshares.eu/bitshares/user/first-steps-users.html,
=== COMMUNITY:
* https://www.bitsharestalk.org/

btsnet.EVOLUTING

{time.2014}
Towards the end of 2014 some of the DACs were merged and the X was dropped from ”BitShares X” to become simply BitShares (BTS).
[White-paper]

bcnnet.time.Ethereum (ETHnet {2015-07-30})

Description::
Ethereum is a programmable blockchain.
Rather than give users a set of pre-defined operations (e.g. bitcoin transactions), Ethereum allows users to create their own operations of any complexity they wish. In this way, it serves as a platform for many different types of decentralized blockchain applications, including but not limited to cryptocurrencies.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#ethereum-virtual-machine]

Name::
* cpt.bcnnet.ethereum,
* cpt.ethereum,
* cpt.ethereum-network,
* cpt.ethnet,
* cpt.ethereum-ecosystem,
* cpt.ethereum-network,
* cpt.ethereum-platform,
* cpt.ethereum-project,
* cpt.ethereum-space,
* cpt.ethnet,
* cpt.net.ethereum,
* cpt.netEth, {2017-01-28}

Generic::
* Blockchain-program-blockchain-network,
* Proof-of-work-blockchain-network,

Description::
Ethereum is a peer to peer network where every peer stores the same copy of a blockchain database and runs an Ethereum virtual machine to maintain and alter it’s state. Proof of work is integrated into the blockchain technology by making the creation of a new block require all members of the network undertake the proof of work. Consensus is achieved via incentivization for peers to always accept the longest chain of blocks in the blockchain by distribution of a cryptographic token of value: ‘ether’.

This leaves us with a new piece of technology that does not fit within the client-server model nor does it qualify as a traditional peer-to-peer network as its existence is incentivised meaning it can be relied upon to provide a consistent deterministic service.

Because of its distributed nature and built in cryptographic security it can act as a third party, capable of arbitrating trustlessly, and without interference from outside parties. Through the use of cryptocurrencies decisions made by software can have financial consequences for people, organisations or even other software.
[https://dappsforbeginners.wordpress.com/tutorials/introduction-to-development-on-ethereum/]
===
Ether is a necessary element -- a fuel -- for operating the distributed application platform Ethereum. [https://ethereum.org/ether]
===
Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.

Ethereum is how the Internet was supposed to work.

Ethereum was crowdfunded during August 2014 by fans all around the world. It is developed by ETHDEV with contributions from great minds across the globe.
[https://www.ethereum.org/]
Original author(s)     Vitalik Buterin, Gavin Wood
Developer(s)     Gavin Wood, Jeffrey Wilcke, Vitalik Buterin, et al
Written in     C++, Go, JavaScript, Python, Java, node.js
Operating system     Linux, POSIX, Windows, OS X
Type     Decentralized computing
License     GPL3, MIT, LGPL, et al
Website     www.ethereum.org

Ethereum Software ETHEREUM-YOUTUBE-PROFILE-PIC.png
Original author(s)     Vitalik Buterin, Gavin Wood
Developer(s)     Gavin Wood, Jeffrey Wilcke, Vitalik Buterin, et al
Written in     C++, Go, JavaScript, Python, Java, node.js
Operating system     Linux, POSIX, Windows, OS X
Type     Decentralized computing
License     GPL3, MIT, LGPL, et al
Website     www.ethereum.org

Ethereum is a blockchain-based cryptocurrency that includes a virtual machine featuring stateful user-created smart contracts and a Turing-complete contract language. Ethereum uses its currency unit, Ether, as payment to incentivise a network of peers to provide computational services defined by the smart contracts deployed on the blockchain.

Ethereum was initially described by Vitalik Buterin in late 2013,[1] formally described by Gavin Wood in early 2014 in the so-called Yellow Paper[2] and launched 30 July 2015.[3] It is among a group of "next generation" (or "Bitcoin 2.0") platforms.[4]
[https://en.wikipedia.org/wiki/Ethereum]
===
Ethereum was designed as a smart contract platform.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05]
===
Ethereum – a Decentralised Consensus Network
[https://dappsforbeginners.wordpress.com/tutorials/introduction-to-development-on-ethereum/]
===
Ethereum is the world's first publicly accessible computer. Situated on the Internet, anyone may pay a small fee to its open group of maintainers in order to use it. Secured and authenticated through cryptography, it provides a unprecedented opportunity for use as the cornerstone of IoT, Internet-law, smart contracts and the next digital economy.
[https://ethcore.io/]
===
The basis for decentralised consensus is the peer-to-peer network of participating nodes which maintain and secure the blockchain.
[https://ethereum-homestead.readthedocs.org/en/latest/ethereum-ecosystem/infrastructure.html#the-ethereum-network]
===
Ethereum is a programmable blockchain. Rather than give users a set of pre-defined operations (e.g. bitcoin transactions), Ethereum allows users to create their own operations of any complexity they wish. In this way, it serves as a platform for many different types of decentralized blockchain applications, including but not limited to cryptocurrencies.
Ethereum in the narrow sense refers to a suite of protocols that define a platform for decentralised applications. At the heart of it is the Ethereum Virtual Machine (“EVM”), which can execute code of arbitrary algorithmic complexity. In computer science terms, Ethereum is “Turing complete”. Developers can create applications that run on the EVM using friendly programming languages modelled on existing languages like javascript and python.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#what-is-ethereum]
===
Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.

Ethereum is how the Internet was supposed to work.

Ethereum was crowdfunded during August 2014 by fans all around the world. It is developed by ETHDEV with contributions from great minds across the globe.
[https://www.ethereum.org/]
Original author(s)     Vitalik Buterin, Gavin Wood
Developer(s)     Gavin Wood, Jeffrey Wilcke, Vitalik Buterin, et al
Written in     C++, Go, JavaScript, Python, Java, node.js
Operating system     Linux, POSIX, Windows, OS X
Type     Decentralized computing
License     GPL3, MIT, LGPL, et al
Website     www.ethereum.org

Ethereum Software ETHEREUM-YOUTUBE-PROFILE-PIC.png
Original author(s)     Vitalik Buterin, Gavin Wood
Developer(s)     Gavin Wood, Jeffrey Wilcke, Vitalik Buterin, et al
Written in     C++, Go, JavaScript, Python, Java, node.js
Operating system     Linux, POSIX, Windows, OS X
Type     Decentralized computing
License     GPL3, MIT, LGPL, et al
Website     www.ethereum.org

Ethereum is a blockchain-based cryptocurrency that includes a virtual machine featuring stateful user-created smart contracts and a Turing-complete contract language. Ethereum uses its currency unit, Ether, as payment to incentivise a network of peers to provide computational services defined by the smart contracts deployed on the blockchain.

Ethereum was initially described by Vitalik Buterin in late 2013,[1] formally described by Gavin Wood in early 2014 in the so-called Yellow Paper[2] and launched 30 July 2015.[3] It is among a group of "next generation" (or "Bitcoin 2.0") platforms.[4]
[https://en.wikipedia.org/wiki/Ethereum]

ethnet'ATTRIBUTE

AddressWpg::
* http://gavwood.com/Paper.pdf,

External Actor:
A person or other entity able to interface to an Ethereum node, but external to the world of Ethereum.
It can interact with Ethereum through depositing signed Transactions and inspecting the blockchain and associated state.
Has one (or more) intrinsic Accounts.

Address:
A 160-bit code used for identifying Accounts.

Account:
Accounts have an intrinsic balance and transaction count maintained as part of the Ethereum state.
They also have some (possibly empty) EVM Code and a (possibly empty) Storage State associated with them.
Though homogenous, it makes sense to distinguish between two practical types of account: those with empty associated EVM Code (thus the account balance is controlled, if at all, by some external entity) and those with non-empty associated EVM Code (thus the account represents an Autonomous Object). Each Account has a single Address that identifies it.

Transaction: A piece of data, signed by an External Actor. It represents either a Message or a new Autonomous Object. Transactions are recorded into each block of the blockchain.

Autonomous Object: A notional object existent only within the hypothetical state of Ethereum. Has an intrinsic address and thus an associated account; the account will have non-empty associated EVM Code. Incorporated only as the Storage State of that account.

Storage State: The information particular to a given Account that is maintained between the times that the
Account’s associated EVM Code runs.

Message: Data (as a set of bytes) and Value (specified as Ether) that is passed between two Accounts, either
through the deterministic operation of an Autonomous Object or the cryptographically secure signature of the Transaction.

Message Call: The act of passing a message from one Account to another. If the destination account is associated with non-empty EVM Code, then the VM will be started with the state of said Object and the Message acted upon. If the message sender is an Autonomous Object, then the Call passes any data returned from the VM operation.

Gas: The fundamental network cost unit. Paid for exclusively by Ether (as of PoC-4), which is converted freely to and from Gas as required. Gas does not exist outside of the internal Ethereum computation engine; its price is set by the Transaction and miners are free to ignore Transactions whose Gas price is too low.

Contract: Informal term used to mean both a piece of EVM Code that may be associated with an Account or an Autonomous Object.

Object: Synonym for Autonomous Object.

App: An end-user-visible application hosted in the Ethereum Browser.

Ethereum Browser: (aka Ethereum Reference Client) A cross-platform GUI of an interface similar to a simplified browser (a la Chrome) that is able to host sandboxed applications whose backend is purely on the Ethereum protocol.

Ethereum Virtual Machine: (aka EVM) The virtual machine that forms the key part of the execution model for an Account’s associated EVM Code.

Ethereum Runtime Environment: (aka ERE) The environment which is provided to an Autonomous Object executing in the EVM. Includes the EVM but also the structure of the world state on which the EVM relies for certain I/O instructions including CALL & CREATE.

EVM Code: The bytecode that the EVM can natively execute. Used to formally specify the meaning and ramifications of a message to an Account.

EVM Assembly: The human-readable form of EVM-code.

LLL: The Lisp-like Low-level Language, a human-writable language used for authoring simple contracts and general low-level language toolkit for trans-compiling to.

ethnet'trustless

This is why you might have heard people call Ethereum ‘trustless’ – there’s no need for users to trust into a central authority to ‘do the right thing’.
[https://dappsforbeginners.wordpress.com/tutorials/your-first-dapp/]

ethnet'STATE

Description::
The state in Ethereum essentially consists of a key-value map, where the keys are addresses and the values are account declarations, listing the balance, nonce, code and storage for each account (where the storage is itself a tree).
For example, the Morden testnet genesis state looks as follows:
{
"0000000000000000000000000000000000000001": {
"balance": "1"
},
"0000000000000000000000000000000000000002": {
"balance": "1"
},
"0000000000000000000000000000000000000003": {
"balance": "1"
},
"0000000000000000000000000000000000000004": {
"balance": "1"
},
"102e61f5d8f9bc71d0ad4a084df4e65e05ce0e1c": {
"balance": "1606938044258990275541962092341162602522202993782792835301376"
}
}
[https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ Buterin.Vitalik]
===
The state can include such information as account balances, reputations, trust arrangements, data pertaining to information of the physical world; in short, anything that can currently be represented by a computer is admissible.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethnet'state,
* cpt.ethstate,

ethstate'Updating

Description::
Unlike transaction history, however, the state needs to be frequently updated: the balance and nonce of accounts is often changed, and what’s more, new accounts are frequently inserted, and keys in storage are frequently inserted and deleted. What is thus desired is a data structure where we can quickly calculate the new tree root after an insert, update edit or delete operation, without recomputing the entire tree. There are also two highly desirable secondary properties:

The depth of the tree is bounded, even given an attacker that is deliberately crafting transactions to make the tree as deep as possible. Otherwise, an attacker could perform a denial of service attack by manipulating the tree to be so deep that each individual update becomes extremely slow.
The root of the tree depends only on the data, not on the order in which updates are made. Making updates in a different order and even recomputing the tree from scratch should not change the root.
[https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ Buterin.Vitalik]

ethstate.FINAL

ethstate.GENESIS

ethnet'Protocol (ethprl)

ethprl'NAME.ENGLISH:
* cpt.ethnet'protocol,
* cpt.ethprl,

ethprl'GENERIC:
* blockchain-protocol,

ethprl'Implementation-language

Description::
Contrast this to the Ethereum ecosystem which today has no less than 6 implementations of consensus: C++, Go, Python, Java, JavaScript, and Haskell.
[https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/]

Name::
* cpt.ethnet'coding-language,
* cpt.ethnet'source-code-language,
* cpt.ethprl'implementation-language,

ethprl'White-paper (ethwpr)

NAME.ENGLISH:
* cpt.ethereum-white-paper,
* cpt.ethnet'white-paper,
* cpt.ethprl'white-paper,
* cpt.ethwpr,

ADDRESS.WPG:
* {2017-03-12} 36-revision: https://github.com/ethereum/wiki/wiki/White-Paper/307f463132be1878013196695ef82ca19eee4693,

A Next-Generation Smart Contract and Decentralized Application Platform

Satoshi Nakamoto's development of Bitcoin in 2009 has often been hailed as a radical development in money and currency, being the first example of a digital asset which simultaneously has no backing or "intrinsic value" and no centralized issuer or controller.
However, another, arguably more important, part of the Bitcoin experiment is the underlying blockchain technology as a tool of distributed consensus, and attention is rapidly starting to shift to this other aspect of Bitcoin.
Commonly cited alternative applications of blockchain technology include using on-blockchain digital assets to represent custom currencies and financial instruments ("colored coins"), the ownership of an underlying physical device ("smart property"), non-fungible assets such as domain names ("Namecoin"), as well as more complex applications involving having digital assets being directly controlled by a piece of code implementing arbitrary rules ("smart contracts") or even blockchain-based "decentralized autonomous organizations" (DAOs).
What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create "contracts" that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code.

Introduction-to-Bitcoin-and-Existing-Concepts

History

The concept of decentralized digital currency, as well as alternative applications like property registries, has been around for decades.
The anonymous e-cash protocols of the 1980s and the 1990s were mostly reliant on a cryptographic primitive known as Chaumian Blinding.
Chaumian Blinding provided these new currencies with high degrees of privacy, but their underlying protocols largely failed to gain traction because of their reliance on a centralized intermediary.
In 1998, Wei Dai's b-money became the first proposal to introduce the idea of creating money through solving computational puzzles as well as decentralized consensus, but the proposal was scant on details as to how decentralized consensus could actually be implemented.
In 2005, Hal Finney introduced a concept of "reusable proofs of work", a system which uses ideas from b-money together with Adam Back's computationally difficult Hashcash puzzles to create a concept for a cryptocurrency, but once again fell short of the ideal by relying on trusted computing as a backend.
In 2009, a decentralized currency was for the first time implemented in practice by Satoshi Nakamoto, combining established primitives for managing ownership through public key cryptography with a consensus algorithm for keeping track of who owns coins, known as "proof of work."

The mechanism behind proof of work was a breakthrough because it simultaneously solved two problems.
First, it provided a simple and moderately effective consensus algorithm, allowing nodes in the network to collectively agree on a set of updates to the state of the Bitcoin ledger.
Second, it provided a mechanism for allowing free entry into the consensus process, solving the political problem of deciding who gets to influence the consensus, while simultaneously preventing Sybil attacks.
It does this by substituting a formal barrier to participation, such as the requirement to be registered as a unique entity on a particular list, with an economic barrier - the weight of a single node in the consensus voting process is directly proportional to the computing power that the node brings.
Since then, an alternative approach has been proposed called proof of stake, calculating the weight of a node as being proportional to its currency holdings and not its computational resources.
The discussion concerning the relative merits of the two approaches is beyond the scope of this paper but it should be noted that both approaches can be used to serve as the backbone of a cryptocurrency.

Bitcoin-As-A-State-Transition-System

From a technical standpoint, the ledger of a cryptocurrency such as Bitcoin can be thought of as a state transition system, where there is a "state" consisting of the ownership status of all existing bitcoins and a "state transition function" that takes a state and a transaction and outputs a new state which is the result.
In a standard banking system, for example, the state is a balance sheet, a transaction is a request to move $X from A to B, and the state transition function reduces the value of A's account by $X and increases the value of B's account by $X.
If A's account has less than $X in the first place, the state transition function returns an error.
Hence, one can formally define:

APPLY(S,TX) -> S' or ERROR

In the banking system defined above:

APPLY({ Alice: $50, Bob: $50 },"send $20 from Alice to Bob") = { Alice: $30, Bob: $70 }

But:

APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR

The "state" in Bitcoin is the collection of all coins (technically, "unspent transaction outputs" or UTXO) that have been minted and not yet spent, with each UTXO having a denomination and an owner (defined by a 20-byte address which is essentially a cryptographic public key[ 1 ]).
A transaction contains one or more inputs, with each input containing a reference to an existing UTXO and a cryptographic signature produced by the private key associated with the owner's address, and one or more outputs, with each output containing a new UTXO for addition to the state.

The state transition function APPLY(S,TX) -> S' can be defined roughly as follows:

1. For each input in TX:
* If the referenced UTXO is not in S, return an error.
* If the provided signature does not match the owner of the UTXO, return an error.
2. If the sum of the denominations of all input UTXO is less than the sum of the denominations of all output UTXO, return an error.
3. Return S' with all input UTXO removed and all output UTXO added.

The first half of the first step prevents transaction senders from spending coins that do not exist, the second half of the first step prevents transaction senders from spending other people's coins, and the second step enforces conservation of value.
In order to use this for payment, the protocol is as follows.
Suppose Alice wants to send 11.7 BTC to Bob.
First, Alice will look for a set of available UTXO that she owns that totals up to at least 11.7 BTC.
Realistically, Alice will not be able to get exactly 11.7 BTC; say that the smallest she can get is 6+4+2=12.
She then creates a transaction with those three inputs and two outputs.
The first output will be 11.7 BTC with Bob's address as its owner, and the second output will be the remaining 0.3 BTC "change".
If Alice does not claim this change by sending it to an address owned by herself, the miner will be able to claim it.

Mining

If we had access to a trustworthy centralized service, this system would be trivial to implement; it could be coded exactly as described, using a centralized server's hard drive to keep track of the state.
However, with Bitcoin we are trying to build a decentralized currency system, so we will need to combine the state transition system with a consensus system in order to ensure that everyone agrees on the order of transactions.
Bitcoin's decentralized consensus process requires nodes in the network to continuously attempt to produce packages of transactions called "blocks".
The network is intended to create one block approximately every ten minutes, with each block containing a timestamp, a nonce, a reference to (i.e., hash of) the previous block and a list of all of the transactions that have taken place since the previous block.
Over time, this creates a persistent, ever-growing, "blockchain" that continually updates to represent the latest state of the Bitcoin ledger.

The algorithm for checking if a block is valid, expressed in this paradigm, is as follows:

1. Check if the previous block referenced by the block exists and is valid.
2. Check that the timestamp of the block is greater than that of the previous block[ 2 ] and less than 2 hours into the future
3. Check that the proof of work on the block is valid.
4. Let S[0] be the state at the end of the previous block.
5. Suppose TX is the block's transaction list with n transactions. For all i in 0...n-1, set S[i+1] = APPLY(S[i],TX[i]) If any application returns an error, exit and return false.
6. Return true, and register S[n] as the state at the end of this block.

Essentially, each transaction in the block must provide a valid state transition from what was the canonical state before the transaction was executed to some new state.
Note that the state is not encoded in the block in any way; it is purely an abstraction to be remembered by the validating node and can only be (securely) computed for any block by starting from the genesis state and sequentially applying every transaction in every block.
Additionally, note that the order in which the miner includes transactions into the block matters; if there are two transactions A and B in a block such that B spends a UTXO created by A, then the block will be valid if A comes before B but not otherwise.

The one validity condition present in the above list that is not found in other systems is the requirement for "proof of work".
The precise condition is that the double-SHA256 hash of every block, treated as a 256-bit number, must be less than a dynamically adjusted target, which as of the time of this writing is approximately 2187.
The purpose of this is to make block creation computationally "hard", thereby preventing Sybil attackers from remaking the entire blockchain in their favor.
Because SHA256 is designed to be a completely unpredictable pseudorandom function, the only way to create a valid block is simply trial and error, repeatedly incrementing the nonce and seeing if the new hash matches.

At the current target of ~2187, the network must make an average of ~269 tries before a valid block is found; in general, the target is recalibrated by the network every 2016 blocks so that on average a new block is produced by some node in the network every ten minutes.
In order to compensate miners for this computational work, the miner of every block is entitled to include a transaction giving themselves 25 BTC out of nowhere.
Additionally, if any transaction has a higher total denomination in its inputs than in its outputs, the difference also goes to the miner as a "transaction fee".
Incidentally, this is also the only mechanism by which BTC are issued; the genesis state contained no coins at all.

In order to better understand the purpose of mining, let us examine what happens in the event of a malicious attacker.
Since Bitcoin's underlying cryptography is known to be secure, the attacker will target the one part of the Bitcoin system that is not protected by cryptography directly: the order of transactions.
The attacker's strategy is simple:

1. Send 100 BTC to a merchant in exchange for some product (preferably a rapid-delivery digital good)
2. Wait for the delivery of the product
3. Produce another transaction sending the same 100 BTC to himself
4. Try to convince the network that his transaction to himself was the one that came first.

Once step (1) has taken place, after a few minutes some miner will include the transaction in a block, say block number 270000.
After about one hour, five more blocks will have been added to the chain after that block, with each of those blocks indirectly pointing to the transaction and thus "confirming" it.
At this point, the merchant will accept the payment as finalized and deliver the product; since we are assuming this is a digital good, delivery is instant.
Now, the attacker creates another transaction sending the 100 BTC to himself.
If the attacker simply releases it into the wild, the transaction will not be processed; miners will attempt to run APPLY(S,TX) and notice that TX consumes a UTXO which is no longer in the state.
So instead, the attacker creates a "fork" of the blockchain, starting by mining another version of block 270000 pointing to the same block 269999 as a parent but with the new transaction in place of the old one.
Because the block data is different, this requires redoing the proof of work. Furthermore, the attacker's new version of block 270000 has a different hash, so the original blocks 270001 to 270005 do not "point" to it; thus, the original chain and the attacker's new chain are completely separate.
The rule is that in a fork the longest blockchain is taken to be the truth, and so legitimate miners will work on the 270005 chain while the attacker alone is working on the 270000 chain.
In order for the attacker to make his blockchain the longest, he would need to have more computational power than the rest of the network combined in order to catch up (hence, "51% attack").

Merkle-Trees


01: it suffices to present only a small number of nodes in a Merkle tree to give a proof of the validity of a branch.


02: any attempt to change any part of the Merkle tree will eventually lead to an inconsistency somewhere up the chain.

An important scalability feature of Bitcoin is that the block is stored in a multi-level data structure.
The "hash" of a block is actually only the hash of the block header, a roughly 200-byte piece of data that contains the timestamp, nonce, previous block hash and the root hash of a data structure called the Merkle tree storing all transactions in the block.
A Merkle tree is a type of binary tree, composed of a set of nodes with a large number of leaf nodes at the bottom of the tree containing the underlying data, a set of intermediate nodes where each node is the hash of its two children, and finally a single root node, also formed from the hash of its two children, representing the "top" of the tree.
The purpose of the Merkle tree is to allow the data in a block to be delivered piecemeal: a node can download only the header of a block from one source, the small part of the tree relevant to them from another source, and still be assured that all of the data is correct.
The reason why this works is that hashes propagate upward: if a malicious user attempts to swap in a fake transaction into the bottom of a Merkle tree, this change will cause a change in the node above, and then a change in the node above that, finally changing the root of the tree and therefore the hash of the block, causing the protocol to register it as a completely different block (almost certainly with an invalid proof of work).

The Merkle tree protocol is arguably essential to long-term sustainability.
A "full node" in the Bitcoin network, one that stores and processes the entirety of every block, takes up about 15 GB of disk space in the Bitcoin network as of April 2014, and is growing by over a gigabyte per month.
Currently, this is viable for some desktop computers and not phones, and later on in the future only businesses and hobbyists will be able to participate.
A protocol known as "simplified payment verification" (SPV) allows for another class of nodes to exist, called "light nodes", which download the block headers, verify the proof of work on the block headers, and then download only the "branches" associated with transactions that are relevant to them.
This allows light nodes to determine with a strong guarantee of security what the status of any Bitcoin transaction, and their current balance, is while downloading only a very small portion of the entire blockchain.

Alternative-Blockchain-Applications

The idea of taking the underlying blockchain idea and applying it to other concepts also has a long history.
In 2005, Nick Szabo came out with the concept of "secure property titles with owner authority", a document describing how "new advances in replicated database technology" will allow for a blockchain-based system for storing a registry of who owns what land, creating an elaborate framework including concepts such as homesteading, adverse possession and Georgian land tax.
However, there was unfortunately no effective replicated database system available at the time, and so the protocol was never implemented in practice.
After 2009, however, once Bitcoin's decentralized consensus was developed a number of alternative applications rapidly began to emerge.

* Namecoin - created in 2010, Namecoin is best described as a decentralized name registration database.
In decentralized protocols like Tor, Bitcoin and BitMessage, there needs to be some way of identifying accounts so that other people can interact with them, but in all existing solutions the only kind of identifier available is a pseudorandom hash like 1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy.
Ideally, one would like to be able to have an account with a name like "george".
However, the problem is that if one person can create an account named "george" then someone else can use the same process to register "george" for themselves as well and impersonate them.
The only solution is a first-to-file paradigm, where the first registerer succeeds and the second fails - a problem perfectly suited for the Bitcoin consensus protocol.
Namecoin is the oldest, and most successful, implementation of a name registration system using such an idea.

* Colored coins - the purpose of colored coins is to serve as a protocol to allow people to create their own digital currencies - or, in the important trivial case of a currency with one unit, digital tokens, on the Bitcoin blockchain.
In the colored coins protocol, one "issues" a new currency by publicly assigning a color to a specific Bitcoin UTXO, and the protocol recursively defines the color of other UTXO to be the same as the color of the inputs that the transaction creating them spent (some special rules apply in the case of mixed-color inputs).
This allows users to maintain wallets containing only UTXO of a specific color and send them around much like regular bitcoins, backtracking through the blockchain to determine the color of any UTXO that they receive.

* Metacoins - the idea behind a metacoin is to have a protocol that lives on top of Bitcoin, using Bitcoin transactions to store metacoin transactions but having a different state transition function, APPLY'.
Because the metacoin protocol cannot prevent invalid metacoin transactions from appearing in the Bitcoin blockchain, a rule is added that if APPLY'(S,TX) returns an error, the protocol defaults to APPLY'(S,TX) = S.
This provides an easy mechanism for creating an arbitrary cryptocurrency protocol, potentially with advanced features that cannot be implemented inside of Bitcoin itself, but with a very low development cost since the complexities of mining and networking are already handled by the Bitcoin protocol.
Metacoins have been used to implement some classes of financial contracts, name registration and decentralized exchange.

Thus, in general, there are two approaches toward building a consensus protocol: building an independent network, and building a protocol on top of Bitcoin.
The former approach, while reasonably successful in the case of applications like Namecoin, is difficult to implement; each individual implementation needs to bootstrap an independent blockchain, as well as building and testing all of the necessary state transition and networking code.
Additionally, we predict that the set of applications for decentralized consensus technology will follow a power law distribution where the vast majority of applications would be too small to warrant their own blockchain, and we note that there exist large classes of decentralized applications, particularly decentralized autonomous organizations, that need to interact with each other.

The Bitcoin-based approach, on the other hand, has the flaw that it does not inherit the simplified payment verification features of Bitcoin.
SPV works for Bitcoin because it can use blockchain depth as a proxy for validity; at some point, once the ancestors of a transaction go far enough back, it is safe to say that they were legitimately part of the state.
Blockchain-based meta-protocols, on the other hand, cannot force the blockchain not to include transactions that are not valid within the context of their own protocols.
Hence, a fully secure SPV meta-protocol implementation would need to backward scan all the way to the beginning of the Bitcoin blockchain to determine whether or not certain transactions are valid.
Currently, all "light" implementations of Bitcoin-based meta-protocols rely on a trusted server to provide the data, arguably a highly suboptimal result especially when one of the primary purposes of a cryptocurrency is to eliminate the need for trust.

Scripting

Even without any extensions, the Bitcoin protocol actually does facilitate a weak version of a concept of "smart contracts".
UTXO in Bitcoin can be owned not just by a public key, but also by a more complicated script expressed in a simple stack-based programming language.
In this paradigm, a transaction spending that UTXO must provide data that satisfies the script.
Indeed, even the basic public key ownership mechanism is implemented via a script: the script takes an elliptic curve signature as input, verifies it against the transaction and the address that owns the UTXO, and returns 1 if the verification is successful and 0 otherwise.
Other, more complicated, scripts exist for various additional use cases.
For example, one can construct a script that requires signatures from two out of a given three private keys to validate ("multisig"), a setup useful for corporate accounts, secure savings accounts and some merchant escrow situations.
Scripts can also be used to pay bounties for solutions to computational problems, and one can even construct a script that says something like "this Bitcoin UTXO is yours if you can provide an SPV proof that you sent a Dogecoin transaction of this denomination to me", essentially allowing decentralized cross-cryptocurrency exchange.

However, the scripting language as implemented in Bitcoin has several important limitations:

* Lack of Turing-completeness - that is to say, while there is a large subset of computation that the Bitcoin scripting language supports, it does not nearly support everything.
The main category that is missing is loops.
This is done to avoid infinite loops during transaction verification; theoretically it is a surmountable obstacle for script programmers, since any loop can be simulated by simply repeating the underlying code many times with an if statement, but it does lead to scripts that are very space-inefficient.
For example, implementing an alternative elliptic curve signature algorithm would likely require 256 repeated multiplication rounds all individually included in the code.

* Value-blindness - there is no way for a UTXO script to provide fine-grained control over the amount that can be withdrawn.
For example, one powerful use case of an oracle contract would be a hedging contract, where A and B put in $1000 worth of BTC and after 30 days the script sends $1000 worth of BTC to A and the rest to B.
This would require an oracle to determine the value of 1 BTC in USD, but even then it is a massive improvement in terms of trust and infrastructure requirement over the fully centralized solutions that are available now.
However, because UTXO are all-or-nothing, the only way to achieve this is through the very inefficient hack of having many UTXO of varying denominations (eg. one UTXO of 2k for every k up to 30) and having O pick which UTXO to send to A and which to B.

* Lack of state - UTXO can either be spent or unspent; there is no opportunity for multi-stage contracts or scripts which keep any other internal state beyond that.
This makes it hard to make multi-stage options contracts, decentralized exchange offers or two-stage cryptographic commitment protocols (necessary for secure computational bounties).
It also means that UTXO can only be used to build simple, one-off contracts and not more complex "stateful" contracts such as decentralized organizations, and makes meta-protocols difficult to implement.
Binary state combined with value-blindness also mean that another important application, withdrawal limits, is impossible.

* Blockchain-blindness - UTXO are blind to certain blockchain data such as the nonce and previous block hash.
This severely limits applications in gambling, and several other categories, by depriving the scripting language of a potentially valuable source of randomness.

Thus, we see three approaches to building advanced applications on top of cryptocurrency: building a new blockchain, using scripting on top of Bitcoin, and building a meta-protocol on top of Bitcoin.
Building a new blockchain allows for unlimited freedom in building a feature set, but at the cost of development time, bootstrapping effort and security.
Using scripting is easy to implement and standardize, but is very limited in its capabilities, and meta-protocols, while easy, suffer from faults in scalability.
With Ethereum, we intend to build an alternative framework that provides even larger gains in ease of development as well as even stronger light client properties, while at the same time allowing applications to share an economic environment and blockchain security.

Ethereum

The intent of Ethereum is to create an alternative protocol for building decentralized applications, providing a different set of tradeoffs that we believe will be very useful for a large class of decentralized applications, with particular emphasis on situations where rapid development time, security for small and rarely used applications, and the ability of different applications to very efficiently interact, are important.
Ethereum does this by building what is essentially the ultimate abstract foundational layer: a blockchain with a built-in Turing-complete programming language, allowing anyone to write smart contracts and decentralized applications where they can create their own arbitrary rules for ownership, transaction formats and state transition functions.
A bare-bones version of Namecoin can be written in two lines of code, and other protocols like currencies and reputation systems can be built in under twenty.
Smart contracts, cryptographic "boxes" that contain value and only unlock it if certain conditions are met, can also be built on top of the platform, with vastly more power than that offered by Bitcoin scripting because of the added powers of Turing-completeness, value-awareness, blockchain-awareness and state.

Ethereum-Accounts

In Ethereum, the state is made up of objects called "accounts", with each account having a 20-byte address and state transitions being direct transfers of value and information between accounts.
An Ethereum account contains four fields:

* The nonce, a counter used to make sure each transaction can only be processed once
* The account's current ether balance
* The account's contract code, if present
* The account's storage (empty by default)

"Ether" is the main internal crypto-fuel of Ethereum, and is used to pay transaction fees.
In general, there are two types of accounts: externally owned accounts, controlled by private keys, and contract accounts, controlled by their contract code.
An externally owned account has no code, and one can send messages from an externally owned account by creating and signing a transaction; in a contract account, every time the contract account receives a message its code activates, allowing it to read and write to internal storage and send other messages or create contracts in turn.

Note that "contracts" in Ethereum should not be seen as something that should be "fulfilled" or "complied with"; rather, they are more like "autonomous agents" that live inside of the Ethereum execution environment, always executing a specific piece of code when "poked" by a message or transaction, and having direct control over their own ether balance and their own key/value store to keep track of persistent variables.

Messages-and-Transactions

The term "transaction" is used in Ethereum to refer to the signed data package that stores a message to be sent from an externally owned account.
Transactions contain:

* The recipient of the message
* A signature identifying the sender
* The amount of ether to transfer from the sender to the recipient
* An optional data field
* A STARTGAS value, representing the maximum number of computational steps the transaction execution is allowed to take
* A GASPRICE value, representing the fee the sender pays per computational step

The first three are standard fields expected in any cryptocurrency.
The data field has no function by default, but the virtual machine has an opcode with which a contract can access the data; as an example use case, if a contract is functioning as an on-blockchain domain registration service, then it may wish to interpret the data being passed to it as containing two "fields", the first field being a domain to register and the second field being the IP address to register it to.
The contract would read these values from the message data and appropriately place them in storage.

The STARTGAS and GASPRICE fields are crucial for Ethereum's anti-denial of service model.
In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use.
The fundamental unit of computation is "gas"; usually, a computational step costs 1 gas, but some operations cost higher amounts of gas because they are more computationally expensive, or increase the amount of data that must be stored as part of the state.
There is also a fee of 5 gas for every byte in the transaction data.
The intent of the fee system is to require an attacker to pay proportionately for every resource that they consume, including computation, bandwidth and storage; hence, any transaction that leads to the network consuming a greater amount of any of these resources must have a gas fee roughly proportional to the increment.

Messages

Contracts have the ability to send "messages" to other contracts.
Messages are virtual objects that are never serialized and exist only in the Ethereum execution environment.
A message contains:

* The sender of the message (implicit)
* The recipient of the message
* The amount of ether to transfer alongside the message
* An optional data field
* A STARTGAS value

Essentially, a message is like a transaction, except it is produced by a contract and not an external actor.
A message is produced when a contract currently executing code executes the CALL opcode, which produces and executes a message.
Like a transaction, a message leads to the recipient account running its code.
Thus, contracts can have relationships with other contracts in exactly the same way that external actors can.

Note that the gas allowance assigned by a transaction or contract applies to the total gas consumed by that transaction and all sub-executions.
For example, if an external actor A sends a transaction to B with 1000 gas, and B consumes 600 gas before sending a message to C, and the internal execution of C consumes 300 gas before returning, then B can spend another 100 gas before running out of gas.

Ethereum-State-Transition-Function

The Ethereum state transition function, APPLY(S,TX) -> S' can be defined as follows:

1. Check if the transaction is well-formed (ie. has the right number of values), the signature is valid, and the nonce matches the nonce in the sender's account. If not, return an error.
2. Calculate the transaction fee as STARTGAS * GASPRICE, and determine the sending address from the signature. Subtract the fee from the sender's account balance and increment the sender's nonce. If there is not enough balance to spend, return an error.
3. Initialize GAS = STARTGAS, and take off a certain quantity of gas per byte to pay for the bytes in the transaction.
4. Transfer the transaction value from the sender's account to the receiving account. If the receiving account does not yet exist, create it. If the receiving account is a contract, run the contract's code either to completion or until the execution runs out of gas.
5. If the value transfer failed because the sender did not have enough money, or the code execution ran out of gas, revert all state changes except the payment of the fees, and add the fees to the miner's account.
6. Otherwise, refund the fees for all remaining gas to the sender, and send the fees paid for gas consumed to the miner.

For example, suppose that the contract's code is:

if !self.storage[calldataload(0)]:
 self.storage[calldataload(0)] = calldataload(32)

Note that in reality the contract code is written in the low-level EVM code; this example is written in Serpent, one of our high-level languages, for clarity, and can be compiled down to EVM code.
Suppose that the contract's storage starts off empty, and a transaction is sent with 10 ether value, 2000 gas, 0.001 ether gasprice, and 64 bytes of data, with bytes 0-31 representing the number 2 and bytes 32-63 representing the string CHARLIE.
The process for the state transition function in this case is as follows:

1. Check that the transaction is valid and well formed.
2. Check that the transaction sender has at least 2000 * 0.001 = 2 ether. If it is, then subtract 2 ether from the sender's account.
3. Initialize gas = 2000; assuming the transaction is 170 bytes long and the byte-fee is 5, subtract 850 so that there is 1150 gas left.
3. Subtract 10 more ether from the sender's account, and add it to the contract's account.
4. Run the code. In this case, this is simple: it checks if the contract's storage at index 2 is used, notices that it is not, and so it sets the storage at index 2 to the value CHARLIE. Suppose this takes 187 gas, so the remaining amount of gas is 1150 - 187 = 963
5. Add 963 * 0.001 = 0.963 ether back to the sender's account, and return the resulting state.

If there was no contract at the receiving end of the transaction, then the total transaction fee would simply be equal to the provided GASPRICE multiplied by the length of the transaction in bytes, and the data sent alongside the transaction would be irrelevant.

Note that messages work equivalently to transactions in terms of reverts: if a message execution runs out of gas, then that message's execution, and all other executions triggered by that execution, revert, but parent executions do not need to revert.
This means that it is "safe" for a contract to call another contract, as if A calls B with G gas then A's execution is guaranteed to lose at most G gas.
Finally, note that there is an opcode, CREATE, that creates a contract; its execution mechanics are generally similar to CALL, with the exception that the output of the execution determines the code of a newly created contract.

Code-Execution

The code in Ethereum contracts is written in a low-level, stack-based bytecode language, referred to as "Ethereum virtual machine code" or "EVM code".
The code consists of a series of bytes, where each byte represents an operation.
In general, code execution is an infinite loop that consists of repeatedly carrying out the operation at the current program counter (which begins at zero) and then incrementing the program counter by one, until the end of the code is reached or an error or STOP or RETURN instruction is detected.
The operations have access to three types of space in which to store data:

* The stack, a last-in-first-out container to which values can be pushed and popped
* Memory, an infinitely expandable byte array
* The contract's long-term storage, a key/value store. Unlike stack and memory, which reset after computation ends, storage persists for the long term.

The code can also access the value, sender and data of the incoming message, as well as block header data, and the code can also return a byte array of data as an output.

The formal execution model of EVM code is surprisingly simple.
While the Ethereum virtual machine is running, its full computational state can be defined by the tuple (block_state, transaction, message, code, memory, stack, pc, gas), where block_state is the global state containing all accounts and includes balances and storage.
At the start of every round of execution, the current instruction is found by taking the pcth (Program Counter) byte of code (or 0 if pc >= len(code)), and each instruction has its own definition in terms of how it affects the tuple.
For example, ADD pops two items off the stack and pushes their sum, reduces gas by 1 and increments pc by 1, and SSTORE pops the top two items off the stack and inserts the second item into the contract's storage at the index specified by the first item.
Although there are many ways to optimize Ethereum virtual machine execution via just-in-time compilation, a basic implementation of Ethereum can be done in a few hundred lines of code.

Blockchain-and-Mining

The Ethereum blockchain is in many ways similar to the Bitcoin blockchain, although it does have some differences.
The main difference between Ethereum and Bitcoin with regard to the blockchain architecture is that, unlike Bitcoin, Ethereum blocks contain a copy of both the transaction list and the most recent state.
Aside from that, two other values, the block number and the difficulty, are also stored in the block.
The basic block validation algorithm in Ethereum is as follows:

1. Check if the previous block referenced exists and is valid.
2. Check that the timestamp of the block is greater than that of the referenced previous block and less than 15 minutes into the future
3. Check that the block number, difficulty, transaction root, uncle root and gas limit (various low-level Ethereum-specific concepts) are valid.
4. Check that the proof of work on the block is valid.
5. Let S[0] be the state at the end of the previous block.
6. Let TX be the block's transaction list, with n transactions. For all i in 0...n-1, set S[i+1] = APPLY(S[i],TX[i]). If any application returns an error, or if the total gas consumed in the block up until this point exceeds the GASLIMIT, return an error.
7. Let S_FINAL be S[n], but adding the block reward paid to the miner.
8. Check if the Merkle tree root of the state S_FINAL is equal to the final state root provided in the block header. If it is, the block is valid; otherwise, it is not valid.

The approach may seem highly inefficient at first glance, because it needs to store the entire state with each block, but in reality efficiency should be comparable to that of Bitcoin.
The reason is that the state is stored in the tree structure, and after every block only a small part of the tree needs to be changed.
Thus, in general, between two adjacent blocks the vast majority of the tree should be the same, and therefore the data can be stored once and referenced twice using pointers (ie. hashes of subtrees).
A special kind of tree known as a "Patricia tree" is used to accomplish this, including a modification to the Merkle tree concept that allows for nodes to be inserted and deleted, and not just changed, efficiently.
Additionally, because all of the state information is part of the last block, there is no need to store the entire blockchain history - a strategy which, if it could be applied to Bitcoin, can be calculated to provide 5-20x savings in space.

A commonly asked question is "where" contract code is executed, in terms of physical hardware.
This has a simple answer: the process of executing contract code is part of the definition of the state transition function, which is part of the block validation algorithm, so if a transaction is added into block B the code execution spawned by that transaction will be executed by all nodes, now and in the future, that download and validate block B.

Applications

In general, there are three types of applications on top of Ethereum.
The first category is financial applications, providing users with more powerful ways of managing and entering into contracts using their money.
This includes sub-currencies, financial derivatives, hedging contracts, savings wallets, wills, and ultimately even some classes of full-scale employment contracts.
The second category is semi-financial applications, where money is involved but there is also a heavy non-monetary side to what is being done; a perfect example is self-enforcing bounties for solutions to computational problems.
Finally, there are applications such as online voting and decentralized governance that are not financial at all.

Token Systems

On-blockchain token systems have many applications ranging from sub-currencies representing assets such as USD or gold to company stocks, individual tokens representing smart property, secure unforgeable coupons, and even token systems with no ties to conventional value at all, used as point systems for incentivization.
Token systems are surprisingly easy to implement in Ethereum.
The key point to understand is that all a currency, or token system, fundamentally is a database with one operation: subtract X units from A and give X units to B, with the proviso that (i) A had at least X units before the transaction and (ii) the transaction is approved by A.
All that it takes to implement a token system is to implement this logic into a contract.

The basic code for implementing a token system in Serpent looks as follows:


def send(to, value):
    if self.storage[msg.sender] >= value:
        self.storage[msg.sender] = self.storage[msg.sender] - value
        self.storage[to] = self.storage[to] + value
    

This is essentially a literal implementation of the "banking system" state transition function described further above in this document.
A few extra lines of code need to be added to provide for the initial step of distributing the currency units in the first place and a few other edge cases, and ideally a function would be added to let other contracts query for the balance of an address.
But that's all there is to it.
Theoretically, Ethereum-based token systems acting as sub-currencies can potentially include another important feature that on-chain Bitcoin-based meta-currencies lack: the ability to pay transaction fees directly in that currency.
The way this would be implemented is that the contract would maintain an ether balance with which it would refund ether used to pay fees to the sender, and it would refill this balance by collecting the internal currency units that it takes in fees and reselling them in a constant running auction.
Users would thus need to "activate" their accounts with ether, but once the ether is there it would be reusable because the contract would refund it each time.

Financial-derivatives-and-Stable-Value-Currencies

Financial derivatives are the most common application of a "smart contract", and one of the simplest to implement in code.
The main challenge in implementing financial contracts is that the majority of them require reference to an external price ticker; for example, a very desirable application is a smart contract that hedges against the volatility of ether (or another cryptocurrency) with respect to the US dollar, but doing this requires the contract to know what the value of ETH/USD is.
The simplest way to do this is through a "data feed" contract maintained by a specific party (eg. NASDAQ) designed so that that party has the ability to update the contract as needed, and providing an interface that allows other contracts to send a message to that contract and get back a response that provides the price.

Given that critical ingredient, the hedging contract would look as follows:

1. Wait for party A to input 1000 ether.
2. Wait for party B to input 1000 ether.
3. Record the USD value of 1000 ether, calculated by querying the data feed contract, in storage, say this is $x.
4. After 30 days, allow A or B to "reactivate" the contract in order to send $x worth of ether (calculated by querying the data feed contract again to get the new price) to A and the rest to B.

Such a contract would have significant potential in crypto-commerce.
One of the main problems cited about cryptocurrency is the fact that it's volatile; although many users and merchants may want the security and convenience of dealing with cryptographic assets, they may not wish to face that prospect of losing 23% of the value of their funds in a single day.
Up until now, the most commonly proposed solution has been issuer-backed assets; the idea is that an issuer creates a sub-currency in which they have the right to issue and revoke units, and provide one unit of the currency to anyone who provides them (offline) with one unit of a specified underlying asset (eg. gold, USD).
The issuer then promises to provide one unit of the underlying asset to anyone who sends back one unit of the crypto-asset.
This mechanism allows any non-cryptographic asset to be "uplifted" into a cryptographic asset, provided that the issuer can be trusted.

In practice, however, issuers are not always trustworthy, and in some cases the banking infrastructure is too weak, or too hostile, for such services to exist.
Financial derivatives provide an alternative.
Here, instead of a single issuer providing the funds to back up an asset, a decentralized market of speculators, betting that the price of a cryptographic reference asset (eg. ETH) will go up, plays that role.
Unlike issuers, speculators have no option to default on their side of the bargain because the hedging contract holds their funds in escrow.
Note that this approach is not fully decentralized, because a trusted source is still needed to provide the price ticker, although arguably even still this is a massive improvement in terms of reducing infrastructure requirements (unlike being an issuer, issuing a price feed requires no licenses and can likely be categorized as free speech) and reducing the potential for fraud.

Identity-and-Reputation-Systems

The earliest alternative cryptocurrency of all, Namecoin, attempted to use a Bitcoin-like blockchain to provide a name registration system, where users can register their names in a public database alongside other data.
The major cited use case is for a DNS system, mapping domain names like "bitcoin.org" (or, in Namecoin's case, "bitcoin.bit") to an IP address.
Other use cases include email authentication and potentially more advanced reputation systems.
Here is the basic contract to provide a Namecoin-like name registration system on Ethereum:


def register(name, value):
    if !self.storage[name]:
        self.storage[name] = value
    

The contract is very simple; all it is is a database inside the Ethereum network that can be added to, but not modified or removed from.
Anyone can register a name with some value, and that registration then sticks forever.
A more sophisticated name registration contract will also have a "function clause" allowing other contracts to query it, as well as a mechanism for the "owner" (ie. the first registerer) of a name to change the data or transfer ownership.
One can even add reputation and web-of-trust functionality on top.

Decentralized-File-Storage

Over the past few years, there have emerged a number of popular online file storage startups, the most prominent being Dropbox, seeking to allow users to upload a backup of their hard drive and have the service store the backup and allow the user to access it in exchange for a monthly fee.
However, at this point the file storage market is at times relatively inefficient; a cursory look at various existing solutions shows that, particularly at the "uncanny valley" 20-200 GB level at which neither free quotas nor enterprise-level discounts kick in, monthly prices for mainstream file storage costs are such that you are paying for more than the cost of the entire hard drive in a single month.
Ethereum contracts can allow for the development of a decentralized file storage ecosystem, where individual users can earn small quantities of money by renting out their own hard drives and unused space can be used to further drive down the costs of file storage.

The key underpinning piece of such a device would be what we have termed the "decentralized Dropbox contract".
This contract works as follows.
First, one splits the desired data up into blocks, encrypting each block for privacy, and builds a Merkle tree out of it.
One then makes a contract with the rule that, every N blocks, the contract would pick a random index in the Merkle tree (using the previous block hash, accessible from contract code, as a source of randomness), and give X ether to the first entity to supply a transaction with a simplified payment verification-like proof of ownership of the block at that particular index in the tree.
When a user wants to re-download their file, they can use a micropayment channel protocol (eg. pay 1 szabo per 32 kilobytes) to recover the file; the most fee-efficient approach is for the payer not to publish the transaction until the end, instead replacing the transaction with a slightly more lucrative one with the same nonce after every 32 kilobytes.

An important feature of the protocol is that, although it may seem like one is trusting many random nodes not to decide to forget the file, one can reduce that risk down to near-zero by splitting the file into many pieces via secret sharing, and watching the contracts to see each piece is still in some node's possession.
If a contract is still paying out money, that provides a cryptographic proof that someone out there is still storing the file.

Decentralized-Autonomous-Organizations

The general concept of a "decentralized autonomous organization" is that of a virtual entity that has a certain set of members or shareholders which, perhaps with a 67% majority, have the right to spend the entity's funds and modify its code.
The members would collectively decide on how the organization should allocate its funds.
Methods for allocating a DAO's funds could range from bounties, salaries to even more exotic mechanisms such as an internal currency to reward work.
This essentially replicates the legal trappings of a traditional company or nonprofit but using only cryptographic blockchain technology for enforcement.
So far much of the talk around DAOs has been around the "capitalist" model of a "decentralized autonomous corporation" (DAC) with dividend-receiving shareholders and tradable shares; an alternative, perhaps described as a "decentralized autonomous community", would have all members have an equal share in the decision making and require 67% of existing members to agree to add or remove a member.
The requirement that one person can only have one membership would then need to be enforced collectively by the group.

A general outline for how to code a DAO is as follows.
The simplest design is simply a piece of self-modifying code that changes if two thirds of members agree on a change.
Although code is theoretically immutable, one can easily get around this and have de-facto mutability by having chunks of the code in separate contracts, and having the address of which contracts to call stored in the modifiable storage.
In a simple implementation of such a DAO contract, there would be three transaction types, distinquished by the data provided in the transaction:

* [0,i,K,V] to register a proposal with index i to change the address at storage index K to value V
* [0,i] to register a vote in favor of proposal i
* [2,i] to finalize proposal i if enough votes have been made

The contract would then have clauses for each of these.
It would maintain a record of all open storage changes, along with a list of who voted for them.
It would also have a list of all members.
When any storage change gets to two thirds of members voting for it, a finalizing transaction could execute the change.
A more sophisticated skeleton would also have built-in voting ability for features like sending a transaction, adding members and removing members, and may even provide for Liquid Democracy-style vote delegation (ie. anyone can assign someone to vote for them, and assignment is transitive so if A assigns B and B assigns C then C determines A's vote).
This design would allow the DAO to grow organically as a decentralized community, allowing people to eventually delegate the task of filtering out who is a member to specialists, although unlike in the "current system" specialists can easily pop in and out of existence over time as individual community members change their alignments.

An alternative model is for a decentralized corporation, where any account can have zero or more shares, and two thirds of the shares are required to make a decision.
A complete skeleton would involve asset management functionality, the ability to make an offer to buy or sell shares, and the ability to accept offers (preferably with an order-matching mechanism inside the contract).
Delegation would also exist Liquid Democracy-style, generalizing the concept of a "board of directors".

Further-Applications

1. Savings wallets.
Suppose that Alice wants to keep her funds safe, but is worried that she will lose or someone will hack her private key.
She puts ether into a contract with Bob, a bank, as follows:

* Alice alone can withdraw a maximum of 1% of the funds per day.
* Bob alone can withdraw a maximum of 1% of the funds per day, but Alice has the ability to make a transaction with her key shutting off this ability.
* Alice and Bob together can withdraw anything.

Normally, 1% per day is enough for Alice, and if Alice wants to withdraw more she can contact Bob for help.
If Alice's key gets hacked, she runs to Bob to move the funds to a new contract.
If she loses her key, Bob will get the funds out eventually.
If Bob turns out to be malicious, then she can turn off his ability to withdraw.

2. Crop insurance.
One can easily make a financial derivatives contract but using a data feed of the weather instead of any price index.
If a farmer in Iowa purchases a derivative that pays out inversely based on the precipitation in Iowa, then if there is a drought, the farmer will automatically receive money and if there is enough rain the farmer will be happy because their crops would do well.
This can be expanded to natural disaster insurance generally.

3. A decentralized data feed.
For financial contracts for difference, it may actually be possible to decentralize the data feed via a protocol called "SchellingCoin".
SchellingCoin basically works as follows: N parties all put into the system the value of a given datum (eg. the ETH/USD price), the values are sorted, and everyone between the 25th and 75th percentile gets one token as a reward.
Everyone has the incentive to provide the answer that everyone else will provide, and the only value that a large number of players can realistically agree on is the obvious default: the truth.
This creates a decentralized protocol that can theoretically provide any number of values, including the ETH/USD price, the temperature in Berlin or even the result of a particular hard computation.

4. Smart multisignature escrow.
Bitcoin allows multisignature transaction contracts where, for example, three out of a given five keys can spend the funds.
Ethereum allows for more granularity; for example, four out of five can spend everything, three out of five can spend up to 10% per day, and two out of five can spend up to 0.5% per day.
Additionally, Ethereum multisig is asynchronous - two parties can register their signatures on the blockchain at different times and the last signature will automatically send the transaction.

5. Cloud computing.
The EVM technology can also be used to create a verifiable computing environment, allowing users to ask others to carry out computations and then optionally ask for proofs that computations at certain randomly selected checkpoints were done correctly.
This allows for the creation of a cloud computing market where any user can participate with their desktop, laptop or specialized server, and spot-checking together with security deposits can be used to ensure that the system is trustworthy (ie. nodes cannot profitably cheat).
Although such a system may not be suitable for all tasks; tasks that require a high level of inter-process communication, for example, cannot easily be done on a large cloud of nodes.
Other tasks, however, are much easier to parallelize; projects like SETI@home, folding@home and genetic algorithms can easily be implemented on top of such a platform.

6. Peer-to-peer gambling.
Any number of peer-to-peer gambling protocols, such as Frank Stajano and Richard Clayton's Cyberdice, can be implemented on the Ethereum blockchain.
The simplest gambling protocol is actually simply a contract for difference on the next block hash, and more advanced protocols can be built up from there, creating gambling services with near-zero fees that have no ability to cheat.

7. Prediction markets.
Provided an oracle or SchellingCoin, prediction markets are also easy to implement, and prediction markets together with SchellingCoin may prove to be the first mainstream application of futarchy as a governance protocol for decentralized organizations.

8. On-chain decentralized marketplaces,
using the identity and reputation system as a base.

Miscellanea-And-Concerns

Modified-GHOST-Implementation

The "Greedy Heaviest Observed Subtree" (GHOST) protocol is an innovation first introduced by Yonatan Sompolinsky and Aviv Zohar in December 2013.
The motivation behind GHOST is that blockchains with fast confirmation times currently suffer from reduced security due to a high stale rate - because blocks take a certain time to propagate through the network, if miner A mines a block and then miner B happens to mine another block before miner A's block propagates to B, miner B's block will end up wasted and will not contribute to network security.
Furthermore, there is a centralization issue: if miner A is a mining pool with 30% hashpower and B has 10% hashpower, A will have a risk of producing a stale block 70% of the time (since the other 30% of the time A produced the last block and so will get mining data immediately) whereas B will have a risk of producing a stale block 90% of the time.
Thus, if the block interval is short enough for the stale rate to be high, A will be substantially more efficient simply by virtue of its size.
With these two effects combined, blockchains which produce blocks quickly are very likely to lead to one mining pool having a large enough percentage of the network hashpower to have de facto control over the mining process.

As described by Sompolinsky and Zohar, GHOST solves the first issue of network security loss by including stale blocks in the calculation of which chain is the "longest"; that is to say, not just the parent and further ancestors of a block, but also the stale descendants of the block's ancestor (in Ethereum jargon, "uncles") are added to the calculation of which block has the largest total proof of work backing it.
To solve the second issue of centralization bias, we go beyond the protocol described by Sompolinsky and Zohar, and also provide block rewards to stales: a stale block receives 87.5% of its base reward, and the nephew that includes the stale block receives the remaining 12.5%.
Transaction fees, however, are not awarded to uncles.

Ethereum implements a simplified version of GHOST which only goes down seven levels.
Specifically, it is defined as follows:

* A block must specify a parent, and it must specify 0 or more uncles
* An uncle included in block B must have the following properties:
 o It must be a direct child of the kth generation ancestor of B, where 2 <= k <= 7.
 o It cannot be an ancestor of B
 o An uncle must be a valid block header, but does not need to be a previously verified or even valid block
 o An uncle must be different from all uncles included in previous blocks and all other uncles included in the same block (non-double-inclusion)
* For every uncle U in block B, the miner of B gets an additional 3.125% added to its coinbase reward and the miner of U gets 93.75% of a standard coinbase reward.

This limited version of GHOST, with uncles includable only up to 7 generations, was used for two reasons.
First, unlimited GHOST would include too many complications into the calculation of which uncles for a given block are valid.
Second, unlimited GHOST with compensation as used in Ethereum removes the incentive for a miner to mine on the main chain and not the chain of a public attacker.

Fees

Because every transaction published into the blockchain imposes on the network the cost of needing to download and verify it, there is a need for some regulatory mechanism, typically involving transaction fees, to prevent abuse.
The default approach, used in Bitcoin, is to have purely voluntary fees, relying on miners to act as the gatekeepers and set dynamic minimums.
This approach has been received very favorably in the Bitcoin community particularly because it is "market-based", allowing supply and demand between miners and transaction senders determine the price.
The problem with this line of reasoning is, however, that transaction processing is not a market; although it is intuitively attractive to construe transaction processing as a service that the miner is offering to the sender, in reality every transaction that a miner includes will need to be processed by every node in the network, so the vast majority of the cost of transaction processing is borne by third parties and not the miner that is making the decision of whether or not to include it.
Hence, tragedy-of-the-commons problems are very likely to occur.

However, as it turns out this flaw in the market-based mechanism, when given a particular inaccurate simplifying assumption, magically cancels itself out.
The argument is as follows.
Suppose that:

1. A transaction leads to k operations, offering the reward kR to any miner that includes it where R is set by the sender and k and R are (roughly) visible to the miner beforehand.
2. An operation has a processing cost of C to any node (ie. all nodes have equal efficiency)
3. There are N mining nodes, each with exactly equal processing power (ie. 1/N of total)
4. No non-mining full nodes exist.

A miner would be willing to process a transaction if the expected reward is greater than the cost.
Thus, the expected reward is kR/N since the miner has a 1/N chance of processing the next block, and the processing cost for the miner is simply kC.
Hence, miners will include transactions where kR/N > kC, or R > NC.
Note that R is the per-operation fee provided by the sender, and is thus a lower bound on the benefit that the sender derives from the transaction, and NC is the cost to the entire network together of processing an operation.
Hence, miners have the incentive to include only those transactions for which the total utilitarian benefit exceeds the cost.

However, there are several important deviations from those assumptions in reality:

1. The miner does pay a higher cost to process the transaction than the other verifying nodes, since the extra verification time delays block propagation and thus increases the chance the block will become a stale.
2. There do exist nonmining full nodes.
3. The mining power distribution may end up radically inegalitarian in practice.
4. Speculators, political enemies and crazies whose utility function includes causing harm to the network do exist, and they can cleverly set up contracts where their cost is much lower than the cost paid by other verifying nodes.

(1) provides a tendency for the miner to include fewer transactions, and (2) increases NC; hence, these two effects at least partially cancel each other out.
(3) and (4) are the major issue; to solve them we simply institute a floating cap: no block can have more operations than BLK_LIMIT_FACTOR times the long-term exponential moving average.
Specifically:

blk.oplimit = floor((blk.parent.oplimit * (EMA_FACTOR - 1) + floor(parent.opcount * BLK_LIMIT_FACTOR)) / EMA_FACTOR)

BLK_LIMIT_FACTOR and EMA_FACTOR are constants that will be set to 65536 and 1.5 for the time being, but will likely be changed after further analysis.

There is another factor disincentivizing large block sizes in Bitcoin: blocks that are large will take longer to propagate, and thus have a higher probability of becoming stales.
In Ethereum, highly gas-consuming blocks can also take longer to propagate both because they are physically larger and because they take longer to process the transaction state transitions to validate.
This delay disincentive is a significant consideration in Bitcoin, but less so in Ethereum because of the GHOST protocol; hence, relying on regulated block limits provides a more stable baseline.

Computation-And-Turing-Completeness

An important note is that the Ethereum virtual machine is Turing-complete; this means that EVM code can encode any computation that can be conceivably carried out, including infinite loops.
EVM code allows looping in two ways.
First, there is a JUMP instruction that allows the program to jump back to a previous spot in the code, and a JUMPI instruction to do conditional jumping, allowing for statements like while x < 27: x = x * 2.
Second, contracts can call other contracts, potentially allowing for looping through recursion.
This naturally leads to a problem: can malicious users essentially shut miners and full nodes down by forcing them to enter into an infinite loop?
The issue arises because of a problem in computer science known as the halting problem: there is no way to tell, in the general case, whether or not a given program will ever halt.

As described in the state transition section, our solution works by requiring a transaction to set a maximum number of computational steps that it is allowed to take, and if execution takes longer computation is reverted but fees are still paid.
Messages work in the same way.
To show the motivation behind our solution, consider the following examples:

* An attacker creates a contract which runs an infinite loop, and then sends a transaction activating that loop to the miner.
The miner will process the transaction, running the infinite loop, and wait for it to run out of gas.
Even though the execution runs out of gas and stops halfway through, the transaction is still valid and the miner still claims the fee from the attacker for each computational step.

* An attacker creates a very long infinite loop with the intent of forcing the miner to keep computing for such a long time that by the time computation finishes a few more blocks will have come out and it will not be possible for the miner to include the transaction to claim the fee.
However, the attacker will be required to submit a value for STARTGAS limiting the number of computational steps that execution can take, so the miner will know ahead of time that the computation will take an excessively large number of steps.

* An attacker sees a contract with code of some form like send(A,contract.storage[A]); contract.storage[A] = 0, and sends a transaction with just enough gas to run the first step but not the second (ie. making a withdrawal but not letting the balance go down).
The contract author does not need to worry about protecting against such attacks, because if execution stops halfway through the changes get reverted.

* A financial contract works by taking the median of nine proprietary data feeds in order to minimize risk.
An attacker takes over one of the data feeds, which is designed to be modifiable via the variable-address-call mechanism described in the section on DAOs, and converts it to run an infinite loop, thereby attempting to force any attempts to claim funds from the financial contract to run out of gas.
However, the financial contract can set a gas limit on the message to prevent this problem.

The alternative to Turing-completeness is Turing-incompleteness, where JUMP and JUMPI do not exist and only one copy of each contract is allowed to exist in the call stack at any given time.
With this system, the fee system described and the uncertainties around the effectiveness of our solution might not be necessary, as the cost of executing a contract would be bounded above by its size.
Additionally, Turing-incompleteness is not even that big a limitation; out of all the contract examples we have conceived internally, so far only one required a loop, and even that loop could be removed by making 26 repetitions of a one-line piece of code.
Given the serious implications of Turing-completeness, and the limited benefit, why not simply have a Turing-incomplete language?
In reality, however, Turing-incompleteness is far from a neat solution to the problem.
To see why, consider the following contracts:

C0: call(C1); call(C1);
C1: call(C2); call(C2);
C2: call(C3); call(C3);
...
C49: call(C50); call(C50);
C50: (run one step of a program and record the change in storage)

Now, send a transaction to A.
Thus, in 51 transactions, we have a contract that takes up 250 computational steps.
Miners could try to detect such logic bombs ahead of time by maintaining a value alongside each contract specifying the maximum number of computational steps that it can take, and calculating this for contracts calling other contracts recursively, but that would require miners to forbid contracts that create other contracts (since the creation and execution of all 26 contracts above could easily be rolled into a single contract).
Another problematic point is that the address field of a message is a variable, so in general it may not even be possible to tell which other contracts a given contract will call ahead of time.
Hence, all in all, we have a surprising conclusion: Turing-completeness is surprisingly easy to manage, and the lack of Turing-completeness is equally surprisingly difficult to manage unless the exact same controls are in place - but in that case why not just let the protocol be Turing-complete?

Currency-And-Issuance

The Ethereum network includes its own built-in currency, ether, which serves the dual purpose of providing a primary liquidity layer to allow for efficient exchange between various types of digital assets and, more importantly, of providing a mechanism for paying transaction fees. For convenience and to avoid future argument (see the current mBTC/uBTC/satoshi debate in Bitcoin), the denominations will be pre-labeled:

* 1: wei
* 1012: szabo
* 1015: finney
* 1018: ether

This should be taken as an expanded version of the concept of "dollars" and "cents" or "BTC" and "satoshi". In the near future, we expect "ether" to be used for ordinary transactions, "finney" for microtransactions and "szabo" and "wei" for technical discussions around fees and protocol implementation; the remaining denominations may become useful later and should not be included in clients at this point.

The issuance model will be as follows:

* Ether will be released in a currency sale at the price of 1000-2000 ether per BTC, a mechanism intended to fund the Ethereum organization and pay for development that has been used with success by other platforms such as Mastercoin and NXT. Earlier buyers will benefit from larger discounts. The BTC received from the sale will be used entirely to pay salaries and bounties to developers and invested into various for-profit and non-profit projects in the Ethereum and cryptocurrency ecosystem.
* 0.099x the total amount sold (60102216 ETH) will be allocated to the organization to compensate early contributors and pay ETH-denominated expenses before the genesis block.
* 0.099x the total amount sold will be maintained as a long-term reserve.
* 0.26x the total amount sold will be allocated to miners per year forever after that point.

Group At launch After 1 year After 5 years
Currency units 1.198X 1.458X 2.498X
Purchasers 83.5% 68.6% 40.0%
Reserve spent pre-sale 8.26% 6.79% 3.96%
Reserve used post-sale 8.26% 6.79% 3.96%
Miners 0% 17.8% 52.0%

Long-Term Supply Growth Rate (percent):


Despite the linear currency issuance, just like with Bitcoin over time the supply growth rate nevertheless tends to zero

The two main choices in the above model are (1) the existence and size of an endowment pool, and (2) the existence of a permanently growing linear supply, as opposed to a capped supply as in Bitcoin.
The justification of the endowment pool is as follows.
If the endowment pool did not exist, and the linear issuance reduced to 0.217x to provide the same inflation rate, then the total quantity of ether would be 16.5% less and so each unit would be 19.8% more valuable.
Hence, in the equilibrium 19.8% more ether would be purchased in the sale, so each unit would once again be exactly as valuable as before.
The organization would also then have 1.198x as much BTC, which can be considered to be split into two slices: the original BTC, and the additional 0.198x.
Hence, this situation is exactly equivalent to the endowment, but with one important difference: the organization holds purely BTC, and so is not incentivized to support the value of the ether unit.

The permanent linear supply growth model reduces the risk of what some see as excessive wealth concentration in Bitcoin, and gives individuals living in present and future eras a fair chance to acquire currency units, while at the same time retaining a strong incentive to obtain and hold ether because the "supply growth rate" as a percentage still tends to zero over time.
We also theorize that because coins are always lost over time due to carelessness, death, etc, and coin loss can be modeled as a percentage of the total supply per year, that the total currency supply in circulation will in fact eventually stabilize at a value equal to the annual issuance divided by the loss rate (eg. at a loss rate of 1%, once the supply reaches 26X then 0.26X will be mined and 0.26X lost every year, creating an equilibrium).

Note that in the future, it is likely that Ethereum will switch to a proof-of-stake model for security, reducing the issuance requirement to somewhere between zero and 0.05X per year.
In the event that the Ethereum organization loses funding or for any other reason disappears, we leave open a "social contract": anyone has the right to create a future candidate version of Ethereum, with the only condition being that the quantity of ether must be at most equal to 60102216 * (1.198 + 0.26 * n) where n is the number of years after the genesis block.
Creators are free to crowd-sell or otherwise assign some or all of the difference between the PoS-driven supply expansion and the maximum allowable supply expansion to pay for development.
Candidate upgrades that do not comply with the social contract may justifiably be forked into compliant versions.

Mining-Centralization

The Bitcoin mining algorithm works by having miners compute SHA256 on slightly modified versions of the block header millions of times over and over again, until eventually one node comes up with a version whose hash is less than the target (currently around 2192).
However, this mining algorithm is vulnerable to two forms of centralization.
First, the mining ecosystem has come to be dominated by ASICs (application-specific integrated circuits), computer chips designed for, and therefore thousands of times more efficient at, the specific task of Bitcoin mining.
This means that Bitcoin mining is no longer a highly decentralized and egalitarian pursuit, requiring millions of dollars of capital to effectively participate in.
Second, most Bitcoin miners do not actually perform block validation locally; instead, they rely on a centralized mining pool to provide the block headers.
This problem is arguably worse: as of the time of this writing, the top three mining pools indirectly control roughly 50% of processing power in the Bitcoin network, although this is mitigated by the fact that miners can switch to other mining pools if a pool or coalition attempts a 51% attack.

The current intent at Ethereum is to use a mining algorithm where miners are required to fetch random data from the state, compute some randomly selected transactions from the last N blocks in the blockchain, and return the hash of the result.
This has two important benefits.
First, Ethereum contracts can include any kind of computation, so an Ethereum ASIC would essentially be an ASIC for general computation - ie. a better CPU.
Second, mining requires access to the entire blockchain, forcing miners to store the entire blockchain and at least be capable of verifying every transaction.
This removes the need for centralized mining pools; although mining pools can still serve the legitimate role of evening out the randomness of reward distribution, this function can be served equally well by peer-to-peer pools with no central control.

This model is untested, and there may be difficulties along the way in avoiding certain clever optimizations when using contract execution as a mining algorithm.
However, one notably interesting feature of this algorithm is that it allows anyone to "poison the well", by introducing a large number of contracts into the blockchain specifically designed to stymie certain ASICs.
The economic incentives exist for ASIC manufacturers to use such a trick to attack each other.
Thus, the solution that we are developing is ultimately an adaptive economic human solution rather than purely a technical one.

Scalability

One common concern about Ethereum is the issue of scalability.
Like Bitcoin, Ethereum suffers from the flaw that every transaction needs to be processed by every node in the network.
With Bitcoin, the size of the current blockchain rests at about 15 GB, growing by about 1 MB per hour.
If the Bitcoin network were to process Visa's 2000 transactions per second, it would grow by 1 MB per three seconds (1 GB per hour, 8 TB per year).
Ethereum is likely to suffer a similar growth pattern, worsened by the fact that there will be many applications on top of the Ethereum blockchain instead of just a currency as is the case with Bitcoin, but ameliorated by the fact that Ethereum full nodes need to store just the state instead of the entire blockchain history.

The problem with such a large blockchain size is centralization risk.
If the blockchain size increases to, say, 100 TB, then the likely scenario would be that only a very small number of large businesses would run full nodes, with all regular users using light SPV nodes.
In such a situation, there arises the potential concern that the full nodes could band together and all agree to cheat in some profitable fashion (eg. change the block reward, give themselves BTC).
Light nodes would have no way of detecting this immediately.
Of course, at least one honest full node would likely exist, and after a few hours information about the fraud would trickle out through channels like Reddit, but at that point it would be too late: it would be up to the ordinary users to organize an effort to blacklist the given blocks, a massive and likely infeasible coordination problem on a similar scale as that of pulling off a successful 51% attack.
In the case of Bitcoin, this is currently a problem, but there exists a blockchain modification suggested by Peter Todd which will alleviate this issue.

In the near term, Ethereum will use two additional strategies to cope with this problem.
First, because of the blockchain-based mining algorithms, at least every miner will be forced to be a full node, creating a lower bound on the number of full nodes.
Second and more importantly, however, we will include an intermediate state tree root in the blockchain after processing each transaction.
Even if block validation is centralized, as long as one honest verifying node exists, the centralization problem can be circumvented via a verification protocol.
If a miner publishes an invalid block, that block must either be badly formatted, or the state S[n] is incorrect.
Since S[0] is known to be correct, there must be some first state S[i] that is incorrect where S[i-1] is correct.
The verifying node would provide the index i, along with a "proof of invalidity" consisting of the subset of Patricia tree nodes needing to process APPLY(S[i-1],TX[i]) -> S[i].
Nodes would be able to use those nodes to run that part of the computation, and see that the S[i] generated does not match the S[i] provided.

Another, more sophisticated, attack would involve the malicious miners publishing incomplete blocks, so the full information does not even exist to determine whether or not blocks are valid.
The solution to this is a challenge-response protocol: verification nodes issue "challenges" in the form of target transaction indices, and upon receiving a node a light node treats the block as untrusted until another node, whether the miner or another verifier, provides a subset of Patricia nodes as a proof of validity.

Conclusion

The Ethereum protocol was originally conceived as an upgraded version of a cryptocurrency, providing advanced features such as on-blockchain escrow, withdrawal limits, financial contracts, gambling markets and the like via a highly generalized programming language.
The Ethereum protocol would not "support" any of the applications directly, but the existence of a Turing-complete programming language means that arbitrary contracts can theoretically be created for any transaction type or application.
What is more interesting about Ethereum, however, is that the Ethereum protocol moves far beyond just currency.
Protocols around decentralized file storage, decentralized computation and decentralized prediction markets, among dozens of other such concepts, have the potential to substantially increase the efficiency of the computational industry, and provide a massive boost to other peer-to-peer protocols by adding for the first time an economic layer.
Finally, there is also a substantial array of applications that have nothing to do with money at all.

The concept of an arbitrary state transition function as implemented by the Ethereum protocol provides for a platform with unique potential; rather than being a closed-ended, single-purpose protocol intended for a specific array of applications in data storage, gambling or finance, Ethereum is open-ended by design, and we believe that it is extremely well-suited to serving as a foundational layer for a very large number of both financial and non-financial protocols in the years to come.

Notes-and-Further-Reading

Notes

1. A sophisticated reader may notice that in fact a Bitcoin address is the hash of the elliptic curve public key, and not the public key itself.
However, it is in fact perfectly legitimate cryptographic terminology to refer to the pubkey hash as a public key itself.
This is because Bitcoin's cryptography can be considered to be a custom digital signature algorithm, where the public key consists of the hash of the ECC pubkey, the signature consists of the ECC pubkey concatenated with the ECC signature, and the verification algorithm involves checking the ECC pubkey in the signature against the ECC pubkey hash provided as a public key and then verifying the ECC signature against the ECC pubkey.

2. Technically, the median of the 11 previous blocks.

3. Internally, 2 and "CHARLIE" are both numbers, with the latter being in big-endian base 256 representation. Numbers can be at least 0 and at most 2256-1.

Further-Reading

1. Intrinsic value: http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/

2. Smart property: https://en.bitcoin.it/wiki/Smart_Property

3. Smart contracts: https://en.bitcoin.it/wiki/Contracts

4. B-money: http://www.weidai.com/bmoney.txt

5. Reusable proofs of work: http://www.finney.org/~hal/rpow/

6. Secure property titles with owner authority: http://szabo.best.vwh.net/securetitle.html

7. Bitcoin whitepaper: http://bitcoin.org/bitcoin.pdf

8. Namecoin: https://namecoin.org/

9. Zooko's triangle: http://en.wikipedia.org/wiki/Zooko's_triangle

10. Colored coins whitepaper: https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit

11. Mastercoin whitepaper: https://github.com/mastercoin-MSC/spec

12. Decentralized autonomous corporations, Bitcoin Magazine: http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/

13. Simplified payment verification: https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification

14. Merkle trees: http://en.wikipedia.org/wiki/Merkle_tree

15. Patricia trees: http://en.wikipedia.org/wiki/Patricia_tree

16. GHOST: http://www.cs.huji.ac.il/~avivz/pubs/13/btc_scalability_full.pdf

17. StorJ and Autonomous Agents, Jeff Garzik: http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html

18. Mike Hearn on Smart Property at Turing Festival: http://www.youtube.com/watch?v=Pu4PAMFPo5Y

19. Ethereum RLP: https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP

20. Ethereum Merkle Patricia trees: https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree

21. Peter Todd on Merkle sum trees: http://sourceforge.net/p/bitcoin/mailman/message/31709140/

ethprl'Yellow-paper

AddressWpg::
* http://gavwood.com/Paper.pdf,

ethprl'Whisper

Description::
In a nutshell whisper is a communication protocol for DApps to communicate with each other.
[https://github.com/ethereum/wiki/wiki/Whisper]
===
Whisper is a part of the Ethereum P2P protocol suite that allows for messaging between users via the same network that the blockchain runs on.

There are many uses, some of which are listed on the wiki

The protocol is seperate from the blockchain, so smart contracts do not have access.

Whisper has existed in a sort of alpha, working-prototype state for some time now. It can be enabled by using the -shh flag in geth, but nodes do not relay the messages by default, so chances are that messages won't get through unless you are directly connected to the recipient. API documentation can be found on github.
[http://ethereum.stackexchange.com/a/134]

Name::
* cpt.Whisper,

ethnet'Node (ethnod)

Description::
Nodes are COMPUTERS that run the-client-programs
- stores a full or light copy of the-blockchain
- interacts with the-blockchain.
[hmnSgm.2017-03-16]

Name::
* cpt.ethereum-node,
* cpt.ethnet'node,
* cpt.ethnod,

Generic::
* blockchain-network-node,

AddressWpg::
* https://www.ethernodes.org/network/1,

Description::
Nodes that maintain and verify the network are incentivized by mathematically enforced economic incentives coded into the protocol.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain]
===
Node overview
Id    000c157e3fdc04c299fcf1c433c51e7d079d33c4c9175275299c834f1fef355f
791741ae23ca387018320038caa90fc5e243bec3992d9a6d789b771dfea42f0f
Host    94.242-61-32
Port    46897
Client id    Parity/v1.5.4-beta-74b850e-20170223/x86_64-linux-gnu/rustc1.15.1
Client    Parity
Client version    v1.5.4-beta-74b850e-20170223
OS    x86_64-linux-gnu
Capabilities    [par/1 par/2 eth/62 eth/63]
Protocol version    63
Network id    1
Total difficulty    204795435708956
Best hash    c8268e06bf48ff52c6ce9be4f2b3560b5a881133b55f4a1e5d44a401a67477ad
Genesis hash    41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d
Last seen    Thu Mar 16 2017 13:54:29 GMT+0100 (CET)
Country    Russian Federation
City   
[https://www.ethernodes.org/node/000c157e3fdc04c299fcf1c433c51e7d079d33c4c9175275299c834f1fef355f791741ae23ca387018320038caa90fc5e243bec3992d9a6d789b771dfea42f0f]

ethnod'Client-program (link)

ethnod'OS

ethnod'Computer

Description::
Thanks to Merkle trees, it is possible to build Ethereum nodes that run on all computers and laptops large and small, smart phones, and even internet of things devices such as those that will be produced by Slock.it.
[https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ Buterin.Vitalik]

ethnod'EVM (link)

ethnod.AGGREGATE

{time.2017-03-16}

Total 10789 (100%)
United States 3175 (29.43%)
Germany 942 (8.73%)
United Kingdom 595 (5.51%)
Canada 496 (4.60%)
Russian Federation 484 (4.49%)
China 479 (4.44%)
Netherlands 459 (4.25%)
France 344 (3.19%)
Australia 275 (2.55%)
Switzerland 200 (1.85%)

[https://www.ethernodes.org/network/1]

{time.2017-02-03}
Total  6176 (100%)
United States  1826 (29.57%)
Germany  481 (7.79%)
Russian Federation  368 (5.96%)
United Kingdom  299 (4.84%)
China  286 (4.63%)
Canada  258 (4.18%)
Netherlands  256 (4.15%)
France  228 (3.69%)
Australia  125 (2.02%)
Switzerland  125 (2.02%)
[https://www.ethernodes.org/network/1]

ethnod.FULL

Description::
Full nodes on the Bitcoin blockchain store every transaction made going back to the zero block; full nodes on the Ethereum blockchain additionally store the static code (if any) associated with a given account and that code’s current state in storage.
[https://medium.com/@ConsenSys/ethereum-bitcoin-plus-everything-a506dc780106#.izxhgdxdt]

Name::
* cpt.ethnet'full-node,
* cpt.ethnod.full,

ethnod.MINER (ethnodMnr)

Description::
Miner. A node on the network that mines, i.e., works to process blocks on the blockchain. You can see a partial list of live Ethereum miners here: stats.ethdev.com.
[https://medium.com/@ConsenSys/a-101-noob-intro-to-programming-smart-contracts-on-ethereum-695d15c1dab4#.5x9da12dp]
===
These transaction fees are collected by the nodes that validate the network. These “miners” are nodes in the Ethereum network that receive, propogate, verify, and execute transactions. The miners then group the transactions – which include many updates to the “state” of accounts in the Ethereum blockchain – into what are called “blocks”, and miners then compete with one another for their block to be the next one to be added to the blockchain. Miners are rewarded with ether for each successful block they mine. This provides the economic incentive for people to dedicate hardware and electricity to the Ethereum network.
...
Just as in the Bitcoin network, miners are tasked with solving a complex mathematical problem in order to successfully “mine” a block. This is known as a “Proof of Work”. Any computational problem that requires orders of magnitude more resources to solve algorithmically than it takes to verify the solution is a good candidate for proof of work. In order to discourage centralisation due to the use of specialised hardware (e.g. ASICs), as has occurred in the Bitcoin network, Ethereum chose a memory-hard computational problem. If the problem requires memory as well as CPU, the ideal hardware is in fact the general computer. This makes Ethereum’s Proof of Work ASIC-resistant, allowing a more decentralized distribution of security than blockchains whose mining is dominated by specialized hardware, like Bitcoin.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]

Name::
* cpt.ethnodMnr,
* cpt.ethminer,
* cpt.ethminer-node,

ethnodMnr'Hardware

Description::
To mine Ethereum you need a GPU, 4+GB RAM, Etherum account and GPU miner.
The GPU must have at least 2GB memory.
Recomended AMD GPU driver 15.12.
[https://eth.nanopool.org/help]

Radeon Rx 480 GPU

ethnodMnr'Mining (ethmining)

Description::
Mining is the process of dedicating effort (working) to bolster one series of transactions (a block) over any other potential competitor block.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethereum-mining,
* cpt.ethnet'mining,
* cpt.ethmining,
* cpt.ethmng,

Description::
The Ethereum network is kept running by computers all over the world.
In order to reward the computational costs of both processing the contracts and securing the network, there is a reward that is given to the computer that was able to create the latest block on the chain.
Every 12 seconds, on average, a new block is added to the blockchain with the latest transactions processed by the network and the computer that generated this block will be awarded 5 ether.
Due to the nature of the algorithm for block generation, this process (generating a proof of work) is guaranteed to be random and rewards are given in proportion to the computational power of each machine.
This process is usually called mining in the crypto-currency lingo.
[https://ethereum.org/ether]
===
Mining ether = Securing the Network = Verifying Computation
[https://ethereum-homestead.readthedocs.io/en/latest/mining.html#introduction]

ethmining'Resource

AddressWpg::
* {2016.07} Amazon AWS Ethereum Cloud Mining Tutorial-12 Step Guide to Generating ETC! https://steemit.com/ethereum/@coininstant/amazon-aws-ethereum-cloud-mining-tutorial...etc,

ethnet'Blockchain (ethbcn)

Description::
The Ethereum blockchain (or "ledger") is the decentralized, massively replicated database in which the current state of all accounts is stored.
The blockchain uses a database called a Patricia tree (or "trie") to store all accounts; this is essentially a specialized kind of Merkle tree that acts as a generic key/value store.
[https://github.com/ethereum/wiki/wiki/Ethereum-Development-Tutorial#basics-of-the-ethereum-blockchain]
===
the blockchain, where all the EVM state is represented.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05#262d]
===
Blockchain technology is the technological basis of Bitcoin, first described by its mysterious author Satoshi Nakamoto in his white paper “Bitcoin: A Peer-to-Peer Electronic Cash System”, published in 2008. While the use of blockchains for more general uses was already discussed in the original paper, it was not until a few years later that blockchain technology emerged as a generic term. A blockchain is a distributed computing architecture where every network node executes and records the same transactions, which are grouped into blocks. Only one block can be added at a time, and every block contains a mathematical proof that verifies that it follows in sequence from the previous block. In this way, the blockchain’s “distributed database” is kept in consensus across the whole network. Individual user interactions with the ledger (transactions) are secured by strong cryptography. Nodes that maintain and verify the network are incentivized by mathematically enforced economic incentives coded into the protocol.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain]

Name::
* cpt.blockchain.ethereum,
* cpt.blockchain-of-ethereum,
* cpt.ethbcn,
* cpt.ethblockchain,
* cpt.ethdistributed-database,
* cpt.ethereum-blockchain,
* cpt.ethledger,
* cpt.ethnet'blockchain,

ethbcn'Block (ethblk)

Description::
4.4. The Block. The block in Ethereum is the collection of relevant pieces of information (known as the block header ), H, together with information corresponding to the comprised transactions, T, and a set of other block headers U that are known to have a parent equal to the present block’s parent’s parent (such blocks are known as ommers2).
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
The blocks on the blockchain represent units of time, the blockchain itself is a temporal dimension and represents the entire of history of states at the discrete time points designated by the blocks on the chain.
[https://ethereum-homestead.readthedocs.org/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#eoa-vs-contract-accounts]

Name::
* cpt.ethblk,
* cpt.ethblock,
* cpt.ethereum-block,
* cpt.ethnet'block,

ethblk'part.Header (ethblkH)

Description::
4.4. The Block.
The block in Ethereum is the collection of relevant pieces of information (known as the block header ), H, together with information corresponding to the comprised transactions, T, and a set of other block headers U that are known to have a parent equal to the present block’s parent’s parent (such blocks are known as ommers2).
The block header contains several pieces of information:
parentHash: The Keccak 256-bit hash of the parent block’s header, in its entirety; formally Hp.
ommersHash: The Keccak 256-bit hash of the ommers list portion of this block; formally Ho.
beneficiary: The 160-bit address to which all fees collected from the successful mining of this block be transferred; formally Hc.
stateRoot: The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalisations applied; formally Hr.
transactionsRoot: The Keccak 256-bit hash of the root node of the trie structure populated with
each transaction in the transactions list portion of the block; formally Ht.
receiptsRoot: The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block; formally He.
logsBloom: The Bloom filter composed from indexable information (logger address and log topics) contained in each log entry from the receipt of each transaction in the transactions list; formally Hb.
difficulty: A scalar value corresponding to the difficulty level of this block. This can be calculated from the previous block’s difficulty level and the timestamp; formally Hd.
number: A scalar value equal to the number of ancestor blocks. The genesis block has a number of zero; formally Hi.
gasLimit: A scalar value equal to the current limit of gas expenditure per block; formally Hl.
gasUsed: A scalar value equal to the total gas used in transactions in this block; formally Hg.
timestamp: A scalar value equal to the reasonable output of Unix’s time() at this block’s inception; formally Hs.
extraData: An arbitrary byte array containing data relevant to this block. This must be 32 bytes or fewer; formally Hx.
mixHash: A 256-bit hash which proves combined with the nonce that a sufficient amount of computation has been carried out on this block; formally Hm.
nonce: A 64-bit hash which proves combined with the mix-hash that a sufficient amount of computation has been carried out on this block; formally Hn.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'header,
* cpt.ethblkH,

ethblk'parentHash (ethblkHp)

Description::
parentHash: The Keccak 256-bit hash of the parent block’s header, in its entirety; formally Hp.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'parentHash,
* cpt.ethblk'parent-hash,
* cpt.ehtblkHp,

ethblk'ommersHash (ethblkHo)

Description::
ommersHash: The Keccak 256-bit hash of the ommers list portion of this block; formally Ho.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'ommersHash,
* cpt.ethblk'ommers-hash,
* cpt.ehtblkHo,

ethblk'beneficiary (ethblkHc)

Description::
beneficiary: The 160-bit address to which all fees collected from the successful mining of this block be transferred; formally Hc.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
20-bytes, 40-hexs,
===
Miner    bb7b8287f3f0a933474a79eae42cbca977791171
[https://live.ether.camp/block/59]

Name::
* cpt.ethblk'beneficiary,
* cpt.ethblk'miner,
* cpt.ehtblkHc,

Generic::
* eth-address,

ethblk'stateRoot (ethblkHr)

Description::
stateRoot: The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalisations applied; formally Hr.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'stateRoot,
* cpt.ehtblkHr,

ethblk'transactionsRoot (ethblkHt)

Description::
transactionsRoot: The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block; formally Ht.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'transactionsRoot,
* cpt.ehtblkHt,

ethblk'receiptsRoot (ethblkHe)

Description::
receiptsRoot: The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block; formally He.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'receiptsRoot,
* cpt.ehtblkHe,

ethblk'logsBloom (ethblkHb)

Description::
logsBloom: The Bloom filter composed from indexable information (logger address and log topics) contained in each log entry from the receipt of each transaction in the transactions list; formally Hb.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'logsBloom,
* cpt.ehtblkHb,

ethblk'difficulty (ethblkHd)

Description::
difficulty: A scalar value corresponding to the difficulty level of this block.
This can be calculated from the previous block’s difficulty level and the timestamp; formally Hd.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
Difficulty    17561410778
[https://live.ether.camp/block/59]

Name::
* cpt.ethblk'difficulty,
* cpt.ehtblkHd,

ethblk'number (ethblkHi)

Description::
number: A scalar value equal to the number of ancestor blocks.
The genesis block has a number of zero; formally Hi.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
Block #3000059
Hash    55bf7cf28ef891df9683fe80de1f7a985d803f8f21755a7977e76916b6dd78a3
Prev Hash    d232b55f0b77a22fbc40ceea7ab9b9ba592034b5c9a71e2dca57c2912054bd72
Next Hash   
Transactions    0
Uncle Hash    55bf7cf28ef891df9683fe80de1f7a985d803f8f21755a7977e76916b6dd78a3
Nonce    c09eea000f9a5886
State Root    0920e25b921c1b518ce5ccbbada31fcec225f118a364d9c271d0bb3c591fa229
Tx Trie Root    56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421
Timestamp    a month ago [1484475724]
Gas Limit    4000881
Gas Used    0
Miner    c0ea08a2d404d3172d2add29a45be56da40e2949
Difficulty    104754858920035
Extra Data    www.bw.com [7777772e62772e636f6d]
Bloom Filter   
00 00 00 00 00 00 00 00
...
00 00 00 00 00 00 00 00
[https://live.ether.camp/block/3000059]

Name::
* cpt.ethblk'height,
* cpt.ethblk'number,
* cpt.ehtblkHi,

ethblkHi.Homestead

Description::
4.2. Homestead. A significant block number for compatibility with the public network is the block marking the transition between the Frontier and Homestead phases of the platform, which we denote with the symbol NH, defined thus
(13) NH = 1,150,000
The protocol was upgraded at this block, so this symbol appears in some equations to account for the changes.

ethblk'gasLimit (ethblkHl)

Description::
gasLimit: A scalar value equal to the current limit of gas expenditure per block; formally Hl.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'gasLimit,
* cpt.ehtblkHl,

ethblk'gasUsed (ethblkHg)

Description::
gasUsed: A scalar value equal to the total gas used in transactions in this block; formally Hg.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'gasUsed,
* cpt.ehtblkHg,

ethblk'timestamp (ethblkHs)

Description::
timestamp: A scalar value equal to the reasonable output of Unix’s time() at this block’s inception; formally Hs.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
Timestamp    2 years ago [1438270327]
[https://live.ether.camp/block/59]

Name::
* cpt.ethblk'timestamp,
* cpt.ehtblkHs,

ethblk'extraData (ethblkHx)

Description::
extraData: An arbitrary byte array containing data relevant to this block.
This must be 32 bytes or fewer; formally Hx.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
Extra Data    Geth/LVIV/v1.0.0/linux/go1.4.2 [476574682f4c5649562f76312e302e302f6c696e75782f676f312e342e32]
[https://live.ether.camp/block/59]

Name::
* cpt.ethblk'extraData,
* cpt.ehtblkHx,

ethblk'mixHash (ethblkHm)

Description::
mixHash: A 256-bit hash which proves combined with the nonce that a sufficient amount of computation has been carried out on this block; formally Hm.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'mixHash,
* cpt.ethblk'mix-hash,
* cpt.ehtblkHm,

ethblk'nonce (ethblkHn)

Description::
nonce: A 64-bit hash which proves combined with the mix-hash that a sufficient amount of computation has been carried out on this block; formally Hn.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
Nonce: a meaningless value in a block which can be adjusted in order to try to satisfy the proof of work condition
[https://github.com/ethereum/wiki/wiki/Glossary]
===
Nonce    4ce04218c05e8275
[https://live.ether.camp/block/59]

Name::
* cpt.ethblk'nance,
* cpt.ehtblkHn,

ethblk'part.Transaction-list

Description::
4.4. The Block. The block in Ethereum is the collection of relevant pieces of information (known as the block header ), H, together with information corresponding to the comprised transactions, T, and a set of other block headers U that are known to have a parent equal to the present block’s parent’s parent (such blocks are known as ommers2).
...The other two components in the block are simply a list of ommer block headers (of the same format as above) and a series of the transactions.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'transaction-list,
* cpt.ethblkT,

ethblk'part.Ommer-list

Description::
4.4. The Block. The block in Ethereum is the collection of relevant pieces of information (known as the block header ), H, together with information corresponding to the comprised transactions, T, and a set of other block headers U that are known to have a parent equal to the present block’s parent’s parent (such blocks are known as ommers2).
...The other two components in the block are simply a list of ommer block headers (of the same format as above) and a series of the transactions.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk'ommer-list,
* cpt.ethblkU,

Ommers-hash (link)

ethblk'Hash

Description::
Hash    4d9423080290a650eaf6db19c87c76dff83d1b4ab64aefe6e5c5aa2d1f4b6623
Prev Hash    cd5b5c4cecd7f18a13fe974255badffd58e737dc67596d56bc01f063dd282e9e
Next Hash    3cd0324c7ba14ba7cf6e4b664dea0360681458d76bd25dfc0d2207ce4e9abed4
Transactions    0
Uncle Hash    4d9423080290a650eaf6db19c87c76dff83d1b4ab64aefe6e5c5aa2d1f4b6623
[https://live.ether.camp/block/59]

Name::
* cpt.ethblk'hash,

ethblk'Gas

Description::
Gas Limit    5000
Gas Used    0
[https://live.ether.camp/block/59]

Name::
* cpt.ethblk'gas,

ethblk'Merkle-tree

Description::
First, the basics. A Merkle tree, in the most general sense, is a way of hashing a large number of “chunks” of data together which relies on splitting the chunks into buckets, where each bucket contains only a few chunks, then taking the hash of each bucket and repeating the same process, continuing to do so until the total number of hashes remaining becomes only one: the root hash.
[https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ Buterin.Vitalik]

Name::
* cpt.ethblk'Merkle-tree,
* cpt.ethblk'Merkle-tree-hashing-algorithm,
* cpt.ethblk'Merkle-trie,
* cpt.ethnet'Merkle-tree,
* cpt.Merkle-tree,

Merkle-root-hash
Merkle-proof

Description::
A Merkle proof consists of a chunk, the root hash of the tree, and the “branch” consisting of all of the hashes going up along the path from the chunk to the root. Someone reading the proof can verify that the hashing, at least for that branch, is consistent going all the way up the tree, and therefore that the given chunk actually is at that position in the tree. The application is simple: suppose that there is a large database, and that the entire contents of the database are stored in a Merkle tree where the root of the Merkle tree is publicly known and trusted (eg. it was digitally signed by enough trusted parties, or there is a lot of proof of work on it). Then, a user who wants to do a key-value lookup on the database (eg. “tell me the object in position 85273”) can ask for a Merkle proof, and upon receiving the proof verify that it is correct, and therefore that the value received actually is at position 85273 in the database with that particular root. It allows a mechanism for authenticating a small amount of data, like a hash, to be extended to also authenticate large databases of potentially unbounded size.
[https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ Buterin.Vitalik]

Merkle-application

Description::
The original application of Merkle proofs was in Bitcoin, as described and created by Satoshi Nakamoto in 2009. The Bitcoin blockchain uses Merkle proofs in order to store the transactions in every block:

The benefit that this provides is the concept that Satoshi described as “simplified payment verification”: instead of downloading every transaction and every block, a “light client” can only download the chain of block headers, 80-byte chunks of data for each block that contain only five things:
A hash of the previous header
A timestamp
A mining difficulty value
A proof of work nonce
A root hash for the Merkle tree containing the transactions for that block.
[https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ Buterin.Vitalik]

Ethereum-application

Description::
Every block header in Ethereum contains not just one Merkle tree, but three trees for three kinds of objects:
- Transactions
- Receipts (essentially, pieces of data showing the effect of each transaction)
- State
[https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ Buterin.Vitalik]

ethblk'Time

Name::
* cpt.ethblk'time,

ethblk'Age
ethblk'Timestamp (link)
ethblk'Generation (Time-between-blocks)

Description::
The-time between block creation.
===
As dictated by the protocol, the difficulty dynamically adjusts in such a way that on average one block is produced by the entire network every 15 seconds. We say that the network produces a blockchain with a 15 second block time
[https://ethereum-homestead.readthedocs.io/en/latest/mining.html#what-is-mining]

Name::
* cpt.ethnet'blocktime,

ethblk'Explorer (link)

ethblk'Relation-to-bitcoin-block

Description::
The main difference between Ethereum and Bitcoin with regard to the blockchain architecture is that, unlike Bitcoin, Ethereum blocks contain a copy of both the transaction list and the most recent state.
Aside from that, two other values, the block number and the difficulty, are also stored in the block.
[https://github.com/ethereum/wiki/wiki/White-Paper#blockchain-and-mining]

Name::
* cpt.ethblk'relation-to-bitcoin-block,

ethblk'Resource

AddressWpg::
* https://etherchain.org/blocks,
* https://etherchain.org/block/3270980,

SPECIFIC

ethblk.GENESIS

Description::
First, to initialize a new private blockchain, we will need what is called a Genesis block, which is going to be the first block in our blockchain.
This first block sets a few fundamental parameters for our blockchain, captured in a genesis.json file:
{
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "Custom Ethereum Genesis Block",
"gasLimit": "0xffffffff"
}
[http://hypernephelist.com/2016/05/30/deploying-a-private-Ethereum-blockchain.html]
===
The genesis block has a number of zero; formally Hi.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethblk.first,
* cpt.ethblk.genesis,
* cpt.ethnet'genesis-block,

AddressWpg::
* BlockH0 https://etherscan.io/block/0,
* http://ethdocs.org/en/latest/network/test-networks.html#the-genesis-file,

ethblk.LAST

Name::
* cpt.ethnet'best-block,
* cpt.ethnet'last-block,
* cpt.ethblk.last,

ethblk.UNCLE

Description::
Uncles are stale blocks i.e. with parents that are ancestors (max 6 blocks back) of the including block.
Valid uncles are rewarded in order to neutralise the effect of network lag on the dispersion of mining rewards, thereby increasing security (this is called the GHOST protocol).
Uncles included in a block formed by the successful PoW miner receive 7/8 of the static block reward (=4.375 ether).
A maximum of 2 uncles are allowed per block.
[https://ethereum-homestead.readthedocs.io/en/latest/mining.html#what-is-mining]

Name::
* cpt.ethblk.uncle,
* cpt.ethnet'uncle,

ethblk.PARENT

Name::
* cpt.ethblk.parent,

ethblk.ANCESTOR

Name::
* cpt.ethblk.ancestor,

ethbcn'Block-Explorer (ethbex)

Name::
* cpt.ethereum-block-explorer,
* cpt.ethereum-explorer,
* cpt.ethblk'explorer,
* cpt.ethnet'explorer,

Specific::
* https://etherscan.io/
* https://etherchain.org/
* https://live.ether.camp/

ethbcn'Consensus-algorithm (ethcsa)

Description::
Consensus is based on choosing the block with the highest total difficulty.
... Note that in the Ethereum Serenity milestone, this is likely going to be replaced by a (see proof of stake model ).
[https://ethereum-homestead.readthedocs.io/en/latest/mining.html#what-is-mining]
===
a system such that we can reasonably expect that an agreement will be thus enforced autonomously,
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
The basic block validation algorithm in Ethereum is as follows:
1. Check if the previous block referenced exists and is valid.
2. Check that the timestamp of the block is greater than that of the referenced previous block and less than 15 minutes into the future
3. Check that the block number, difficulty, transaction root, uncle root and gas limit (various low-level Ethereum-specific concepts) are valid.
4. Check that the proof of work on the block is valid.
5. Let S[0] be the state at the end of the previous block.
6. Let TX be the block's transaction list, with n transactions. For all i in 0...n-1, set S[i+1] = APPLY(S[i],TX[i]). If any application returns an error, or if the total gas consumed in the block up until this point exceeds the GASLIMIT, return an error.
7. Let S_FINAL be S[n], but adding the block reward paid to the miner.
8. Check if the Merkle tree root of the state S_FINAL is equal to the final state root provided in the block header. If it is, the block is valid; otherwise, it is not valid.
[https://github.com/ethereum/wiki/wiki/White-Paper#blockchain-and-mining]

Name::
* cpt.block-validation-algorithm-of-ethereum,
* cpt.ethereum-block-validation-algorithm,
* cpt.ethconsensus-algorithm,
* cpt.ethcsa,
* cpt.ethnet'consensus-algorithm,

Generic::
* bcnnet-consensus-algorithm,

ethcsa.Proof-of-Authority (ethpoa)

Description::
Fortunately, the next version of the Ethereum testnet, Kovan, has been announced by the Parity community. Although this new testnet is incompatible with geth nodes, it uses the PoA (Proof of Authority) consensus, which should improve its resilience to spam attacks. ChronoBank has also made an application to become a trusted validator for the new testnet.
PoA is a replacement for PoW and can be used for both public and private chain setups. There is no mining involved to secure the network with PoA. Instead, it relies on trusted ‘Validators’ to ensure that legitimate transactions are added to blocks, and are processed and executed by the EVM faithfully.
Because mining does not occur on our proposed public testnet, malicious actors are prevented from acquiring testnet Ether -- solving the spam attack that Ropsten currently faces. There is no difference in the way that contracts are executed on PoA and PoW chains, so developers can test their contracts and user interfaces before deploying to the mainnet in a more reliable and convenient environment.
[https://blog.chronobank.io/chronobank-dev-update-7-49b387396b2c#.odbp6hdr9]

Name::
* cpt.ethpoa,
* cpt.proof-of-authority,

ethbcn'Size

{time.2016-03-16}:
Top News - Bitcoin Retweeted
Tuur Demeester ?@TuurDemeester 5h5 hours ago
8 months in, #Ethereum blockchain size is 10GB — some estimate growth rate of up to 1TB/yr. Thoughts on network scalability vs. security?
[https://twitter.com/TuurDemeester/status/710101175610286081]

How will Ethereum deal with ever increasing blockchain size?
There are many discussions around blockchain scalability. This questioned has been partially answered on this Ethereum StackExchange post and this blog post from Vitalik Buterin.
[https://ethereum-homestead.readthedocs.org/en/latest/frequently-asked-questions/frequently-asked-questions.html#how-will-ethereum-deal-with-ever-increasing-blockchain-size]

ethbcn'Transaction (ethtx)

Description::
Transactions fundamentally change the state of the network.
A transaction can be
- as simple as sending Ether to another account, or
- as complicated as executing a contract function or
- adding a new contract to the network.
The defining characteristic of a transaction is that it writes (or changes) data.
Transactions cost Ether to run, known as "gas", and transactions take time to process.
When you execute a contract's function via a transaction, you cannot receive that function's return value because the transaction isn't processed immediately.
In general, functions meant to be executed via a transaction will not return a value; they will return a transaction id instead.
So in summary, transactions:
- Cost gas (Ether)
- Change the state of the network
- Aren't processed immediately
- Won't expose a return value (only a transaction id).
[http://truffleframework.com/docs/getting_started/contracts#transactions]

Name::
* cpt.ethereum-message,
* cpt.ethereum-transaction,
* cpt.ethnet'Transaction,
* cpt.ethtransaction,
* cpt.ethtsn,
* cpt.ethtx,

Generic::
* blockchain-transaction,

Description::
The term “transaction” is used in Ethereum to refer to the signed data package that stores a message to be sent from an externally owned account.
images/chapter1/1-4.png
Transactions contain:
- recipient: The account the transaction is intended for.
- sender: A signature representing the originator of the transaction.
- amount: The amount of ETH to transfer from the sender to the recipient.
- data: An optional field to pass data to the smart contract.
- startgas: A value representing the maximum number of computational steps the transaction execution is allowed to take.
- gasprice: A value representing the fee the sender pays per computational step.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
===
A transaction is a message that is sent from one account to another account (which might be the same or the special zero-account, see below). It can include binary data (its payload) and Ether.

If the target account contains code, that code is executed and the payload is provided as input data.

If the target account is the zero-account (the account with the address 0), the transaction creates a new contract. As already mentioned, the address of that contract is not the zero address but an address derived from the sender and its number of transactions sent (the “nonce”). The payload of such a contract creation transaction is taken to be EVM bytecode and executed. The output of this execution is permanently stored as the code of the contract. This means that in order to create a contract, you do not send the actual code of the contract, but in fact code that returns that code.
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-8]
===
A blockchain is a globally shared, transactional database.
This means that everyone can read entries in the database just by participating in the network.
If you want to change something in the database, you have to create a so-called transaction which has to be accepted by all others.
The word transaction implies that the change you want to make (assume you want to change two values at the same time) is either not done at all or completely applied.
Furthermore, while your transaction is applied to the database, no other transaction can alter it.

As an example, imagine a table that lists the balances of all accounts in an electronic currency. If a transfer from one account to another is requested, the transactional nature of the database ensures that if the amount is subtracted from one account, it is always added to the other account. If due to whatever reason, adding the amount to the target account is not possible, the source account is also not modified.

Furthermore, a transaction is always cryptographically signed by the sender (creator). This makes it straightforward to guard access to specific modifications of the database. In the example of the electronic currency, a simple check ensures that only the person holding the keys to the account can transfer money from it.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#transactions]
===
The term “transaction” is used in Ethereum to refer to the signed data package that stores a message to be sent from an externally owned account to another account on the blockchain.
Transactions contain:
the recipient of the message,
a signature identifying the sender and proving their intention to send the message to the blockchain to the reciptient,
VALUE field - The amount of wei to transfer from the sender to the recipient,
an optional data field, which can contain the message sent to a contract,
a STARTGAS value, representing the maximum number of computational steps the transaction execution is allowed to take,
a GASPRICE value, representing the fee the sender is willing to pay for gas. One unit of gas corresponds to the execution of one atomic instrucion, i.e., a computational step.
[https://ethereum-homestead.readthedocs.org/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#what-is-a-transaction]
===
The Ethereum blockchain tracks the state of every account, and all state transitions on the Ethereum blockchain are transfers of value and information between accounts.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]

ethtx'part.nonce (ethtxTn)

Description::
nonce: A scalar value equal to the number of transactions sent by the sender; formally Tn.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethtx'nonce,
* cpt.ethtxTn,

ethtx'part.gasPrice (ethtxTp)

Description::
gasPrice: A scalar value equal to the number of Wei to be paid per unit of gas for all computation costs incurred as a result of the execution of this transaction; formally Tp.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethtx'gasPrice,
* cpt.ethtxTp,

ethtx'part.gasLimit (ethtxTg)

Description::
gasLimit:
A scalar value equal to the maximum amount of gas that should be used in executing this transaction.
This is paid up-front, before any computation is done and may not be increased later; formally Tg.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethtx'gasLimit,
* cpt.ethtxTg,

ethtx'part.to (ethtxTt)

Description::
to: The 160-bit address of the message call’s recipient or, for a contract creation transaction, Ø, used here to denote the only member of B0 ; formally Tt.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
If the destination of the transaction is another EOA, then the transaction may transfer some ether but otherwise does nothing.
However, if the destination is a contract, then the contract in turn activates, and automatically runs its code.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#account-interactions-example-betting-contract]
===
If the target account contains code, that code is executed and the payload is provided as input data.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-8]

Name::
* cpt.ethtx'destination,
* cpt.ethtx'recipient,
* cpt.ethtx'recipient-account,
* cpt.ethtx'target-account,
* cpt.ethtx'to,
* cpt.ethtxTt,

ethtx'part.value (ethtxTv)

Description::
value: A scalar value equal to the number of Wei to be transferred to the message call’s recipient or, in the case of contract creation, as an endowment to the newly created account; formally Tv.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
A transaction is a message that is sent from one account to another account (which might be the same or the special zero-account, see below).
It can include binary data (its payload) and Ether.
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-8]

Name::
* cpt.ethtx'ether,
* cpt.ethtx'value,
* cpt.ethtxTv,

ethtx'part.v (ethtxTw)

Description::
v, r, s: Values corresponding to the signature of the transaction and used to determine the sender of the transaction; formally Tw, Tr and Ts. This is expanded in Appendix F.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethtx'v,
* cpt.ethtxTw,

ethtx'part.r (ethtxTr)

Description::
v, r, s: Values corresponding to the signature of the transaction and used to determine the sender of the transaction; formally Tw, Tr and Ts. This is expanded in Appendix F.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethtx'r,
* cpt.ethtxTr,

ethtx'part.s (ethtxTs)

Description::
v, r, s: Values corresponding to the signature of the transaction and used to determine the sender of the transaction; formally Tw, Tr and Ts. This is expanded in Appendix F.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethtx's,
* cpt.ethtxTs,

ethtx'Hash

TxHash:    0xbe5070a938fa049d360e881fbbb1f3e4e0f71344f07921a9e167b5f49fe5f28b (64 hexsymbols)

ethtx'Block

Description::
The-block which stores the-transaction.

Name::
* cpt.ethtx'block-height,

ethtx'Age

Name::
* cpt.ethtx'timestamp,

ethtx'Sender-account

Description::
Furthermore, a transaction is always cryptographically signed by the sender (creator).
This makes it straightforward to guard access to specific modifications of the database.
In the example of the electronic currency, a simple check ensures that only the person holding the keys to the account can transfer money from it.
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html]
===
An Ethereum transaction contract code can trigger data reads and writes, do expensive computations like using cryptographic primitives, make calls (send messages) to other contracts, etc. Each of these operations have a cost measured in gas, and each gas unit consumed by a transaction must be paid for in Ether, based on a gas/Ether price which changes dynamically.
This price is deducted from the Ethereum account sending the transaction.
Transactions also have a gas limit parameter that is an upper bound on how much gas the transaction can consume, and is used as a safe-guard against programming errors that could deplete an account’s funds.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05#262d]

Name::
* cpt.ethtx'creator,
* cpt.ethtx'from,

ethtx'Fee

Description::
The total ether cost of a transaction is based on 2 factors:
gasUsed is the total gas that is consumed by the transaction
gasPrice price (in ether) of one unit of gas specified in the transaction
Total cost = gasUsed * gasPrice
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#estimating-transaction-costs]
===
Fees applied to transaction go to support the networks that run the coin/token - so, for instance, every standard (non-contract) ETH transaction currently applies a fee of .000441 ETH.
This fee does not go to us; it goes to reward miners (thereby ensuring that the transaction is logged into the blockchain in a timely fashion) and support the Ethereum network itself.
Note that transactions that interact with a contract address will be more costly.
[https://decentral.zendesk.com/hc/en-us/articles/225024248-What-are-transaction-fees-and-what-fees-does-Jaxx-apply-]
===
Like in Bitcoin, users must pay small transaction fees to the network. This protects the Ethereum blockchain from frivolous or malicious computational tasks, like DDoS attacks or infinite loops. The sender of a transaction must pay for each step of the “program” they activated, including computation and memory storage. These fees are paid in amounts of Ethereum’s native value-token, ether.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]

Name::
* cpt.ethtx'cost,
* cpt.ethtx'fee,

ethtx'Gas-limit

Description::
Transactions also have a gas limit parameter that is an upper bound on how much gas the transaction can consume, and is used as a safe-guard against programming errors that could deplete an account’s funds.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05]

Name::
* cpt.ethtx'gas-limit,

ethtx'Log

Description::
Next we specify an event, which is how in Solidity we use the logging facility of the Ethereum Virtual Machine.
When called, events cause the arguments to be stored in the transaction’s log.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

Name::
* cpt.ethtx'log,

Example::
* https://etherscan.io/tx/0x3238a040c9ff9c06067401b366b804ad4f3824186336eae4f1a8f43c8c981b78#eventlog,

ethtx'Security

Name::
* cpt.ethtx'security,

AddressWpg::
* http://tap.dappbench.com/
* https://github.com/dob/tap,

ethtx'Resource

AddressWpg::
* https://etherscan.io/txs,
* https://etherchain.org/txs,
* https://etherchain.org/tx/ 0xfaee6da035c0a943002d2f4f65b7714d92f11a6465ca69595719f2707f134557,
* https://github.com/EverexIO/Ethplorer/wiki/ethplorer-api#get-transaction-info,

ethtx'DOING

Description::
ether transfer or trigger contract code
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#externally-owned-accounts-eoas]

ethtx'Creating

Name::
* cpt.ethtx'signing,

ethtx'Submitting

Name::
* cpt.ethtx'processing,

SPECIFIC

Name::
* ethtx.specific,
* cpt.ethtx.specific,

Specific::
Broadly speaking there are three types transactions supported on Ethereum:
- Transfer of Ether from one party to another
- Creation of a smart contract
- Transacting with a smart contract
[https://docs.web3j.io/transactions.html]
===
There are two types of transactions: a sending transaction and a contract creating transaction.
[https://ethereum.gitbooks.io/frontier-guide/content/opcodes,_costs,_and_gas.html]
===
There are two types of transactions:
those which result in message calls and
those which result in the creation of new accounts with associated code (known informally as ‘contract creation’).
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

ethtx.MESSAGE-CALL (ethtxmc)

Description::
There are two types of transactions:
those which result in message calls and
those which result in the creation of new accounts with associated code (known informally as ‘contract creation’).
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethnet'message-call,
* cpt.ethtx.message-call,
* cpt.ethtxmc,

ethtxmc'part.data (ethtxTd)

Description::
In contrast, a message call transaction contains:
data: An unlimited size byte array specifying the input data of the message call, formally Td.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]
===
A transaction is a message that is sent from one account to another account (which might be the same or the special zero-account, see below).
It can include binary data (its payload) and Ether.
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-8]

Name::
* cpt.ethnet'payload-of-tx,
* cpt.ethtx'data,
* cpt.ethtx'binary-data,
* cpt.ethtx'payload,
* cpt.ethtxTd,

ethtxmc.ETHER-TRANSFER

Description::
The simplest transactions are ether transfer transactions.
[https://ethereum.gitbooks.io/frontier-guide/content/account_types.html]
===
A sending transaction is a standard transaction, containing a receiving address, an ether amount, a data bytearray and some other parameters, and a signature from the private key associated with the sender account.
[https://ethereum.gitbooks.io/frontier-guide/content/opcodes,_costs,_and_gas.html]
===
All code execution in the Ethreum Virtual Machine, or EVM must be triggered by a private key based account. This is done by sending a transaction, which may do something simple like transfering ether, or it may do something more complex like calling a function on a contract account.
[http://docs.ethereum-alarm-clock.com/en/latest/introduction.html]

Name::
* cpt.ethtx.sending,
* cpt.ethtx.standard,

ethtxmc.CONTRACT-PROGRAM-CALLING

Description::
your transactions are also of two types:
- those sent to normal accounts are ether transfers,
- while the rest are communication with smart contracts.
[https://www.ethereum.org/ether]

Name::
* cpt.ethtx.interacting-with-contract,
* cpt.ethtx.transacting-with-contract,
* cpt.ethtx.transacting-with-contract,
* cpt.ethtx.contract-calling,
* cpt.ethtx.contract-invocating,

ethtx.CONTRACT-ACOUNT-CREATION (ethtxcac)

Description::
If the target account is the zero-account (the account with the address 0), the transaction creates a new contract.
As already mentioned, the address of that contract is not the zero address but an address derived from the sender and its number of transactions sent (the “nonce”).
The payload of such a contract creation transaction is taken to be EVM bytecode and executed.
The output of this execution is permanently stored as the code of the contract.
This means that in order to create a contract, you do not send the actual code of the contract, but in fact code that returns that code.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-8]
===
A contract creating transaction looks like a standard transaction, except the receiving address is blank. When a contract creating transaction makes its way into the blockchain, the data bytearray in the transaction is interpreted as EVM code, and the value returned by that EVM execution is taken to be the code of the new contract; hence, you can have a transaction do certain things during initialization. The address of the new contract is deterministically calculated based on the sending address and the number of times that the sending account has made a transaction before (this value, called the account nonce, is also kept for unrelated security reasons). Thus, the full code that you need to put onto the blockchain to produce the above name registry is as follows:
PUSH1 16 DUP PUSH1 12 PUSH1 0 CODECOPY PUSH1 0 RETURN STOP PUSH1 0 CALLDATALOAD SLOAD NOT PUSH1 9 JUMPI STOP PUSH1 32 CALLDATALOAD PUSH1 0 CALLDATALOAD SSTORE
The key opcodes are CODECOPY, copying the 16 bytes of code starting from byte 12 into memory starting at index 0, and RETURN, returning memory bytes 0-16, ie. code byes 12-28 (feel free to "run" the execution manually on paper to verify that those parts of the code and memory actually get copied and returned). Code bytes 12-28 are, of course, the actual code as we saw above.
[https://ethereum.gitbooks.io/frontier-guide/content/opcodes,_costs,_and_gas.html]

Name::
* cpt.ethtx.contract-acount-creation,
* cpt.ethtx.contract-creating-transaction,
* cpt.ethtxcac,

ethtxcac'part.init (ethtxTi)

Description::
Additionally, a contract creation transaction contains:
init: An unlimited size byte array specifying the EVM-code for the account initialisation procedure, formally Ti.
init is an EVM-code fragment; it returns the body, a second fragment of code that executes each time the account receives a message call (either through a transaction or due to the internal execution of code). init is executed only once at account creation and gets discarded immediately thereafter.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Name::
* cpt.ethtx'init,
* cpt.ethtxTi,

ethtx.GENESIS

Description::
GENESIS_2b241f037337eb4acc61849bd272ac133f7cdf4b    block:0    age:580 days 32 mins ago (2015-07-30-03.26.13pm)    from:GENESIS    IN     to:0x2b241f037337eb4acc61849bd272ac133f7cdf4b    378,000 Ether    0 Ether
[https://etherscan.io/address/0x2b241f037337eb4acc61849bd272ac133f7cdf4b]

Name::
* cpt.ethtx.genesis,

ethbcn.SPECIFIC

Name::
* cpt.ethbcn.specific,
* cpt.ethnet'blockchain.specific,

Specific::
Public blockchains: a public blockchain is a blockchain that anyone in the world can read, anyone in the world can send transactions to and expect to see them included if they are valid, and anyone in the world can participate in the consensus process – the process for determining what blocks get added to the chain and what the current state is. As a substitute for centralized or quasi-centralized trust, public blockchains are secured by cryptoeconomics – the combination of economic incentives and cryptographic verification using mechanisms such as proof of work or proof of stake, following a general principle that the degree to which someone can have an influence in the consensus process is proportional to the quantity of economic resources that they can bring to bear. These blockchains are generally considered to be “fully decentralized”.
Consortium blockchains: a consortium blockchain is a blockchain where the consensus process is controlled by a pre-selected set of nodes; for example, one might imagine a consortium of 15 financial institutions, each of which operates a node and of which 10 must sign every block in order for the block to be valid. The right to read the blockchain may be public, or restricted to the participants, and there are also hybrid routes such as the root hashes of the blocks being public together with an API that allows members of the public to make a limited number of queries and get back cryptographic proofs of some parts of the blockchain state. These blockchains may be considered “partially decentralized”.
Private blockchains: a fully private blockchain is a blockchain where write permissions are kept centralized to one organization. Read permissions may be public or restricted to an arbitrary extent. Likely applications include database management, auditing, etc internal to a single company, and so public readability may not be necessary in many cases at all, though in other cases public auditability is desired.
[https://ethereum-homestead.readthedocs.org/en/latest/network/connecting-to-the-network.html#public-private-and-consortium-blockchains]

ethnet'Account (ethact)

Description::
Whereas the Bitcoin blockchain was purely a list of transactions, Ethereum’s basic unit is the account. The Ethereum blockchain tracks the state of every account, and all state transitions on the Ethereum blockchain are transfers of value and information between accounts.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]
===
There are two types of accounts on the Ethereum blockchain.
- Accounts that have a private key.
- Contracts (which do not have a private key)
Private key accounts are the accounts that humans operate, where as contract accounts are deployed pieces of code capable of executing some computer program.
[http://docs.ethereum-alarm-clock.com/en/latest/introduction.html]
===
There are two kinds of accounts in Ethereum which share the same address space: External accounts that are controlled by public-private key pairs (i.e. humans) and contract accounts which are controlled by the code stored together with the account.

The address of an external account is determined from the public key while the address of a contract is determined at the time the contract is created (it is derived from the creator address and the number of transactions sent from that address, the so-called “nonce”).

Apart from the fact whether an account stores code or not, the EVM treats the two types equally, though.

Every account has a persistent key-value store mapping 256 bit words to 256 bit words called storage.

Furthermore, every account has a balance in Ether (in “Wei” to be exact) which can be modified by sending transactions that include Ether.
[https://solidity.readthedocs.org/en/latest/introduction-to-smart-contracts.html#accounts]
===
Accounts are a central part of the Ethereum network and are an essential part of any transaction or contract. In Ethereum, there are two types of accounts: Externally Owned accounts (EOA) and Contract accounts.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/glossary.html]

Name::
* cpt.ethact,
* cpt.ethaccount,
* cpt.ethnet'account,

ethact'Keypair

Description::
Every account is defined by a pair of keys, a private key and public key.
[https://ethereum-homestead.readthedocs.io/en/latest/account-management.html]

Name::
* cpt.ethact'key,
* cpt.ethact'keypair,
* cpt.ethkeypair,

ethact'Keyfile

Description::
Every account is defined by a pair of keys, a private key and public key.
Accounts are indexed by their address which is derived from the public key by taking the last 20 bytes.
Every private key/address pair is encoded in a keyfile.
Keyfiles are JSON text files which you can open and view in any text editor.
The critical component of the keyfile, your account’s private key, is always encrypted, and it is encrypted with the password you enter when you create the account.
Keyfiles are found in the keystore subdirectory of your Ethereum node’s data directory.
Make sure you backup your keyfiles regularly!
[https://ethereum-homestead.readthedocs.io/en/latest/account-management.html]

ethact'keystore

Description::
The default data directory locations are platform specific:
Windows: C:\Users\username\%appdata%\Roaming\Ethereum\keystore
Linux: ~/.ethereum/keystore
Mac: ~/Library/Ethereum/keystore
[https://ethereum-homestead.readthedocs.io/en/latest/account-management.html]

Name::
* cpt.ethkeystore,

ethact'Address (ethads 20-byte|40-hex|160-bit)

Description::
0x0998c9a0c7224Ec4ED782A4Ecfef53A0e25fA9FC
0x573383aFc6cd5eEc4114C8edA98D1915FE15425C
===
Every account is defined by a pair of keys, a private key and public key.
Accounts are indexed by their address which is derived from the public key by taking the last 20 bytes.
[https://ethereum-homestead.readthedocs.io/en/latest/account-management.html]
===
There are two kinds of accounts in Ethereum which share the same address space: External accounts that are controlled by public-private key pairs (i.e. humans) and contract accounts which are controlled by the code stored together with the account.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#accounts]
===
address
An Ethereum address represents an account. For EOA, the address is derived as the last 20 bytes of the public key controlling the account, e.g., cd2a3d9f938e13cd947ec05abc7fe734df8dd826.
This is a hexadecimal format (base 16 notation), which is often indicated explicitly by appending 0x to the address.
Web3.js and console functions accept addresses with or without this prefix but for transparency we encourage their use.
Since each byte of the address is represented by 2 hex characters, a prefixed address is 42 characters long.
Several apps and APIs are also meant to implement the new checksum-enabled address scheme introduced in the Mist Ethereum wallet as of version 0.5.0.
hexadecimal
Common representation format for byte sequencing. Its advantage is that values are represented in a compact format using two characters per byte (the characters [0-9][a-f]).
[https://ethereum-homestead.readthedocs.io/en/latest/glossary.html]

Name::
* cpt.ethact'address,
* cpt.ethaddress,
* cpt.ethads,
* cpt.ethereum-address,
* cpt.ethnet'address,

ethads'Builtin-check

Description::
ATTENTION: Ethereum addresses don't have built-in checks on them yet. That means that if you mistype an address, your ether will be lost forever, without a secondary confirmation window. If you are moving a significant amount, start with smaller quantities that you can afford to lose, until you feel comfortable enough.
[https://www.ethereum.org/ether]

ethads'Resource

AddressWpg::
* https://etherscan.io/address/0x53d284357ec70ce289d6d64134dfac8e511c8a3d,
* https://etherchain.org/account/0x007abbe8057433641acb791d966d33a12cf82d01,
* https://github.com/EverexIO/Ethplorer/wiki/ethplorer-api#get-address-info,

ethads.zero

Description::
If the target account is the zero-account (the account with the address 0), the transaction creates a new contract.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-8]

Name::
* cpt.ethads.zero,
* cpt.ethzero_address,

ethact'Balance

Description::
Furthermore, every account has a balance in Ether (in “Wei” to be exact) which can be modified by sending transactions that include Ether.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#accounts]

Name::
* cpt.ethact'balance,
* cpt.ethact'ether,

ethact'Balance.Subtoken

Name::
* cpt.ethact'subtoken-balance,

ethact'Nonce

Description::
Account nonce: a transaction counter in each account.
This prevents replay attacks where a transaction sending eg. 20 coins from A to B can be replayed by B over and over to continually drain A's balance.
[https://github.com/ethereum/wiki/wiki/Glossary]

Name::
* cpt.ethact'nonce,
* cpt.ethnonce-of-account,

ethact'Code (link)

ethact'Location

Description::
All accounts in ethereum are stored in a merkle radix tree.
[https://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md#contracts]

Name::
* cpt.ethact'location,

ethact'Store-of-data

Name::
* cpt.ethact'store-of-data,

ethact'Stack-area (link)

ethact'Storage-area (link)

ethact'Memory-area (link)

ethact'Structure

Structure::
Ethereum accounts contain the following four fields:
- nonce: A counter which ensures a transaction may only be processed exactly once.
- balance: The current ETH balance of the account.
- code: The account’s contract code (if there is any).
- storage: The account’s storage (if there is any).
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

ethact'Transaction

Description::
The-transactions of a specific account.

ethact'transaction.IN

Transaction Information
TxHash:    0x01406301bd25b21c16d6a2a47dbbc64f1cb9231f5b26c3a084ad2161c34a2a69
Block Height:    2757949 (526943 block confirmations)
TimeStamp :    87 days 2 hrs ago (Dec-06-2016 11:52:02 AM +UTC)
From:    0x53b148c3650d248ea740439e268d07dcd27ddac4
To:    0xfbddda2a82ccab13b60b4488e87362959578ca15
Value:    4 Ether ($77.80)
Gas:    300000
Gas Price:    0.00000004 Ether
Gas Used By Transaction:    21000
Actual Tx Cost/Fee:    0.00084 Ether ($0.02)
Cumulative Gas Used:    21000
Nonce:    1
Input Data:

ethact'transaction.OUT

Transaction Information
TxHash:    0x7fdc591cd1a4e97e0623cded49cda5222714b7e321ecdae137a79fd38f618a28
Block Height:    2813266 (471621 block confirmations)
TimeStamp :    78 days 7 mins ago (Dec-15-2016 02:28:28 PM +UTC)
From:    0xfbddda2a82ccab13b60b4488e87362959578ca15
To:    0xb60508e4617c98131a36bbd46fb189e0efc8932c
Value:    3.5 Ether ($68.08)
Gas:    21000
Gas Price:    0.00000002 Ether
Gas Used By Transaction:    21000
Actual Tx Cost/Fee:    0.00042 Ether ($0.0082)
Cumulative Gas Used:    42000
Nonce:    0
Input Data:

ethact'Resource

AddressWpg::
* https://etherscan.io/accounts, A total of 1095602 accounts found (89,342,484.874 Ether) {2017-03-01}

ethact'State

Description::
Whereas the Bitcoin blockchain was purely a list of transactions, Ethereum’s basic unit is the account.
The Ethereum blockchain tracks the state of every account, and all state transitions on the Ethereum blockchain are transfers of value and information between accounts.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]

Name::
* cpt.ethact'state,

ethact'DOING

ethact'Controling

Description::
In general, there are two types of accounts:
- externally owned accounts, controlled by private keys, and
- contract accounts, controlled by their contract code.
[https://github.com/ethereum/wiki/wiki/White-Paper#ethereum-accounts]

SPECIFIC

Name::
* ethact.specific,

Specific::
This distinction might be eliminated in Serenity.
[https://ethereum-homestead.readthedocs.org/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#eoa-vs-contract-accounts]

ethact.CONTRACT-ACCOUNT (ethcta)

Description::
We need to use permissions like this because each contract is a separate account that can be called by any account in the system.
Even when we include a contract in the source file of another contract as with HelloFactory, each new contract will still be created as a separate, new contract account that is unrelated to its factory except for any references we might add ourselves.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]
===
Common info
Contract name    ProofOfIdleness   
Address        019d7e5ae8d2ba9a292244311dc7355058ab1b08   
Involved in    76 Transactions   
Balance        ETHER 15.84   
Nonce        1
[https://live.ether.camp/account/019d7e5ae8d2ba9a292244311dc7355058ab1b08]

Name::
* cpt.ethactc,
* cpt.ethcta,
* cpt.ethereum-contract-account,
* cpt.ethactc,
* cpt.ethcrt'account,

ethcta'Address

Description::
40 hexsymbols,
0xbf35faa9c265baf50c9cff8c389c363b05753275
===
The address of an external account is determined from the public key
while the address of a contract is determined at the time the contract is created (it is derived from the creator address and the number of transactions sent from that address, the so-called “nonce”).
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#accounts]

Name::
* cpt.ethcta'address,

ethcta'Transaction-created-by

ethcta'Balance

ethcta'Contract-name

ethcta'Contract-program (link)

ethcta'Transaction-sent

Tx: 0x581f761cb4c70cb329475f0a770df3fbe9a9d7fa760a5875d2b4d0c92b058aec
Block: 3175356
Time: 2017-02-13 11:47:42 (16 days ago)
From: 0xbF35fAA9C265bAf50C9CFF8c389C363B05753275
To: 0x7bE7Fad439128cca6738F8A6813519aF4248365C
Amount: 90 Ether
Account Nonce: 16
Gas Price: 2e-8 Ether
Gas Limit: 77,953
Total Gas Used: 0
Tx Price: 0 Ether
Invoked by: 0xdc81eff532b6423928f598f650658ce284443b72436dbe3870a239b89c1ce4af
Payload:
0x (ASCII: )

ethcta'Message-call

Description::

ethcta'Relation-to-EOA

Description::
For most users, the basic difference between these is that human users control EOAs - because they can control the private keys which give control over an EOA.
Contract accounts, on the other hand, are governed by their internal code.
If they are “controlled” by a human user, it is because they are programmed to be controlled by an EOA with a certain address, which is in turn controlled by whoever holds the private keys that control that EOA.
[https://ethereum-homestead.readthedocs.io/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]
===
Regardless of whether or not the account stores code, the two types are treated equally by the EVM.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#accounts]

Name::
* cpt.ethcta'relation-to-eoa,
* cpt.etheoa'relation-to-cta,

ethcta'Resource

AddressWpg::
* https://etherscan.io/accounts/c, A total of 251,357 contracts found (10,742,904.733 Ether) {2017-03-01}
* https://etherchain.org/contracts,
* https://etherchain.org/account/0xbf35faa9c265baf50c9cff8c389c363b05753275,

ethcta'Creating

Contract-creation-transaction (link)

ethact.NORMAL (ethnla Externally_Owned_Account)

Description::
An externally controlled account
- has an ether balance,
- can send transactions (ether transfer or trigger contract code),
- is controlled by private keys,
- has no associated code.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#externally-owned-accounts-eoas]
===
Private key accounts are the accounts that humans operate, where as contract accounts are deployed pieces of code capable of executing some computer program.
[http://docs.ethereum-alarm-clock.com/en/latest/introduction.html]
===
Address    532219eff8c413621a7c68974dfec33d86350631
Involved in    38 Transactions   
Balance    ETHER 14,856.80 ...   
Nonce    17
[https://live.ether.camp/account/532219eff8c413621a7c68974dfec33d86350631]

Name::
* cpt.ethactn,
* cpt.etheoa,
* cpt.ethereum-EOA,
* cpt.ethereum-exteranlly-owned-account,
* cpt.ethereum-normal-account,
* cpt.ethnla,
* cpt.etheoa,
* cpt.ethereum-non-contract-account,
* cpt.ethereum-normal-account,
* cpt.ethereum-private-key-account,

ethnla'Address

Description::
40 hexsymbos
0xb794F5eA0ba39494cE839613fffBA74279579268
===
The address of an external account is determined from the public key
while the address of a contract is determined at the time the contract is created (it is derived from the creator address and the number of transactions sent from that address, the so-called “nonce”).
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#accounts]

ethnla'Balance

ethnla'TrasactionReceived

ethnla'TrasactionSend

ethnla'Relation-to-contract-account (link)

ethnla'Relation-to-wallet

Description::
Accounts are the most basic way to store Ether. They are simple public/private keypairs, which you use to sign transactions. You don't need to do anything to "register" an account with the network, just generate one and send some ether to it.

Wallets are smart-contracts that allow for advanced features such as transaction logging, multisig, withdrawal limits, and more. In order to create a wallet, you need to deploy the contract to the blockchain, which requires ether. You need to make sure you keep track not only of the keys required to access the wallet, but also the wallet address. Unlike with accounts, wallet addresses are not very easily derivable from the private key (although it's not the end of the world if you lose the wallet address, you can use a block explorer to find what contracts you've created recently). Technically you can recover the address from just the account that created it and the nonce of the transaction, but that's a hassle.

tl;dr: Start with an account, get some Ether, then create a wallet and store your ETH there
[http://ethereum.stackexchange.com/a/213]

ethnla'Resource

AddressWpg::
* https://etherscan.io/accounts/a, A total of 844266 addresses found (77,579,354.315 Ether) {2017-03-01}
* https://etherchain.org/accounts,
* https://etherchain.org/account/0xb794f5ea0ba39494ce839613fffba74279579268,

ethnla'Creating

creating an account
$ geth account new
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase:
Repeat Passphrase:
Address: {168bc315a2ee09042d83d7c5811b533620531f67}
[https://github.com/ethereum/go-ethereum/wiki/Managing-Your-Accounts#creating-an-account]

ethnla.COINBASE

Description::
In order to mine you need a fully synced Ethereum client that is enabled for mining and at least one ethereum account.
This account is used to send the mining rewards to and is often referred to as coinbase or etherbase.
[https://ethereum-homestead.readthedocs.io/en/latest/mining.html#the-algorithm]

Name::
* cpt.ethnet'coinbase,
* cpt.ethnet'etherbase,

ethact.ZERO

Description::
If the target account is the zero-account (the account with the address 0), the transaction creates a new contract.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-8]

Name::
* cpt.ethact.zero,

ethact.EMPTY

Description::
An empty account is an account that has zero balance, nonce and code.
Empty accounts are functionally equivalent to nonexistent accounts with the exception of a few gas calculations, and empty accounts can easily be turned into nonempty accounts by simply sending any amount of ether to them. Theoretically, if miners accept transactions with zero fees, even sending a transaction from an empty or nonexistent account is possible. The only practical difference is that empty accounts need to be stored in the Ethereum state tree, whereas nonexistent accounts do not.
[https://www.ethnews.com/vitalik-buterin-on-empty-accounts-and-the-ethereum-state]

Name::
* cpt.ethact.empty,

ethnet'Exchange-value-unit (ETHevu)

Cpt-created: {2017-03-29}

Description::
The-ethereum-network has the-ETH as consensus-exval-unit but it is relative easy to create non-consensus-exval-units.
* cpt.ethevu,

Name::
* cpt.ethereum-exchange-value-token,
* cpt.ethereum-exchange-value-unit,
* cpt.ethevu,

Specific::
* ether,
* consensousNo-evu,

ethevu.ETHER (ETHevuC, Ξ, {2015})

Cpt-created: {2015-08-12}

Description::
Ether is the name of the currency used within Ethereum.
It is used to pay for computation within the EVM.
This is done indirectly by purchasing gas for ether as explained in gas.
[http://ethdocs.org/en/latest/ether.html?highlight=wei#what-is-ether]

Name::
* cpt.ETH,
* cpt.ethcevt, {2017-04-15}
* cpt.ethevuC, {2017-05-17}
* cpt.ether,
* cpt.ethereum-consensus-token,
* cpt.ethereum-ether-token,
* cpt.mnyEth,
* cpt.mnyEther,
* cpt.mnyEthereum,
* cpt.ethmny,

Generic::
* Consensous-exchange-value-unit,

Description::
THE CRYPTO-FUEL FOR THE ETHEREUM NETWORK
[https://www.ethereum.org/ether]
==
Ethereum ETH
Ethereum or Ether is a cryptocurrency designed to pay for the computational purposes of the Ethereum network. The name of the coin comes from the name of the platform intended to allow a network of peers to administer their own stateful user-created smart contracts in the absence of central authority.
[https://changelly.com/supported-currencies]
===
Ether is a necessary element -- a fuel -- for operating the distributed application platform Ethereum. It is a form of payment made by the clients of the platform to the machines executing the requested operations. To put it another way, ether is the incentive ensuring that developers write quality applications (wasteful code costs more), and that the network remains healthy (people are compensated for their contributed resources).
[https://ethereum.org/ether]
===
The currency unit of Ethereum is the Ether, used to pay for computational services on the network.

In order to finance development, Ethereum distributed the initial allocation of Ethers via a 42-day public sale, netting 31,591 bitcoins,[12] worth $18,439,086 at that time, in exchange for about 60,102,216 Ethers.

Ether is divided into smaller units of currency called finney, szabo, shannon, babbage, lovelace, and wei. Each larger unit is equal to 1000 of the next lower unit.[13] In practice, however, the developers encourage the use of ether and wei. Wei is the base unit of implementation and can not be further divided.
[https://en.wikipedia.org/wiki/Ethereum#Ether]

ethevuC'Decimal

Description::
Ethers have a natural unit with 18 decimal places.
1.23 ether is represented as 1,230,000,000,000,000,000 or 1.23e18 or 123e16 natural units.
[https://github.com/bokkypoobah/TokenTrader/wiki/Frequently-Asked-Questions#what-are-natural-units]

Name::
* cpt.ether-decimal,

ethevuC'Exchange-rate

Name::
* cpt.ether-exchange-rate,
* cpt.ethexchange-rate,
* cpt.ethcevt'exchange-rate,
* cpt.ethcevt'forex-rate,
* cpt.ethmny'exchange-rate,

AddressWpg::
* https://www.cryptonator.com/rates,
* http://ethereumprice.org/
* https://coinmarketcap.com/currencies/ethereum/

{time.2017-01-28}:
Ethereum (ETH)
From    To    Exchange Rate    24h Volume    Change
ETH    BTC    0.01146077        437895   
ETH    LTC    2.74647        139   
ETH    GBP    8.30021        57   
ETH    EUR    9.87598722        21747   
ETH    USD    10.502807        38919   
ETH    CAD    14.01432        41   
ETH    CNY    72.8            85   
ETH    RUR    613.11349041    586   
ETH    JPY    1267.761        37   
ETH    DOGE    50000.00000001    2   
[https://www.cryptonator.com/rates#ETH]

{time.2016-03-28}:
Thus, the key resistance lines, which right now determine further development, are $10.9 and $11.4.
[http://cointelegraph.com/news/ethereum-eth-price-trends-3282016]

{time.2016-02-12}:
Launched in July 2015, the Ethereum coin includes a programmable smart contract platform and now ranks the second most expensive cryptocurrency after Bitcoin.
[http://cointelegraph.com/news/eight-months-since-release-ethereum-is-second-only-to-bitcoin]

ethevuC'Issuing

Description::
Ether (ETH), the cryptofuel that powers distributed applications on the Ethereum platform, will be issued at a constant annual linear rate via the block mining process. This rate is 0.3 times the total amount of ETH that will be purchased in the pre-sale.
[https://blog.ethereum.org/2014/04/10/the-issuance-model-in-ethereum/]

ethevuC'Mining (link)

SPECIFIC

Denominations
Ethereum has a metric system of denominations used as units of ether. Each denomination has its own unique name (some bear the family name of seminal figures playing a role in evolution of computer science and cryptoeconomics). The smallest denomination aka base unit of ether is called Wei. Below is a list of the named denominations and their value in Wei. Following a common (although somewhat ambiguous) pattern, ether also designates a unit (of 1e18 or one quintillion Wei) of the currency. Note that the currency is not called Ethereum as many mistakenly think, nor is Ethereum a unit.
Unit            Wei Value    Wei
wei            1 wei        1                    mnyWei
Kwei (babbage)        1e3 wei    1,000                    mnyBabbage
Mwei (lovelace)        1e6 wei    1,000,000                mnyLovelace
Gwei (shannon)        1e9 wei    1,000,000,000            mnyShannon
microether (szabo)    1e12 wei    1,000,000,000,000            mnySzabo, mnyMicroether
milliether (finney)    1e15 wei    1,000,000,000,000,000        mnyFinney, mnyMilliether
ether            1e18 wei    1,000,000,000,000,000,000   
[http://ethdocs.org/en/latest/ether.html?highlight=wei#denominations]

ethevuC.AGGREGATE

Description::
How are ethers created?
The total supply of ether and its rate of issuance was decided by the donations gathered on the 2014 presale. The results were roughly:
60 million ether created to contributors of the presale
12 Million (20% of the above) were created to the development fund, most of it going to early contributors and developers and the remaining to the Ethereum Foundation
5 ethers are created every block (roughly 15-17 seconds) to the miner of the block
2-3 ethers are sometimes sent to another miner if they were also able to find a solution but his block wasn't included (called uncle/aunt reward)
Is the ether supply infinite?
No. According to the terms agreed by all parties on the 2014 presale, issuance of ether is capped at 18 million ether per year (this number equals 25% of the initial supply). This means that while the absolute issuance is fixed, the relative inflation is decreased every year. In theory if this issuance was kept indefinitely then at some point the rate of new tokens created every year would reach the average amount lost yearly (by misuse, accidental key lost, death of holders etc) and there would reach an equilibrium.
But the rate is not expected to be kept: sometime in 2017 Ethereum will be switched from Proof of Work to a new consensus algorithm under development, called Casper that is expected to be more efficient and require less mining subsidy. The exact method of issuance and which function it will serve is an area of active research, but what can be guaranteed now is that (1) the current maximum is considered a ceiling and the new issuance under casper will not exceed it (and is expected to be much less) and (2) whatever method is ultimately picked to issue, it will be a decentralized smart contract that will not give preferential treatment to any particular group of people and whose purpose is to benefit the overall health and security of the network.
[https://www.ethereum.org/ether]

AddressWpg::
* https://etherscan.io/stat/supply,
* https://coinmarketcap.com/currencies/ethereum/

Specific::
* Circulating-supply,
* Total-supply,

{time.2017-02-23}
Genesis (60M Crowdsale+12M Other):    72,009,990.50 Ether
+ Mining Block Rewards:          16,223,980.63 Ether
+ Mining Uncle Rewards:            918,936.25 Ether
= Current Total Supply              89,152,907.37 Ether

{time.2017-02-12}
Genesis (60M Crowdsale+12M Other):    72,009,990.50 Ether
+ Mining Block Rewards:          15,892,811.25 Ether
+ Mining Uncle Rewards:            905,851.25 Ether
= Current Total Supply              88,808,653.00 Ether
[https://etherscan.io/stat/supply]

ethevu.CONSENSUS.NO (ethevuCN)

Description::
On-blockchain token systems have many applications ranging from sub-currencies representing assets such as USD or gold to company stocks, individual tokens representing smart property, secure unforgeable coupons, and even token systems with no ties to conventional value at all, used as point systems for incentivization.
Token systems are surprisingly easy to implement in Ethereum.
The key point to understand is that all a currency, or token system, fundamentally is a database with one operation: subtract X units from A and give X units to B, with the proviso that (i) A had at least X units before the transaction and (2) the transaction is approved by A.
All that it takes to implement a token system is to implement this logic into a contract.
[https://github.com/ethereum/wiki/wiki/White-Paper#token-systems]
===
Plutons follows the ERC20 Token standard, which means Pluton can be used by any Ethereum software that supports this standard.
[https://plutusit.zendesk.com/hc/en-us]

Name::
* cpt.ethevuCN, {2017-04-17}
* cpt.ethcevtN, {2017-04-15}
* cpt.ethcNet, {2017-04-01}
* cpt.ethereum-consesusNo-exval-token, {2017-04-01}
* cpt.ethereum-subcurrency,
* cpt.ethereum-subtoken,
* cpt.ethnet'subcurrency,
* cpt.ethnet'token,
* cpt.ethstn, {2017-03-16}
* cpt.ethsubcurrency,
* cpt.ethsubtoken,
* cpt.ethtkn,
* cpt.subcurrency.ethereum,
* cpt.subtoken.ethereum,

ethevuCN'Backness

Generic::
* Backness-of-bcnevu,

ethevuCN'Contract-program

ethevuCN'Address-of-contract-account

ethevuCN'Holder

Description::
Account-addresses that hold tokens.

ethevuCN'Exchange-rate

ethevuCN'Transaction

TxHash:    0xa26540fc32e3b136af585177618282dd4626986d90cfb75b433e6350925b7d6d
Block Height:    3273751 (67 block confirmations)
TimeStamp :    16 mins ago (Mar-01-2017 06:29:15 PM +UTC)
From:    0x354a7141ad6e6d3c6bd636635039eda3b86c39f9
To:    Contract 0x48c80f1f4d53d5951e5d5438b54cba84f29f32a5 (REP-Augur)
330 REP TOKEN TRANSFER From 0x354a7141ad6e6d3c6bd636635039eda3b86c39f9 to 0x6830f081f460a59650deab16596f94eeca553c2c
Value:    0 Ether ($0.00)
Gas:    150000
Gas Price:    0.000000021 Ether
Gas Used By Transaction:    37210
Actual Tx Cost/Fee:    0.00078141 Ether ($0.01)
Cumulative Gas Used:    80466
Nonce:    2
Input Data:
[https://etherscan.io/tx/0xa26540fc32e3b136af585177618282dd4626986d90cfb75b433e6350925b7d6d]

ethevuCN'Resource

AddressWpg::
* https://etherscan.io/token-search,
* https://github.com/EverexIO/Ethplorer/wiki/ethplorer-api#get-token-info,
* https://github.com/ethereum/EIPs/issues/20,
* https://ethereum.org/token,

SPECIFIC

Specific::
* Arcade Token (0xAc709FcB44a43c35F0DA4e3163b117A17F3770f5)
* BCDN (0x1e797Ce986C3CFF4472F7D38d5C4aba55DfEFE40)
* Dentacoin (0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6)
* Devcon2 (0xdd94De9cFE063577051A5eb7465D08317d8808B6)
* DVIP (0xadc46ff5434910bd17b24ffb429e585223287d7f)
* DXF - Decentralized Experience (0x72a68fb6d91ed8dc47b564e088e518c6d4a6ff44)
* EthereumMovieVenture (0xb802b24e0637c2b87d2e8b7784c055bbe921011a)
* HumaniQ - HMQ (0x9734c136F5c63531b60D02548Bca73a3d72E024D)
* ICONOMI (0x888666CA69E0f178DED6D75b5726Cee99A87D698)
* Mainstreet (0xe23cd160761f63fc3a1cf78aa034b6cdf97d3e0c)
* Melon (0xBEB9eF514a379B997e0798FDcC901Ee474B6D9A1)
* MetaGold (0x1dea4cA1Ca2A2c946B233a227883ef6846CF17d5)
* ROUND (0x4993CB95c7443bdC06155c5f5688Be9D8f6999a5)
* SIM (0x8FFf600F5c5F0Bb03F345fd60F09A3537845de0a)
* SwarmCity (0xb9e7f8568e08d5659f5d29c4997173d84cdf2607)
* TIME (0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53)
* VIP (0xb939ef33629bba211688724e401d4f6400c0ee6a)
* vSlice (0x5c543e7AE0A1104f78406C340E9C64FD9fCE5170)
* W-GNT (0x01afc37f4f85babc47c0e2d0eababc7fb49793c8)
* Willie Watts (0xd41f3b51e0c2d825a1178582d27c84dbfe48d1af)

ethevuCN.AGGREGATE

ethevuCN.Market-cap
ethevuCN.Total-supply

ethevuCN.TokenERC20

Description::
ERC: 20
Title: Token standard
Status: Draft
Type: Informational
Created: 19-11.2015
Resolution: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs
[https://github.com/ethereum/EIPs/issues/20]

Name::
* cpt.ERC20-ethereun-token,
* cpt.ERC20-token-of-ethereun,
* cpt.ethereun-tokenERC20,
* cpt.tokenERC20-of-ethereum,

ethevuCN.INTERESTING

Specific::
INTERESTING TOKENS
0xe23cd160761f63fc3a1cf78aa034b6cdf97d3e0c (Mainstreet)
0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53 (TIME)
0xb939ef33629bba211688724e401d4f6400c0ee6a (VIP)
0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6 (Dentacoin)
0x1dea4cA1Ca2A2c946B233a227883ef6846CF17d5 (MetaGold)
0xBEB9eF514a379B997e0798FDcC901Ee474B6D9A1 (Melon)
0xb9e7f8568e08d5659f5d29c4997173d84cdf2607 (SwarmCity)
0xd41f3b51e0c2d825a1178582d27c84dbfe48d1af (Willie Watts)
0x9734c136F5c63531b60D02548Bca73a3d72E024D (HumaniQ)
0x8FFf600F5c5F0Bb03F345fd60F09A3537845de0a (SIM)
0x72a68fb6d91ed8dc47b564e088e518c6d4a6ff44 (DXF - Decentralized Experience)
0x01afc37f4f85babc47c0e2d0eababc7fb49793c8 (W-GNT)
0xb802b24e0637c2b87d2e8b7784c055bbe921011a (EthereumMovieVenture)
0x4993CB95c7443bdC06155c5f5688Be9D8f6999a5 (ROUND)
0xdd94De9cFE063577051A5eb7465D08317d8808B6 (Devcon2)
0x5c543e7AE0A1104f78406C340E9C64FD9fCE5170 (vSlice)
0x1e797Ce986C3CFF4472F7D38d5C4aba55DfEFE40 (BCDN)
0xAc709FcB44a43c35F0DA4e3163b117A17F3770f5 (Arcade Token)
0x888666CA69E0f178DED6D75b5726Cee99A87D698 (ICONOMI)
0xadc46ff5434910bd17b24ffb429e585223287d7f (DVIP)
[https://etherscan.io/token-search]

ethevuCN.DGX

Description::
Digix Tokens (DGX)
Dgx Tokens are minted via a Minter Smart Contract.
Each DGX token represents 1g of Gold and divisible to 0.001g.
For every PoA Card that is sent to the Minter Smart Contract, DGX tokens will be issued in return.
For instance, a 100g PoA Card sent to the Minter Smart Contract returns 100 DGX tokens to the user.
Digix Tokens are held in an Ethereum Wallet.
[https://dgx.io/whitepaper.pdf]

Name::
* cpt.mnyDGX,
* cpt.DGX-money,
* cpt.Digix-Gold-token,
* cpt.Digix-token,

AddressWpg::
* https://etherscan.io/address/0x55b9a11c2e8351b4ffc7b11561148bfac9977855,

ethevuCN.Pluton

Description::
Plutons are digital tokens you earn as a reward for shopping with Plutus. Just like cash back or air miles on a credit card, the more you spend the more you earn. (We’re merchant agnostic, so every purchase counts).

Plutons you earn (or purchase early) will be available to convert on the Plutus exchange network, allowing you to make in-store purchases with zero fees on conversion.
[https://plutus.it/]

AddressWpg::
* https://etherscan.io/token/Pluton,
* https://medium.com/@PlutusIT/ how-to-get-your-pluton-balance-token-distribution-guide-4a671192a703,

ethevuCN.Augur-REP

Description::
Augur REP
Augur is a decentralized platform with rewards for accurate predictions of certain events. The predictions may concern almost any event with any possible outcomes and can be made by buying virtual shares. Augur provides creation of any prediction market and is fueled by its own cryptocurrency of the same name.
[https://changelly.com/supported-currencies]

Name::
* cpt.Augur-REP,
* cpt.REPevu,

AddressWpg::
* https://www.augur.net/

ethevuCN.TIME-token (ethtmt)

Description::
TIME, the Ethereum token representing a stake in the ChronoBank initiative to disrupt the inefficient labour-hire market, has already been added to several exchanges — with more on the way.
[https://blog.chronobank.io/chronobanks-time-launches-on-four-exchanges-71c2bb5c989a#.wnktm5kng]

Name::
* cpt.TIMEevuCN, {2017-05-17}

* cpt.chbTIME,
* cpt.chbtmt,
* cpt.ethTIME-token,
* cpt.ethtmt,
* cpt.mnyTIME,
* cpt.TIME-token,

Generic::
* ethereum-contract-account,

Description::
TIME token is on the Ethereum blockchain. LH tokens will be initially created on the Ethereum blockchain, and then the software will be ported to other blockchains: WAVES, NEM, ETC.
Q: Will TIME tokens be tradeable on exchanges after the ICO?
A: Shortly after ICO. TIME is a standard ERC20 Ethereum token, it will be easy to connect it to Poloniex or other exchanges. No any additional integration will be needed, because they trade many ERC20 tokens already.
[https://blog.chronobank.io/chronobank-io-faq-4b920f003640#.sraeqe3iv]

{
"address":"0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53",
"name":"Chronobank TIME",
"decimals":"8",
"symbol":"TIME",
"totalSupply":"71011281080000",
"owner":"0x",
"totalIn":70248058593454,
"totalOut":70757486151933,
"holdersCount":2307,
"issuancesCount":0,
"countOps":2714
}
[https://api.ethplorer.io/getTokenInfo/0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53?apiKey=freekey]

ethtmt'Exchange-rate

{time.2017-05-17}
TIME/BTC
Bid: 0.010004
Ask: 0.0103
[https://www.livecoin.net/en/trade/orderbook]

{time.2017-04-22}
TIME/BTC
Bid:0.00770002
Ask:0.0078999
[https://www.livecoin.net/en/trade/orderbook]

{time.2017-03-08}
TIME/BTC    0.00561952 BTC    5.57%    12485.84    0.00639996 BTC    0.00451 BTC    0.00550049 BTC    0.00578 BTC
[https://www.livecoin.net/en/trade/orderbook]
===
TIME / BTC 0.006700004.1230.07
[https://mercatox.com/exchange]

ethtmt'Creator

Contract Creator:
address:    0x28a44f49b940b3875f882d08487d16295fb8bc09,
at txn:    0x5dd58b1b6e4ce36604c65ad7bdd98c78a55e4af547ed2934042b7c2bf1dad3e4,

ethtmt'Address

Address::
TIME contract address: 0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53

ethtmt'CodeBinary

CodeBinary::
0x6060604052361561014e5763fff...dd6a500029
[https://etherscan.io/address/0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53#code]

ethtmt'CodeAssembly

CodeAssembly::
PUSH1 0x60
PUSH1 0x40
MSTORE
...
BLOCKHASH
'a9'(Unknown Opcode)
'f9'(Unknown Opcode)

[https://etherscan.io/address/0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53#code]

ethtmt'OgnExchange

Description::
Livecoin is a well-established exchange that opened in 2015, at the bottom of the bitcoin bear market. Registered in London, the exchange has undertaken a series of measures to make it an attractive destination for traders, including lowering fees and offering VISA cards for rapid and easy withdrawal of funds. Currently, the majority of TIME’s volume occurs on Livecoin, as recorded by CoinMarketCap.
Liqui is a fairly new and relatively small exchange, but one that has a thriving community and a dedicated core of traders. Liqui is often fast to add new coins, proving agile where the larger exchanges take their time. At the present time, Liqui leads on price.
Mercatox is a professional trading platform for digital currencies. Although they focus on bitcoin, they have taken the decision to add TIME as well, judging it to have potential and appeal to their traders.
EtherDelta is a decentralised exchange built on Ethereum. More tech-savvy users will be able to trade peer-to-peer, without any risk of hacking or the failures that come with centralised exchanges.
[https://blog.chronobank.io/chronobanks-time-launches-on-four-exchanges-71c2bb5c989a#.wnktm5kng]

Specific::
* Bittrex,
* DABTC.com, (Chinese)
* Livecoin, https://www.livecoin.net/
* Lykke,

ethtmt'Similar

AddressWpg::
* https://etherscan.io/address/0x1818c9f1e2b22e37c3652c1a8df060f946dc6231,
* https://etherscan.io/address/0x1c440ded36ce7d8526ffac48b3bf293c320369a6,
* https://etherscan.io/address/0xf39c5f30a8c1e2e00b0b9ab3dc061b1c36a998ae,

ethtmt'Resource

AddressWpg::
* https://etherscan.io/token/TIME,
* https://etherscan.io/address/0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53,
* https://blog.chronobank.io/how-to-add-time-to-myetherwallet-e9057388c76a#.onuflhr05,

ethtmt.AGGREGATE

Description::
After ChronoBank’s ICO ended in February, a total of 710,113 TIME tokens were created on the Ethereum blockchain and distributed to supporters.
[https://blog.chronobank.io/chronobanks-time-launches-on-four-exchanges-71c2bb5c989a#.wnktm5kng]

ethnet'Gas (ethgas)

Description::
Gas is the-unit of computation-cost of EVM.
[hmnSgm.2017-03-16]
===
The fundamental unit of computation is “gas”; usually, a computational step costs 1 gas, but some operations cost higher amounts of gas because they are more computationally expensive, or increase the amount of data that must be stored as part of the state. There is also a fee of 5 gas for every byte in the transaction data. The intent of the fee system is to require an attacker to pay proportionately for every resource that they consume, including computation, bandwidth and storage; hence, any transaction that leads to the network consuming a greater amount of any of these resources must have a gas fee roughly proportional to the increment.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
===
Gas Cost is a static value for how much a computation costs in terms of Gas, and the intent is that the real value of the Gas never changes, so this cost should always stay stable over time.
[https://ethereum-homestead.readthedocs.io/en/latest/ether.html#gas-and-ether]
===
Executing transactions on Ethereum either runs computations or stores data.
This Costs the network CPU cycles or storage space.
That cost is paid for by the account that initiates the transaction.
The payment is called "gas".
Gas is currently paid using ETH.
At the time of writing this, 1 GAS = 0.00001 ETH.
[https://karl.tech/learning-solidity-part-1-deploy-a-contract/]
===
Just like a car needs so many gallons to travel such a distance, Ethereum transactions require so much Ether to spin so many CPU cycles or store such a quantity of data.
By simple virtue of Ether being a scarce and valuable resource, DoS attacks are prevented.
A blockchain billionaire looking to burn their fortune on a prank could slow the network for a time, but the winning miner of the nefarious transaction’s block would see quite a payday!
[https://medium.com/@ConsenSys/ethereum-bitcoin-plus-everything-a506dc780106#.s007sm8lm]
===
Gas: The fundamental network cost unit.
Paid for exclusively by Ether (as of PoC-4), which is converted freely to and from Gas as required.
Gas does not exist outside of the internal Ethereum computation engine; its price is set by the Transaction and miners are free to ignore Transactions whose Gas price is too low.
[https://ethereum.github.io/yellowpaper/paper.pdf]
===
Gas: a measurement roughly equivalent to computational steps. Every transaction is required to include a gas limit and a fee that it is willing to pay per gas; miners have the choice of including the transaction and collecting the fee or not. If the total number of gas used by the computation spawned by the transaction, including the original message and any sub-messages that may be triggered, is less than or equal to the gas limit, then the transaction processes. If the total gas exceeds the gas limit, then all changes are reverted, except that the transaction is still valid and the fee can still be collected by the miner. Every operation has a gas expenditure; for most operations it is 1, although some expensive operations fave expenditures up to 100 and a transaction itself has an expenditure of 500.
[https://github.com/ethereum/wiki/wiki/Glossary]
===
The principle behind Gas is to have a stable value for how much a transaction or computation costs on the Ethereum network.
[https://ethereum-homestead.readthedocs.io/en/latest/ether.html#gas-and-ether]
===
Gas is the relative cost between operations.
So:
- a single step calculation like if(2 > 1) will cost 1 gas
- an operation to store a value in storage will cost 100 gas
If you want to run a contract, this means a certain amount of operations will be executed. The total gas cost of those operations will be the cost of your transaction. It's like the amount of cpu cycles per operation. Everytime you send a transaction to a contract, you need to specify 3 numbers:
- value: the amount of ether you want to send into the account balance
- gas: the maximum amount of gas that may be used for processing a transaction
- gas-price the price per unit of gas you are willing to pay
The processing cost (fee) you offer for the transaction will be calculated as:

gas * gas-price (in eth/g) = ether

Gas is just a way to express relative cost and you can't send gas from 1 person to another. It is not a sub-currency like some people tend to think.
[https://www.reddit.com/r/ethereum/comments/271qdz/can_someone_explain_the_concept_of_gas_in_ethereum/chwp9r7]

Name::
* cpt.ethgas,
* cpt.ethgas-cost,
* cpt.ethnet'gas,

ethgas'Price

Description::
gasPrice
A user constructs and signs a transaction, and each user may specify whatever gasPrice they desire, which can be zero.
However, the Ethereum clients launched at Frontier had a default gasPrice of 0.05e12 wei.
As miners optimize for their revenue, if most transactions are being submitted with a gasPrice of 0.05e12 wei, it would be difficult to convince a miner to accept a transaction that specified a lower, or zero, gasPrice.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#gasprice]
===
Gas Price is how much Gas costs in terms of another currency or token like Ether.
To stabilise the value of gas, the Gas Price is a floating value such that if the cost of tokens or currency fluctuates, the Gas Price changes to keep the same real value.
The Gas Price is set by the equilibrium price of how much users are willing to spend, and how much processing nodes are willing to accept.
[https://ethereum-homestead.readthedocs.io/en/latest/ether.html#gas-and-ether]

Name::
* cpt.ethgas'price,
* cpt.ethnet'gasPrice,

ethgas'Fee

Description::
Gas Fee is effectively the amount of Gas needed to be paid to run a particular transaction or program (called a contract). The Gas Fees of a block can be used to imply the computational load, transaction volume, or size of a block. The gas fees are paid to the miners (or bonded contractors in PoS).
[https://ethereum-homestead.readthedocs.io/en/latest/ether.html#gas-and-ether]

Name::
* cpt.ethgas'fee,

ethgas'Limit

Description::
Gas Limit is the maximum amount of Gas that can be used per block, it is considered the maximum computational load, transaction volume, or block size of a block, and miners can slowly change this value over time.
[https://ethereum-homestead.readthedocs.io/en/latest/ether.html#gas-and-ether]

Name::
* cpt.ethgas'limit,

ethgas'Refund

Description::
If some gas is left after the execution, it is refunded in the same way.
[http://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html#gas, 0-4-11.6d4cb248]

Name::
* cpt.ethgas'refund,

ethnet'Statistics

AddressWpg::
* cpt.ethnet'statistics,
* cpt.ethstatistics,

AddressWpg::
* https://ethstats.net/
* https://etherscan.io/
* http://www.etherlisten.com/
* https://www.etherchain.org/
* http://ethernodes.org/network/1,

ethnet'etherscan.io

Description::
EtherScan is a Block Explorer and Analytics Platform for Ethereum, which is a decentralized platform that runs smart contracts.
[http://etherscan.io/]

AddressWpg::
* http://etherscan.io/

ethnet'Program (ethpgm)

Name::
* cpt.ethpgm,

ethpgm'API.ethplorer

AddressWpg::
* https://github.com/EverexIO/Ethplorer/wiki/ethplorer-api,
* https://api.ethplorer.io/

ethpgm'API.javascript (ethapijs)

Description::
To make your Πapp work on Ethereum, you can use the web3 object provided by the web3.js library.
Under the hood it communicates to a local node through RPC calls.
web3.js works with any Ethereum node, which exposes an RPC layer.

web3 contains the eth object - web3.eth (for specifically Ethereum blockchain interactions) and the shh object - web3.shh (for Whisper interaction). Over time we'll introduce other objects for each of the other web3 protocols. Working examples can be found here.

If you want to look at some more sophisticated examples using web3.js check out these useful Πapp patterns.
[https://github.com/ethereum/wiki/wiki/JavaScript-AP]
===
Ethereum JavaScript API
This is the Ethereum compatible JavaScript API which implements the Generic JSON RPC spec. It's available on npm as a node module, for bower and component as an embeddable js and as a meteor.js package.
You need to run a local Ethereum node to use this library.
[https://github.com/ethereum/web3.js]

Name::
* cpt.ethapijs,
* cpt.ethereum-javascript-API,
* cpt.ethjsapi,
* cpt.ethnet'ApiJs,
* cpt.web3.js,

ethapijs'oweb3

API::
// MetaMask - injected web3
> Object.getOwnPropertyNames(web3).sort().join(", ")
"_extend, _requestManager, bzz, currentProvider, db, eth, net, personal, providers, setProvider, settings, shh, version"
> Object.getOwnPropertyNames(web3.__proto__).sort().join(", ")
"BigNumber, constructor, createBatch, fromAscii, fromDecimal, fromICAP, fromUtf8, fromWei, isAddress, isChecksumAddress, isConnected, isIBAN, reset, setProvider, sha3, toAscii, toBigNumber, toChecksumAddress, toDecimal, toHex, toUtf8, toWei"
===
> const web3 = require('web3')
> const ow3 = new web3(new web3.providers.HttpProvider("http://localhost:8545"));
undefined
> Object.getOwnPropertyNames(ow3).sort()
[ '_extend',
'_requestManager',
'bzz',
'currentProvider',
'db',
'eth',
'net',
'personal',
'providers',
'settings',
'shh',
'version' ]
===
> Object.getOwnPropertyNames(web3).sort()
[ 'arguments',
'caller',
'length',
'name',
'prototype',
'providers' ]
> Object.getOwnPropertyNames(web3.prototype).sort()
[ 'BigNumber',
'constructor',
'createBatch',
'fromAscii',
'fromDecimal',
'fromICAP',
'fromUtf8',
'fromWei',
'isAddress',
'isChecksumAddress',
'isConnected',
'isIBAN',
'reset',
'setProvider',
'sha3',
'toAscii',
'toBigNumber',
'toChecksumAddress',
'toDecimal',
'toHex',
'toUtf8',
'toWei' ]
> Object.getOwnPropertyNames(oW3.prototype.__proto__).sort()
[ '__defineGetter__',
'__defineSetter__',
'__lookupGetter__',
'__lookupSetter__',
'__proto__',
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf' ]

ethapijs'oweb3.eth

API::
> Object.getOwnPropertyNames(ow3.eth).sort()
[ '_requestManager',
'accounts',
'blockNumber',
'call',
'coinbase',
'compile',
'estimateGas',
'gasPrice',
'getAccounts',
'getBalance',
'getBlock',
'getBlockNumber',
'getBlockTransactionCount',
'getBlockUncleCount',
'getCode',
'getCoinbase',
'getCompilers',
'getGasPrice',
'getHashrate',
'getMining',
'getProtocolVersion',
'getStorageAt',
'getSyncing',
'getTransaction',
'getTransactionCount',
'getTransactionFromBlock',
'getTransactionReceipt',
'getUncle',
'getWork',
'hashrate',
'iban',
'mining',
'protocolVersion',
'sendIBANTransaction',
'sendRawTransaction',
'sendTransaction',
'sign',
'submitWork',
'syncing' ]

ethapijs'oweb3.personal

API::
> Object.getOwnPropertyNames(ow3.personal).sort()
[ '_requestManager',
'getListAccounts',
'listAccounts',
'lockAccount',
'newAccount',
'sendTransaction',
'unlockAccount' ]

ethapijs'oweb3.version

API::
> Object.getOwnPropertyNames(ow3.version).sort()
[ 'api',
'ethereum',
'getEthereum',
'getNetwork',
'getNode',
'getWhisper',
'network',
'node',
'whisper' ]
===
> ow3.version.api
'0.18.2'

ethapijs'Transaction

A transaction object looks like this:
{
    "blockHash": "0x361464a30ecc10640fd859bc90844a30f0ddff561e6805fb657aff0567da7b4f",
    "blockNumber": 131494,
    "from": "0x4cf24bf15bfead008b22ea33b7c99a82326031a7",
    "gas": 90000,
    "gasPrice": "20000000000",
    "hash": "0xa11e9aa7aff1bd6cb6c7d886cc531e75a8bcdea1ddcf387937aae3f3a0addb20",
    "input": "0x4326ee36000000000000000000000000000000000000000000000000000000000000034b",
    "nonce": 1477,
    "to": "0x58b671784f4fa6b02e3dcac9f9dd215b66b5669b",
    "transactionIndex": 0,
    "value": "0"
}
[http://hypernephelist.com/2016/06/21/a-simple-smart-contract-ui-web3.html]

ethapijs'Resource

AddressWpg::
* <script src="https://cdn.rawgit.com/ethereum/web3.js/develop/dist/web3.js"></script>
<script src="https://raw.githubusercontent.com/ethereum/web3.js/0.16.0/dist/web3.min.js"></script>
* https://github.com/ethereum/web3.js,
* https://github.com/ethereum/wiki/wiki/JavaScript-API,

SPECIFIC

Name::
* ethpgm.specific,
* cpt.ethpgm.specific,

Specific::
* Contract-program,
* Ethpm,
* EVM,
* Client,
* Mist-browser,
* Parity-browser,
* DAPP,
* Mix,
* Token-browser,
* Truffle,
* Mining,

ethpgm.Mix

Description::
Mix: The integrated development environment for DApp authoring. Quickly prototype and debug decentralised applications on the Ethereum platform. More information can be found at the Mix GitHub Page.
[http://ethdocs.org/en/latest/frequently-asked-questions/frequently-asked-questions.html#how-can-i-store-big-files-on-the-blockchain]

ethpgm.Ethpm

Description::
The Ethereum Package Registry
A package index for Ethereum smart contract packages.
[https://www.ethpm.com/]

Name::
* cpt.ethereum-package-registry,
* cpt.ethpm,

ethpm'Resource

AddressWpg::
* https://www.ethpm.com/,
* https://www.ethpm.com/registry,
* https://www.ethpm.com/docs/integration-guide,

ethpgm.EVM (ethevm)

Description::
The EVM is not a register machine but a stack machine, so all computations are performed on an area called the stack.
It has a maximum size of 1024 elements and contains words of 256 bits. Access to the stack is limited to the top end in the following way: It is possible to copy one of the topmost 16 elements to the top of the stack or swap the topmost element with one of the 16 elements below it. All other operations take the topmost two (or one, or more, depending on the operation) elements from the stack and push the result onto the stack. Of course it is possible to move stack elements to storage or memory, but it is not possible to just access arbitrary elements deeper in the stack without first removing the top of the stack.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#storage-memory-and-the-stack]
===
The Ethereum Virtual Machine (EVM) is the runtime environment for smart contracts in Ethereum. It is not only sandboxed, but actually completely isolated, which means that code running inside the EVM has no access to network, filesystem, or other processes. Smart contracts even have limited access to other smart contracts.
Contracts live on the blockchain in an Ethereum-specific binary format (EVM bytecode). However, contracts are typically written in an Ethereum high level language, compiled into byte code using an EVM compiler, and finally uploaded on the blockchain using an Ethereum client.
[https://ethereum-homestead.readthedocs.org/en/latest/contracts-and-transactions/developer-tools.html#the-evm]
===
The Ethereum Virtual Machine is the primary innovation of the Ethereum project. This is a virtual machine designed to be run by all participants in a peer to peer network, it can read and write to a blockchain both executable code and data, Verify digital signatures, and is able to run code in a quasi-Turing complete manner. It will only execute code when it receives a message verified by a digital signature, and the information stored on the blockchain tells it is appropriate to do so.
[https://dappsforbeginners.wordpress.com/tutorials/introduction-to-development-on-ethereum/]
===
The Ethereum Virtual Machine or EVM is the runtime environment for smart contracts in Ethereum. It is not only sandboxed but actually completely isolated, which means that code running inside the EVM has no access to network, filesystem or other processes. Smart contracts even have limited access to other smart contracts.
[https://solidity.readthedocs.org/en/latest/introduction-to-smart-contracts.html#overview]

Name::
* cpt.Ethereum-Virtual-Machine,
* cpt.EVM-of-ethereum,
* cpt.ethEVM,

Whole::
Ethereum enables this complexity by placing a virtual machine (called the Ethereum Virtual Machine, or EVM) in every node on the network.
The EVM is not conceptually different than any other virtual machine.
You may already be familiar with the Java Virtual Machine (JVM), for example.
Just like JVM code will run on any machine hosting a JVM and produce identical outputs over the same set of inputs, the EVM enables the Ethereum blockchain to reach consensus about the proper output of any EVM code based on a set of inputs.
[https://medium.com/@ConsenSys/ethereum-bitcoin-plus-everything-a506dc780106#.izxhgdxdt]

ethevm'Stack-area

Description::
The EVM is not a register machine but a stack machine, so all computations are performed on an area called the stack.
It has a maximum size of 1024 elements and contains words of 256 bits.
Access to the stack is limited to the top end in the following way: It is possible to copy one of the topmost 16 elements to the top of the stack or swap the topmost element with one of the 16 elements below it.
All other operations take the topmost two (or one, or more, depending on the operation) elements from the stack and push the result onto the stack.
Of course it is possible to move stack elements to storage or memory, but it is not possible to just access arbitrary elements deeper in the stack without first removing the top of the stack.
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-10]
===
The Ethereum VM is stack-based.
This means the operands for the instructions are taken from the stack, and it is also where the results are added.
[https://github.com/androlo/solidity-workshop/blob/master/tutorials/2016-03-11-advanced-solidity-II.md#stack-machines]
===
Elements on the stack are 32-byte words,
[https://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md#overview]
===
// Prefer loops to recursion (max call stack depth is 1024)
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethevm'Stack,
* cpt.ethNet'Stack,

ethevm'Storage-area (persistent)

Description::
Each account has a persistent memory area which is called storage.
Storage is a key-value store that maps 256-bit words to 256-bit words.
It is not possible to enumerate storage from within a contract and it is comparatively costly to read and even more so, to modify storage.
A contract can neither read nor write to any storage apart from its own.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#storage-memory-and-the-stack]
===
Unlike stack and memory, which reset after computation ends, storage persists for the long term.
... While the Ethereum virtual machine is running, its full computational state can be defined by the tuple (block_state, transaction, message, code, memory, stack, pc, gas), where block_state is the global state containing all accounts and includes balances and storage.
[https://github.com/ethereum/wiki/wiki/White-Paper#code-execution]
===
Every account has a persistent key-value store mapping 256-bit words to 256-bit words called storage.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#accounts]
===
Complex types, i.e. types which do not always fit into 256 bits have to be handled more carefully than the value-types we have already seen. Since copying them can be quite expensive, we have to think about whether we want them to be stored in memory (which is not persisting) or storage (where the state variables are held).
[http://solidity.readthedocs.io/en/v0.4.9/types.html#index-13]
===
“Contracts” in Ethereum should not be seen as something that should be “fulfilled” or “complied with”; rather, they are more like “autonomous agents” that live inside of the Ethereum execution environment, always executing a specific piece of code when “poked” by a message or transaction, and having direct control over their own ether balance and their own key/value store to store their permanent state.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#contract-accounts]
===
key-value storage (persisted in a merkle tree). ...
all keys and values in storage are 32 bytes.
[https://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md#overview]

Name::
* cpt.ethevm'Storage,
* cpt.ethNet'Storage,
* cpt.ethevm'Key-value-store,

ethevm'Memory-area (non-persistent)

Description::
The second memory area is called memory, of which a contract obtains a freshly cleared instance for each message call.
Memory is linear and can be addressed at byte level, but reads are limited to a width of 256 bits, while writes can be either 8 bits or 256 bits wide.
Memory is expanded by a word (256-bit), when accessing (either reading or writing) a previously untouched memory word (ie. any offset within a word).
At the time of expansion, the cost in gas must be paid.
Memory is more costly the larger it grows (it scales quadratically).
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#index-10]
===
Memory is an expandable byte-array used to store data during program execution.
It can be accessed using the MSTORE and MLOAD instructions
[https://github.com/androlo/solidity-workshop/blob/master/tutorials/2016-03-11-advanced-solidity-III.md#memory]
===
Complex types, i.e. types which do not always fit into 256 bits have to be handled more carefully than the value-types we have already seen. Since copying them can be quite expensive, we have to think about whether we want them to be stored in memory (which is not persisting) or storage (where the state variables are held).
[http://solidity.readthedocs.io/en/v0.4.9/types.html#index-13]

Name::
* cpt.ethevm'memory,
* cpt.ethnet'memory,
* cpt.ephemeral-memory-of-evm,

ethevm'Calldata

Description::
Calldata is a byte-array, just like memory, but it is read-only.
It contains the data from the transaction that triggered the code execution.
[https://github.com/androlo/solidity-workshop/blob/master/tutorials/2016-03-11-advanced-solidity-III.md#memory]

Name::
* cpt.ethevm'calldata,
* cpt.ethNet'calldata,

ethevm'PC (Program-Counter)

ethevm'ABI (App-Binary-Interface) (link)

ethevm'Bytecode

Description::
Contracts live on the blockchain in an Ethereum-specific binary format (EVM bytecode).
However, contracts are typically written in an Ethereum high level language, compiled into byte code using an EVM compiler, and finally uploaded on the blockchain using an Ethereum client.
[https://ethereum-homestead.readthedocs.org/en/latest/contracts-and-transactions/developer-tools.html#the-evm]

ethevm'Program (binary-contract) (link)

ethevm'Instruction (ethinn)

Description::
The instruction set of the EVM is kept minimal in order to avoid incorrect implementations which could cause consensus problems.
All instructions operate on the basic data type, 256-bit words.
The usual arithmetic, bit, logical and comparison operations are present.
Conditional and unconditional jumps are possible.
Furthermore, contracts can access relevant properties of the current block like its number and timestamp.
[http://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html#instruction-set, 0-4-11.6d4cb248]
===
Every single operation that is executed inside the EVM is actually simultaneously executed by every node in the network.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05#262d]

Name::
* cpt.ethevm'computation,
* cpt.ethevm'instruction,
* cpt.ethevm'opcode,
* cpt.ethevm'operation,
* cpt.ethopc,
* cpt.operation-code-of-evm,

ethinn'argument

Description::
The table tells us how many arguments each opcode pops off the stack and pushes back onto the stack, as well as how much gas is consumed.
# schema: [opcode, ins, outs, gas]

opcodes = {

# arithmetic
ethinn.0x00: ['ethinn.STOP', 0, 0, 0],
ethinn.0x01: ['ethinn.ADD', 2, 1, 3],
ethinn.0x02: ['ethinn.MUL', 2, 1, 5],
ethinn.0x03: ['ethinn.SUB', 2, 1, 3],
ethinn.0x04: ['ethinn.DIV', 2, 1, 5],
ethinn.0x05: ['ethinn.SDIV', 2, 1, 5],
ethinn.0x06: ['ethinn.MOD', 2, 1, 5],
ethinn.0x07: ['ethinn.SMOD', 2, 1, 5],
ethinn.0x08: ['ethinn.ADDMOD', 3, 1, 8],
ethinn.0x09: ['ethinn.MULMOD', 3, 1, 8],
ethinn.0x0a: ['ethinn.EXP', 2, 1, 10],
ethinn.0x0b: ['ethinn.SIGNEXTEND', 2, 1, 5],

# boolean
ethinn.0x10: ['ethinn.LT', 2, 1, 3],
ethinn.0x11: ['ethinn.GT', 2, 1, 3],
ethinn.0x12: ['ethinn.SLT', 2, 1, 3],
ethinn.0x13: ['ethinn.SGT', 2, 1, 3],
ethinn.0x14: ['ethinn.EQ', 2, 1, 3],
ethinn.0x15: ['ethinn.ISZERO', 1, 1, 3],
ethinn.0x16: ['ethinn.AND', 2, 1, 3],
ethinn.0x17: ['ethinn.OR', 2, 1, 3],
ethinn.0x18: ['ethinn.XOR', 2, 1, 3],
ethinn.0x19: ['ethinn.NOT', 1, 1, 3],
ethinn.0x1a: ['ethinn.BYTE', 2, 1, 3],

# crypto
ethinn.0x20: ['ethinn.SHA3', 2, 1, 30],

# contract context
ethinn.0x30: ['ethinn.ADDRESS', 0, 1, 2],
ethinn.0x31: ['ethinn.BALANCE', 1, 1, 20],
ethinn.0x32: ['ethinn.ORIGIN', 0, 1, 2],
ethinn.0x33: ['ethinn.CALLER', 0, 1, 2],
ethinn.0x34: ['ethinn.CALLVALUE', 0, 1, 2],
ethinn.0x35: ['ethinn.CALLDATALOAD', 1, 1, 3],
ethinn.0x36: ['ethinn.CALLDATASIZE', 0, 1, 2],
ethinn.0x37: ['ethinn.CALLDATACOPY', 3, 0, 3],
ethinn.0x38: ['ethinn.CODESIZE', 0, 1, 2],
ethinn.0x39: ['ethinn.CODECOPY', 3, 0, 3],
ethinn.0x3a: ['ethinn.GASPRICE', 0, 1, 2],
ethinn.0x3b: ['ethinn.EXTCODESIZE', 1, 1, 20],
ethinn.0x3c: ['ethinn.EXTCODECOPY', 4, 0, 20],

# blockchain context
ethinn.0x40: ['ethinn.BLOCKHASH', 1, 1, 20],
ethinn.0x41: ['ethinn.COINBASE', 0, 1, 2],
ethinn.0x42: ['ethinn.TIMESTAMP', 0, 1, 2],
ethinn.0x43: ['ethinn.NUMBER', 0, 1, 2],
ethinn.0x44: ['ethinn.DIFFICULTY', 0, 1, 2],
ethinn.0x45: ['ethinn.GASLIMIT', 0, 1, 2],

# storage and execution
ethinn.0x50: ['ethinn.POP', 1, 0, 2],
ethinn.0x51: ['ethinn.MLOAD', 1, 1, 3],
ethinn.0x52: ['ethinn.MSTORE', 2, 0, 3],
ethinn.0x53: ['ethinn.MSTORE8', 2, 0, 3],
ethinn.0x54: ['ethinn.SLOAD', 1, 1, 50],
ethinn.0x55: ['ethinn.SSTORE', 2, 0, 0],
ethinn.0x56: ['ethinn.JUMP', 1, 0, 8],
ethinn.0x57: ['ethinn.JUMPI', 2, 0, 10],
ethinn.0x58: ['ethinn.PC', 0, 1, 2],
ethinn.0x59: ['ethinn.MSIZE', 0, 1, 2],
ethinn.0x5a: ['ethinn.GAS', 0, 1, 2],
ethinn.0x5b: ['ethinn.JUMPDEST', 0, 0, 1],

# logging
ethinn.0xa0: ['ethinn.LOG0', 2, 0, 375],
ethinn.0xa1: ['ethinn.LOG1', 3, 0, 750],
ethinn.0xa2: ['ethinn.LOG2', 4, 0, 1125],
ethinn.0xa3: ['ethinn.LOG3', 5, 0, 1500],
ethinn.0xa4: ['ethinn.LOG4', 6, 0, 1875],

# arbitrary length storage (proposal for metropolis hardfork)
ethinn.0xe1: ['ethinn.SLOADBYTES', 3, 0, 50],
ethinn.0xe2: ['ethinn.SSTOREBYTES', 3, 0, 0],
ethinn.0xe3: ['ethinn.SSIZE', 1, 1, 50],

# closures
ethinn.0xf0: ['ethinn.CREATE', 3, 1, 32000],
ethinn.0xf1: ['ethinn.CALL', 7, 1, 40],
ethinn.0xf2: ['ethinn.CALLCODE', 7, 1, 40],
ethinn.0xf3: ['ethinn.RETURN', 2, 0, 0],
ethinn.0xf4: ['ethinn.DELEGATECALL', 6, 0, 40],
ethinn.0xff: ['ethinn.SUICIDE', 1, 0, 0],
}

# push
for i in range(1, 33):
opcodes[0x5f + i] = ['PUSH' + str(i), 0, 1, 3]

# duplicate and swap
for i in range(1, 17):
opcodes[0x7f + i] = ['DUP' + str(i), i, i + 1, 3]
opcodes[0x8f + i] = ['SWAP' + str(i), i + 1, i + 1, 3]
[https://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md#overview]

ethinn'gas-cost (link)
ethinn.SPECIFIC

Specific::
There are over 100 opcodes,
[https://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md#overview]
===
All of the opcodes and their complete descriptions are available in the Ethereum Yellow paper. For convenience, though, I've made a handy reference list of them all:

0s: Stop and Arithmetic Operations
0x00 ethinn'STOP Halts execution
0x01 ethinn'ADD Addition operation
0x02 ethinn'MUL Multiplication operation
0x03 ethinn'SUB Subtraction operation
0x04 ethinn'DIV Integer division operation
0x05 ethinn'SDIV Signed integer
0x06 ethinn'MOD Modulo
0x07 ethinn'SMOD Signed modulo
0x08 ethinn'ADDMOD Modulo
0x09 ethinn'MULMOD Modulo
0x0a ethinn'EXP Exponential operation
0x0b ethinn'SIGNEXTEND Extend length of two's complement signed integer

10s: Comparison & Bitwise Logic Operations
0x10 ethinn'LT Lesser-than comparison
0x11 ethinn'GT Greater-than comparison
0x12 ethinn'SLT Signed less-than comparison
0x13 ethinn'SGT Signed greater-than comparison
0x14 ethinn'EQ Equality comparison
0x15 ethinn'ISZERO Simple not operator
0x16 ethinn'AND Bitwise AND operation
0x17 ethinn'OR Bitwise OR operation
0x18 ethinn'XOR Bitwise XOR operation
0x19 ethinn'NOT Bitwise NOT operation
0x1a ethinn'BYTE Retrieve single byte from word

20s: SHA3
0x20 ethinn'SHA3 Compute Keccak-256 hash

30s: Environmental Information
0x30 ethinn'ADDRESS Get address of currently executing account
0x31 ethinn'BALANCE Get balance of the given account
0x32 ethinn'ORIGIN Get execution origination address
0x33 ethinn'CALLER Get caller address. This is the address of the account that is directly responsible for this execution
0x34 ethinn'CALLVALUE Get deposited value by the instruction/transaction responsible for this execution
0x35 ethinn'CALLDATALOAD Get input data of current environment
0x36 ethinn'CALLDATASIZE Get size of input data in current environment
0x37 ethinn'CALLDATACOPY Copy input data in current environment to memory This pertains to the input data passed with the message call instruction or transaction
0x38 ethinn'CODESIZE Get size of code running in current environment
0x39 ethinn'CODECOPY Copy code running in current environment to memory
0x3a ethinn'GASPRICE Get price of gas in current environment
0x3b ethinn'EXTCODESIZE Get size of an account's code
0x3c ethinn'EXTCODECOPY Copy an account's code to memory

40s: Block Information
0x40 ethinn'BLOCKHASH Get the hash of one of the 256 most recent complete blocks
0x41 ethinn'COINBASE Get the block's beneficiary address
0x42 ethinn'TIMESTAMP Get the block's timestamp
0x43 ethinn'NUMBER Get the block's number
0x44 ethinn'DIFFICULTY Get the block's difficulty
0x45 ethinn'GASLIMIT Get the block's gas limit

50s Stack, Memory, Storage and Flow Operations
0x50 ethinn'POP Remove item from stack
0x51 ethinn'MLOAD Load word from memory
0x52 ethinn'MSTORE Save word to memory
0x53 ethinn'MSTORE8 Save byte to memory
0x54 ethinn'SLOAD Load word from storage
0x55 ethinn'SSTORE Save word to storage
0x56 ethinn'JUMP Alter the program counter
0x57 ethinn'JUMPI Conditionally alter the program counter
0x58 ethinn'PC Get the value of the program counter prior to the increment
0x59 ethinn'MSIZE Get the size of active memory in bytes
0x5a ethinn'GAS Get the amount of available gas, including the corresponding reduction
0x5b ethinn'JUMPDEST Mark a valid destination for jumps

60s & 70s: Push Operations
ethinn.0x60 ethinn'PUSH1 Place 1 byte item on stack
0x61 ethinn'PUSH2 Place 2-byte item on stack

0x7f ethinn'PUSH32 Place 32-byte (full word) item on stack

80s: Duplication Operations
ethinn.0x80 ethinn'DUP1 Duplicate 1st stack item
0x81 ethinn'DUP2 Duplicate 2nd stack item

0x8f ethinn'DUP16 Duplicate 16th stack item

90s: Exchange Operations
ethinn.0x90 ethinn'SWAP1 Exchange 1st and 2nd stack items
0x91 ethinn'SWAP2 Exchange 1st and 3rd stack items
… …
0x9f ethinn'SWAP16 Exchange 1st and 17th stack items

a0s: Logging Operations
0xa0 ethinn'LOG0 Append log record with no topics
0xa1 ethinn'LOG1 Append log record with one topic
… …
0xa4 ethinn'LOG4 Append log record with four topics

f0s: System operations
0xf0 ethinn'CREATE Create a new account with associated code
0xf1 ethinn'CALL Message-call into an account
0xf2 ethinn'CALLCODE Message-call into this account with alternative account's code
0xf3 ethinn'RETURN Halt execution returning output data
0xf4 ethinn'DELEGATECALL Message-call into this account with an alternative account's code, but persisting the current values for sender and value
Halt Execution, Mark for deletion

0xff ethinn'SUICIDE Halt execution and register account for later deletion
[http://ethereum.stackexchange.com/a/120]

ethevm'Compiler

Description::
Contracts live on the blockchain in an Ethereum-specific binary format (EVM bytecode).
However, contracts are typically written in an Ethereum high level language, compiled into byte code using an EVM compiler, and finally uploaded on the blockchain using an Ethereum client.
[https://ethereum-homestead.readthedocs.org/en/latest/contracts-and-transactions/developer-tools.html#the-evm]

Name::
* cpt.EVM-compiler,

ethevm'Security

Description::
The EVM is a security oriented virtual machine, designed to permit untrusted code to be executed by a global network of computers. To do so securely, it imposes the following restrictions:
- Every computational step taken in a program's execution must be paid for up front, thereby preventing Denial-of-Service attacks.
- Programs may only interact with each other by transmitting a single arbitrary-length byte array; they do not have access to each other's state.
- Program execution is sandboxed; an EVM program may access and modify its own internal state and may trigger the execution of other EVM programs, but nothing else.
- Program execution is fully deterministic and produces identical state transitions for any conforming implementation beginning in an identical state.
These restrictions motivated many of the design decisions of the overall Ethereum state transition machine, and their enforcement is pervasive throughout the specification.
[https://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md#security]
===
The Ethereum Virtual Machine or EVM is the runtime environment for smart contracts in Ethereum.
It is not only sandboxed but actually completely isolated, which means that code running inside the EVM has no access to network, filesystem or other processes.
Smart contracts even have limited access to other smart contracts.
[https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html#overview 0-4-10.6258fe71]

ethevm'Resource

AddressWpg::
* https://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md,

ethevm'Code-executing

Description::
In general, code execution is an infinite loop that consists of repeatedly carrying out the operation at the current program counter (which begins at zero) and then incrementing the program counter by one, until the end of the code is reached or an error or STOP or RETURN instruction is detected.
...
The code can also access the value, sender and data of the incoming message, as well as block header data, and the code can also return a byte array of data as an output.
The formal execution model of EVM code is surprisingly simple. While the Ethereum virtual machine is running, its full computational state can be defined by the tuple (block_state, transaction, message, code, memory, stack, pc, gas), where block_state is the global state containing all accounts and includes balances and storage. At the start of every round of execution, the current instruction is found by taking the pcth (Program Counter) byte of code (or 0 if pc >= len(code)), and each instruction has its own definition in terms of how it affects the tuple. For example, ADD pops two items off the stack and pushes their sum, reduces gas by 1 and increments pc by 1, and SSTORE pops the top two items off the stack and inserts the second item into the contract's storage at the index specified by the first item. Although there are many ways to optimize Ethereum virtual machine execution via just-in-time compilation, a basic implementation of Ethereum can be done in a few hundred lines of code.
[https://github.com/ethereum/wiki/wiki/White-Paper#code-execution]
===
... A commonly asked question is "where" contract code is executed, in terms of physical hardware.
This has a simple answer: the process of executing contract code is part of the definition of the state transition function, which is part of the block validation algorithm, so if a transaction is added into block B the code execution spawned by that transaction will be executed by all nodes, now and in the future, that download and validate block B.
[https://github.com/ethereum/wiki/wiki/White-Paper#blockchain-and-mining]

Name::
* cpt.ethevm'execution,

ethpgm.CLIENT (ethclt)

Description::
The Ethereum clients are very analogous to a Java VM or .NET runtime.
They enable you to execute “Ethereum programs” on your computer. They are implemented to a written specification (the Yellow Paper) and by design are interoperable and somewhat “commodity”.
[https://ethereum-homestead.readthedocs.org/en/latest/ethereum-clients/choosing-a-client.html]

Name::
* cpt.ethclient,
* cpt.ethclt,
* cpt.ethereum-client,
* cpt.ethnet'browser,
* cpt.ethpgm.client,

SPECIFIC

Name::
* cpt.ethclt.specific,

Specific::
The Ethereum Foundation publishes the specifications for Ethereum clients on their Github page, and funds development of official clients written in Go (go-ethereum), C++ (cpp-ethereum) and Python (py-ethereum). There are also community contributed clients in many other languages, including Ruby, Java, Haskell and Rust.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
===
As of September 2016, the leading implementations are go-ethereum and Parity.
[http://ethdocs.org/en/latest/ethereum-clients/choosing-a-client.html]
===
Client        Language        Developers            Homestead Release
go-ethereum    Go            Ethereum Foundation    geth-v1.3.5
cpp-ethereum    C++            Ethereum Foundation    eth-v1.2.2
pyethapp        Python        Ethereum Foundation    v1.2.0 release imminent
ethereumjs-lib    Javascript        Ethereum Foundation    ethereumjs-lib-v3.0.0
Ethereum(J)    Java            <ether.camp>        ethereumJ-v1.2.0-homestead-RC
ethereumH    Haskell        ConsenSys            not available yet
Parity        Rust            Ethcore            Parity-v1.0.0
ruby-ethereum    Ruby    Jan Xie    not available yet
[https://ethereum-homestead.readthedocs.org/en/latest/ethereum-clients/choosing-a-client.html]
===
* command-line-client

ethclt.GO-ETHEREUM (ethgth)

Description::
Go Ethereum is available either as a standalone client called Geth that you can install on pretty much any operating system, or as a library that you can embed in your Go, Android or iOS projects.
[https://geth.ethereum.org/]

Name::
* cpt.ethget,
* cpt.ethgeth,
* cpt.ethgth,
* cpt.geth,
* cpt.ethnet'geth,
* cpt.ethnet'go-ethereum,

ethgth'Synopsis

$ geth help
NAME:
geth - the go-ethereum command line interface

Copyright 2013-2016 The go-ethereum Authors

USAGE:
geth [options] command [command options] [arguments...]

VERSION:
1.5.5-unstable

COMMANDS:
init Bootstrap and initialize a new genesis block
import Import a blockchain file
export Export blockchain into file
upgradedb Upgrade chainblock database
removedb Remove blockchain and state databases
dump Dump a specific block from storage
monitor Monitor and visualize node metrics
account Manage accounts
wallet Manage Ethereum presale wallets
console Start an interactive JavaScript environment
attach Start an interactive JavaScript environment (connect to node)
js Execute the specified JavaScript files
makedag Generate ethash DAG (for testing)
version Print version numbers
license Display license information
help, h Shows a list of commands or help for one command

ETHEREUM OPTIONS:
--datadir "/home/tron/.ethereum" Data directory for the databases and keystore
--keystore Directory for the keystore (default = inside the datadir)
--networkid value Network identifier (integer, 0=Olympic (disused), 1=Frontier, 2=Morden (disused), 3=Ropsten) (default: 1)
--olympic Olympic network: pre-configured pre-release test network
--testnet Ropsten network: pre-configured test network
--dev Developer mode: pre-configured private network with several debugging flags
--identity value Custom node name
--fast Enable fast syncing through state downloads
--light Enable light client mode
--lightserv value Maximum percentage of time allowed for serving LES requests (0-90) (default: 0)
--lightpeers value Maximum number of LES client peers (default: 20)
--lightkdf Reduce key-derivation RAM & CPU usage at some expense of KDF strength

PERFORMANCE TUNING OPTIONS:
--cache value Megabytes of memory allocated to internal caching (min 16MB / database forced) (default: 128)
--trie-cache-gens value Number of trie node generations to keep in memory (default: 120)


ACCOUNT OPTIONS:
--unlock value Comma separated list of accounts to unlock
--password value Password file to use for non-inteactive password input

API AND CONSOLE OPTIONS:
--rpc Enable the HTTP-RPC server
--rpcaddr value HTTP-RPC server listening interface (default: "localhost")
--rpcport value HTTP-RPC server listening port (default: 8545)
--rpcapi value API's offered over the HTTP-RPC interface (default: "eth,net,web3")
--ws Enable the WS-RPC server
--wsaddr value WS-RPC server listening interface (default: "localhost")
--wsport value WS-RPC server listening port (default: 8546)
--wsapi value API's offered over the WS-RPC interface (default: "eth,net,web3")
--wsorigins value Origins from which to accept websockets requests
--ipcdisable Disable the IPC-RPC server
--ipcapi value APIs offered over the IPC-RPC interface (default: "admin,debug,eth,miner,net,personal,shh,txpool,web3")
--ipcpath "geth.ipc" Filename for IPC socket/pipe within the datadir (explicit paths escape it)
--rpccorsdomain value Comma separated list of domains from which to accept cross origin requests (browser enforced)
--jspath loadScript JavaScript root path for loadScript (default: ".")
--exec value Execute JavaScript statement (only in combination with console/attach)
--preload value Comma separated list of JavaScript files to preload into the console

NETWORKING OPTIONS:
--bootnodes value Comma separated enode URLs for P2P discovery bootstrap
--port value Network listening port (default: 30303)
--maxpeers value Maximum number of network peers (network disabled if set to 0) (default: 25)
--maxpendpeers value Maximum number of pending connection attempts (defaults used if set to 0) (default: 0)
--nat value NAT port mapping mechanism (any|none|upnp|pmp|extip:<IP>) (default: "any")
--nodiscover Disables the peer discovery mechanism (manual peer addition)
--v5disc Enables the experimental RLPx V5 (Topic Discovery) mechanism
--nodekey value P2P node key file
--nodekeyhex value P2P node key as hex (for testing)

MINER OPTIONS:
--mine Enable mining
--minerthreads value Number of CPU threads to use for mining (default: 8)
--autodag Enable automatic DAG pregeneration
--etherbase value Public address for block mining rewards (default = first account created) (default: "0")
--targetgaslimit value Target gas limit sets the artificial target gas floor for the blocks to mine (default: "4712388")
--gasprice value Minimal gas price to accept for mining a transactions (default: "20000000000")
--extradata value Block extra data set by the miner (default = client version)

GAS PRICE ORACLE OPTIONS:
--gpomin value Minimum suggested gas price (default: "20000000000")
--gpomax value Maximum suggested gas price (default: "500000000000")
--gpofull value Full block threshold for gas price calculation (%) (default: 80)
--gpobasedown value Suggested gas price base step down ratio (1/1000) (default: 10)
--gpobaseup value Suggested gas price base step up ratio (1/1000) (default: 100)
--gpobasecf value Suggested gas price base correction factor (%) (default: 110)

VIRTUAL MACHINE OPTIONS:
--jitvm Enable the JIT VM
--forcejit Force the JIT VM to take precedence
--jitcache value Amount of cached JIT VM programs (default: 64)

LOGGING AND DEBUGGING OPTIONS:
--ethstats value Reporting URL of a ethstats service (nodename:secret@host:port)
--metrics Enable metrics collection and reporting
--fakepow Disables proof-of-work verification
--verbosity value Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=core, 5=debug, 6=detail (default: 3)
--vmodule value Per-module verbosity: comma-separated list of <pattern>=<level> (e.g. eth/*=6,p2p=5)
--backtrace value Request a stack trace at a specific logging statement (e.g. "block.go:271") (default: :0)
--pprof Enable the pprof HTTP server
--pprofaddr value pprof HTTP server listening interface (default: "127.0.0.1")
--pprofport value pprof HTTP server listening port (default: 6060)
--memprofilerate value Turn on memory profiling with the given rate (default: 524288)
--blockprofilerate value Turn on block profiling with the given rate (default: 0)
--cpuprofile value Write CPU profile to the given file
--trace value Write execution trace to the given file

EXPERIMENTAL OPTIONS:
--shh Enable Whisper
--natspec Enable NatSpec confirmation notice

MISCELLANEOUS OPTIONS:
--solc value Solidity compiler command to be used (default: "solc")
--netrestrict value Restricts network communication to the given IP networks (CIDR masks)
--help, -h show help
[https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options]

ethgth'Console

> exit
you exit with Ctrl D or exit

> eth.accounts
['0x407d73d8a49eeb85d32cf465507dd71d507100c1']

> checkAllBalances();
eth.accounts[0]: 0xd1ade25ccd3d550a7eb532ac759cac7be09c2719 balance: 63.11848 ether
eth.accounts[1]: 0xda65665fc30803cb1fb7e6d86691e20b1826dee0 balance: 0 ether
eth.accounts[2]: 0xe470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32 balance: 1 ether
eth.accounts[3]: 0xf4dd5c3794f1fd0cdc0327a83aa472609c806e99 balance: 6 ether
[https://github.com/ethereum/go-ethereum/wiki/Managing-your-accounts]

> net.listening
true

> net.peerCount
4

> admin.nodeInfo
To check the ports used by geth and also find your enode URI run:

> admin.setSolc("/usr/local/bin/solc")
solc, the solidity compiler commandline interface
Version: 0.2.2-02bb315d/.-Darwin/appleclang/JIT linked to libethereum-1.2.0-8007cef0/.-Darwin/appleclang/JIT
path: /usr/local/bin/solc

> web3.eth.getCompilers();
["lll", "solidity", "serpent"]

ethclt.METAMASK

Description::
I work on an Ethereum based key manager (coming soon, called MetaMask),
[https://medium.com/@danfinlay/daos-are-mere-identities-1f6247456561#.fgtcad2i8]
===
MetaMask is a bridge that allows you to visit the distributed web of tomorrow in your browser today. It allows you to run Ethereum dApps right in your browser without running a full Ethereum node.

MetaMask includes a secure identity vault, providing a user interface to manage your identities on different sites and sign blockchain transactions.

We’re initially building MetaMask as a Chrome plugin, but eventually plan to support Firefox and beyond. If you’re a developer, you can start developing with MetaMask today.

Our mission is to make Ethereum as easy to use for as many people as possible.
[https://metamask.io/#how-it-works]

Name::
* cpt.ethnet'metaMask,
* cpt.MetaMask-ethereum-client,

ethmmk'Resource

AddressWpg::
* https://medium.com/metamask/metamask-3-migration-guide-914b79533cdd#.ytw5dcxi2,

ethclt.TESTRPC

Description::
There are many Ethereum clients to choose from.
We recommend using different clients when developing and deploying.
WHEN DEVELOPING
EthereumJS TestRPC: https://github.com/ethereumjs/testrpc
When developing your Truffle-based application, we recommend using the EthereumJS TestRPC. It's a complete blockchain-in-memory that runs only on your development machine. It processes transactions instantly instead of waiting for the default block time – so you can test that your code works quickly – and it tells you immediately when your smart contracts run into errors. It also makes a great client for automated testing, and Truffle knows how to use its special features to speed up test runtime by almost 90%.
[http://truffleframework.com/docs/getting_started/client]
===
There are various compatible clients for the protocol, the most popular being geth, a Go language implementation. However, it’s not the most developer-friendly. The best option I’ve found is the testrpc node (yes, the name sucks). Trust me, it will save you a lot of time. Install it and run it:
$ sudo npm install -g ethereumjs-testrpc
$ testrpc
You should run testrpc in a new terminal and leave it running while you develop. Each time you run testrpc, it will generate 10 new addresses with simulated test funds for you to use. This is not real money and you’re safe to try anything with no risk of losing funds.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05#262d]

Name::
* cpt.ethtestrpc,
* cpt.testrpc-ethereum-simulator,

ethtrpc'Resource

AddressWpg::
* https://github.com/ethereumjs/testrpc,

ethtrpc'Installing

NOTE:
As of version 3.0.2, testrpc requires at least Node 6.9.1 to run - this is because the ethereumjs-vm@2.0.1 dependency is now shipping using ES2015 language features.
[https://github.com/ethereumjs/testrpc]

ethpgm.Mist-browser (ethmst)

Description::
The Mist browser is the tool of choice to browse and use Dapps.
[https://github.com/ethereum/mist]
===
Ethereum wallet is a wallet, Mist is a browser.
===
The Mist Browser includes the Ethereum Wallet. The Ethereum Wallet is the Mist Browser with the browser function disabled. If you plan on using contracts use the Mist, else if you're just holding ETH, use the Ethereum Wallet.
[https://www.reddit.com/r/ethereum/comments/53nifc/confusion_should_i_download_mist_or_ethereum/d7undsl/]

Name::
* cpt.ethereum-mist,
* cpt.ethmist,
* cpt.ethnet'mist,
* cpt.Mist-browser,

ethmst'API

API
mist.platform
mist.menu
mist.menu.setBadge(text)
mist.menu.add(id, options, callback)
mist.menu.update(id [, options] [, callback])
mist.menu.remove(id)
mist.menu.clear()
[https://github.com/ethereum/mist/blob/master/MISTAPI.md#api]

ethmst'data-folder

The data folder for Mist is stored in other places:
Windows %APPDATA%/Roaming/Mist (C:\Users\user\AppData\Roaming\Mist)
MacOSX ~/Library/Application Support/Mist
Linux ~/.config/Mist
[https://github.com/ethereum/mist]

ethmst'resource

AddressWpg::
* https://blog.slock.it/the-ethereum-wallet-an-introduction-for-non-devs-9c530f75c018#.n1jtag8gq,

ethmst'doing

Usage::
a GUI-based option for creating accounts: The “official” Mist Ethereum wallet.

ethmst'updating

Description::
For updating simply download the new version and copy it over the old one (keep a backup of the old one if you want to be sure).
[https://github.com/ethereum/mist]

ethmst.EVOLUTING

Wallet 0.5.2 (Beta 10)
@frozeman frozeman released this 19 days ago · 69 commits to wallet since this release

This release adds some additional log information to the splash screen and adds a feature to send all ether for an account.

Full list of changes:

Added a send-all functionality to the send page.
Add German (thanks to @ColRad) and Portuguese (@alexvandesande) translation for the wallet!
Added log infos to the splash screen, so users can see what the node is currently doing...
Improved ether display precision on the confirmation screen
Added a check with NTP servers to see if the computer time is correct, if not it shows an error
Increased error timeout
If you should notice that your wallet links lead to a white page, please run the following script in the console:
https://gist.github.com/frozeman/ed41008f4d30900da3e8
This changes all your wallet addresses internally back to lowercase (we introduced that by accident).
[https://github.com/ethereum/mist/releases]

ethpgm.Parity-browser (ethparity)

Description::
Parity is a full Ethereum node client and provides a wallet interface in it's web front-end.
[https://github.com/bokkypoobah/TokenTrader/wiki/Frequently-Asked-Questions]
===
http://127.0.0.1:8180/
PARITY
Our Best-in-Class Ethereum Browser
Parity is our fully-featured and integrated Ethereum browser. It is the first in a series of planned software releases by Ethcore and the culmination of more than two years of lessons learnt designing and implementing blockchains by the best minds in the industry. Implemented in Rust, it uses the cutting edge, highly sophisticated hybrid functional language to create a blockchain client which is uniquely high-performance, low-footprint and reliable.
[https://ethcore.io/index.html]
===
Next Generation Ethereum Browser
We've created the world's fastest and lightest Ethereum client and integrated it directly into your web browser. Using it you can access all the features of the Ethereum network including powerful Decentralised applications and the multitude of cryptocurrencies issued on ethereum.
We're happy to release our source code under the GPLv3 licence; we hope you'll have as much fun reading and using our code as we had designing and writing it. You can use it for any of your Ethereum needs.
[https://ethcore.io/parity.html]

Name::
* cpt.ethnet'parity,
* cpt.ethparity,
* cpt.parity-ethnet,

ethparity'Server

Description::
By default, Parity will also run a JSONRPC server on 127.0.0.1:8545. This is fully configurable and supports a number of RPC APIs.
[https://github.com/ethcore/parity]

ethparity'Wallet

Description::
Parity comes with a built-in wallet.
To access Parity Wallet this simply go to http://127.0.0.1:8080/. It includes various functionality allowing you to:
create and manage your Ethereum accounts;
manage your Ether and any Ethereum tokens;
create and register your own tokens;
and much more.
[https://github.com/ethcore/parity]

ethparity'Directory

ethparity'Dapps-dir

Win::
C:\Users\username\AppData\Roaming\Parity\Ethereum\dapps
===
mklink /D C:\Users\username\AppData\Roaming\Parity\Ethereum\dapps\ethcoredap D:\dirBCN\ethcoredapp\dist
symbolic link created for C:\Users\username\AppData\Roaming\Parity\Ethereum\dapps\ethcoredap <<===>> D:\dirBCN\ethcoredapp\dist

Mac::
$HOME/Library/Application Support/io.parity.ethereum/dapps

Linux::
$HOME/.local/share/parity/dapps

ethparity'Proof-of-Authority

Description::
Proof of Authority Chains
Available only in 1.5 and above.
Parity supports a Proof-of-Authority consensus engine to be used with EVM based chains. Proof-of-Authority is a replacement for Proof-of-Work, which can be used for private chain setups.
It does not depend on nodes solving arbitrarily difficult mathematical problems, but instead uses a hard-configured set of "authorities" - nodes that are explicitly allowed to create new blocks and secure the blockchain. This makes it easier to maintain a private chain and keep the block issuers accountable.
[https://github.com/ethcore/parity/wiki/Proof-of-Authority-Chains]

Name::
* cpt.Proof-of-Authority,

ethparity'Problem

Description::
If you run into an issue while using parity, feel free to file one in this repository or hop on our gitter chat room to ask a question. We are glad to help!
[https://github.com/ethcore/parity]

ethparity'Resource

AddressWpg::
* https://ethcore.io/parity.html,
* https://github.com/ethcore/parity,
=== DOCS:
* https://github.com/ethcore/parity/wiki,
=== CHAT:
* gitter: https://gitter.im/ethcore/parity?

ethparity'DOING

ethparity'Installing

AddressWpg::
* https://github.com/ethcore/parity/releases,

ethparity'Configuring

config.toml
# This config should be placed in following path:
# %UserProfile%\AppData\Roaming\Parity\Ethereum\config.toml

[parity]
# Test Network
chain = "ropsten"
[https://ethcore.github.io/parity-config-generator/]

ethparity.EVOLUTING

AddressWpg::
* https://github.com/ethcore/parity/releases,

ethparity.1-5-7.2017-03-07:
arkpar released this 5 days ago · 700 commits to master since this release
This release resolves a single issue with failing auto-updates.
[https://github.com/ethcore/parity/releases/tag/v1.5.7]

ethpgm.Token-browser (ethtknbsr)

Cpt-created: {2017-04-23}

Description::
Access An Open Financial System
Token is a browser for the Ethereum network that provides universal access to financial services.
[https://www.tokenbrowser.com/]

Name::
* cpt.ethtknbsr,

ethtknbsr'Resource

AddressWpg::
* {2017-04-18} Introducing Token: https://blog.tokenbrowser.com/introducing-token-2f2ceeab6d4c,

ethpgm.TRUFFLE (ethtfl)

Description::
Truffle is a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier.
[http://truffleframework.com/docs/]
===
Truffle is a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier. With Truffle, you get:
Built-in smart contract compilation, linking, deployment and binary management.
Automated contract testing with Mocha and Chai.
Configurable build pipeline with support for custom build processes.
Scriptable deployment & migrations framework.
Network management for deploying to many public & private networks.
Interactive console for direct contract communication.
Instant rebuilding of assets during development.
External script runner that executes scripts within a Truffle environment.
[https://github.com/ConsenSys/truffle]

Name::
* cpt.ethtfl,
* cpt.truffle,
* cpt.truffle-for-ethereum,

ethtfl'Synopsis

Description::
PS C:\WINDOWS\system32> truffle -h
Truffle v3.1.2 - a development framework for Ethereum

Usage: truffle <command> [options]

Commands:
init Initialize new Ethereum project with example contracts and tests
compile Compile contract source files
migrate Run migrations to deploy contracts
build Execute build pipeline (if configuration present)
test Run Mocha and Solidity tests
console Run a console with contract abstractions and commands available
create Helper to create new contracts, migrations and tests
install Install a package from the Ethereum Package Registry
publish Publish a package to the Ethereum Package Registry
networks Show addresses for deployed contracts on each network
watch Watch filesystem for changes and rebuild the project automatically
serve Serve the build directory on localhost and watch for changes
exec Execute a JS module within this Truffle environment
version Show version number and exit

See more at http://truffleframework.com/docs

ethtfl'Command

Name::
* cpt.ethtflcmd,
* cpt.ethtflcmd,

Specific::
Commands:
init Initialize new Ethereum project with example contracts and tests
compile Compile contract source files
migrate Run migrations to deploy contracts
build Execute build pipeline (if configuration present)
test Run Mocha and Solidity tests
console Run a console with contract abstractions and commands available
create Helper to create new contracts, migrations and tests
install Install a package from the Ethereum Package Registry
publish Publish a package to the Ethereum Package Registry
networks Show addresses for deployed contracts on each network
watch Watch filesystem for changes and rebuild the project automatically
serve Serve the build directory on localhost and watch for changes
exec Execute a JS module within this Truffle environment
version Show version number and exit

ethtfl'Dapp

ethtfl'Dapp-structure

Structure::
Once completed, you'll now have a project structure with the following items:
contracts/ - directory where Truffle expects to find solidity contracts.
migrations/ - directory to place scriptable deployment files.
test/ - location of test files for testing your application and contracts.
truffle.js - your main Truffle configuration file.
[http://truffleframework.com/docs/getting_started/project#initialize-your-project]

ethtfl'Directory

ethtfl'DirBuild
ethtfl'Artifact

Description::
Artifacts of your compilation will be placed in the ./build/contracts directory, relative to your project.
This directory will be created if it does not exist.
These artifacts are integral to the inner workings of Truffle, and they play and important part to the successful deployment of your application.
You should not edit these files by hand as they'll be overwritten by contract compilation and deployment.
[http://truffleframework.com/docs/getting_started/compile]

ethtfl'DirContracts

Description::
contracts/ should contain smart contracts written in Solidity,
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

ethtfl'DirMigrations

Description::
migrations/ should contain scriptable deployment files.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

ethtfl'DirTests

Description::
should contain unit tests written using Mocha and Chai,
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

ethtfl'File

ethtfl'FilMigration

Description::
Migrations are Javascript files that help you deploy contracts to the Ethereum network.
These files are responsible for staging your deployment tasks, and they're written under the assumption that your deployment needs will change over time.
As your project evolves, you'll create new migration scripts to further this evolution on the blockchain.
A history of previously run migrations is recorded on-chain through a special Migrations contract, detailed below.
[http://truffleframework.com/docs/getting_started/migrations]

1_initial_migration.js:
var Migrations = artifacts.require("./Migrations.sol");

module.exports = function(deployer) {
deployer.deploy(Migrations);
};

ethtfl'FilTruffle.js

Description::
truffle.js is the main configuration file used by Truffle.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
===
module.exports =
{
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
}
}
};

Name::
* cpt.ethtfl'truffle.js,

ethtfl'Problem

truffle_migrate_test_frozen_testrpc:
Parity client run on background. We have to kill it.

ethtfl'Resource

AddressWpg::
* http://truffleframework.com/
* http://truffleframework.com/docs/
* https://github.com/trufflesuite,

=== tutorial
* http://truffleframework.com/tutorials/truffle-and-metamask,
* https://steemit.com/ethereum/@brennanhm/ ethereum-smart-contract-testing-installing-truffle-and-testrpc,
* https://leanpub.com/decentralizedapplicationswithethereum,

ethtfl'doing

ethtfl'Installing-truffle

Description::
COMMAND
$ npm install -g truffle
REQUIREMENTS
NodeJS 5.0+ recommended.
Windows, Linux or Mac OS X
Truffle also requires that you have a running Ethereum client which supports the standard JSON RPC API (nearly all of them). There are many to choose from, and some better than others for development. We'll discuss them in detail in the next section.
RECOMMENDATIONS FOR WINDOWS
If you're a Windows user, we recommend installing and using Truffle via Windows PowerShell or Git BASH. These two shells provide features far beyond the standard Command Prompt, and will make your life on the command line much easier.
[http://truffleframework.com/docs/getting_started/installation]
===
RESOLVING NAMING CONFLICTS ON WINDOWS
When using the Command Prompt on Windows, the default configuration file name can cause a conflict with the truffle executable. If this is the case, we recommend using Windows PowerShell or Git BASH as these shells do not have this conflict. Alternatively, you can rename the configuration file to truffle-config.js to avoid this conflict.
[http://truffleframework.com/docs/advanced/configuration#resolving-naming-conflicts-on-windows]

ethtfl'Compiling-project
ethtfl'Migrating-project
ethtfl'Testing-project

ethpgm.MINING

Name::
* cpt.ethpgm.mining,

ethpgm.Ethminer

Description::
ethminer-genoil
What is ethminer-0.9.41-genoil-1.x.x?
Formerly known as Genoil's CUDA miner, ethminer-0.9.41-genoil-1.x.x is a fork of the stock ethminer version 0.9.41. While native CUDA support is its most significant difference, it has the following additional features:
- realistic benchmarking against arbitrary epoch/DAG/blocknumber
- on-GPU DAG generation (no more DAG files on disk)
- stratum mining without proxy
- OpenCL devices picking
- farm failover (getwork + stratum)
[https://github.com/Genoil/cpp-ethereum]
===
Ethminer: A standalone miner. This can be used to mine or benchmark a mining set-up. It is compatible with eth, geth, and pyethereum. Check out the Mining page for more information.
[https://ethereum-homestead.readthedocs.io/en/latest/frequently-asked-questions/frequently-asked-questions.html#i-have-heard-of-ethereum-but-what-are-geth-mist-ethminer-mix]

Name::
* cpt.ethminer,
* cpt.ethminer-genoil,
* cpt.Genoil's-CUDA-miner,

ethpgm.sgminer

Name::
* cpt.sgminer,

Description::
Scrypt GPU miner
[https://github.com/sgminer-dev/sgminer]

ethnet'program.DAPP (ethdap)

Description::
What is the difference between smart contracts and dapps?
Anupam Vijayvergia
Written Nov 2
In simplest terms Dapps or rather decentralised apps is an app running on a decentralised network. Dapps has its backend and can have a front end code or user interface written on any language. However backend code runs on a decentralised network.
Smart contracts is a piece of code that is meant to do a specific purpose which is part of a decentralised application.
[https://www.quora.com/What-is-the-difference-between-smart-contracts-and-dapps/answer/Anupam-Vijayvergia?srid=uJVpm]
===
The Ethereum platform itself is featureless or value-agnostic. Similar to programming languages, it is up to entrepreneurs and developers to decide what it should be used for. However, it is clear that certain application types benefit more than others from Ethereum’s capabilities. Specifically, ethereum is suited for applications that automate direct interaction between peers or facilitate coordinated group action across a network. For instance, applications for coordinating peer-to-peer marketplaces, or the automation of complex financial contracts. Bitcoin allows for individuals to exchange cash without involving any middlemen like financial institutions, banks, or governments. Ethereum’s impact may be more far-reaching. In theory, financial interactions or exchanges of any complexity could be carried out automatically and reliably using code running on Ethereum. Beyond financial applications, any environments where trust, security, and permanence are important – for instance, asset-registries, voting, governance, and the internet of things – could be massively impacted by the Ethereum platform.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#what-is-ethereum]

Name::
* cpt.bapp.ethereum,
* cpt.dapp.ethereum,
* cpt.ethbapp,
* cpt.ethdap,
* cpt.ethdapp,
* cpt.ethereum-application,
* cpt.ethereum-blockchain-application,
* cpt.ethnet'dapp,

Generic::
* cpt.blockchain-dApp,

ethdap'Backend (contract)

Name::
* cpt.ethdap'backend,
* cpt.ethdap'contract,

ethdap'Frontend

Name::
* cpt.ethdap'frontend,

ethdap'Structure

Description::
A dapp ('decentralized app') consists of two parts: a frontend, written in HTML or QML, and a backend (think of it as the 'database' for your frontend). We'll focus here on an HTML dapp.
[https://forum.ethereum.org/discussion/1402/how-to-get-started-your-first-dapp-under-one-hour]

ethdap'Tool

ethdap'tool.EMBARK (ethebk)

Description::
Framework for serverless Decentralized Applications using Ethereum, IPFS and other platforms
[https://github.com/iurimatias/embark-framework]

Name::
* cpt.Embark-ethdap-tool,

ethebk'Dapp-structure

Description::
app/
|___ contracts/ #solidity or serpent contracts
|___ html/
|___ css/
|___ js/
config/
|___ blockchain.json #environments configuration
|___ contracts.json #contracts configuration
test/
|___ #contracts tests
Solidity/Serpent files in the contracts directory will automatically be deployed with embark run. Changes in any files will automatically be reflected in app, changes to contracts will result in a redeployment and update of their JS Bindings
[https://github.com/iurimatias/embark-framework#dapp-structure]

ethebk'EmbarkJS

Description::
EmbarkJS is a javascript library meant to abstract and facilitate the development of DApps.
[https://github.com/iurimatias/embark-framework#embarkjs]

ethdap'Resource

AddressWpg::
* http://dapps.ethercasts.com/
* https://blog.ethereum.org/2016/07/12/build-server-less-applications-mist/

=== tutorial
* https://medium.com/@mvmurthy/ full-stack-hello-world-voting-ethereum-dapp-tutorial-part-1-40d2d0d807c2#.4b357annh,

=== tool:
* https://github.com/uzyn/ethereum-webpack-example-dapp,
* https://github.com/dapphub/dapple,

ethdap'DOING

ethdap'Service (link)

SPECIFIC

Name::
* ethdap.specific,
* cpt.ethdap.specific,

Specific::
* https://github.com/ethereum/dapp-bin,
===
* CROWDFUNDING-ethdap,
* EXCHANGE-ethdap,
* FINANCIAL-ethdap,
* STORAGE-ethdap,
* VOTING-ethdap,
* WEB-BASED-ethdap,
===
* Aragon-ethdap,
* Augur-ethdap,
* Chronobank-ethdap,
* DAO-ethdap,
* Digix-ethdap,
* Ethlance-ethdap,
* IDEX-ethdap,
* Maker-ethdap,
* Plutus-ethdap,
* Swarm-ethdap,
* WeiFund.io-ethdap,

ethdap.WEB-BASED

Description::
To build web based dapps, Ethereum comes with a handy javascript library called web3.js which connects to your blockchain node. So you can just include this library in your famous js framework like reactjs, angularjs etc and start building.
[https://medium.com/@mvmurthy/ethereum-for-web-developers-890be23d1d0c#.ruvn38p8k]

Name::
* cpt.ethdap.webapp,

AddressWpg::
* http://hypernephelist.com/2016/06/21/a-simple-smart-contract-ui-web3.html,

ethdap.Aragon

Description::
1.1. About Aragon Core
Aragon is a dApp that lets anyone create and manage any kind of organization (companies, open source projects, NGOs, foundations, hedge funds...) on the Ethereum blockchain.
Aragon implements basic features of an organization like a cap table, token transfers, voting, role assignments, fundraising, and accounting.
The behavior of an Aragon organization is easily customized by changing the bylaws.
In addition, Aragon organizations are extensible through third party modules that interact with the organizations' contracts.
[https://github.com/AragonOne/whitepaper/raw/master/Aragon%20Whitepaper.pdf]

Name::
* cpt.Aragon-dApp,

Generic::
* Ethereum-DAO-dApp,

Resource

AddressWpg::
* https://aragon.one/
* https://github.com/AragonOne/whitepaper/raw/master/Aragon%20Whitepaper.pdf,
* {2017-04-21} Spain’s Aragon Joins Ethereum Startups Eyeing Token Sale Glory: https://cointelegraph.com/news/spains-aragon-joins-ethereum-startups-eyeing-token-sale-glory,

ethdap.Ethlance

Description::
Ethlance is a first of its kind platform for job market, built entirely on blockchain and using only cryptocurrency for payments. Thanks to those technologies, platform can sustainably run with 0% service fees. Ethlance will never take cut from transactions between freelancers and employers.

We're running on public Ethereum blockchain with front-end source files written in Clojurescript and served from decentralised file storage IPFS. Ethlance is completely open-source and you can find its code on github.com/madvas/ethlance. If you found a bug, please don't hesitate to open an issue there.
If you're unsure how to use Ethereum, please see How it works page
Ethlance backend logic consists of 8 smart-contracts, deployed on following addresses:
EthlanceUser at 0x85c1b0dc9e3443e06e5f1b09844631378825bb14
EthlanceJob at 0x3d3bb143a6ee72deb9646c14b403ccc3f6e3c2c8
EthlanceContract at 0x12f4abc6c7ae413618d348bfdc855bca8654037d
EthlanceInvoice at 0x917db76c206f744274375428e261fa6521ac1b05
EthlanceConfig at 0x613e3395622eabdb2b12f9b77a0e5eb2b9a57f36
EthlanceDB at 0x5371a8d8d8a86c76de935821ad1a3e9b908cfced
EthlanceViews at 0xb7b882d1ea87da8506ba10bfbe8b751246bc3259
EthlanceSearch at 0x8c8cf5f0fe7ce048baa9573278c4b44b7a8646e4
[http://ethlance.com/#/about]

Name::
* cpt.ethlance,

ethdap.IDEX

Description::
What is IDEX?
IDEX is a distributed cryptocurrency exchange powered by Ethereum smart contracts that provides the safest and most secure way to trade Ethereum tokens.
[http://idex.market/]

Name::
* cpt.ethdap.IDEX,
* cpt.IDEX-ethdap,

ethdap.DAO (ethdapDao)

Description::
DAO is a-very-confused-concept.
The-fiasko of 'THE-DAO' is-not-unrelated with it.
DAO is an-entity very young and not yet stable.
Naturaly the-concept of a-DAO is double fluid.
A-DAO is an-organization, and an-organization has humans.
A-DAO is autonomous in the-sense that its managing-rules run autonomously as the-members have-set them and not as an-individual thinks.
Ethereum-smart-contracs COULD become the-managing-rules.
But "everything flows" and the-managing-rules must change and be-improved by the-human-members in a-decentralized-manner.
Then the-dao must-have builtin a-decentralized-governance-system.
Here I present the-dapp of a-DAO which COULD run autonomously the-managing-rules.
[hmnSgm.2017-04-20]
===
A DAO is purely software: in itself it does not have the capabilities to manufacture a product, write code, develop hardware or sweep the streets.
It requires actors in the physical world for this purpose, called Contractors.
[https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd#.9wdemu25y]
===
The term decentralized autonomous organization (DAO) is often used in the same breath as "smart contract" or "blockchain".
DAOs are touted as a new form of legal structure in which ownership, management and control are automated and human involvement is limited or removed, based on a previously agreed upon set of rules.
[ http://www.coindesk.com/how-to-sue-a-decentralized-autonomous-organization/]

Name::
* cpt.DAO-ethereum-dapp,
* cpt.ethDAOdapp,
* cpt.ethdapp.DAO,
* cpt.Decentralized-Autonomous-Organization-dapp,

ethdapDao'Contract-program (link)

ethdapDao'Fund

Name::
* cpt.ethdao'ether,

ethdapDao'Token

Description::
Would-be participants in the DAO can for a period of time acquire DAO tokens by sending ETH to a DAO. These tokens will give them the right to vote on Proposals (proportional to the number of tokens acquired) as well the opportunity to receive rewards generated by the output of the work from the Contractors’ Proposals.
[https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd#.9wdemu25y]

ethdapDao'Code

Name::
* cpt.ethdao'contract,
* cpt.ethdao'smart-contract,

ethdapDao'Law

Description::
A word of caution, at the outset: the legal status of DAOs remains the subject of active and vigorous debate and discussion.
Not everyone shares the same definition.
[https://download.slock.it/public/DAO/WhitePaper.pdf]

Name::
* cpt.ethdao'law,

ethdapDao'Member

Name::
* cpt.ethdao'participant,

ethdapDao'Contractor

Description::
A DAO stores ether and other Ethereum based tokens and transmits them based on the DAO’s code.
It does not do much else.
It cannot build a product, write code or develop hardware.
It requires a “Contractor” to accomplish these and other goals.
A DAO selects a Contractor by accepting a Contractor’s proposal.
[https://download.slock.it/public/DAO/WhitePaper.pdf]
===
A DAO is purely software: in itself it does not have the capabilities to manufacture a product, write code, develop hardware or sweep the streets.
It requires actors in the physical world for this purpose, called Contractors.
[https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd#.9wdemu25y]

ethdapDao'Proposal

Description::
Contractors submit Proposals for the development of product or services -- these take the form of smart contracts backed by plain English descriptions. To guarantee the Contractors will not act against the interest of the DAO, a group of signatories validates Contractors’ Proposals then add them to the list of addresses authorized to receive ether (ETH) from the DAO.
[https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd#.9wdemu25y]

ethdapDao'Curator

Description::
Contractors submit Proposals for the development of product or services -- these take the form of smart contracts backed by plain English descriptions. To guarantee the Contractors will not act against the interest of the DAO, a group of signatories validates Contractors’ Proposals then add them to the list of addresses authorized to receive ether (ETH) from the DAO.
This group of signatories is collectively referred to as a Curator. To maintain decentralization, the Curator can be fired by the DAO at any time and for any reason.
[https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd#.9wdemu25y]

ethdapDao'Security

Description::
We are making the generic DAO model we developed free and open source, so it can be reused by anyone wishing to put together a transparent organization where governance and decision making systems are immutably programmed in the Blockchain. This code been reviewed by hundreds of pairs of eyes from our community and by one of the most respected auditing companies in the world, Deja Vu.
This standard DAO framework is simple, decentralized and 100% secure.
[https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd#.9wdemu25y]

ethdapDao'Resource

AddressWpg::
* https://ethereum.org/dao,
* http://www.coindesk.com/how-to-sue-a-decentralized-autonomous-organization/
* {2014-05-06} Vitalik-Buterin: DAOs, DACs, DAs and More: An Incomplete Terminology Guide: https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide/
===
* https://slock.it/dao.html,
* code: https://github.com/slockit/DAO/
* https://github.com/FelixA/DAOhub,
===
* {2016-05-01+7} White Paper, due out next week.
* {2016-05-03} Stephan Tual
Slock.it Founder, Blockchain and Smart Contract Expert, Former CCO Ethereum
Mar 3, 2016 Unlisted
A Primer to Decentralized Autonomous Organizations (DAOs)
https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd,
* {2016-05-01} Stephan Tual
Slock.it Founder, Blockchain and Smart Contract Expert, Former CCO Ethereum
Mar 1, 2016 Unlisted
DAOs, or how to Replace Obsolete Governance Models
https://blog.slock.it/daos-or-how-to-replace-both-the-kickstarter-and-token-presale-models-1b2b8898d6e7#.u8cp2obe5,

ethdapDao'resource.Whitepaper

AddressWpg::
* https://download.slock.it/public/DAO/WhitePaper.pdf,

DECENTRALIZED AUTONOMOUS ORGANIZATION TO AUTOMATE GOVERNANCE
FINAL DRAFT - UNDER REVIEW
CHRISTOPH JENTZSCH
FOUNDER & CTO, SLOCK.IT
CHRISTOPH.JENTZSCH@SLOCK.IT

Abstract

This paper describes the first implementation of Decentralized Autonomous Organization (DAO) code to automate organizational governance and decision-making.
The code can be used by individuals working together collaboratively outside of a traditional corporate form.
It can also be used by a registered corporate entity to automate formal governance rules contained in corporate bylaws or imposed by law.
First the DAO concept is described, then minority rights is discussed, and a solution to a “robbing the minority” attack vector is proposed.
Finally, a practical implementation of a first generation DAO entity is provided using smart contracts written in Solidity on the Ethereum blockchain.

1. Introduction

Corporate entities of all kinds are governed by rules that describe permitted and proscribed conduct.
These rules may exist as private contracts (like bylaws or shareholder agreements) between corporate owners.
They may also be imposed by law in addition to or in the absence of a written agreement between participants.

Historically, corporations have only been able to act through people (or through corporate entities that were themselves ultimately controlled by people).
This presents two simple and fundamental problems.
Whatever a private contract or public law require: (1) people do not always follow the rules and (2) people do not always agree what the rules actually require.
Collaboration without a corporate form does not solve these problems, necessarily, and it may introduce others.
In the absence of a corporate form, an explicit written agreement is substituted for unclear informal “understandings” and the legal protections provided by a corporate form will not be available.

Rule-breaking within an organization not always obvious, and motives may not matter to stakeholders once their money has been lost.
While bad behavior may make a corporation or its management civilly or criminally liable, punishment can come as little comfort to an investor who has already lost their money.

Crowdfunding (Massolution [2015]) amplifies the problem.
On the one hand, it has made it easier for small contributors to invest in large projects, and it has also made it possible for entrepreneurs to receive financial support that might not have been easily available in the past.
On the other hand, small investors remain vulnerable to financial mismanagement or outright fraud, and because they have a small stake in a venture, they may lack power to identify problems, participate in governance decisions, or to easily recover their investment (Knibbs [2015], Biggs [2015]).
At the same time, corporate leadership and management may be accused of malfeasance or mismanagement when they believe that they have acted in good faith, based on their understanding of their obligations and interpretation of applicable rules.

This paper presents a potential solution using Ethereum, (Buterin [2013], Wood [2014]) a blockchain technology which integrates a Turing complete programming language with smart contract processing functionality.
This paper illustrates a method that for the first time allows the creation of organizations in which (1) participants maintain direct real-time control of contributed funds and (2) governance rules are formalized, automated and enforced using software.
Specifically, standard smart contract code (Szabo [1997], Miller [1997]) has been written that can be used to form a Decentralized Autonomous Organization (DAO) on the Ethereum blockchain.
This paper explains how a DAO’s code works, focusing on some basic formation and governance features, including structure, creation and voting rights.

First a DAO’s Creation Phase and basic functionality are described.
Then minority owner rights are discussed and a solution to the “Majority Robbing the Minority Attack” problem is proposed: the “DAO split.”
The smart contract code is then explored in detail, and conclude with an explanation and detailed specification of the “DAO split.”

The code for the smart contracts is located at: https://github.com/slockit/DAO/

A word of caution, at the outset: the legal status of DAOs remains the subject of active and vigorous debate and discussion.
Not everyone shares the same definition.
Some have said that they are autonomous code and can operate independently of legal systems; others have said that they must be owned or operate by humans or human created entities.
There will be many uses cases, and the DAO code will develop over time.
Ultimately, how a DAO functions and its legal status will depend on many factors, including how DAO code is used, where it is used, and who uses it.
This paper does not speculate about the legal status of DAOs worldwide.
This paper is not intended to offer legal advice or conclusions.
Anyone who uses DAO code will do so at their own risk.

2. Dao Concept

DAO code is written in the “Solidity” programming language.
A DAO is activated by deployment on the Ethereum blockchain.

Once deployed, a DAO’s code requires “ether” to engage in transactions on Ethereum.
Ether is the digital fuel that powers the Ethereum network.
Without ether, a DAO can not do anything so a DAO’s first order of business is to receive ether.
After a DAO’s code is deployed, ether may be sent to the DAO’s smart contract address during an initial Creation Phase which is defined in the DAO’s code.

In exchange for ether, a DAO’s code creates tokens that are assigned to the account of the person who sent the ether.
The token grants its holder voting and ownership rights.
The number of tokens created is proportional to the amount of ether transferred.
Token price varies over time (see section 5).
Token ownership is freely transferable on the Ethereum blockchain, when the Creation Phase has ended.

A minimum DAO Creation goal and Creation Phase time-period are set as parameters in a DAO’s code at the time of deployment.
If the minimum DAO Creation goal is not reached at the close of the Creation Phase, all ether is returned.
After the Creation Phase has ended, the total ether raised is denoted by Ξraised and the total amount of tokens created is denoted by Ttotal.

A DAO stores ether and other Ethereum based tokens and transmits them based on the DAO’s code.
It does not do much else.
It cannot build a product, write code or develop hardware.
It requires a “Contractor” to accomplish these and other goals.
A DAO selects a Contractor by accepting a Contractor’s proposal.

Any DAO Token Holder may become a Contractor by submitting proposals to use a DAO’s ether, denoted by Ξtransfer.
If a proposal is approved, the DAO transmits ether to a smart contract representing the proposed project.
Such smart contracts can be parameterized and enable a DAO to interact with and influence the project it chose to support.
An example of such an agreement between a DAO and a project to be funded can be found in the appendix (A.4).

Members of a DAO cast votes weighted by the amount of tokens they control.
Tokens are divisible, indistinguishable and can easily be transferred between accounts.
Within the contracts, the individual actions of members, cannot be directly determined.
There is a set time frame tp to debate and vote on any given proposal.
In our example, this time frame is set by the creator of the proposal, and is required to be at least two weeks for a regular proposal.

After tp has passed, any token holder can call a function in the DAO contract that will verify that the majority voted in favor of the proposal and that quorum was reached; the function will execute the proposal if this is the case.
If this is not the case, the proposal will be closed.

The minimum quorum represents the minimum number of tokens required for a vote to be valid, is denoted by qmin, and calculated as follows:

(eqn.1)

Where d is the minQuorumDivisor.
This parameter’s default value is 5, but it will double in the case the quorum has not been met for over a year.
ΞDAO is the amount of ether owned by a DAO and RDAO is the amount of reward tokens owned by this DAO, as explained in section 7 (also see rewardToken in A.3).
The sum ΞDAO + RDAO is equal to the amount of ether used to Create DAO tokens plus the rewards received or said another way, the total amount of ether a DAO has ever received.

This means, initially, a quorum of 20% of all tokens is required for any proposal to pass.
In the event Ξtransfer equals the amount of ether a DAO has ever received, then a quorum of 53.33% is required.

In order to prevent “proposal spam,” a minimal deposit can be required to be paid when creating a proposal, which gets refunded if quorum is achieved.
If quorum is not achieved, the DAO keeps the proposal deposit.
The value of the proposal deposit can be changed from the default value by the DAO through another proposal.

3. Notation

Throughout this paper, Ξ always represents an amount of ether in its base unit wei.
This is defined as 1 Wei = 10^-18 Ether (Wood [2014]).
Similarly, DAO tokens are denoted with T and always represent the amount of DAO tokens in its base unit, defined as 10^-16 DAO token.

4. Majority robs minority attack

Minority owner rights can be a problem in any corporate form.
Minority rights may be protected or addressed by provisions in corporate governance documents or by statute or judge-made law.
But many of these solutions fail because minority owners may lack voting rights or the ability to “vote with their feet” and easily retrieve their capital.
This paper presents a solution to this problem in the DAO’s code.

A problem every DAO has to mitigate is the ability for the majority to rob the minority by changing governance and ownership rules after DAO formation.
For example, an attacker with 51% of the tokens, acquired either during the fueling period or created afterwards, could make a proposal to send all the funds to themselves.
Since they would hold the majority of the tokens, they would always be able to pass their proposals.

To prevent this, the minority must always have the ability to retrieve their portion of the funds.
Our solution is to allow a DAO to split into two.
If an individual, or a group of token holders, disagree with a proposal and want to retrieve their portion of the ether before the proposal gets executed, they can submit and approve a special type of proposal to form a new DAO.
The token holders that voted for this proposal can then split the DAO moving their portion of the ether to this new DAO, leaving the rest alone only able to spend their own ether.

This idea originates from a blog post by Vitalik Buterin (Buterin [2015]).

A problem this simple fix doesn’t address is voter apathy:
some token holders might not be actively involved in their DAO and might not follow proposals closely.
An attacker could use this to their advantage.
Even though the minority has the chance to retrieve their funds and split the DAO, some could be unaware of the situation and fail to act.
For a DAO to be considered safe, it is required that inactive token holders must also be protected from losing their ether.
Our proposed solution is implemented by limiting each individual DAO to a single Curator.
This Curator controls the list of addresses that can receive ether from the DAO, across all proposals.
This gives the Curator of a DAO considerable power.
To prevent the abuse of this power, it is possible for a DAO to vote for a new Curator, which may result in a split of the DAO as described above.

Any token holder can make a proposal to vote for a new Curator.
In effect, even a single token holder is able to both retrieve their remaining portion of ether and maintain their right to any future rewards associated to their previous contribution, as these will be sent to the new DAO automatically.
Rewards are defined as any ether received by a DAO generated from products the DAO funded so far and are explained in further detail in section 7.

The process of choosing a new Curator is as follows:
Any token holder can submit a proposal for a new Curator.
In this case, no proposal deposit is required, because an attacker could vote for an extremely high deposit, preventing any splits.
The debating period for this proposal is 7 days.
This is 7 days less than the minimum required for regular proposals, allowing anyone to retrieve their funds before a potentially malicious proposal goes through.
There is no quorum requirement, so that every token holder has the ability to split into their own DAO.
The debating period is used to discuss (on or off-chain) the new Curator and conduct a first vote that’s non-binding.
After this first vote, token holders can confirm its results or not.
In the case a majority opts to keep the original Curator, the minority can either keep the original Curator in order to avoid a split, or inversely they can confirm their vote for a new Curator and move their portion of the ether to a new DAO.

5. Token Price

DAO Token Creation rate decreases over time.
This reflects an assumption that early acts of DAO Creation have greater risk, as they may have less information about the potential success of the DAO and do not know whether what contribution will lead to full fueling of the DAO.
The DAO described in this paper has the following Creation schedule:

(eqn.2-3)

Here t is the unix time in seconds, tc is the closing time of the fueling period (see A.2 closingTime), w is a week in seconds and d a day in seconds.
Hence the number of tokens (in its base unit) each person Creates is calculated as: P(t)· Ξc.
Here Ξc stands for the amount of ether sent to fuel a DAO, denoted in wei.
This results in a constant Creation rate in the beginning, until 2 weeks before the end of the DAO Creation Phase.
At this time the amount of ether required to Create DAO tokens increases daily by 0.05 Ξc per base unit of DAO token.
Until 4 days before the closing time when there will be a constant Creation rate of 1.5 Ξc per base unit of DAO token.

Creation rate decreases during the Creation Phase could lead to a situation where a single contributor, having Created DAO tokens at the initial Creation rate, could split the DAO immediately after the Creation Phase ends, thereby receiving more ether than they put in due to other contributors having fueled a DAO at a higher Creation rate (Green [2016]).
In order to avoid that possibility, all ether that is used to fuel a DAO above the initial Creation rate, will be sent to an extra account.
Denoted as extraBalance in A.2.
This ether can be sent back to the DAO through a proposal after the DAO has spent at least this amount of ether.
This rule is implemented in the internal function isRecipientAllowed in section 6.3.

6. Contracts

This section will detail the smart contracts implementing the aforementioned concept.
The contracts are written in the programming language Solidity (Reitwiessner and Wood [2015]).
Each contract has member variables and functions which can be externally called by sending a transaction to the Ethereum network with the DAO contract address as the recipient and the method ID (optional with parameters) as data.
This section will discuss the meaning of the variables and the functions in detail.

The main contract is called ’DAO’.
It defines the inner workings of the DAO and it derives the member variables and functions from ’Token’ and ’TokenCreation’.
Token defines the inner workings of the DAO Token and TokenCreation defines how the DAO token is created by fueling the DAO with ether.
In addition to these three contracts, there is the ’ManagedAccount’ contract, which acts as a helper contract to store the rewards which are to be distributed to the token holders and the extraBalance (see section 5).
The contract ’SampleOffer’ (A.4) is an example of what a proposal from a contractor to the DAO could look like.

6.1. Token.

contract TokenInterface {
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
uint256 public totalSupply;
function balanceOf(address _owner) constant returns (uint256 balance);
function transfer(address _to, uint256 _amount) returns (bool success);
function transferFrom(address _from, address _to, uint256 _amount) returns (bool success);
function approve(address _spender, uint256 _amount) returns (bool success);
function allowance(address _owner, address _spender) constant returns (uint256 remaining);
event Transfer(address indexed _from, address indexed _to, uint256 _amount);
event Approval(address indexed _owner, address indexed _spender, uint256 _amount);
}

Above is the interface of the Token contract.
The interfaces of these contracts are used in the text of this document to give a simple overview of the functions and variables used in the contract, the full implementation can be found in the appendix (A.1).
This contract represents the standard token as described here: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs, and the contract https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts/Standard_Token.sol was used as a starting point for the contracts creation.

The map balances stores the number of DAO tokens which are controlled by an address.
All contracts which derive from TokenInterface can directly modify this map, but only 4 functions do so: createTokenProxy, transfer, transferFrom and splitDAO.

The map allowed is used to track the previously specified addresses that are allowed to send tokens on someone else’s behalf.

The integer totalSupply is the total number of DAO tokens in existence.
The public keyword creates a function with the same name as the variable which returns its value so that it is publically available.

The function balanceOf returns the balance of the specified address.

The function transfer is used to send token from the sender of the message to another address.

The function transferFrom is used to transfer tokens on behalf of someone else who has approved the transfer in advance using the approve function.

The function approve can be used by the DAO token owner to specify a certain spender to transfer a specified value from their account using the transferFrom function.
To check whether a certain address is allowed to spend DAO tokens on behalf of someone else, the allowance function can be used, which returns the number of tokens which can be spent by the spender.
This is similar to writing a check.

The event Transfer is used to inform lightweight clients about changes in balances.

The event Approval is used to inform lightweight clients about changes in allowed.

6.2. TokenCreation.

contract TokenCreationInterface {
uint public closingTime;
uint public minTokensToCreate;
bool public isFueled;
address public privateCreation;
ManagedAccount extraBalance;
mapping (address => uint256) weiGiven;
function TokenCreation(uint _minTokensToCreate, uint _closingTime);
function createTokenProxy(address _tokenHolder) returns (bool success);
function refund();
function divisor() returns (uint divisor);
event FuelingToDate(uint value);
event CreatedToken(address indexed to, uint amount);
event Refund(address indexed to, uint value);
}

Above is the interface of the TokenCreation contract (A.2).

The integer closingTime is the (unix) time at which the Creation Phase ends.

The integer minTokensToCreate is the number of weiequivalent tokens which are needed to be created by the DAO in order to be considered fueled.

The boolean isFueled is true if DAO has reached its minimum fueling goal, false otherwise.

The address privateCreation is used for DAO splits - if it is set to 0, then it is a public Creation, otherwise, only the address stored in privateCreation is allowed to
create tokens.

The managed account (A.5) extraBalance is used to hold the excess ether which is received after the Creation rate is decreased during the Creation Phase.
Anything that has been paid above the initial price goes to this account.

The map weiGiven stores the amount of wei given by each contributor during the Creation Phase and is only used to refund the contributors if the Creation Phase does not reach its fueling goal.

The constructor TokenCreation initiates the Creation Phase with the arguments minTokensToCreate, closingtime and privateCreation, which will be set in the constructor of the DAO contract (A.3) which is only executed once, when the DAO is deployed.
In order to interact with the contract the following functions can be used:

createTokenProxy.
This function creates one unit of the DAO tokens minimum denomination for every wei sent.
The price is calculated as
Ξc · 20/divisor
Here Ξc is the amount of wei given in order to create tokens, and divisor is calculated depending on the time: 20/P(t) , as described in section 5.
The parameter tokenHolder defines the receiver of the newly minted tokens.

refund.
This function can be called by any contributor to receive their wei back if the Creation Phase failed to meet its fueling goal.

divisor.
This function is used to calculate the price of the token during the Creation Phase in the function createTokenProxy.

The events FuelingToDate, CreatedToken and Refund are used to inform lightweight clients of the status of the Creation Phase.

6.3. DAO.

contract DAOInterface {
Proposal[] public proposals;
uint minQuorumDivisor;
uint lastTimeMinQuorumMet;
address public curator;
address[] public allowedRecipients;
mapping (address => uint) public rewardToken;
uint public totalRewardToken;
ManagedAccount public rewardAccount;
ManagedAccount public DAOrewardAccount;
mapping (address => uint) public paidOut;
mapping (address => uint) public DAOpaidOut;
mapping (address => uint) public blocked;
uint public proposalDeposit;
uint sumOfProposalDeposits;
DAO_Creator public daoCreator;

struct Proposal {
address recipient;
uint amount;
string description;
uint votingDeadline;
bool open;
bool proposalPassed;
bytes32 proposalHash;
uint proposalDeposit;
bool newCurator;
SplitData[] splitData;
uint yea;
uint nay;
mapping (address => bool) votedYes;
mapping (address => bool) votedNo;
address creator;
}

struct SplitData {
uint splitBalance;
uint totalSupply;
uint rewardToken;
DAO newDAO;
}

modifier onlyTokenholders {}

function DAO(
address _curator,
DAO_Creator _daoCreator,
uint _proposalDeposit,
uint _minTokensToCreate,
uint _closingTime,
address _privateCreation
)
function () returns (bool success);
function receiveEther() returns(bool);
function newProposal(
address _recipient,
uint _amount,
string _description,
bytes _transactionData,
uint _debatingPeriod,
bool __newCurator
) onlyTokenholders returns (uint _proposalID);
function checkProposalCode(
uint _proposalID,
address _recipient,
uint _amount,
bytes _transactionData
) constant returns (bool _codeChecksOut);
function vote(
uint _proposalID,
bool _supportsProposal
) onlyTokenholders returns (uint _voteID);
function executeProposal(
uint _proposalID,
bytes _transactionData
) returns (bool _success);
function splitDAO(
uint _proposalID,
address _newCurator
) returns (bool _success);
function newContract(address _newContract);
function changeAllowedRecipients(address _recipient, bool _allowed) external returns (bool _success);
function changeProposalDeposit(uint _proposalDeposit) external;
function retrieveDAOReward(bool _toMembers) external returns (bool _success);
function getMyReward() returns(bool _success);
function withdrawRewardFor(address _account) returns(bool _success);
function transferWithoutReward(address _to, uint256 _amount) returns (bool success);
function transferFromWithoutReward(
address _from,
address _to,
uint256 _amount
) returns (bool success);
function halveMinQuorum() returns (bool _success);
function numberOfProposals() constant returns (uint _numberOfProposals);
function getNewDAOAdress(uint _proposalID) constant returns (address _newDAO);
function isBlocked(address _account) internal returns (bool);
function unblockMe() returns (bool);
event ProposalAdded(
uint indexed proposalID,
address recipient,
uint amount,
bool newCurator,
string description
);

event Voted(uint indexed proposalID, bool position, address indexed voter);
event ProposalTallied(uint indexed proposalID, bool result, uint quorum);
event NewCurator(address indexed _newCurator);
event AllowedRecipientAdded(address indexed _recipient);
}

The original contract used as a starting point for the DAO was: http://chriseth.github.io/browser-solidity/?gist=192371538cf5e43e6dab as described in https://blog.ethereum.org/2015/12/04.
The main feature added is the splitting mechanism and all that comes with it.
This section will define the member variables and functions from the above smart contract one at a time.

The array proposals holds all the proposals ever made.

The integer minQuorumDivisor is used to calculate the quorum needed for a proposal to pass.
It is set to 5, but will double in the case a quorum has not been reached for over a year.

The integer lastTimeMinQuorumMet keeps track of the last time the quorum was reached.

The address curator is set at the creation of the DAO and defines the Curator.

The list allowedRecipients is commonly referred to as the whitelist.
The DAO can only send transactions to itself, the curator, extraBalance and addresses in the whitelist.
Only the curator can add/remove addresses to/from the whitelist.

The map rewardToken tracks the addresses that are owed rewards generated by the products of the DAO.
Those addresses can only be DAOs.

The integer totalRewardToken tracks the amount of reward tokens in existence.

The variable rewardAccount is of the type ManagedAccount , which will be discussed in A.5.
It is used to manage the rewards which are to be distributed to the DAO Token Holders.

Similar, DAOrewardAccount is also of the type ManagedAccount.
This account is used to receive all rewards from projects funded by the DAO.
It will then redistribute them amongst all splitted DAOs as well as itself using the function retrieveDAOReward.

The map paidOut is used to keep track how much wei a single token holder has already retrieved from rewardAccount.

Similar, the map DAOpaidOut is used to keep track how much a single DAO has already received from DAOrewardAccount.

The map blocked stores the addresses of the DAO Tokens that have voted and therefore are not allowed to be transferred until the vote has concluded.
The address points to the proposal ID.

The integer proposalDeposit specifies the minimum deposit to be paid in wei for any proposal that does not include a change of the Curator.

The integer sumOfProposalDeposits is the sum of all proposal deposits of open proposals.

The contract daoCreator is used to create a new DAO with the same code as this DAO, used in the case of a split.

A single proposal has the parameters:

recipient: The address where the amount of wei will go to if the proposal is accepted.

amount: The amount of wei to transfer to recipient if the proposal is accepted.

description: A plain text description of the proposal.

votingDeadline: A unix timestamp, denoting the end of the voting period.

open: A boolean which is false if the votes have already been counted, true otherwise.

proposalPassed: A boolean which is true if a quorum has been achieved with the majority approving the proposal.

proposalHash: A hash to check validity of a proposal.
Equal to sha3(_recipient, _amount, _transactionData).

proposalDeposit: The deposit (in wei) the creator of a proposal has send to submit a proposal.
It is taken from the msg.value of a newProposal call; its purpose is to prevent spam.
Its minimal value is set when the contract is deployed as constructor parameter.
But the creator of the proposal can send any amount above this for the deposit.
The proposals will be sorted by the proposal deposit in the GUI, so in the case that a proposal is considered important, the creator of the proposal can deposit extra ether to advertise their proposal.
The creator of the proposal will be refunded the entire deposit if quorum is reached, if it is not reached the deposit remains with the DAO.

newCurator: A boolean which is true if this proposal assigns a new Curator.

splitData: The data used to split the DAO.
This data is gathered from proposals when they require a new Curator.

yea: Number of tokens in favor of the proposal.

nay: Number of tokens opposed to the proposal.

votedYes: Simple mapping to check if a token holder has voted for it.

votedNo: Simple mapping to check if a token holder has voted against it.

creator: The address of the token holder that created the proposal.

The split data structure is used to split the DAO.
It contains:

splitBalance: The balance of the current DAO minus the proposal deposit at the time of split.

totalSupply: The total amount of DAO tokens in existence at the time of the split.

rewardToken: The amount of reward tokens owned by the original DAO at the time of split.

newDAO: The address of the new DAO contract (0 if not created yet).

Those are all the member variables which are stored in this smart contract on the blockchain.
This information can at any time be read from the blockchain using an Ethereum client.

This section will discuss the functions of the DAO contract in detail.
Many of the member variables that are used in this contract are defined in one of the other three contracts.

There is a special function which is called the constructor.
It has the same name as the contract “DAO.”
This function is only executed once, when the DAO is created.
In the DAO constructor, the following variables are set:
• curator
• daoCreator
• proposalDeposit
• rewardAccount
• DAOrewardAccount
• minTokensToCreate
• closingTime
• privateCreation
• lastTimeMinQuorumMet
• minQuorumDivisor
• allowedRecipients

In order to interact with the smart contract the following functions are used:

fallback function. The fallback function is a function without a specific name.
It is called when the contract receives a transaction without data (a pure value transfer).
There are no direct arguments for this function.
The fallback function will call createTokenProxy passing the address of the sender as an argument during the Creation Phase.
This will trigger the immediate creation of tokens.
In order to protect users, this function will send the ether received after the end of the Creation Phase back to the sender for a time period of 40 days.
After which this function is repurposed to receive ether as simple deposit to the DAO using the function receiveEther.

receiveEther. A simple function used to receive ether.
It does nothing but return true when the DAO receives ether.

newProposal. This function is used to create a new proposal.
The arguments of the function are:
recipient: The address of the recipient of the ether in the proposal (has to be the DAO address itself, the current Curator or an address on the whitelist allowedRecipients).
amount: The amount of wei to be sent in the proposed transaction.
description: A string describing the proposal.
transactionData: The data of the proposed transaction.
debatingPeriod: The amount of time to debate the proposal, at least 2 weeks for a normal proposal
and at least 1 week for a new Curator proposal.
newCurator: A boolean defining whether this proposal is for a new Curator or not.
After checking the sanity of the proposal (see code), this function creates a proposal which is open for voting for a certain amount of time.
The function will return a proposal ID which is used to vote.

checkProposalCode. This function is used to check that a certain proposal ID matches a certain transaction.
The arguments of the function are:
proposalID: The proposal ID.
recipient: The address of the recipient of the proposed transaction.
amount: The amount of wei to be sent with the proposed transaction.
transactionData: The data of the proposed transaction.
If the recipient, the amount and the transactionData match the proposal ID, the function will return true, otherwise it will return false.
This will be used to verify that the proposal ID matches what the DAO token holder thinks they are voting on.

vote. This function is used to vote on a proposal.
The arguments of the function are:
proposalID: The proposal ID.
supportsProposal: A boolean Yes/No does the DAO token holder support the proposal
The function simply checks whether the sender has yet to vote and whether the proposal is still open for voting.
If both requirements are met, it records the vote in the storage of the contract.
The tokens used to vote will be blocked, meaning they can not be transferred until the proposal is closed.
This is to avoid voting several times with different sender addresses.

executeProposal. This function can be called by anyone.
It counts the votes, in order to check whether the quorum is met, and executes the proposal if it passed, unless it is a proposal for a new Curator, than it does nothing.
The arguments of the function are:
proposalID: The proposal ID.
transactionData: The data of the proposed transaction
The function checks whether the voting deadline has passed and that the transactionData matches the proposal ID.
Then it checks whether the quorum has been met (see Eq. 1) and if the proposal had a majority of support.
If this is the case, it executes the proposal and refunds the proposal deposit.
If the quorum has been achieved, but the proposal was declined by the majority of the voters, the proposal deposit is refunded and the proposal closes.

splitDAO. After a new Curator has been proposed, and the debating period in which the token holders could vote for or against the proposal has passed, this function is called by each of the DAO token holders that want to leave the current DAO and move to a new DAO with the proposed new Curator.
This function creates a new DAO and moves a portion of the ether, as well as a portion of the reward tokens to the new DAO.
The arguments are:
proposalID: The proposal ID.
newCurator: The address of the new Curator of the new DAO.
After a sanity check (see code), this function will create the new DAO if it hasnt already been created using the contract daoCreator, updates the split data stored in the proposal and stores the address of the new DAO in the split data.
This function moves the portion of ether that belongs to the caller of this function in the original DAO to the new DAO.
This ether amount is denoted by Ξsender, stated in wei and is calculated as follows:

(eqn.4)

Here Tsender is the amount of tokens of the caller of the function and ΞDAO is the balance of the DAO at the time of the split.
This will be used to effectively create tokens in the newly created DAO and fuel the new DAO just as the original DAO was fueled.
In addition to the ether which is moved to the new DAO, the reward tokens Rsender are also transferred.
They are calculated as follows:

(eqn.5)

Where RDAO is the amount of reward tokens owned by the original DAO at the time of the split.
These tokens allow the new DAO to retrieve their portion of the reward using the retrieveDAOReward function of the original DAO.
At the end of this process all original DAO tokens of the sender account are destroyed.
It is important to notice that in all integer division descirbed above, there may be remainders which stay with the DAO.

newContract. This function can only be called by the DAO itself (through a proposal and a vote) and is used to move all remaining ether, as well as all rewardTokens to a new address.
This is used to update the contract.
The new address needs to be approved by the Curator.

transfer and transferFrom. These functions overload the functions defined in the Token contract.
They do call transfer / transferFrom function in the Token contract, but they additionally transfer information about the already paid out rewards attached to the tokens being transferred using the transferPaidOut function.

transferPaidOut. This function is called when making any transfer of DAO tokens using transfer or transferFrom and it updates the array paidOut to track the amount of rewards which has been paid out already, P, and is calculated as follows:

(eqn.6)

Here Pfrom is the total amount of ether which has been paid out to the from address (the sender), Tamount is the amount of tokens to be transferred and Tfrom is the amount of tokens owned by the from address.

transferWithoutReward and transferFromWithoutReward.
The same as transfer and transferFrom, but it calls getMyReward prior to that.

getMyReward. Calls withdrawRewardFor with the sender as the parameter.
This is used to withdraw the portion of the rewards which belong to the sender from the rewardAccount.

withdrawRewardFor. This function is used to retrieve the portion of the rewards in the rewardAccount which belong to the address given as a parameter.
The amount of ether Ξreward which is then sent to the DAO token holder that
calls this function is:

(eqn.7)

Here ΞrewardAccount is the total rewards ever received by the rewardAccount and ΞpaidOut[sender] is the total amount of wei which has already been paid out to the DAO token holder address, which is given as a parameter.
The reward tokens are further elaborated in section 8.

retrieveDAOReward. This function, when called by a DAO, sends the rewards which belong to this DAO from DAOrewardAccount to either the DAO itself, or to the rewardAccount of the respective DAO in order to be distributed among its token holders, depending on the parameter _toMembers.

changeAllowedRecipients. This function can add/remove an address to/from the whitelist, allowedRecipients.
It can only be executed by the Curator.

halveMinQuorum. When called, halves the minimum quorum in the case it has not been met for over 52 weeks, by doubling minQuorumDivisor.
Also the curator can call this function without the 52 weeks limit, but not more than once every other week.

numberOfProposals. Returns the total number of proposals ever created.

getNewDAOAdress. This is just a helper function to read the address of a newly created ‘split DAO‘.
It gets the proposal ID which was used for the split as input parameter and returns the address of the new DAO.

isBlocked. This function returns true when the address given as parameter is currently blocked to transfer tokens due to an ongoing vote it has participated in, otherwise it returns false.
It also unblocks the tokens in the case the voting deadline of the proposal is over.

unblockMe. Calling isBlocked with the address of the sender.

changeProposalDeposit. This function changes the parameter proposalDeposit. It can only be called by the DAO through a transaction which was proposed and voted for by a majority of the token holders.

6.4. Managed Account

contract ManagedAccountInterface {
address public owner;
bool public payOwnerOnly;
uint public accumulatedInput;
function payOut(address _recipient, uint _amount) returns (bool);
event PayOut(address _recipient, uint _amount);
}

This contract is used to manage the rewards and the extraBalance (as explained in section 5).
It has two member variables:

The address owner, is the only address with permission to withdraw from that account (in our case the DAO) and send ether to another address using the payOut function.

The bool payOwnerOnly specifies whether the owner is the only address which can receive ether from this account.

The integer, accumulatedInput, represents the total sum of ether (in wei) which has been sent to this contract so far.

The fallback function is called when the contract receives a transaction without data (a pure value transfer).
There are no direct arguments for this function.
When it is called it counts the amount of ether it receives and stores it in accumulatedInput.

The function payOut can only be executed by the owner (in our case the DAO).
It has two arguments: recipient and amount.
It is used to send amount wei to a recipient and is called by getMyReward in the DAO contract.

7. Reward Tokens

This section gives a description of how reward tokens are implemented in this contract.
Much of the information has already been explained, but it is restated here for clarity.

Reward tokens are used to divide the ether sent to DAOrewardAccount amongst the various DAOs that own reward tokens.
Reward tokens are only transferred in the event of a DAO split or an update of the contract, they can never be owned by anything other than the original DAO or a fork of the original DAO that generated the reward tokens.

Reward tokens are generated when the DAO makes any transaction spending ether.
When the DAOs products send ether back to the DAO, the ether is held within DAOrewardAccount.
The DAO can use these rewards to fund new proposals or to fairly distribute the rewards to the reward token holders (using a proposal which gets voted on by the DAO token holders).

Then the token holders of the DAOs will be able to claim the ether they have earned for their contribution to the original DAO that issued the reward token.
To do this the DAO retrieve its rewards by callling the retrieveDAOReward function, with the paramter _toMembers set to true, which send the rewards to the rewardAccount (a ManagedAccount contract) and keeps track of the payouts in DAOpaidOut.
Then and only then will the token holders of the DAOs be able to call the getMyReward function and receive their ether.

These payouts are tracked by the map paidOut which keeps track of which token holders have claimed their fair portion of the rewards.
This process guarantees that any DAO token holder whose ether was spent building a product will receive the rewards promised to them from that product even if they decide to split from the DAO.

8. Split

This section formally describes a few important parameters and their behavior during a split.

The total amount of DAO tokens totalSupply is defined as follows:

(eqn.8)

Where Ti is the amount of DAO tokens owned by an address i (balances[i]).
Note that 2^256 is the total number of possible addresses in Ethereum.
Similarly, the amount of reward tokens Rtotal is defined as follows:

(eqn.9)

For every passed proposal that sends ether out of the DAO, an amount of reward tokens equal to the amount being spent (in wei) is created.

Lets assume that during the split, a fraction of DAO tokens, X, changes the Curator and leaves the DAO.
The new DAO created receives X · ΞDAO pre, a portion of the remaining ether from the original DAO.

(eqn.10)

Here ΞDAO pre is the ether balance of the original DAO before the split and ΞDAO post is the ether balance of the original DAO after the split.

A portion of the reward tokens is transferred to the new DAO in a very similar manner:

(eqn.11)

Here RDAO is the amount of reward tokens owned by the DAO (prior to the first split 100% of all rewards tokens ever created are owned by the DAO).

(eqn.12)

The number of reward tokens owned by the new DAO are denoted by RnewDAO.
The total amount of reward tokens Rtotal stays constant during the split, no reward tokens are ever destroyed.

The original DAO tokens of the accounts that confirmed the new Curator are destroyed. Hence:

(eqn.13)

This process allows DAO token holders to retrieve their ether from the DAO at any time without losing out on any of the future rewards.
They are entitled to receive even if they choose to leave the DAO.

9. Updates

Although the code of the contract specified at a certain address in the Ethereum blockchain can not be changed, there might still be a need for a single member or the DAO as a whole to change the contracts.
Every single member can always split the DAO as described above and move their funds to a new DAO.
From there they can move their funds to another new DAO with a new smart contract.
But in order to use a new code for the complete DAO one can simply create a new DAO contract with all the needed features and deploy it on the blockchain, and make a proposal to call the newContract function with the address of the new contract as parameter.
If accepted, the complete DAO moves to the new contract, meaning, all ether and reward tokens are transferred to the new contract.
In order to use the same underlying DAO tokens there, one can use the approve function and give the new DAO the right to move the tokens.
In the new contract this right should only be usable in restricted functions which are only callable by the owner of the tokens.
Another option is to create new tokens in the new contract based on the token distribution in the old contract.
This can also be achieved by a proof that the old tokens are destroyed (sending to the 0 address).
This process allows for the DAO to maintain static immutable code on the Ethereum blockchain, while still being able to be updated if the need arises.

10. Acknowledgements

I want to thank Stephan Tual and Simon Jentzsch for fruitful discussions and corrections, as well as Gavin Wood and Christian Reitwiessner for a review of the contracts and the development of Solidity, the programing language used to write the contracts.

Special thanks goes to Yoichi Hirai and Lefteris Karapetsas for reviewing the smart contracts and making significant improvements.

I also want to thank Griff Green for reviewing and editing the paper.

Last but not least I want to thank our community which has given feedback, corrections and encouragement.

References

John Biggs. When Crowdfunding Fails The Backers Are Left With No Way Out. 2015. URL http://techcrunch.com/2015/11/19/when-crowdfunding-fails-the-backers-are-left-with-no-way-out/.

Vitalik Buterin. Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform. 2013. URL https://github.com/ethereum/wiki/wiki/White-Paper.

Vitalik Buterin. The Subjectivity / Exploitability Tradeoff. 2015. URL https://blog.ethereum.org/2015/02/14/subjectivity-exploitability-tradeoff/.

Griff Green. private discussion. 2016.

Kate Knibbs. The 9 Most Disgraceful Crowdfunding Failures of 2015. 2015. URL http://gizmodo.com/the-9-most-disgraceful-crowdfunding-failures-of-2015-1747957776.

Massolution. 2015CF - Crowdfunding Industry Report. 2015. URL http://reports.crowdsourcing.org/index.php?route=product/product&path=0_20&product_id=54.

Mark Miller. The Future of Law. In paper delivered at the Extro 3 Conference (August 9), 1997.

Christian Reitwiessner and Gavin Wood. Solidity. 2015. URL http://solidity.readthedocs.org/.

Nick Szabo. Formalizing and securing relationships on public networks. First Monday, 2(9), 1997.

Gavin Wood. Ethereum: A Secure Decentralised Generalised Transaction Ledger. 2014. URL http://gavwood.com/paper.pdf.

Appendix A. Contracts
A.1. Token

https://github.com/slockit/DAO/blob/develop/Token.sol

A.2. TokenCreation

https://github.com/slockit/DAO/blob/develop/TokenCreation.sol

A.3. DAO

https://github.com/slockit/DAO/blob/develop/DAO.sol

A.4. Sample Offer

https://github.com/slockit/DAO/blob/develop/Offer.sol

A.5. Managed Account

ethdapDao'Doing

ethdapDao'Creating

Description::
A DAO is activated by deployment on the Ethereum blockchain.
[https://download.slock.it/public/DAO/WhitePaper.pdf]
===
DAOs are formed by groups of like-minded individuals with specific projects and goals in mind.
[https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd#.9wdemu25y]

ethdapDao'Managing
ethdapDao'Voting
ethdapDao'Service

SPECIFIC

Specific::
* Aragon,

ethdapDao.CHARITY

AddressWpg::
* https://medium.com/charitydao/charity-dao-e9592dd80ab7#.rr9nxcvce,

ethdapDao.THE-DAO (eththedao)

Description::
The DAO was[citation needed] a digital decentralized autonomous organization and a form of investor-directed venture capital fund.[5]
The DAO had an objective to provide a new decentralized business model for organizing both commercial and non-profit enterprises.[6][7] It was instantiated on the Ethereum blockchain, and had no conventional management structure or board of directors.[6] The code of the DAO is open-source.[8]
The DAO was stateless, and not tied to any particular nation state. As a result, many questions of how government regulators would deal with a stateless fund were yet to be dealt with.[9]
The DAO was crowdfunded via a token sale in May 2016. It set the record for the largest crowdfunding campaign in history.[5]
In June 2016, hackers exploited a vulnerability in the DAO code to enable them to siphon off one third of The DAO's funds to a subsidiary account. On the 20th July 2016, the Ethereum community decided to hard-fork the Ethereum blockchain to restore virtually all funds to the original contract.[10] This was controversial, and led to a fork in Ethereum, where the original unforked blockchain was maintained as Ethereum Classic, thus breaking Ethereum into two separate active cryptocurrencies.[11][12]
[https://en.wikipedia.org/wiki/The_DAO_(organization)]

Name::
* cpt.eththedao,
* cpt.ethdao.the-DAO,
* cpt.eththedao,

eththedao'Resource

AddressWpg::
* https://forum.daohub.org/
* https://github.com/slockit/DAO,
===
* {2016-08-24} https://blog.slock.it/the-history-of-the-dao-and-lessons-learned-d06740f8cfa5#.971tzwfa2,
* {2016-08-24} http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/
* http://vessenes.com/deconstructing-thedao-attack-a-brief-code-tour/
* {2016-05-29} What Is The DAO and Why Is It the Biggest Crowdfunding Project in History? May 29, 2016 By : Kate https://letstalkpayments.com/ what-is-the-dao-and-why-is-it-the-biggest-crowdfunding-project-in-the-history/

eththedao.EVOLUTING

{time.2016-07-20}:
=== the-hard-fork:
The specs were implemented by the client’s developers (including Geth, Parity, EthereumJ, Eth, etc) and the choice whether to fork or not was left to the community by using a switch when starting their client. At block 1920000 (on July 20th), the hard fork became active as a majority of miners and nodes moved to the new version of the chain. The hard fork worked smoothly.
Original DAO token holders started to withdraw their ETH, while the signatories of the curator multisig started to work on the edge cases (note: this is still a work in progress)
Surprisingly, the old chain did receive more support than expected. Exchanges listed the token of the old chain (under the name “Ether classic”), and blockchain explorers were created. Users found themselves confronted with the choice of two chains, which challenged the former Robin Hood Group to start the process of also returning the ETC, an ongoing process.
[https://blog.slock.it/the-history-of-the-dao-and-lessons-learned-d06740f8cfa5#.ee5j2jh44]

{time.2016-06-17}:
=== the-hack:
On the 17th of June, the attacker withdrew around 3.5M ETH (~50M$) from the DAO and into a child DAO. Thus, started the long and difficult fight to recover the funds.
[https://blog.slock.it/the-history-of-the-dao-and-lessons-learned-d06740f8cfa5#.ee5j2jh44]

{time.2016-04-30-2016-05-28}:
=== The DAO ICO
April 30, 2016 - May 28, 2016
Crowdsale Details
The DAO, a distributed autonomous organization and future client of Slock.it, is holding an ICO. It is not quite a crowdsale: the DAO is selling ownership of itself and raising ETH in the process. The DAO’s first act will be to hire Slock.it to do their work.

How are funds collected?    To obtain DAO tokens, follow the wizard here or send ETH from your Ethereum Wallet (NOT an exchange) to The DAO’s address, given on on the same page.
Coin Distribution    All tokens will be distributed to those who contribute ETH. None are set aside for developers.
Escrow Used    Unknown
Rate    100 DAO Tokens per ETH for the first 14 days (roughly $.08/token). Then a linear increase for the next 10 days. For last 14 days, 100 DAO Tokens per 1.5 ETH (roughly $.12/token)
Project Valuation    Currently unknown, the valuation will be based on the amount of ETH raised.
Currencies used    ETH

How do the coins or tokens work?
How are they used?    The tokens represent ownership over the DAO, which includes being able to nominate and vote on DAO activities, nominate and vote on DAO curators. At any point, token holders can burn their tokens and retrieve their unspent ETH. Read more about token holder abilities here.
What is the market for these coins?    Any profits the DAO makes on its investments will be given back to token holders as dividends.
How are they produced?    The only way future DAO tokens are created is through vote of the token holders.
[https://www.smithandcrown.com/event/the-dao-ico/]

ethdapDao.Maker

Description::
Maker is a decentralized autonomous organization on the Ethereum blockchain seeking to minimize the price volatility of its own stable token — the Dai — against the IMF’s international currency basket SDR.
[http://makerdao.com/]

Name::
* cpt.Maker-ethdao,

Resource

AddressWpg::
* http://makerdao.com/docs/

ethdap.Plutus

Description::
PAY WITH BITCOIN.
ANYWHERE.
Waiting for merchants to accept Bitcoin and Ethereum? You don't have to! With Plutus Tap & Pay, you can pay at any NFC-enabled merchant.
[https://plutus.it/]
===
Plutus operates by connecting to a decentralized exchange platform, which uses smart contracts to handle digital currency trading.
... Users send bitcoin to their Plutus account, which are then automatically transferred to trader(s) on the DEX network. Smart contracts verify the transaction before the resulting fiat (USD, EUR, etc.) from the trader’s funds in escrow is transferred to the user’s virtual debit card, which can then be spent at any merchant that accepts NFC payments.
[https://plutus.it/case-study]

Name::
* cpt.Plutus.it,

ethdap.Swarm

Description::
Swarm is a distributed storage platform and content distribution service, a native base layer service of the ethereum web 3 stack. The primary objective of Swarm is to provide a decentralized and redundant store of Ethereum's public record, in particular to store and distribute dapp code and data as well as block chain data.

From the end user's perspective, Swarm is not that different from WWW, except that uploads are not to a specific server. The objective is to peer-to-peer storage and serving solution that is DDOS-resistant, zero-downtime, fault-tolerant and censorship-resistant as well as self-sustaining due to a built-in incentive system which uses peer to peer accounting and allows trading resources for payment.
Swarm is designed to deeply integrate with the devp2p multiprotocol network layer of Ethereum as well as with the Ethereum blockchain for domain name resolution, service payments and content availability insurance.
[http://swarm-gateways.net/bzz:/theswarm.eth/]

Name::
* cpt.swarm-ethdap,

ethdap.WeiFund.io

Description::
A Brief Overview
To use the WeiFund decentralized app (dApp), users will first open WeiFund in a web 3.0 enabled browser such as Ethereum's Mist.
A user would then immediately be able to start, contribute to, browse, and manage crowdfunding campaigns.
WeiFund's interface and user experience will be very similar to that of conventional crowdfunding platforms such as Kickstarter or GoFundMe, however, all funds raised on WeiFund will be accounted for in the Ether digital-currency.
Web 3.0 enabled browsers will come with their own wallet systems so that payments made on WeiFund to start and contribute to campaigns are done so in a secure and verifiable way.
[http://weifund.io/]

Name::
* cpt.WeiFund-dApp,

ethnet'program.CONTRACT-PROGRAM (ethctp)

Description::
The popular term “smart contracts” refers to code in a Contract Account – programs that execute when a transaction is sent to that account.
[https://ethereum-homestead.readthedocs.io/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]
===
One way of thinking about smart contracts, and the way we’re going to think about them here, is as extremely basic, stateless web-services. Webservices are units of functionality in a system (the internet), with a well defined API and an identifier (IP address) that can be used to call them. Similarly, a smart contract is a unit of functionality, the public functions exposed by their Solidity contracts is the API, and their public address is the identifier. A web-service is normally called by making an http request, and a contract is called by making a transaction. Also, in most cases everyone is allowed to call them the endpoints are exposed to the public, so security must be handled on a call-by-call basis, and the same thing goes for contracts and their functions. We can even utilize common patterns and architectures, such as for example the microservices architecture.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]
===
“Contracts” in Ethereum should not be seen as something that should be “fulfilled” or “complied with”; rather, they are more like “autonomous agents” that live inside of the Ethereum execution environment, always executing a specific piece of code when “poked” by a message or transaction, and having direct control over their own ether balance and their own key/value store to store their permanent state.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#contract-accounts]
===
A contract is a collection of code (its functions) and data (its state) that resides at a specific address on the Ethereum blockchain.
Contract accounts are able to pass messages between themselves as well as doing practically Turing complete computation.
Contracts live on the blockchain in a Ethereum-specific binary format called Ethereum Virtual Machine (EVM) bytecode.
Contracts are typically written in some high level language such as Solidity and then compiled into bytecode to be uploaded on the blockchain.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/contracts.html#contracts]
===
CT: Ethereum and smart contracts: Do you feel that in the real world it would be difficult to understand for lay people?
TG: I believe a large part of the misunderstanding with so-called smart contracts is that the name is partially a misnomer. Really what we're talking about is programs on blockchains. These programs can be coded to do just about anything, but have the added benefit of digital uniqueness without central point of failure. From this point, lots of things are possible from digital assets to autonomous assistants.
[https://cointelegraph.com/news/ethereum-co-founder-taylor-gerring-hard-fork-will-make-network-more-resilient]
===
Smart contracts are computer programs that can automatically execute the terms of a contract.
[http://www.ethereum.nz/]
===
So far, all contracts we listed were owned and executed by other accounts probably held by humans. But there is no discrimination against robots or humans in the Ethereum ecosystem and contracts can create arbitrary actions like any other account would. Contracts can own tokens, participate in crowdsales, and even be voting members of other contracts.
[https://www.ethereum.org/dao]
===
Our backend (referred to as a ‘contract’ in Ethereum) is going to use a language called Solidity. There are several other contract languages you can use when building Ethereum backend, LLL (similar to Lisp) and Serpent (similar to Python). We’ll use Solidity as it is the formally supported language by the ETHDEV team.
[https://dappsforbeginners.wordpress.com/tutorials/your-first-dapp/]

Name::
* cpt.ethctp, {2017-02-21}
* cpt.ethcrt, {2017-02-11}
* cpt.ethcontract,
* cpt.ethereum-contract,
* cpt.ethereum-contract-code,
* cpt.ethereum-contract-program,
* cpt.ethereum-smart-contract,
* cpt.ethsct,
* cpt.ethsmart-contract,
* cpt.ethsmc,
* cpt.ethnet'contract,
* cpt.ethnet'smart-contract,
* cpt.smart-contract.ethereum,

ethctp'Unit

Name::
* cpt.ethctp'unit,

ethctp'Semantic-unit

Name::
* cpt.ethctp'semantic-unit,
* cpt.ethctpsut,

ethctpsut.Function (ethctpf)

Name::
* cpt.ethctp'function,
* cpt.ethctpf,

ethctpf.Constant

Description::
It is important to distinguish two kinds of functions that can appear in a contract:
Read-only (constant) functions: functions that don’t perform any state changes. They only read state, perform computations, and return values. As these functions can be resolved locally by each node, they cost no gas. Marked with the keyword constant.
Transactional functions: functions that perform a state change in the contract or move funds. As these changes need to be reflected in the blockchain, transactional function execution requires sending a transaction to the network and spending gas.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05]

ethctpf.ConstantNO

Description::
It is important to distinguish two kinds of functions that can appear in a contract:
Read-only (constant) functions: functions that don’t perform any state changes. They only read state, perform computations, and return values. As these functions can be resolved locally by each node, they cost no gas. Marked with the keyword constant.
Transactional functions: functions that perform a state change in the contract or move funds.
As these changes need to be reflected in the blockchain, transactional function execution requires sending a transaction to the network and spending gas.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05]

Name::
* cpt.ethctpf.constantNo,

ethctp'Sentence

Name::
* cpt.ethctp'sentence,
* cpt.ethctpstc,

ethctp'Paragraph

Name::
* cpt.ethctp'paragraph,
* cpt.ethctppgf,

ethctp'Title-construction

Name::
* cpt.ethctp'title-construction,

ethctp'Contract-account (link)

ethctp'Creator-account

Description::
The-account (normal or contract) that created the-contract-program.
[hmnSgm.2017-03-05]

Name::
* cpt.ethctp'creator,
* cpt.ethctp'owner,

ethctp'Party

Description::
The key property of a smart contract is simple: there is only a fixed number of parties.
The parties do not all have to be known at initialization-time; a sell order, where A offers to sell 50 units of asset A to anyone who can provide 10 units of asset B, is also a smart contract.
Smart contracts can run on forever; hedging contracts and escrow contracts are good examples there.
However, smart contracts that run on forever should still have a fixed number of parties (eg. an entire decentralized exchange is not a smart contract), and contracts that are not intended to exist forever are smart contracts because existing for a finite time necessarily implies the involvement of a finite number of parties.
[https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide/]

ethctp'Address

Description::
Organizer address vs. Contract address.
Your deployed contract will have its own contract address (different from the organizer’s address) on the blockchain.
This address is accessible in a Solidity contract using this, as used inside the refundTicket function in the contract: address myAddress = this;
[http://consensys.github.io/developers/articles/101-noob-intro/]

ethctp'codeBINARY (link)

ethctp'codeASSEMBLY (ethasm)

ethasm'tool.Binary-to-assembly

AddressWpg::
* https://gist.github.com/anonymous/d3bbdc55159879046345,
* https://etherscan.io/opcode-tool,

ethctp'codeSOURCE

Description::
Other languages also exist, notably Serpent and LLL, which are described further in the Ethereum high level languages section of this documentation.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/contracts.html#contracts]

Name::
* cpt.ethctp'source-code,

ethctp'codeSource.Solidity (link)

ethctp'Store-of-data

Description::
A contract can neither read nor write to any storage apart from its own.
[http://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html#storage-memory-and-the-stack, 0-4-11.6d4cb248]

Name::
* cpt.ethctp'storage,

ethctp'Stack-area (link)

ethctp'Storage-area (link)

ethctp'Memory-area (link)

ethctp'Message-call

Description::
Smart-Contract Messages
Contracts have the ability to send “messages” to other contracts. Messages are virtual objects that are never serialized and exist only in the Ethereum execution environment.

A message contains:
- sender: The sender of the message.
- recipient: The recipient of the message.
- amount: The amount of ether to transfer.
- data: An optional data field.
- startgas: A STARTGAS value.

Essentially, a message is like a transaction, except it is produced by a contract and not an external actor. A message is produced when a contract currently executing code executes the CALL opcode, which produces and executes a message. Like a transaction, a message leads to the recipient account running its code. Thus, contracts can have relationships with other contracts in exactly the same way that external actors can.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
===
Message Calls
Contracts can call other contracts or send Ether to non-contract accounts by the means of message calls. Message calls are similar to transactions, in that they have a source, a target, data payload, Ether, gas and return data. In fact, every transaction consists of a top-level message call which in turn can create further message calls.

A contract can decide how much of its remaining gas should be sent with the inner message call and how much it wants to retain. If an out-of-gas exception happens in the inner call (or any other exception), this will be signalled by an error value put onto the stack. In this case, only the gas sent together with the call is used up. In Solidity, the calling contract causes a manual exception by default in such situations, so that exceptions “bubble up” the call stack.

As already said, the called contract (which can be the same as the caller) will receive a freshly cleared instance of memory and has access to the call payload - which will be provided in a separate area called the calldata. After it finished execution, it can return data which will be stored at a location in the caller’s memory preallocated by the caller.

Calls are limited to a depth of 1024, which means that for more complex operations, loops should be preferred over recursive calls.
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#message-calls]
===
What is a message?
Contracts have the ability to send “messages” to other contracts. Messages are virtual objects that are never serialized and exist only in the Ethereum execution environment. They can be conceived of as function calls.
A message contains:
- the sender of the message (implicit).
- the recipient of the message
- VALUE field - The amount of wei to transfer alongside the message to the contract address,
an optional data field, that is the actual input data to the contract
- a STARTGAS value, which limits the maximum amount of gas the code execution triggered by the message can incur.
Essentially, a message is like a transaction, except it is produced by a contract and not an external actor. A message is produced when a contract currently executing code executes the CALL or DELEGATECALL opcodes, which produces and executes a message. Like a transaction, a message leads to the recipient account running its code. Thus, contracts can have relationships with other contracts in exactly the same way that external actors can.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#what-is-a-message]

Name::
* cpt.ethctp'message,
* cpt.ethnet'message-call,

SPECIFIC

Specific::
Contracts can even create other contracts using a special opcode (i.e. they do not simply call the zero address). The only difference between these create calls and normal message calls is that the payload data is executed and the result stored as code and the caller / creator receives the address of the new contract on the stack.
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#create]

ethctp'Language

Name::
* cpt.ethereum-language-of-smart-contract,
* cpt.ethereum-smart-contract-language,
* cpt.ethnet'language,

Specific::
* LLL,
* Mutan,
* Serpent,
* Solidity,
* Viper,

ethctp'Mutan (deprecated)

Name::
* cpt.ethmtn,
* cpt.Mutan-ethctp-lang,

Mutan (deprecated)
Mutan is a statically typed, C-like language designed and developed by Jeffrey Wilcke. It is no longer maintained.
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/contracts.html#mutan-deprecated]

ethctp'language.SOLIDITY (ethsol)

Description::
Solidity is a high-level language whose syntax is similar to that of JavaScript and it is designed to compile to code for the Ethereum Virtual Machine.
As you will see, it is quite easy to create contracts for voting, crowdfunding, blind auctions, multi-signature wallets and more.
[https://solidity.readthedocs.org/en/latest/]

Name::
* cpt.ethnet'solidity,
* cpt.ethsol,
* cpt.ethsolidity,
* cpt.lagSol,
* cpt.lcp.solidity,
* cpt.lcpSlt,
* cpt.lgsl,
* cpt.lsl,
* cpt.solidity,
* cpt.solidity-language,

Generic::
* LanguageComputerPrograming #cptIt248#

ethsol'Archetype

Description::
Solidity-archetype is a-description of a-smart-contract processing by a-human.
[hmnSgm.2017-04-20]
===
A-smart-contract as humans perceive and execute.
[hmnSgm.2017-03-14]

Name::
* cpt.ethsolarc,
* cpt.ethsolarcho,

ethsol'Algorithm (contract)

Description::
Solidity-algorithm is a-description of a-smart-contract processing by a-machine.
[hmnSgm.2017-04-20]

Name::
* cpt.ethsolalg,
* cpt.ethsolalgo,
* cpt.ethsolcontract,
* cpt.ethsolctp,
* cpt.ethsolpgm,
* cpt.ethsol'smart-contract,

ethsolalg'Architecture

Description::
The-architecture of the-machine that will-execute smart-contracts is that of a-stack-virtual-machine.
[hmnSgm.2017-03-14]

ethsolalg'Structure

Description::
Contracts have state and functions.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05]

ethsolalg.PROGRAM

Description::
Ethsolalgo is the-description of a-smart-contract that the-EVM executes written in any language human or computer.
Ethsolprogram is the-description of a-smart-contract that the-EVM executes written in ethsol uncompiled or compiled.
[hmnSgm.2017-03-14]

Name::
* cpt.ethsol'program,
* cpt.ethsolpgm,
* cpt.ethsolprogram,

ethsolpgm'Location

Description::
A contract in the sense of Solidity is a collection of code (its functions) and data (its state) that resides at a specific address on the Ethereum blockchain.
[https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html 0-4-10.9aab3b86]

ethsolalg.BYTECODE-PROGRAM (ethsolbcp)

Description::
Ethsolbcp is an-EVM-binary-program compiled from an-ethsolscp.
[hmnSgm.2017-03-14]

Name::
* cpt.ethsol'binary-program,
* cpt.ethsol'bytecode-program,
* cpt.ethsolbcp,

Generic::
* EVM-bytecode-program,

ethsolalg.ASSEMBLY-PROGRAM (ethsolasp)

Description::
Solidity defines an assembly language that can also be used without Solidity.
This assembly language can also be used as “inline assembly” inside Solidity source code.
We start with describing how to use inline assembly and how it differs from standalone assembly and then specify assembly itself.
TODO: Write about how scoping rules of inline assembly are a bit different and the complications that arise when for example using internal functions of libraries. Furhermore, write about the symbols defined by the compiler.
[https://solidity.readthedocs.io/en/v0.4.9/assembly.html]

Name::
* cpt.ethsolacd,
* cpt.ethsolasp,

ethsolasp'Ethsol-Assembly.INLINE
ethsolasp'Ethsol-Assembly.STANDALONE

Description::
The assembly language described as inline assembly above can also be used standalone and in fact, the plan is to use it as an intermediate language for the Solidity compiler.
In this form, it tries to achieve several goals:
- Programs written in it should be readable, even if the code is generated by a compiler from Solidity.
- The translation from assembly to bytecode should contain as few “surprises” as possible.
- Control flow should be easy to detect to help in formal verification and optimization.
[https://solidity.readthedocs.io/en/v0.4.9/assembly.html#standalone-assembly]

ethsolalg.SOURCECODE-PROGRAM (ethsolscd)

Name::
* cpt.ethsol'contract-program,
* cpt.ethsol'contract-sourcecode,
* cpt.ethsol'program,
* cpt.ethsol'sourcecode-program,
* cpt.ethsolpgm.source,
* cpt.ethsolscd,
* cpt.ethsolscp, {2017-03-14}

CodeEthsol::
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html]


//simple contract
pragma solidity ^0.4.0;

contract SimpleStorage {
    uint storedData;

    function set(uint x) {
        storedData = x;
    }

    function get() constant returns (uint) {
        return storedData;
    }
}
    

ethsolscp'UNIT

ethsolscp'SEMANTIC-UNIT (ethsolsut)

Name::
* cpt.ethsolsut,
* cpt.ethsol'sut,
* cpt.ethsol'type,
* cpt.ethsolsut,

ethsolsut'Location

Description::
// Data locations: Memory vs. storage vs. stack - all complex types (arrays,
// structs) have a data location
// 'memory' does not persist, 'storage' does
// Default is 'storage' for local and state variables; 'memory' for func params
// stack holds small local variables

// for most types, can explicitly set which data location to use
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'location,

ethsolsut'Visibility

Description::
Since Solidity knows two kinds of function calls (internal ones that do not create an actual EVM call (also called a “message call”) and external ones that do), there are four types of visibilities for functions and state variables.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#visibility-and-getters]

Name::
* cpt.ethsol'visibility-attribute,
* cpt.ethsolsut'access,

ethsolsut'Visibility-specifier

Name::
* cpt.ethsol'visibility-specifier,

ethsolsut'Public-vs

Description::
public:
Public functions are part of the contract interface and can be either called internally or via messages.
For public state variables, an automatic getter function (see below) is generated.
...
Functions can be specified as being external, public, internal or private, where the default is public.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#visibility-and-getters]
===
The keyword public automatically generates a function that allows you to access the current value of the state variable. Without this keyword, other contracts have no way to access the variable. The function will look something like this:
function minter() returns (address) { return minter; }
Of course, adding a function exactly like that will not work because we would have a function and a state variable with the same name, but hopefully, you get the idea - the compiler figures that out for you.
... The getter function created by the public keyword is a bit more complex in this case. It roughly looks like the following:
function balances(address _account) returns (uint) {
return balances[_account];
}
[https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html 0-4-10.6258fe71]
===
'public' makes externally readable (not writeable) by users or contracts
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'public-sut,
* cpt.ethsolpublic,

ethsolsut'Private-vs

Description::
private:
Private functions and state variables are only visible for the contract they are defined in and not in derived contracts.
Note
Everything that is inside a contract is visible to all external observers. Making something private only prevents other contracts from accessing and modifying the information, but it will still be visible to the whole world outside of the blockchain.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#visibility-and-getters]
===
"private" means that other contracts can't directly query balances [sut] but data is still viewable to other parties on blockchain
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'private-sut,

ethsolsut'External-vs

Description::
external:
External functions are part of the contract interface, which means they can be called from other contracts and via transactions.
An external function f cannot be called internally (i.e. f() does not work, but this.f() works).
External functions are sometimes more efficient when they receive large arrays of data.
...
For state variables, external is not possible and the default is internal.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#visibility-and-getters]

Name::
* cpt.ethsol'external-sut,

ethsolsut'Internal-vs

Description::
internal:
Those functions and state variables can only be accessed internally (i.e. from within the current contract or contracts deriving from it), without using this.
...
For state variables, external is not possible and the default is internal.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#visibility-and-getters]

Name::
* cpt.ethsol'internal-sut,

ethsolsut'Indexed-visibility-attribute

Description::
Notice that _from and _to have an additional attribute indexed.
This attribute causes those arguments to be treated as log topics, rather than data.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

ethsolsut'Doing
ethsolsut'Checking

Description::
Types are checked at compile-time, so if you make a mistake you will get a compiler error. For example, this is not possible:
contract Test {
 bool bVar;

 function causesError(address addr){
   bVar = addr;
 }
}

The error it would throw is this: Error: Type address not implicitly convertible to expected type bool.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]

ethsosut'Converting

Description::
Type conversion
The compiler allows you to convert between types in certain cases. Let’s say you have the number 1 stored in a uint variable, and you want to use it in another variable of type int. That is possible - but you generally have to do the conversion yourself. This is how you would do it:

uint x = 1;
int y = int(x);

Type conversion is also checked at compile time and will generally be caught but there are exceptions; the most important one is when converting an address to a contract type. These type of casts can lead to bugs. We will be looking at some examples in a later section.

Finally, type conversion is something that should be used with care. It’s good in some cases, but excessive and/or careless casting is usually a sign that the code is not well written and can sometimes have bad consequences (such as data-loss). Remember types are there for a reason.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]

SPECIFIC

Name::
* ethsolsut.specific,
* cpt.ethsolsut.specific,

Specific::
* address - ad,
* array - a,
* boolean - b,
* bytes - bt,
* contract - c,
* enum - en,
* event - e,
* function - f,
* library - l,
* mapping - m,
* number:
  - int,
  - int8,
  - uint,
  - uint8,
* string - s,
* struct - sc,
===
* REFERENCY-TYPE,
* VALUE-TYPE,
* NAME-VALUE-PAIR,
* API,
* JSON-INTERFACE,

ethsolsut.REFERENCE-TYPE

Description::
Reference Types
Complex types, i.e. types which do not always fit into 256 bits have to be handled more carefully than the value-types we have already seen.
Since copying them can be quite expensive, we have to think about whether we want them to be stored in memory (which is not persisting) or storage (where the state variables are held).
- array
- stuct
[http://solidity.readthedocs.io/en/v0.4.9/types.html#reference-types]

Name::
* cpt.ethsol'reference-type,
* cpt.ethsol'reference-type,

ethsolsut'Data-location

Description::
Data location
Every complex type, i.e. arrays and structs, has an additional annotation, the “data location”, about whether it is stored in memory or in storage. Depending on the context, there is always a default, but it can be overridden by appending either storage or memory to the type. The default for function parameters (including return parameters) is memory, the default for local variables is storage and the location is forced to storage for state variables (obviously).

There is also a third data location, “calldata”, which is a non-modifyable non-persistent area where function arguments are stored. Function parameters (not return parameters) of external functions are forced to “calldata” and it behaves mostly like memory.

Data locations are important because they change how assignments behave: Assignments between storage and memory and also to a state variable (even from other state variables) always create an independent copy. Assignments to local storage variables only assign a reference though, and this reference always points to the state variable even if the latter is changed in the meantime. On the other hand, assignments from a memory stored reference type to another memory-stored reference type does not create a copy.
[http://solidity.readthedocs.io/en/v0.4.9/types.html#data-location]
===
* storage
* memory
* calldata

ethsolsut.VALUE-TYPE

Description::
Value Types
The following types are also called value types because variables of these types will always be passed by value, i.e. they are always copied when they are used as function arguments or in assignments.
- Booleans
- Integers
- Address
- Fixed-size byte arrays
- Dynamically-sized byte arrays
- Fixed point numbers
- Address-literals
- Rational and integer literals
- String literals
- Hexadecimal literals
- Enums
- Function types
[http://solidity.readthedocs.io/en/v0.4.9/types.html#value-types]

Name::
* cpt.ethsol'value-type,

ethsolscpsut.ADDRESS (ethsolad)

Description::
Represents an-ethereum-account-address.
===
The address type is a 160-bit value that does not allow any arithmetic operations.
It is suitable for storing addresses of contracts or keypairs belonging to external persons.
[https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html 0-4-10.6258fe71]
===
address which is a cryptographic hash (SHA3)
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
===
address: Holds a 20 byte value (size of an Ethereum address).
Address types also have members(see [Functions on addresses](#functions-on-addresses)) and serve as base for all contracts.
Operators:
<=, <, ==, !=, >= and >
[https://solidity.readthedocs.org/en/latest/types.html#address]
===
// Addresses - holds 20 byte/160 bit Ethereum addresses
// No arithmetic allowed
address public owner;

// Types of accounts:
// Contract account: address set on create (func of creator address, num transactions sent)
// External Account: (person/external entity): address created from public key

// Add 'public' field to indicate publicly/externally accessible
// a getter is automatically created, but NOT a setter

// All addresses can be sent ether
owner.send(SOME_BALANCE); // returns false on failure
if (owner.send) {} // REMEMBER: wrap in 'if', as contract addresses have
// functions executed on send and these can fail
// Also, make sure to deduct balances BEFORE attempting a send, as there is a risk of a recursive
// call that can drain the contract

// can override send by defining your own

// Can check balance
owner.balance; // the balance of the owner (user or contract)
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'address,
* cpt.ethsoladdress,
* cpt.ethsolad,

ethsolad'balance-number

Description::
It is possible to query the balance of an address using the property balance and to send Ether (in units of wei) to an address using the send function:

address x = 0x123;
address myAddress = this;
if (x.balance < 10 && myAddress.balance >= 10) x.send(10);
[http://solidity.readthedocs.io/en/latest/types.html#members-of-addresses]

ethsolad'call

Description::
Furthermore, to interface with contracts that do not adhere to the ABI, the function call is provided which takes an arbitrary number of arguments of any type. These arguments are padded to 32 bytes and concatenated. One exception is the case where the first argument is encoded to exactly four bytes. In this case, it is not padded to allow the use of function signatures here.

address nameReg = 0x72ba7d8e73fe8eb666ea66babc8116a41bfb10e2;
nameReg.call("register", "MyName");
nameReg.call(bytes4(keccak256("fun(uint256)")), a);
call returns a boolean indicating whether the invoked function terminated (true) or caused an EVM exception (false). It is not possible to access the actual data returned (for this we would need to know the encoding and size in advance).
[http://solidity.readthedocs.io/en/latest/types.html#members-of-addresses]

ethsolad'callcode
ethsolad'delegatecall
ethsolad'send-function

Description::
It is possible to query the balance of an address using the property balance and to send Ether (in units of wei) to an address using the send function:

address x = 0x123;
address myAddress = this;
if (x.balance < 10 && myAddress.balance >= 10) x.send(10);
[http://solidity.readthedocs.io/en/latest/types.html#members-of-addresses]

ethsolscpsut.ARRAY (ethsola)

Description::
// Arrays
bytes32[5] nicknames; // static array
bytes32[] names; // dynamic array
uint newLength = names.push("John"); // adding returns new length of the array
// Length
names.length; // get length
names.length = 1; // lengths can be set (for dynamic arrays in storage only)

// multidimensional array
uint x[][5]; // arr with 5 dynamic array elements (opp order of most languages)
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsola,
* cpt.ethsolarray,

ethsolscpsut.BOOLEAN (ethsolb)

Name::
* cpt.ethsolb,

CodeEthsol::
bool voted;
===
bool b = true; // or do 'var b = true;' for inferred typing

ethsolscpsut.BYTES (ethsolbt)

Description::
Variables of type bytes and string are special arrays.
A bytes is similar to byte[], but it is packed tightly in calldata.
string is equal to bytes but does not allow length or index access (for now).
So bytes should always be preferred over byte[] because it is cheaper.
[http://solidity.readthedocs.io/en/v0.4.9/types.html#index-14]
===
// Bytes available from 1 to 32
byte a; // byte is same as bytes1
bytes2 b;
bytes32 c;

// Dynamically sized bytes
bytes m; // A special array, same as byte[] array (but packed tightly)
// More expensive than byte1-byte32, so use those when possible
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'bytes-type,
* cpt.ethsolbytes,
* cpt.ethsolbt,

CodeEthsol::
bytes3 b;

ethsolscpsut.CONTRACT-UNIT (ethsolc)

Description::
Solidity uses the contract data-type to model smart contracts. It is very similar to a class.
A contract has a number of fields and methods; for example, the contract type can have a constructor, it can inherit from other contracts, etc.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]
===
Contracts in Solidity are similar to classes in object-oriented languages.
Each contract can contain declarations of State Variables, Functions, Function Modifiers, Events, Structs Types and Enum Types.
Furthermore, contracts can inherit from other contracts.
[https://solidity.readthedocs.io/en/v0.4.9/structure-of-a-contract.html]

Name::
* cpt.ethsolc,
* cpt.ethsol'contract-semantic-unit,
* cpt.ethsol'contract-datatype,
* cpt.sltcontract,
* cpt.sltc,
* cpt.ethsolc,

Example::
* https://github.com/fivedogit/solidity-baby-steps,

ethsolc'Stage

Description::
State Machine
Contracts often act as a state machine, which means that they have certain stages in which they behave differently or in which different functions can be called. A function call often ends a stage and transitions the contract into the next stage (especially if the contract models interaction). It is also common that some stages are automatically reached at a certain point in time.

An example for this is a blind auction contract which starts in the stage “accepting blinded bids”, then transitions to “revealing bids” which is ended by “determine auction autcome”.

Function modifiers can be used in this situation to model the states and guard against incorrect usage of the contract.
[https://solidity.readthedocs.org/en/latest/common-patterns.html#state-machine]

ethsolc.GENERIC (base)
ethsolc.SPECIFIC (derived)

CodeEthsol::
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#function-modifiers]


contract owned {
    function owned() { owner = msg.sender; }
    address owner;

    // This contract only defines a modifier but does not use
    // it - it will be used in derived contracts.
    // The function body is inserted where the special symbol
    // "_;" in the definition of a modifier appears.
    // This means that if the owner calls this function, the
    // function is executed and otherwise, an exception is
    // thrown.
    modifier onlyOwner {
        if (msg.sender != owner)
            throw;
        _;
    }
}

contract mortal is owned {
    // This contract inherits the "onlyOwner"-modifier from
    // "owned" and applies it to the "close"-function, which
    // causes that calls to "close" only have an effect if
    // they are made by the stored owner.
    function close() onlyOwner {
        selfdestruct(owner);
    }
}
    
ethsolc.ABSTRACT

Description::
Contract functions can lack an implementation as in the following example (note that the function declaration header is terminated by ;):

pragma solidity ^0.4.0;

contract Feline {
function utterance() returns (bytes32);
}
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#abstract-contracts]

ethsolscpsut.ENUM (ethsolen)

Description::
Enums are one way to create a user-defined type in Solidity.
They are explicitly convertible to and from all integer types but implicit conversion is not allowed.
[https://solidity.readthedocs.org/en/latest/types.html#enums]

Name::
* cpt.ethsolen,
* cpt.ethsolenum,

CodeEthsol::
enum ActionChoices { GoLeft, GoRight, GoStraight, SitStill }
===
enum Status {maintenance, active, suspended, bankrupt}
===
// Enums
enum State { Created, Locked, Inactive }; // often used for state machine
State public state; // Declare variable from enum
state = State.Created;
// enums can be explicitly converted to ints
uint createdState = uint(State.Created); // 0

[https://learnxinyminutes.com/docs/solidity/]

ethsolscpsut.EVENT (ethsole)

Description::
Events are used to dump information from Solidity contract code into the blockchain clients log. It is a way of making that information available to the “outside world”. On top of the events themselves, most clients also have a way of capturing this output and encapsulating it in an event data-structures. This is particularly important for efficiency between the blockchain clients and the “outside world” which will rely upon these events in order for other things to happen.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]
===
event Transfer(address indexed _from, address indexed _to, uint256 _value);
Next we specify an event, which is how in Solidity we use the logging facility of the Ethereum Virtual Machine. When called, events cause the arguments to be stored in the transaction’s log. In this instance we are storing three parameters, _from which is of type address, _to_ which is another address, and _value which is a uint256 (256-bit unsigned integer). Notice that _from and _to have an additional attribute indexed. This attribute causes those arguments to be treated as log topics, rather than data.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
===
The line event Sent(address from, address to, uint amount); declares a so-called “event” which is fired in the last line of the function send. User interfaces (as well as server appliances of course) can listen for those events being fired on the blockchain without much cost.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#subcurrency-example]

Name::
* cpt.ethsol'event,
* cpt.ethsole,

CodeEthsol::
// Events allow light clients to react on
// changes efficiently.
event Sent(address from, address to, uint amount);

[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#subcurrency-example]

CodeEthsol::
[https://learnxinyminutes.com/docs/solidity/]


// B. Events
// Events are notify external parties; easy to search and
// access events from outside blockchain (with lightweight clients)
// typically declare after contract parameters

// Typically, capitalized - and add Log in front to be explicit and prevent confusion
// with a function call

// Declare
event LogSent(address indexed from, address indexed to, uint amount); // note capital first letter

// Call
Sent(from, to, amount);

// For an external party (a contract or external entity), to watch:
Coin.Sent().watch({}, '', function(error, result) {
    if (!error) {
        console.log("Coin transfer: " + result.args.amount +
            " coins were sent from " + result.args.from +
            " to " + result.args.to + ".");
        console.log("Balances now:\n" +
            "Sender: " + Coin.balances.call(result.args.from) +
            "Receiver: " + Coin.balances.call(result.args.to));
    }
}
// Common paradigm for one contract to depend on another (e.g., a
// contract that depends on current exchange rate provided by another)
    

ethsolscpsut.FUNCTION (ethsolf)

Name::
* cpt.ethsolf,
* cpt.sltfunction,
* cpt.sltf,
* cpt.ethsolf,

ethsolf'Input
ethsolf'Output

Description::
// Functions can return many arguments, and by specifying returned arguments
// name don't need to explicitly return
function increment(uint x, uint y) returns (uint x, uint y) {
x += 1;
y += 1;
}
// Call previous functon
uint (a,b) = increment(1,1);
[https://learnxinyminutes.com/docs/solidity/]

ethsolf'Call

Description::
Since Solidity knows two kinds of function calls (internal ones that do not create an actual EVM call (also called a “message call”) and external ones that do), there are four types of visibilities for functions and state variables.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#visibility-and-getters]

ethsolf'Interface

JSON::
{
"constant": true,
"inputs": [ { "name": "", "type": "address" } ],
"name": "versions",
"outputs": [ { "name": "", "type": "uint256" } ],
"payable": false,
"type": "function"
}
===
{
"payable": false,
"type": "fallback"
}

SPECIFIC

Name::
* ethsolf.specific,
* cpt.ethsolf.specific,

Specific::
ethsolf.addmod(uint x, uint y, uint k) returns (uint):
compute (x + y) % k where the addition is performed with arbitrary precision and does not wrap around at 2**256.

ethsolf.mulmod(uint x, uint y, uint k) returns (uint):
compute (x * y) % k where the multiplication is performed with arbitrary precision and does not wrap around at 2**256.

ethsolf.sha3(...) returns (bytes32):
compute the Ethereum-SHA-3 hash of the (tightly packed) arguments

ethsolf.sha256(...) returns (bytes32):
compute the SHA-256 hash of the (tightly packed) arguments

ethsolf.ripemd160(...) returns (bytes20):
compute RIPEMD-160 hash of the (tightly packed) arguments

ethsolf.ecrecover(bytes32, uint8, bytes32, bytes32) returns (address):
recover public key from elliptic curve signature - arguments are (data, v, r, s)
[https://solidity.readthedocs.org/en/latest/units-and-global-variables.html#mathematical-and-cryptographic-functions]

ethsolf.CONSTRUCTOR

Description::
a special function which is a constructor, denoted by the function having the same name as the contract itself. Generally constructors are used to initialize contract member variables to their initial state once the contract has been deployed.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
==
The special function Coin is the constructor which is run during creation of the contract and cannot be called afterwards.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#subcurrency-example]

ethsolf.CONSTANT

Description::
Constant Functions
Functions can be declared constant. These functions promise not to modify the state.

pragma solidity ^0.4.0;

contract C {
function f(uint a, uint b) constant returns (uint) {
return a * (b + 42);
}
}
Note
Getter methods are marked constant.
Warning
The compiler does not enforce yet that a constant method is not modifying state.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#constant-functions]
===
What is the difference between a function marked constant and one that is not?
constant functions can perform some action and return a value, but cannot change state (this is not yet enforced by the compiler). In other words, a constant function cannot save or update any variables within the contract or wider blockchain. These functions are called using c.someFunction(...) from geth or any other web3.js environment.

“non-constant” functions (those lacking the constant specifier) must be called with c.someMethod.sendTransaction({from:eth.accounts[x], gas: 1000000}); That is, because they can change state, they have to have a gas payment sent along to get the work done.
[https://solidity.readthedocs.org/en/latest/frequently-asked-questions.html#what-is-the-difference-between-a-function-marked-constant-and-one-that-is-not]

ethsolf.CONSTANT.NO

Description::
What is the difference between a function marked constant and one that is not?
constant functions can perform some action and return a value, but cannot change state (this is not yet enforced by the compiler). In other words, a constant function cannot save or update any variables within the contract or wider blockchain. These functions are called using c.someFunction(...) from geth or any other web3.js environment.

“non-constant” functions (those lacking the constant specifier) must be called with c.someMethod.sendTransaction({from:eth.accounts[x], gas: 1000000}); That is, because they can change state, they have to have a gas payment sent along to get the work done.
[https://solidity.readthedocs.org/en/latest/frequently-asked-questions.html#what-is-the-difference-between-a-function-marked-constant-and-one-that-is-not]

ethsofl.INTERNAL

Description::
internal:
Those functions and state variables can only be accessed internally (i.e. from within the current contract or contracts deriving from it), without using this.

ethsolf.FALLBACK

Description::
Fallback Function
A contract can have exactly one unnamed function. This function cannot have arguments and cannot return anything. It is executed on a call to the contract if none of the other functions matches the given function identifier (or if no data was supplied at all).

Furthermore, this function is executed whenever the contract receives plain Ether (without data). In such a context, there is usually very little gas available to the function call (to be precise, 2300 gas), so it is important to make fallback functions as cheap as possible.

In particular, the following operations will consume more gas than the stipend provided to a fallback function:

Writing to storage
Creating a contract
Calling an external function which consumes a large amount of gas
Sending Ether
Please ensure you test your fallback function thoroughly to ensure the execution cost is less than 2300 gas before deploying a contract.

Warning

Contracts that receive Ether but do not define a fallback function throw an exception, sending back the Ether (this was different before Solidity v0.4.0). So if you want your contract to receive Ether, you have to implement a fallback function.
pragma solidity ^0.4.0;

contract Test {
// This function is called for all messages sent to
// this contract (there is no other function).
// Sending Ether to this contract will cause an exception,
// because the fallback function does not have the "payable"
// modifier.
function() { x = 1; }
uint x;
}


// This contract keeps all Ether sent to it with no way
// to get it back.
contract Sink {
function() payable { }
}


contract Caller {
function callTest(Test test) {
test.call(0xabcdef01); // hash does not exist
// results in test.x becoming == 1.

// The following call will fail, reject the
// Ether and return false:
test.send(2 ether);
}
}
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#fallback-function]

ethsolf.MODIFIER

Description::
Modifiers can be used to easily change the behaviour of functions, for example to automatically check a condition prior to executing the function. They are inheritable properties of contracts and may be overridden by derived contracts.

pragma solidity ^0.4.0;

contract owned {
function owned() { owner = msg.sender; }
address owner;

// This contract only defines a modifier but does not use
// it - it will be used in derived contracts.
// The function body is inserted where the special symbol
// "_;" in the definition of a modifier appears.
// This means that if the owner calls this function, the
// function is executed and otherwise, an exception is
// thrown.
modifier onlyOwner {
if (msg.sender != owner)
throw;
_;
}
}


contract mortal is owned {
// This contract inherits the "onlyOwner"-modifier from
// "owned" and applies it to the "close"-function, which
// causes that calls to "close" only have an effect if
// they are made by the stored owner.
function close() onlyOwner {
selfdestruct(owner);
}
}
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#function-modifiers]
===
// Modifiers validate inputs to functions such as minimal balance or user auth;
// similar to guard clause in other languages

// '_' (underscore) often included as last line in body, and indicates
// function being called should be placed there
modifier onlyAfter(uint _time) { if (now <= _time) throw; _ }
modifier onlyOwner { if (msg.sender == owner) _ }
// commonly used with state machines
modifier onlyIfState (State currState) { if (currState != State.A) _ }

// Append right after function declaration
function changeOwner(newOwner)
onlyAfter(someTime)
onlyOwner()
onlyIfState(State.A)
{
owner = newOwner;
}

// underscore can be included before end of body,
// but explicitly returning will skip, so use carefully
modifier checkValue(uint amount) {
_
if (msg.value > amount) {
uint amountToRefund = amount - msg.value;
if (!msg.sender.send(amountToRefund)) {
throw;
}
}
}
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsolf.modifier,
* cpt.ethsol'modifier-function,

ethsolf.OPERATOR

Description::
// 3. Simple operators
// Comparisons, bit operators and arithmetic operators are provided
// exponentiation: **
// exclusive or: ^
// bitwise negation: ~
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsoloperator,

ethsolf.selfdestruct

Description::
In Solidity, the command for removing (or suiciding) a contract is this: selfdestruct(addr).
The argument here is the address to which any remaining funds should be sent.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]
===
ether sent to selfdestructed contract is lost
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'selfdestruct,
* cpt.ethsolselfdestruct,

ethsolscpsut.LIBRARY (ethsoll)

Description::
Libraries are similar to contracts, but their purpose is that they are deployed only once at a specific address and their code is reused using the DELEGATECALL (CALLCODE until Homestead) feature of the EVM. This means that if library functions are called, their code is executed in the context of the calling contract, i.e. this points to the calling contract, and especially the storage from the calling contract can be accessed. As a library is an isolated piece of source code, it can only access state variables of the calling contract if they are explicitly supplied (it would have no way to name them, otherwise).
...
Restrictions for libraries in comparison to contracts:
No state variables
Cannot inherit nor be inherited
Cannot recieve Ether
(These might be lifted at a later point.)
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#libraries]

Name::
* cpt.ethsol'library,
* cpt.ethsoll,
* cpt.ethsollibrary,

ethsolscpsut.MAPPING (ethsolm)

Description::
A mapping is a relational type, from keys to values,
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]
===
Mapping types are declared as mapping _KeyType => _ValueType, where _KeyType can be almost any type except for a mapping and _ValueType can actually be any type, including mappings.

Mappings can be seen as hashtables which are virtually initialized such that every possible key exists and is mapped to a value whose byte-representation is all zeros. The similarity ends here, though: The key data is not actually stored in a mapping, only its sha3 hash used to look up the value.

Because of this, mappings do not have a length or a concept of a key or value being “set”.

Mappings are only allowed for state variables (or as storage reference types in internal functions).
[https://solidity.readthedocs.org/en/latest/types.html#mappings]
===
// Dictionaries (any type to any other type)
mapping (string => uint) public balances;
balances["charles"] = 1;
console.log(balances["ada"]); // is 0, all non-set key values return zeroes
// 'public' allows following from another contract
contractName.balances("charles"); // returns 1
// 'public' created a getter (but not setter) like the following:
function balances(string _account) returns (uint balance) {
return balances[_account];
}

// Nested mappings
mapping (address => mapping (address => uint)) public custodians;

// To delete
delete balances["John"];
delete balances; // sets all elements to 0

// Unlike other languages, CANNOT iterate through all elements in
// mapping, without knowing source keys - can build data structure
// on top to do this
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'dictionary,
* cpt.ethsol'mapping,
* cpt.ethsolm,

ethsolscpsut.NUMBER (ethsoln)

Name::
* cpt.ethsoln,

ethsolscpsut.number.INTEGER

Description::
Integers in Solidity can be either signed or unsigned, and can be on the form intN/uintN, where N = 8*n for n = 1, 2, ... , 32. Some examples would be uint8, int32, int128, and uint240. Additionally, int and uint are shorthand for int256 and uint256, respectively.
[https://github.com/androlo/solidity-workshop/blob/master/tutorials/2016-03-14-advanced-solidity-V.md]
===
int• / uint•: Signed and unsigned integers of various sizes. Keywords uint8 to uint256 in steps of 8 (unsigned of 8 up to 256 bits) and int8 to int256. uint and int are aliases for uint256 and int256, respectively.

Operators:
Comparisons: <=, <, ==, !=, >=, > (evaluate to bool)
Bit operators: &, |, ^ (bitwise exclusive or), ~ (bitwise negation)
Arithmetic operators: +, -, unary -, unary +, *, /, % (remainder), ** (exponentiation)
Division always truncates (it just maps to the DIV opcode of the EVM), but it does not truncate if both operators are literals (or literal expressions).
[https://solidity.readthedocs.org/en/latest/types.html#integers]

Name::
* cpt.ethsol'integer,
* cpt.ethsolinteger,

ethsol'int (ethsoln)

Name::
* cpt.ethsolint,
* cpt.ethsolint256,

ethsol'int8 (ethsoln8)

Name::
* cpt.ethsoluint8,

ethsol'uint (ethsolnu)

Description::
uint storedData;
//The line uint storedData; declares a state variable called storedData of type uint (unsigned integer of 256 bits).
===
uint used for currency amount (there are no doubles or floats) and for dates (in unix time)
...
uint constant VERSION_ID = 0x123A1; // A hex constant
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsoluint,
* cpt.ethsoluint256,

ethsol'uint8 (ethsolnu8)

Name::
* cpt.ethsoluint8,

ethsolscpsut.UNIT-OF-MEASUREMENT

Description::
// Currency units
// Currency is defined using wei, smallest unit of Ether
uint minAmount = 1 wei;
uint a = 1 finney; // 1 ether == 1000 finney
// Other units, see: http://ether.fund/tool/converter

// Time units
1 == 1 second
1 minutes == 60 seconds

// Can multiply a variable times unit, as units are not stored in a variable
uint x = 5;
(x * 1 days); // 5 days

// Careful about leap seconds/years with equality statements for time
// (instead, prefer greater than/less than)
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'unit-of-measurement,

ethsolscpsut.STRING (ethsols)

Description::
// same as bytes, but does not allow length or index access (for now)
string n = "hello"; // stored in UTF8, note double quotes, not single
// string utility functions to be added in future
// prefer bytes32/bytes, as UTF8 uses more storage
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsols,
* cpt.ethsolstring,

ethsolscpsut.STRUCT (ethsolsc)

Description::
// Structs and enums
struct Bank {
address owner;
uint balance;
}
Bank b = Bank({
owner: msg.sender,
balance: 5
});
// or
Bank c = Bank(msg.sender, 5);

c.amount = 5; // set to new value
delete b;
// sets to initial value, set all variables in struct to 0, except mappings
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'struct,
* cpt.ethsolsc,
* cpt.ethsolstruct,

CodeEthsol::
// Defines a new type with two fields.
struct Funder {
 address addr;
 uint amount;
}

ethsolscpsut.NAME-VALUE-PAIR (variable)

Description::
Solidity is a strongly-typed language which means that variables must have a type given to them.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

Name::
* cpt.ethsol'name-value-pair,
* cpt.ethsol'variable,
* cpt.ethsolv,
* cpt.ethsolvariable,

CodeEthsol::
address public minter;
// declares a state variable of type address that is publicly accessible.
===
mapping (address => uint) balances;

ethsolv'value

Description::
// by default, all values are set to 0 on instantiation
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsolvalue,

ethsolv.STATE-VARIABLE (storage)

Description::
The Ethereum Virtual Machine has three areas where it can store items.
The first is “storage”, where all the contract state variables reside.
Every contract has its own storage and it is persistent between function calls and quite expensive to use.
[http://solidity.readthedocs.io/en/develop/frequently-asked-questions.html#what-is-the-memory-keyword-what-does-it-do]
===
contract Test {
int a = 999; // That's storage
function doIt() {
int b; // That's memory
assembly {
b := sload(a);
}
}
}
[http://ethereum.stackexchange.com/a/11677]
===
The Ethereum Virtual Machine has three areas where it can store items. ...
The third one is the stack, which is used to hold small local variables. It is almost free to use, but can only hold a limited amount of values.
...
local variables always reference storage
...
A common mistake is to declare a local variable and assume that it will be created in memory, although it will be created in storage:
[http://solidity.readthedocs.io/en/develop/frequently-asked-questions.html#what-is-the-memory-keyword-what-does-it-do]

Name::
* cpt.ethsol'local-variable,
* cpt.ethsol'state-variable,
* cpt.ethsol'storage-variable,
* cpt.ethsolv.local,

ethsolv.MEMORY-VARIABLE

Description::
contract Test {
int a = 999; // That's storage
function doIt() {
int b; // That's memory
assembly {
b := sload(a);
}
}
}
[http://ethereum.stackexchange.com/a/11677]

Name::
* cpt.ethsol'memory-variable,
* cpt.ethsolv.memory,

ethsolv.VAR

Description::
// Type inferrence
// var does inferred typing based on first assignment,
// can't be used in functions parameters
var a = true;
// use carefully, inference may provide wrong type
// e.g., an int8, when a counter needs to be int16

// var can be used to assign function to variable
function a(uint x) returns (uint) {
return x * 2;
}
var f = a;
f(22); // call
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsolvar,

ethsolv.CONSTANT

Description::
Constant State Variables
State variables can be declared as constant (this is not yet implemented for array and struct types and not possible for mapping types).

pragma solidity ^0.4.0;

contract C {
uint constant x = 32**22 + 8;
string constant text = "abc";
}
This has the effect that the compiler does not reserve a storage slot for these variables and every occurrence is replaced by their constant value.

The value expression can only contain integer arithmetics.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#constant-functions]
===
uint constant VERSION_ID = 0x123A1; // A hex constant
// with 'constant', compiler replaces each occurrence with actual value
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'constant,
* cpt.ethsolconstant,

ethsolv.GLOBAL

Description::
msg (together with tx and block) is a magic global variable that contains some properties which allow access to the blockchain. msg.sender is always the address where the current (external) function call came from.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#subcurrency-example]

Name::
* cpt.ethsol'global-variable,
* cpt.ethsolv.global,

Specific::
* block ##
* msg ##
* now ##
* this ##
* tx ##

ethsolv.this

Description::
// this
this; // address of contract
// often used at end of contract life to send remaining balance to party
this.balance;
this.someFunction(); // calls func externally via call, not via internal jump
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsolv.this,

ethsolv.block

Name::
* cpt.ethsol'block,
* cpt.ethsol'block,

API::
block.blockhash(uint blockNumber) returns (bytes32): hash of the given block - only works for 256 most recent blocks excluding current
block.coinbase (address): current block miner’s address
block.difficulty (uint): current block difficulty
block.gaslimit (uint): current block gaslimit
block.number (uint): current block number
block.timestamp (uint): current block timestamp
[http://solidity.readthedocs.io/en/latest/units-and-global-variables.html#block-and-transaction-properties]
===
// ** block - Information about current block **
now; // current time (approximately), alias for block.timestamp (uses Unix time)
block.number; // current block number
block.difficulty; // current block difficulty
block.blockhash(1); // returns bytes32, only works for most recent 256 blocks
block.gasLimit();
[https://learnxinyminutes.com/docs/solidity/]

ethsolv.msg

Description::
msg (together with tx and block) is a magic global variable that contains some properties which allow access to the blockchain. msg.sender is always the address where the current (external) function call came from.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#subcurrency-example]
===
// ** msg - Current message received by the contract ** **
msg.sender; // address of sender
msg.value; // amount of ether provided to this contract in wei
msg.data; // bytes, complete call data
msg.gas; // remaining gas
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsol'msg,

API::
msg.data (bytes): complete calldata
msg.gas (uint): remaining gas
msg.sender (address): sender of the message (current call)
msg.sig (bytes4): first four bytes of the calldata (i.e. function identifier)
msg.value (uint): number of wei sent with the message
[http://solidity.readthedocs.io/en/latest/units-and-global-variables.html#block-and-transaction-properties]

ethsolv.tx

Name::
* cpt.ethsol'tx,
* cpt.ethsol'tx,

API::
tx.gasprice (uint): gas price of the transaction
tx.origin (address): sender of the transaction (full call chain)
[http://solidity.readthedocs.io/en/latest/units-and-global-variables.html#block-and-transaction-properties]

ethsolsv.storage

Description::
// ** storage - Persistent storage hash **
storage['abc'] = 'def'; // maps 256 bit words to 256 bit words
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsolstorage,

ethsolscpsut.API

Name::
* cpt.ethsolAPI,

ethsolapi.msg

ethsolapi.msg.sender:
special variable msg.sender, which is, intuitively, the address of the message sender.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

ethsolapi.tx

ethsolapi.tx.origin:
Here we use a special variable called tx.origin which is of type address and contains the sender of the transaction,
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

ethsolscpsut.JSON-INTERFACE (ABI)

Description::
The-interface of the-functions of a-contract in JSON-format.
===
[
{
"constant": true,
"inputs": [],
"name": "t32Hash_of_will",
"outputs": [ { "name": "", "type": "bytes32", "value": "0x0000000000000000000000000000000000000000000000000000000000000000", "displayName": "" } ],
"type": "function",
"displayName": "t32 Hash<span class=\"punctuation\">_</span>of<span class=\"punctuation\">_</span>will"
},
{
"constant": false,
"inputs": [ { "name": "sWillIn", "type": "string", "typeShort": "string", "bits": "", "displayName": "s Will In", "template": "elements_input_string" } ],
"name": "fWillNew",
"outputs": [],
"type": "function",
"displayName": "f Will New"
},
{
"constant": true,
"inputs": [],
"name": "aWill_owner",
"outputs": [ { "name": "", "type": "address", "value": "0x0998c9a0c7224ec2ed782a3ecfef53a0e25fa9fc", "displayName": "" } ],
"type": "function",
"displayName": "a Will<span class=\"punctuation\">_</span>owner"
},
{ "constant": true, "inputs": [ { "name": "sWillUserIn", "type": "string", "typeShort": "string", "bits": "", "displayName": "s Will User In", "template": "elements_input_string" } ], "name": "fWillCheck", "outputs": [ { "name": "bWill_correct", "type": "bool" } ],
"type": "function", "displayName": "f Will Check"
},
{
"inputs": [],
"type": "constructor"
}
]

Name::
* cpt.ABI.ethsol,
* cpt.ethsol'ABI,
* cpt.ethsol'JSON-interface,
* cpt.ethsolscpsut.ABI,

ethsolscp'SENTENCE (ethsolstc)

Name::
* cpt.ethsolstc,
* cpt.ethsol'sentence,

ethsolstc.ASSIGNMENT

Description::
// Destructuring/Tuples
(x, y) = (2, 7); // assign/swap multiple value
[https://learnxinyminutes.com/docs/solidity/]

Name::
* cpt.ethsolstc.assignment,
* cpt.ethsol'assignment-sentence,

ethsolstc.BRANCHING

Name::
* cpt.ethsolstc.branching,

CodeEthsol::
// 6. BRANCHING AND LOOPS

// All basic logic blocks work - including if/else, for, while, break, continue
// return - but no switch

// Syntax same as javascript, but no type conversion from non-boolean
// to boolean (comparison operators must be used to get the boolean val)

[https://learnxinyminutes.com/docs/solidity/]

ethsolstc.LOOP

Name::
* cpt.ethsolstc.loop,

CodeEthsol::
[https://learnxinyminutes.com/docs/solidity/]


// For loops that are determined by user behavior, be careful - as contracts have a maximal
// amount of gas for a block of code - and will fail if that is exceeded
// For example:
for(uint x = 0; x < refundAddressList.length; x++) {
    if (!refundAddressList[x].send(SOME_AMOUNT)) {
       throw;
    }
}

// Two errors above:
// 1. A failure on send stops the loop from completing, tying up money
// 2. This loop could be arbitrarily long (based on the amount of users who need refunds), and
// therefore may always fail as it exceeds the max gas for a block
// Instead, you should let people withdraw individually from their subaccount, and mark withdrawn
    
ethsolstc.pragma

Name::
* cpt.ethsol'pragma,
* cpt.ethsolpragma,
* cpt.ethsolstc.pragma,

CodeEthsol::
pragma solidity ^0.4.0;
//The first line simply tells that the source code is written for Solidity version 0.4.0 or anything newer that does not break functionality (up to, but not including, version 0.5.0).
This is to ensure that the contract does not suddenly behave differently with a new compiler version.

[https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html 0-4-10.9aab3b86]

ethsolstc.import

Description::
Solidity supports import statements that are very similar to those available in JavaScript (from ES6 on), although Solidity does not know the concept of a “default export”.

At a global level, you can use import statements of the following form:

import "filename";
This statement imports all global symbols from “filename” (and symbols imported there) into the current global scope (different than in ES6 but backwards-compatible for Solidity).

import * as symbolName from "filename";
...creates a new global symbol symbolName whose members are all the global symbols from "filename".

import {symbol1 as alias, symbol2} from "filename";
...creates new global symbols alias and symbol2 which reference symbol1 and symbol2 from "filename", respectively.

Another syntax is not part of ES6, but probably convenient:

import "filename" as symbolName;
which is equivalent to import * as symbolName from "filename";.
[https://solidity.readthedocs.io/en/v0.4.9/layout-of-source-files.html#syntax-and-semantics]

Name::
* cpt.ethsol'import,
* cpt.ethsolimport,

ethsol'path-of-files

Description::
Paths
In the above, filename is always treated as a path with / as directory separator, . as the current and .. as the parent directory. When . or .. is followed by a character except /, it is not considered as the current or the parent directory. All path names are treated as absolute paths unless they start with the current . or the parent directory ...

To import a file x from the same directory as the current file, use import "./x" as x;. If you use import "x" as x; instead, a different file could be referenced (in a global “include directory”).

It depends on the compiler (see below) how to actually resolve the paths. In general, the directory hierarchy does not need to strictly map onto your local filesystem, it can also map to resources discovered via e.g. ipfs, http or git.
[https://solidity.readthedocs.io/en/v0.4.9/layout-of-source-files.html#paths]

ethsolstc.using-for

Description::
Using For

The directive using A for B; can be used to attach library functions (from the library A) to any type (B). These functions will receive the object they are called on as their first parameter (like the self variable in Python).

The effect of using A for *; is that the functions from the library A are attached to any type.

In both situations, all functions, even those where the type of the first parameter does not match the type of the object, are attached. The type is checked at the point the function is called and function overload resolution is performed.

The using A for B; directive is active for the current scope, which is limited to a contract for now but will be lifted to the global scope later, so that by including a module, its data types including library functions are available without having to add further code.

Let us rewrite the set example from the Libraries in this way:

pragma solidity ^0.4.0;

// This is the same code as before, just without comments
library Set {
struct Data { mapping(uint => bool) flags; }

function insert(Data storage self, uint value)
returns (bool)
{
if (self.flags[value])
return false; // already there
self.flags[value] = true;
return true;
}

function remove(Data storage self, uint value)
returns (bool)
{
if (!self.flags[value])
return false; // not there
self.flags[value] = false;
return true;
}

function contains(Data storage self, uint value)
returns (bool)
{
return self.flags[value];
}
}


contract C {
using Set for Set.Data; // this is the crucial change
Set.Data knownValues;

function register(uint value) {
// Here, all variables of type Set.Data have
// corresponding member functions.
// The following function call is identical to
// Set.insert(knownValues, value)
if (!knownValues.insert(value))
throw;
}
}
It is also possible to extend elementary types in that way:

pragma solidity ^0.4.0;

library Search {
function indexOf(uint[] storage self, uint value) returns (uint) {
for (uint i = 0; i < self.length; i++)
if (self[i] == value) return i;
return uint(-1);
}
}


contract C {
using Search for uint[];
uint[] data;

function append(uint value) {
data.push(value);
}

function replace(uint _old, uint _new) {
// This performs the library function call
uint index = data.indexOf(_old);
if (index == uint(-1))
data.push(_new);
else
data[index] = _new;
}
}
Note that all library calls are actual EVM function calls. This means that if you pass memory or value types, a copy will be performed, even of the self variable. The only situation where no copy will be performed is when storage reference variables are used.
[https://solidity.readthedocs.io/en/v0.4.9/contracts.html#using-for]

Name::
* cpt.ethsol'using-for,

ethsolstc.comment

Description::
Single-line comments (//) and multi-line comments (/*...*/) are possible.

// This is a single-line comment.

/*
This is a
multi-line comment.
*/
[https://solidity.readthedocs.io/en/v0.4.9/layout-of-source-files.html#comments]

Name::
* cpt.ethsol'comment,

ethsolscp'Error

Description::
Errors
There is no real error handling system in Solidity (yet). There are no try - catch or throw statements, or something to that effect. Contract designers need to deal with errors themselves. Solidity does some sanity checks on arrays and such, but will often respond simply by executing the (STOP) instruction. According to the developers, this is just put in as a placeholder until a more sophisticated error handling and recovery system is put in place.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]

Name::
* cpt.ethsol'error,

ethsolscp'Style

Description::
// 13. STYLE NOTES
// Based on Python's PEP8 style guide

// Quick summary:
// 4 spaces for indentation
// Two lines separate contract declarations (and other top level declarations)
// Avoid extraneous spaces in parentheses
// Can omit curly braces for one line statement (if, for, etc)
// else should be placed on own line
[https://learnxinyminutes.com/docs/solidity/]

ethsolscp.SPECIFIC

Name::
* cpt.ethsolscp.specific,

Specific::
* https://github.com/fivedogit/solidity-baby-steps/tree/master/contracts,
* https://github.com/ConsenSys/dapp-store-contracts,
===
As you will see, it is possible to create contracts for voting, crowdfunding, blind auctions, multi-signature wallets and more.
[https://solidity.readthedocs.io/en/latest/ 0-4-10.9aab3b86]

ethsolscp.CROWDFUNDING

Name::
* cpt.ethsolscp.crowdfunding,

CodeEthsol::
[https://learnxinyminutes.com/docs/solidity/]


// *** EXAMPLE: A crowdfunding example (broadly similar to Kickstarter) ***
// ** START EXAMPLE **

// CrowdFunder.sol

/// @title CrowdFunder
/// @author nemild
contract CrowdFunder {
    // Variables set on create by creator
    address public creator;
    address public fundRecipient; // creator may be different than recipient
    uint public minimumToRaise; // required to tip, else everyone gets refund
    string campaignUrl;
    byte constant version = 1;

    // Data structures
    enum State {
        Fundraising,
        ExpiredRefund,
        Successful
    }
    struct Contribution {
        uint amount;
        address contributor;
    }

    // State variables
    State public state = State.Fundraising; // initialize on create
    uint public totalRaised;
    uint public raiseBy;
    uint public completeAt;
    Contribution[] contributions;

    event LogFundingReceived(address addr, uint amount, uint currentTotal);
    event LogWinnerPaid(address winnerAddress);

    modifier inState(State _state) {
        if (state != _state) throw;
        _
    }

    modifier isCreator() {
        if (msg.sender != creator) throw;
        _
    }

    // Wait 6 months after final contract state before allowing contract destruction
    modifier atEndOfLifecycle() {
    if(!((state == State.ExpiredRefund || state == State.Successful) &&
        completeAt + 6 months < now)) {
            throw;
        }
        _
    }

    function CrowdFunder(
        uint timeInHoursForFundraising,
        string _campaignUrl,
        address _fundRecipient,
        uint _minimumToRaise)
    {
        creator = msg.sender;
        fundRecipient = _fundRecipient;
        campaignUrl = _campaignUrl;
        minimumToRaise = _minimumToRaise;
        raiseBy = now + (timeInHoursForFundraising * 1 hours);
    }

    function contribute()
    public
    inState(State.Fundraising)
    {
        contributions.push(
            Contribution({
                amount: msg.value,
                contributor: msg.sender
            }) // use array, so can iterate
        );
        totalRaised += msg.value;

        LogFundingReceived(msg.sender, msg.value, totalRaised);

        checkIfFundingCompleteOrExpired();
        return contributions.length - 1; // return id
    }

    function checkIfFundingCompleteOrExpired() {
        if (totalRaised > minimumToRaise) {
            state = State.Successful;
            payOut();

            // could incentivize sender who initiated state change here
        } else if ( now > raiseBy )  {
            state = State.ExpiredRefund; // backers can now collect refunds by calling getRefund(id)
        }
        completeAt = now;
    }

    function payOut()
    public
    inState(State.Successful)
    {
        if(!fundRecipient.send(this.balance)) {
            throw;
        }


        LogWinnerPaid(fundRecipient);
    }

    function getRefund(id)
    public
    inState(State.ExpiredRefund)
    {
        if (contributions.length <= id || id < 0 || contributions[id].amount == 0 ) {
            throw;
        }

        uint amountToRefund = contributions[id].amount;
        contributions[id].amount = 0;

        if(!contributions[id].contributor.send(amountToSend)) {
            contributions[id].amount = amountToSend;
            return false;
        }

      return true;
    }

    function removeContract()
    public
    isCreator()
    atEndOfLifecycle()
    {
        selfdestruct(msg.sender);
        // creator gets all money that hasn't be claimed
    }

    function () { throw; }
}
// ** END EXAMPLE **
    
ethsolscp.STORAGE

Name::
* cpt.ethsolscp.storage,

CodeEthsol::
[https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html]


pragma solidity ^0.4.0;

contract SimpleStorage {
    uint storedData;

    function set(uint x) {
        storedData = x;
    }

    function get() constant returns (uint) {
        return storedData;
    }
}
    
ethsolscp.SUBCURRENCY

Description::
The following contract will implement the simplest form of a cryptocurrency. It is possible to generate coins out of thin air, but only the person that created the contract will be able to do that (it is trivial to implement a different issuance scheme). Furthermore, anyone can send coins to each other without any need for registering with username and password - all you need is an Ethereum keypair.


pragma solidity ^0.4.0;

contract Coin {
    // The keyword "public" makes those variables
    // readable from outside.
    address public minter;
    mapping (address => uint) public balances;

    // Events allow light clients to react on
    // changes efficiently.
    event Sent(address from, address to, uint amount);

    // This is the constructor whose code is
    // run only when the contract is created.
    function Coin() {
        minter = msg.sender;
    }

    function mint(address receiver, uint amount) {
        if (msg.sender != minter) return;
        balances[receiver] += amount;
    }

    function send(address receiver, uint amount) {
        if (balances[msg.sender] < amount) return;
        balances[msg.sender] -= amount;
        balances[receiver] += amount;
        Sent(msg.sender, receiver, amount);
    }
}
    

This contract introduces some new concepts, let us go through them one by one.

The line address public minter; declares a state variable of type address that is publicly accessible. The address type is a 160-bit value that does not allow any arithmetic operations. It is suitable for storing addresses of contracts or keypairs belonging to external persons. The keyword public automatically generates a function that allows you to access the current value of the state variable. Without this keyword, other contracts have no way to access the variable. The function will look something like this:

function minter() returns (address) { return minter; }
Of course, adding a function exactly like that will not work because we would have a function and a state variable with the same name, but hopefully, you get the idea - the compiler figures that out for you.

The next line, mapping (address => uint) public balances; also creates a public state variable, but it is a more complex datatype. The type maps addresses to unsigned integers. Mappings can be seen as hashtables which are virtually initialized such that every possible key exists and is mapped to a value whose byte-representation is all zeros. This analogy does not go too far, though, as it is neither possible to obtain a list of all keys of a mapping, nor a list of all values. So either keep in mind (or better, keep a list or use a more advanced data type) what you added to the mapping or use it in a context where this is not needed, like this one. The getter function created by the public keyword is a bit more complex in this case. It roughly looks like the following:

function balances(address _account) returns (uint) {
return balances[_account];
}
As you see, you can use this function to easily query the balance of a single account.

The line event Sent(address from, address to, uint amount); declares a so-called “event” which is fired in the last line of the function send. User interfaces (as well as server appliances of course) can listen for those events being fired on the blockchain without much cost. As soon as it is fired, the listener will also receive the arguments from, to and amount, which makes it easy to track transactions. In order to listen for this event, you would use


Coin.Sent().watch({}, '', function(error, result) {
    if (!error) {
        console.log("Coin transfer: " + result.args.amount +
            " coins were sent from " + result.args.from +
            " to " + result.args.to + ".");
        console.log("Balances now:\n" +
            "Sender: " + Coin.balances.call(result.args.from) +
            "Receiver: " + Coin.balances.call(result.args.to));
    }
}
    

Note how the automatically generated function balances is called from the user interface.

The special function Coin is the constructor which is run during creation of the contract and cannot be called afterwards. It permanently stores the address of the person creating the contract: msg (together with tx and block) is a magic global variable that contains some properties which allow access to the blockchain. msg.sender is always the address where the current (external) function call came from.

Finally, the functions that will actually end up with the contract and can be called by users and contracts alike are mint and send. If mint is called by anyone except the account that created the contract, nothing will happen. On the other hand, send can be used by anyone (who already has some of these coins) to send coins to anyone else. Note that if you use this contract to send coins to an address, you will not see anything when you look at that address on a blockchain explorer, because the fact that you sent coins and the changed balances are only stored in the data storage of this particular coin contract. By the use of events it is relatively easy to create a “blockchain explorer” that tracks transactions and balances of your new coin.
[https://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#subcurrency-example]

Name::
* cpt.ethsolscp.cryptocurrency,
* cpt.ethsolscp.subcurrency,

ethsolscp.WILL

Name::
* cpt.ethsolscp.will,

CodeEthsol::


contract CMgrWill {
    address public aWill_owner;
    bytes32 public t32Hash_of_will;

    function fMgrWill(){
        aWill_owner = msg.sender;
    }
    function fWillNew(string sWillIn) {
        if (msg.sender != aWill_owner) throw;
        t32Hash_of_will = sha3(sWillIn);
    }
    function fWillCheck(string sWillUserIn) constant returns (bool bWill_correct) {
        return (sha3(sWillUserIn) == t32Hash_of_will);
    }
}
    

ethsol'Human

Name::
* cpt.ethsol'human,

Human.Reitwiessner.Cristian:
Dr. Christian Reitwieίner, the creator of the Ethereum smart contract language Solidity,
[https://blog.slock.it/creator-of-solidity-joins-slock-it-team-as-advisor-76b77d0aa459#.mqoj2umze]

ethsol'Tool

Name::
* cpt.ethsol'tool,
* cpt.ethsoltool,

Specific::
* Browser-compiler,
* solcjs,
* Dapple,
* Populus,
* REPL,
* Solgraph,
===
* Solidity Parser in Javascript: https://github.com/ConsenSys/solidity-parser,

ethsoltool.BROWSER-COMPILER

Description::
The best way to try out Solidity right now is using the Browser-Based Compiler (it can take a while to load, please be patient).
[https://solidity.readthedocs.io/en/v0.4.9/]

Name::
* cpt.ethsol'browser-compiler,

AddressWpg::
* https://ethereum.github.io/browser-solidity/#version=soljson-v0.4.9+commit.364da425.js,

ethsoltool.solcjs

Description::
npm / Node.js
This is probably the most portable and most convenient way to install Solidity locally.
A platform-independent JavaScript library is provided by compiling the C++ source into JavaScript using Emscripten. It can be used in projects directly (such as Browser-Solidity). Please refer to the solc-js repository for instructions.
It also contains a commandline tool called solcjs, which can be installed via npm:

npm install -g solc

Note
The comandline options of solcjs are not compatible with solc and tools (such as geth) expecting the behaviour of solc will not work with solcjs.
[https://solidity.readthedocs.io/en/v0.4.9/installing-solidity.html#npm-node-js]
===
> solcjs --help
Usage: C:\Users\username\AppData\Roaming\npm\node_modules\solc\solcjs
[options] [input_file...]

Options:
--version Show version number [boolean]
--optimize Enable bytecode optimizer. [boolean]
--bin Binary of the contracts in hex. [boolean]
--abi ABI of the contracts. [boolean]
--output-dir, -o Output directory for the contracts. [string]
--help Show help [boolean]

Name::
* cpt.solcjs,

ethsoltool.Dapple

Description::
Dapple is a Solidity developer multitool designed to manage the growing complexity of interconnected smart contract systems.

Its core functionality encompasses three main areas:
Package management
Contract building
Deployment scripting
[http://dapple.readthedocs.io/en/master/]

Name::
* cpt.ethsoltool.dapple,

ethsoltool.Populus

Description::
Populus is a smart contract development framework for the Ethereum blockchain.
[http://populus.readthedocs.io/en/latest/]

Name::
* cpt.ethsoltool.populus,

ethsoltool.REPL

Description::
Ethereum Solidity REPL.
[https://github.com/raineorshine/solidity-repl]

Name::
* cpt.ethsol'REPL,
* cpt.ethsoltool.REPL,

Installation::
$ npm install -g solidity-repl
[https://github.com/raineorshine/solidity-repl]

Usage::
$ solr
Welcome to the Solidity REPL!
> uint a = 10
> uint b = 20
> a + b
30
> msg.sender
0x2f42491c0a08e4bc0cd3d5a96533a69727e16911
[https://github.com/raineorshine/solidity-repl]

ethsoltool.Solgraph

Description::
Visualize Solidity control flow for smart contract security analysis.
[https://github.com/raineorshine/solgraph]

Name::
* cpt.ethsoltool.solgraph,

ethsol'Resource

Name::
* cpt.ethsol'resource,

AddressWpg::
* https://github.com/ethereum/solidity,
=== tutorial
* https://solidity.readthedocs.org/en/latest/
* http://solidity.readthedocs.io/en/v0.4.9/
* https://github.com/androlo/solidity-workshop,
* https://karl.tech/learning-solidity-part-1-deploy-a-contract/ metamask,
* https://ethereumbuilders.gitbooks.io/guide/content/en/solidity_tutorials.html,
* https://learnxinyminutes.com/docs/solidity/
=== community
* https://gitter.im/ethereum/solidity/

ethsol.EVOLUTING (0.4.9-2017-01-31)

AddressWpg::
* https://github.com/ethereum/solidity/blob/develop/Changelog.md,

ethsol.0-4-10.2017-03-15:
Features:
Add assert(condition), which throws if condition is false (meant for internal errors).
Add require(condition), which throws if condition is false (meant for invalid input).
Commandline interface: Do not overwrite files unless forced.
Introduce .transfer(value) for sending Ether.
Code generator: Support revert() to abort with rolling back, but not consuming all gas.
Inline assembly: Support revert (EIP140) as an opcode.
Parser: Support scientific notation in numbers (e.g. 2e8 and 200e-2).
Type system: Support explicit conversion of external function to address.
Type system: Warn if base of exponentiation is literal (result type might be unexpected).
Type system: Warn if constant state variables are not compile-time constants.
Bugfixes:
Commandline interface: Always escape filenames (replace /, : and . with _).
Commandline interface: Do not try creating paths . and ...
Commandline interface: Allow long library names.
Parser: Disallow octal literals.
Type system: Fix a crash caused by continuing on fatal errors in the code.
Type system: Disallow compound assignment for tuples.
Type system: Detect cyclic dependencies between constants.
Type system: Disallow arrays with negative length.
Type system: Fix a crash related to invalid binary operators.
Type system: Disallow var declaration with empty tuple type.
Type system: Correctly convert function argument types to pointers for member functions.
Type system: Move privateness of constructor into AST itself.
Inline assembly: Charge one stack slot for non-value types during analysis.
Assembly output: Print source location before the operation it refers to instead of after.
Optimizer: Stop trying to optimize tricky constants after a while.
[https://github.com/ethereum/solidity/blob/develop/Changelog.md]

ethsol.0-4-9.2017-01-31:
Features:
Compiler interface: Contracts and libraries can be referenced with a file: prefix to make them unique.
Compiler interface: Report source location for "stack too deep" errors.
AST: Use deterministic node identifiers.
Inline assembly: introduce invalid (EIP141) as an opcode.
Type system: Introduce type identifier strings.
Type checker: Warn about invalid checksum for addresses and deduce type from valid ones.
Metadata: Do not include platform in the version number.
Metadata: Add option to store sources as literal content.
Code generator: Extract array utils into low-level functions.
Code generator: Internal errors (array out of bounds, etc.) now cause a reversion by using an invalid instruction (0xfe - EIP141) instead of an invalid jump. Invalid jump is still kept for explicit throws.
Bugfixes:

Code generator: Allow recursive structs.
Inline assembly: Disallow variables named like opcodes.
Type checker: Allow multiple events of the same name (but with different arities or argument types)
Natspec parser: Fix error with @param parsing and whitespace.

ethsol.0-4-8.2017-01-13:
Features:
Optimiser: Performance improvements.
Output: Print assembly in new standardized Solidity assembly format.
Bugfixes:
Remappings: Prefer longer context over longer prefix.
Type checker, code generator: enable access to events of base contracts' names.
Imports: import ".dir/a" is not a relative path. Relative paths begin with directory . or ...
Type checker, disallow inheritances of different kinds (e.g. a function and a modifier) of members of the same name

ethsol.0-4-7.2016-12-15:
Features:
Bitshift operators.
Type checker: Warn when msg.value is used in non-payable function.
Code generator: Inject the Swarm hash of a metadata file into the bytecode.
Code generator: Replace expensive memcpy precompile by simple assembly loop.
Optimizer: Some dead code elimination.
Bugfixes:

Code generator: throw if calling the identity precompile failed during memory (array) copying.
Type checker: string literals that are not valid UTF-8 cannot be converted to string type
Code generator: any non-zero value given as a boolean argument is now converted into 1.
AST Json Converter: replace VariableDefinitionStatement nodes with VariableDeclarationStatement
AST Json Converter: fix the camel case in ElementaryTypeNameExpression
AST Json Converter: replace public field with visibility in the function definition nodes

ethsol.0-4-6.2016-11-22:
Bugfixes:
Optimizer: Knowledge about state was not correctly cleared for JUMPDESTs (introduced in 0.4.5)

ethsol.0-4-5.2016-11-21:
Features:
Function types
Do-while loops: support for a do <block> while (<expr>); control structure
Inline assembly: support invalidJumpLabel as a jump label.
Type checker: now more eagerly searches for a common type of an inline array with mixed types
Code generator: generates a runtime error when an out-of-range value is converted into an enum type.
Bugfixes:

Inline assembly: calculate stack height warning correctly even when local variables are used.
Code generator: check for value transfer in non-payable constructors.
Parser: disallow empty enum definitions.
Type checker: disallow conversion between different enum types.
Interface JSON: do not include trailing new line.

ethsol.0-4-4.2016-10-31:
Bugfixes:
Type checker: forbid signed exponential that led to an incorrect use of EXP opcode.
Code generator: properly clean higher order bytes before storing in storage.

ethsol.0-4-3.2016-10-25:
Features:
Inline assembly: support both suicide and selfdestruct opcodes (note: suicide is deprecated).
Inline assembly: issue warning if stack is not balanced after block.
Include keccak256() as an alias to sha3().
Support shifting constant numbers.

Bugfixes:
Commandline interface: Disallow unknown options in solc.
Name resolver: Allow inheritance of enum definitions.
Type checker: Proper type checking for bound functions.
Type checker: fixed crash related to invalid fixed point constants
Type checker: fixed crash related to invalid literal numbers.
Type checker: super.x does not look up x in the current contract.
Code generator: expect zero stack increase after super as an expression.
Code generator: fix an internal compiler error for L.Foo for enum Foo defined in library L.
Code generator: allow inheritance of enum definitions.
Inline assembly: support the address opcode.
Inline assembly: fix parsing of assignment after a label.
Inline assembly: external variables of unsupported type (such as this, super, etc.) are properly detected as unusable.
Inline assembly: support variables within modifiers.
Optimizer: fix related to stale knowledge about SHA3 operations

ethsol.0-4-2.2016-09-17:
Bugfixes:
Code Generator: Fix library functions being called from payable functions.
Type Checker: Fixed a crash about invalid array types.
Code Generator: Fixed a call gas bug that became visible after version 0.4.0 for calls where the output is larger than the input.

ethsol.0-4-1.2016-09-09:
Build System: Fixes to allow library compilation.

ethsol.0-4-0.2016-09-08:
This release deliberately breaks backwards compatibility mostly to enforce some safety features.
The most important change is that you have to explicitly specify if functions can receive ether via the payable modifier.
Furthermore, more situations cause exceptions to be thrown.

Minimal changes to be made for upgrade:
Add payable to all functions that want to receive Ether (including the constructor and the fallback function).
Change _ to _; in modifiers.
Add version pragma to each file: pragma solidity ^0.4.0;

Breaking Changes:
Source files have to specify the compiler version they are compatible with using e.g. pragma solidity ^0.4.0; or pragma solidity >=0.4.0 <0.4.8;
Functions that want to receive Ether have to specify the new payable modifier (otherwise they throw).
Contracts that want to receive Ether with a plain "send" have to implement a fallback function with the payable modifier. Contracts now throw if no payable fallback function is defined and no function matches the signature.
Failing contract creation through "new" throws.
Division / modulus by zero throws.
Function call throws if target contract does not have code
Modifiers are required to contain _ (use if (false) _ as a workaround if needed).
Modifiers: return does not skip part in modifier after _.
Placeholder statement _ in modifier now requires explicit ;.
ecrecover now returns zero if the input is malformed (it previously returned garbage).
The constant keyword cannot be used for constructors or the fallback function.
Removed --interface (Solidity interface) output option
JSON AST: General cleanup, renamed many nodes to match their C++ names.
JSON output: srcmap-runtime renamed to srcmapRuntime.
Moved (and reworked) standard library contracts from inside the compiler to github.com/ethereum/solidity/std (import "std"; or import owned; do not work anymore).
Confusing and undocumented keyword after was removed.
New reserved words: abstract, hex, interface, payable, pure, static, view.

Features:
Hexadecimal string literals: hex"ab1248fe"
Internal: Inline assembly usable by the code generator.
Commandline interface: Using - as filename allows reading from stdin.
Interface JSON: Fallback function is now part of the ABI.
Interface: Version string now semver compatible.
Code generator: Do not provide "new account gas" if we know the called account exists.

Bugfixes:
JSON AST: Nodes were added at wrong parent
Why3 translator: Crash fix for exponentiation
Commandline Interface: linking libraries with underscores in their name.
Type Checker: Fallback function cannot return data anymore.
Code Generator: Fix crash when sha3() was used on unsupported types.
Code Generator: Manually set gas stipend for .send(0).
Lots of changes to the documentation mainly by voluntary external contributors.

ethsol.0-3-6.2016-08-10:
Features:
Formal verification: Take external effects on a contract into account.
Type Checker: Warning about unused return value of low-level calls and send.
Output: Source location and node id as part of AST output
Output: Source location mappings for bytecode
Output: Formal verification as part of json compiler output.

Bugfixes:
Commandline Interface: Do not crash if input is taken from stdin.
Scanner: Correctly support unicode escape codes in strings.
JSON output: Fix error about relative / absolute source file names.
JSON output: Fix error about invalid utf8 strings.
Code Generator: Dynamic allocation of empty array caused infinite loop.
Code Generator: Correctly calculate gas requirements for memcpy precompile.
Optimizer: Clear known state if two code paths are joined.

ethsol.0-3-5.2016-06-10:
Features:
Context-dependent path remappings (different modules can use the same library in different versions)

Bugfixes:
Type Checking: Dynamic return types were removed when fetching data from external calls, now they are replaced by an "unusable" type.
Type Checking: Overrides by constructors were considered making a function non-abstract.

ethsol.0-3-4.2016-05-31:
No change outside documentation.

ethsol.0-3-3.2016-05-27:
Allow internal library functions to be called (by "inlining")
Fractional/rational constants (only usable with fixed point types, which are still in progress)
Inline assembly has access to internal functions (as jump labels)
Running solc without arguments on a terminal will print help.
Bugfix: Remove some non-determinism in code generation.
Bugfix: Corrected usage of not / bnot / iszero in inline assembly
Bugfix: Correctly clean bytesNN types before comparison

ethsol.0-3-2.2016-04-18:
Bugfix: Inline assembly parser: byte opcode was unusable
Bugfix: Error reporting: tokens for variably-sized types were not converted to string properly
Bugfix: Dynamic arrays of structs were not deleted correctly.
Bugfix: Static arrays in constructor parameter list were not decoded correctly.

ethsol.0-3-1.2016-03-31:
Inline assembly
Bugfix: Code generation: array access with narrow types did not clean higher order bits
Bugfix: Error reporting: error reporting with unknown source location caused a crash

ethsol.0.3.0.2016-03-11:
BREAKING CHANGES:
Added new keywords assembly, foreign, fixed, ufixed, fixedNxM, ufixedNxM (for various values of M and N), timestamp
Number constant division does not round to integer, but to a fixed point type (e.g. 1 / 2 != 1, but 1 / 2 == 0.5).
Library calls now default to use DELEGATECALL (e.g. called library functions see the same value as the calling function for msg.value and msg.sender).
<address>.delegatecall as a low-level calling interface

Bugfixes:
Fixed a bug in the optimizer that resulted in comparisons being wrong.

ethsol.0-2-2.2016-02-17:
Index access for types bytes1, ..., bytes32 (only read access for now).
Bugfix: Type checker crash for wrong number of base constructor parameters.

ethsol.0-2-1.2016-01-30:
Inline arrays, i.e. var y = [1,x,f()]; if there is a common type for 1, x and f(). Note that the result is always a fixed-length memory array and conversion to dynamic-length memory arrays is not yet possible.
Import similar to ECMAScript6 import (import "abc.sol" as d and import {x, y} from "abc.sol").
Commandline compiler solc automatically resolves missing imports and allows for "include directories".
Conditional: x ? y : z
Bugfix: Fixed several bugs where the optimizer generated invalid code.
Bugfix: Enums and structs were not accessible to other contracts.
Bugfix: Fixed segfault connected to function paramater types, appeared during gas estimation.
Bugfix: Type checker crash for wrong number of base constructor parameters.
Bugfix: Allow function overloads with different array types.
Bugfix: Allow assignments of type (x) = 7.
Bugfix: Type uint176 was not available.
Bugfix: Fixed crash during type checking concerning constructor calls.
Bugfix: Fixed crash during code generation concerning invalid accessors for struct types.
Bugfix: Fixed crash during code generating concerning computing a hash of a struct type.

ethsol.0.2.0.2015-12-02:
Breaking Change: new ContractName.value(10)() has to be written as (new ContractName).value(10)()
Added selfdestruct as an alias for suicide.
Allocation of memory arrays using new.
Binding library functions to types via using x for y
addmod and mulmod (modular addition and modular multiplication with arbitrary intermediate precision)
Bugfix: Constructor arguments of fixed array type were not read correctly.
Bugfix: Memory allocation of structs containing arrays or strings.
Bugfix: Data location for explicit memory parameters in libraries was set to storage.

ethsol.0-1-7.2015-11-17:
Improved error messages for unexpected tokens.
Proof-of-concept transcompilation to why3 for formal verification of contracts.
Bugfix: Arrays (also strings) as indexed parameters of events.
Bugfix: Writing to elements of bytes or string overwrite others.
Bugfix: "Successor block not found" on Windows.
Bugfix: Using string literals in tuples.
Bugfix: Cope with invalid commit hash in version for libraries.
Bugfix: Some test framework fixes on windows.

ethsol.0-1-6.2015-10-16:
.push() for dynamic storage arrays.
Tuple expressions ((1,2,3) or return (1,2,3);)
Declaration and assignment of multiple variables (var (x,y,) = (1,2,3,4,5); or var (x,y) = f();)
Destructuring assignment ((x,y,) = (1,2,3))
Bugfix: Internal error about usage of library function with invalid types.
Bugfix: Correctly parse Library.structType a at statement level.
Bugfix: Correctly report source locations of parenthesized expressions (as part of "tuple" story).

ethsol.0-1-5.2015-10-07:
Breaking change in storage encoding: Encode short byte arrays and strings together with their length in storage.
Report warnings
Allow storage reference types for public library functions.
Access to types declared in other contracts and libraries via ..
Version stamp at beginning of runtime bytecode of libraries.
Bugfix: Problem with initialized string state variables and dynamic data in constructor.
Bugfix: Resolve dependencies concerning new automatically.
Bugfix: Allow four indexed arguments for anonymous events.
Bugfix: Detect too large integer constants in functions that accept arbitrary parameters.

ethsol.0-1-4.2015-09-30:
Bugfix: Returning fixed-size arrays.
Bugfix: combined-json output of solc.
Bugfix: Accessing fixed-size array return values.
Bugfix: Disallow assignment from literal strings to storage pointers.
Refactoring: Move type checking into its own module.

ethsol.0-1-3.2015-09-25:
throw statement.
Libraries that contain functions which are called via CALLCODE.
Linker stage for compiler to insert other contract's addresses (used for libraries).
Compiler option to output runtime part of contracts.
Compile-time out of bounds check for access to fixed-size arrays by integer constants.
Version string includes libevmasm/libethereum's version (contains the optimizer).
Bugfix: Accessors for constant public state variables.
Bugfix: Propagate exceptions in clone contracts.
Bugfix: Empty single-line comments are now treated properly.
Bugfix: Properly check the number of indexed arguments for events.
Bugfix: Strings in struct constructors.

ethsol.0-1-2.2015-08-20:
Improved commandline interface.
Explicit conversion between bytes and string.
Bugfix: Value transfer used in clone contracts.
Bugfix: Problem with strings as mapping keys.
Bugfix: Prevent usage of some operators.

ethsol.0-1-1.2015-08-04:
Strings can be used as mapping keys.
Clone contracts.
Mapping members are skipped for structs in memory.
Use only a single stack slot for storage references.
Improved error message for wrong argument count. (#2456)
Bugfix: Fix comparison between bytesXX types. (#2087)
Bugfix: Do not allow floats for integer literals. (#2078)
Bugfix: Some problem with many local variables. (#2478)
Bugfix: Correctly initialise string and bytes state variables.
Bugfix: Correctly compute gas requirements for callcode.

ethsol.0-1-0.2015-07-10:

ethsol.0.2014.10:
Solidity was started in October 2014 when neither the Ethereum network nor the virtual machine had any real-world testing, the gas costs at that time were even drastically different from what they are now.
Furthermore, some of the early design decisions were taken over from Serpent.
[https://blog.ethereum.org/2016/06/10/smart-contract-security/]

ethctp'language.Serpent (ethspt)

Description::
Serpent is a language similar to Python which can be used to develop contracts and compile to EVM bytecode. It is intended to be maximally clean and simple, combining many of the efficiency benefits of a low-level language with ease-of-use in programming style, and at the same time adding special domain-specific features for contract programming. Serpent is compiled using LLL.
Serpent on the ethereum wiki
Serpent EVM compiler
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/contracts.html#serpent]

Name::
* cpt.ethspt,
* cpt.serpent-ethctp-lang,

AddressWpg::
* https://github.com/ethereum/serpent,
* https://github.com/ethereum/wiki/wiki/Serpent,
* http://mc2-umd.github.io/ethereumlab/docs/serpent_tutorial.pdf {2015-05-21},

ethctp'language.LLL (ethlll)

Description::
LLL is a thin layer on top of the EVM that resembles Lisp. All EVM opcodes are available in LLL. On top of that it provides control structures (for, when, if, etc.) that are difficult and confusing to do in assembler. It also provides other convenient abstractions such a macros, and has the ability to include other source files as well.
[http://blog.syrinx.net/the-resurrection-of-lll-part-1/]
===
Lisp Like Language (LLL) is a low level language similar to Assembly. It is meant to be very simple and minimalistic; essentially just a tiny wrapper over coding in EVM directly.
LIBLLL in GitHub
Examples of LLL
[https://ethereum-homestead.readthedocs.io/en/latest/contracts-and-transactions/contracts.html#id4]
===
There does not appear to be active development on LLL as the Ethereum Foundation has identified Solidity as it's primary language that will receive development support from them. However, it is not "dead" in the sense that there are still bug fixes and small changes happening to the repository infrequently.

Interesting side note: Inline ASM may be eventually supported in the Solidity Ethereum language.

Vitalik Buterin said in Nov. 2015:
LLL was always meant to be very simple and minimalistic; essentially just a tiny wrapper over coding in ASM directly. In my opinion just use serpent; it has direct access to opcodes so it is a superset of LLL but it also has a whole bunch of high-level features as well for when you want them. The downside is that the compiler is more complex and so theoretically might contain more bugs.
[http://ethereum.stackexchange.com/a/519]

Name::
* cpt.ethlll,
* cpt.lecLll,
===
* cpt.ethnet'LLL,
* cpt.Lisp-Like-Language,
* cpt.LLL-ethctp-lang,

ethlll'Compiler

Description::
Solidity has been separated from the cpp-ethereum repository. For now, all LLL libraries and the compiler itself are contained in the Solidity repository.
[http://blog.syrinx.net/the-resurrection-of-lll-part-7/]
===
The LLL compiler is contained in the Ethereum C++ client, cpp-ethereum. This page [http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/] has extensive instructions on its installation for various platforms.
[http://blog.syrinx.net/the-resurrection-of-lll-part-2/]

ethlll'Resource

AddressWpg::
* forum: https://forum.ethereum.org/categories/lll,
* examples: http://ether.fund/contracts/lll,
* examples: https://github.com/androlo/EthereumContracts,
* http://blog.syrinx.net/the-resurrection-of-lll-part-1/
* https://github.com/ethereum/cpp-ethereum/wiki/LLL-PoC-6/ 04fae9e627ac84d771faddcf60098ad09230ab58,
* https://github.com/ethereum/cpp-ethereum/wiki/ LLL-Examples-for-PoC-5/04fae9e627ac84d771faddcf60098ad09230ab58,

ethctp'language.VIPER (ethvpr)

Description::
Viper is an experimental programming language that aims to provide the following features:
Bounds and overflow checking, both on array accesses and on arithmetic
Support for signed integers and decimal fixed point numbers
Decidability - it's possible to compute a precise upper bound on the gas consumption of any function call
Strong typing, including support for units (eg. timestamp, timedelta, seconds, wei, wei per second, meters per second squared)
Maximally small and understandable compiler code size
Limited support for pure functions - anything marked constant is NOT allowed to change the state
[https://github.com/ethereum/viper]

Name::
* cpt.ethvpr,
* cpt.lagViper,
* cpt.Viper-ethctp-lang,

ethvpr'Resource

AddressWpg::
* https://github.com/ethereum/viper,

ethctp'ABI (ethabi)

Description::
The JSON is called an ABI.
You do need the source code, as you have, and one way to get the ABI is to paste it in Solidity Browser, then copy the Interface value.
[http://ethereum.stackexchange.com/a/3150]
===
ABI stands for application binary interface.

In general, an ABI is the interface between two program modules, one of which is often at the level of machine code. The interface is the de facto method for encoding/decoding data into/out of the machine code.

In ethereum, it's basicly how you can encode solidity contracts for the EVM and backwards how to read the data out of transactions.
[http://ethereum.stackexchange.com/a/235]

Name::
* cpt.ethABI,
* cpt.ethevm'ABI,
* cpt.ABI-EVM,
* cpt.Application-Binary-Interface,

ethabi'Resource

Name::
* cpt.https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI,
* cpt.http://ethereum.stackexchange.com/questions/234/ what-is-an-abi-and-why-is-it-needed-to-interact-with-contracts,
* cpt.http://ethereum.stackexchange.com/questions/3149/ how-do-you-get-a-json-file-abi-from-a-known-contract-address,

ethctp'Security

Description::
But we've recently seen how easy it is to cause chaos with one misplaced line of code.
Add to that the myriad of security concerns and the difficulty in addressing them and you have a system not suitable for casual developers, especially with real money at stake.
You have to be invested, so to speak, to develop secure contracts.
[http://blog.syrinx.net/the-resurrection-of-lll-part-1/]
===
Some problems you should be aware of (and avoid):
Reentrancy [http://hackingdistributed.com/2016/07/13/reentrancy-woes/]: Do not perform external calls in contracts. If you do, ensure that they are the very last thing you do.
Send can fail [http://vessenes.com/ethereum-griefing-wallets-send-w-throw-considered-harmful/]: When sending money, your code should always be prepared for the send function to fail.
Loops can trigger gas limit [http://solidity.readthedocs.io/en/latest/security-considerations.html#gas-limit-and-loops]: Be careful when looping over state variables, which can grow in size and make gas consumption hit the limits.
Call stack depth limit [https://ethereum.stackexchange.com/questions/6260/solidity-callstack-attack]: Don’t use recursion, and be aware that any call can fail if stack depth limit is reached.
Timestamp dependency [https://github.com/ConsenSys/smart-contract-best-practices#timestamp-dependence]: Do not use timestamps in critical parts of the code, because miners can manipulate them.
These are provided just as examples of unexpected behaviors that can lead for theft or destruction of funds in your smart contract. The morale is: if you’re writing smart contracts, you’re writing code that handles real money. You should be very careful! Write tests, do code reviews, and audit your code.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05]

Name::
* cpt.ethctp'security,

AddressWpg::
* {2016-10-16} https://medium.com/@MyPaoG/explaining-the-dao-exploit-for-beginners-in-solidity-80ee84f0d470,
* {>2016.06} Making Smart Contracts Smarter http://www.comp.nus.edu.sg/~loiluu/papers/oyente.pdf,
* {2016-06-21} https://medium.com/@hrishiolickel/why-smart-contracts-fail-undiscovered-bugs-and-what-we-can-do-about-them-119aa2843007#.rucpuv5wz,
* {2016-06-19} https://blog.ethereum.org/2016/06/19/thinking-smart-contract-security/
* {2016-06-10} https://blog.ethereum.org/2016/06/10/smart-contract-security/
* {2016-05-27} A Call for a Temporary Moratorium on The DAO http://hackingdistributed.com/2016/05/27/dao-call-for-moratorium/

Dynamic-analysis

Description::
Dynamic Analysis is the process of executing code and data in real-time with the hope of finding issues during execution. It's a similar process to exploratory testing, with the same goals, but perhaps more technical.Dynamic analysis on the Ethereum blockchain has historically been costly at worst and tedious at best. If you were to perform dynamic analysis on the live Ethereum chain, transactions would cost you hard-earned Ether, which might limit the tests you perform. Moving away from the live chain is possible, but it's a tedious process to move the live data over to a separate chain, and you'd have to perform this process multiple times if you end up mucking with the chain state during testing.
[http://truffleframework.com/tutorials/chain-forking-exploiting-the-dao#what-is-dynamic-analysis-]

ethctp'EVM (link)

ethctp'Tool

ethctp'tool.DISASSEMBLER

Name::
* cpt.ethctp'disassember,

Specific::
* https://github.com/Arachnid/evmdis,

ethctp'Etherscan-disassembler

AddressWpg::
* https://etherscan.io/opcode-tool,

ethctp'Organization

DappHub

Description::
DappHub is one of the oldest smart contract development firms in the Ethereum space, first formed to create the MakerDAO stablecoin contract system. As a group with a profound understanding of Ethereum’s smart contracts ecosystem, they were a natural choice when looking for a code audit.
[http://www.newsbtc.com/2017/02/13/makerdao-saviour-nikolai-mushegian-audit-time-lh-tokens/]

Name::
* cpt.DappHub-ogn,

ethctp'Resource

AddressWpg::
* https://github.com/ethereum/go-ethereum/wiki/Contract-Tutorial,
* A 101 Noob Intro to Programming Smart Contracts on Ethereum
http://consensys.github.io/developers/articles/101-noob-intro/
* http://etherparty.io/ Etherparty is a platform that removes the complexity and management of creating and executing smart contracts
* {2015-10-29} https://medium.com/@ConsenSys/a-101-noob-intro-to-programming-smart-contracts-on-ethereum-695d15c1dab4#.mnbfhharn,
* {2016-07-29} https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05#262d,

ethctp'STATE

Description::
Contracts have state and functions.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05]

ethctp'DOING

ethctp'doing.EXECUTING

Description::
The Ethereum Virtual Machine (EVM) is where smart contracts run in Ethereum.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05#262d]

Name::
* cpt.ethctp'executing,

ethctp'doing.DEVELOPING

Description::
Well, smart contract development is not a breeze, but it can be made much more efficient by the use of testrpc. Running a full Ethereum client (geth, eth, pyethapp, parity, etc.) can be a drain on a developer's resources, especially if running on an under-powered machine. Also, unless you set up a private network and tweak the settings, you have to wait a while for blocks to be mined before checking the results of your transactions. If you're connected to the main Homestead network you'll also be paying for your development testing with real digital currency. No, it's better to start simply and install ethereumjs/testrpc. Go ahead and follow the instructions in the README file to install it on your local machine.
[http://blog.syrinx.net/the-resurrection-of-lll-part-7/]

Name::
* cpt.ethctp'developing,

ethctp'doing.CREATING

Description::
Finally, before we get started it is important to know this: Writing smart contracts can be tricky. The transition from normal code writing to smart contract writing is not seamless. The environment in which smart contract code runs is different from that of normal code. The analogy with webservices is good, because it makes smart contracts and systems of smart contracts more tangible, and it makes it simpler to use already existing concepts and tools when working with them, but writing the actual code is still difficult.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]
===
In part 1 of this series I introduced the idea that we may need to change the mindset of smart contract development to emphasize its difference from, well, almost every other type of software development.
[http://blog.syrinx.net/the-resurrection-of-lll-part-2/]

Name::
* cpt.entmsmc'creating,
* cpt.ethctp'creating,
* cpt.ethctp'writing,

Specific::
Contracts can even create other contracts using a special opcode (i.e. they do not simply call the zero address). The only difference between these create calls and normal message calls is that the payload data is executed and the result stored as code and the caller / creator receives the address of the new contract on the stack.
[http://solidity.readthedocs.io/en/v0.4.9/introduction-to-smart-contracts.html#create]

ethctp'doing.COMPILING

Name::
* cpt.ethctp'compiling,

ethctp'doing.TESTING

Name::
* cpt.ethctp'testing,

ethctp'doing.DEPLOYING

Description::
When contracts are created, a new account is first made, then the code is loaded into a VM which runs the constructor part, initializes fields etc., and then adds the runtime portion (or body) of the contract to the account.
[https://monax.io/docs/tutorials/solidity/solidity_7_updating_solidity_contracts/]

Name::
* cpt.ethctp'adding,
* cpt.ethctp'deploying,
* cpt.ethctp'uploading,

AddressWpg::
* http://hypernephelist.com/2017/01/19/deploy-ethereum-smart-contract-using-client-signature.html,

ethctp'doing.INTERACTING

Description::
Ethereum contracts are stored in special contract accounts, and the contract code is executed when the account is the target of a (successful) transaction.
If I, as a user, want to execute a contract, I first need to find out the address to the account in which the contract is stored, and then transact to it.
The parameters for a transaction are:
The gas-price I want to pay (gasPrice).
The maximum amount of gas that may be spent (gas).
The amount of ether I want to transfer (value).
My account address (from).
The target account address (to).
The nonce (nonce).
The transaction data (data).
Alternatively, it is possible to create the transaction object itself on the caller side, sign it locally, and pass in the signed bytes.
The parameters used above is used when making RPC calls, and the client will then create (and sign) the transaction object for you.
Anyways, if my transaction is valid, the Ethereum client will put that transaction data into a context, along with the current block data and some other things.
It then passes the code of the contract account and the context into a new instance of the EVM, and execute it.
[https://github.com/androlo/solidity-workshop/blob/master/tutorials/2016-03-09-advanced-solidity-I.md#accounts-transactions-and-code-execution]
===
Furthermore, every execution of a smart contract happens in public and, in addition to that, the source code is often available.
[https://solidity.readthedocs.io/en/v0.4.9/security-considerations.html#security-considerations]
===
The popular term “smart contracts” refers to code in a Contract Account – programs that execute when a transaction is sent to that account.
[https://ethereum-homestead.readthedocs.io/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]

Name::
* cpt.ethctp'interacting,

ethctp'doing.UPDATING

Description::
Introduction
This tutorial series looks at modular systems of smart-contracts, and how to continuously update the code in a reliable way. Most contracts in your application will become obsolete at some point, and will require an update. Same as in other applications. It could be because new features must be added, a bug is found, or because a better, more optimized version has been made. Updating could of course cause problems so it must be done with care. Some of the things one must ensure is that:
- updating is possible.
- the new contract works as intended.
- all the calls made during the replacement procedure was executed successfully.
- replacing the contract has no side-effects in other parts of the system.
The first point may seem obvious but it usually requires a lot of work, because updating is not possible by default; the reason is because of how accounts, code and storage works.

Accounts, Code and Storage
A very important property of EVM contracts is that when a contract has been uploaded to the chain, the code can never be changed. Contracts are stored in special account objects, and these object has references to the contract (byte) code, and a database, and some other things. The database is a key-value store, also known as ‘storage’, and is where data such as the values of contract fields is stored.

When contracts are created, a new account is first made, then the code is loaded into a VM which runs the constructor part, initializes fields etc., and then adds the runtime portion (or body) of the contract to the account. After that is done, there is no way to change the code, and there is no way to update the database except through that code.

But what if you want to change the code? What if a bug is discovered?

The way you solve that is by connecting several contracts. Contract C could call contract D as part of its functionality, and the address to D could be settable in C, meaning it would be possible to change what D is. This is best explained through a series of simple examples.

A simple storage contract
contract Data {

uint public data;

function addData(uint data_) {
if(msg.sender == 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a)
data = data_;
}

}
This simple contract allows a user to add and read an unsigned integer. The only account that is allowed to add data is the account with address 0x692a.... This address is a hex literal, so is added to the bytecode when the contract is compiled.

A potential problem is that we might want to replace this address later, or even the entire validation procedurer, but we can’t because of how code and storage works. A simple way of making the contract more flexible is to store the current owner address in storage instead, and make it possible to change.

contract DataOwnerSettable {

uint public data;

address public owner = msg.sender;

function addData(uint data_) {
if(msg.sender == owner)
data = data_;
}

function setOwner(address owner_) {
if(msg.sender == owner)
owner = owner_;
}

}
This contract has an owner field (mapped to storage). It is initialized with the address of the account that creates the contract, and can later be changed by the current owner by calling setOwner. The guard inside addData is still the same; the only thing that changed is that the owner address is no longer hard-coded.

Delegation
What if a settable owner is not enough, though? What if we want to be able to update not only the owner address, but the entire validation process? That is possible. We will do it in two steps. First we move the account validation code into a different contract.

contract AccountValidator {

address public owner = msg.sender;

function validate(address addr) constant returns (bool) {
return addr == owner;
}

function setOwner(address owner_) {
if(msg.sender == owner)
owner = owner_;
}

}

contract DataExternalValidation {

uint public data;

AccountValidator _validator;

function DataExternalValidation(address validator) {
_validator = AccountValidator(validator);
}

function addData(uint data_) {
if(_validator.validate(msg.sender))
data = data_;
}

function setValidator(address validator) {
if(_validator.validate(msg.sender))
_validator = AccountValidator(validator);
}
}
To use this, we first create an AccountValidator contract; it has the owner field now, and that field is automatically initialized with an account address. Then we create a DataExternalValidation-contract and inject the address of the validator through the contract constructor. When someone tries to write to data, it will call the validate function of the current validator contract to do the check rather then storing (or hard coding) the owner address and doing the equality check internally. Everything that has to do with access control is now delegated to the validator contract.

This is very nice, because it is now possible to replace the contract that does the actual check. Not only does it decouple this from the data, but since the AccountValidator is its own contract, we could potentially use that contract in other contracts as well and thus give owner control over more contracts then just one.

One thing remains though. We still can’t replace the code! All we have done is move the validation code out of the contract. The code of the AccountValidator contract can’t be changed anymore then that of the data contract. Fortunately, Solidity provides a very simple and powerful workaround - abstract functions.

Abstract Functions
Using abstract functions, the validator contract could be changed into this:

contract AccountValidator {
function validate(address addr) constant returns (bool);
}


contract SingleAccountValidator is AccountValidator {

address public owner = msg.sender;

function validate(address addr) constant returns (bool) {
return addr == owner;
}

function setOwner(address owner_) {
if(msg.sender == owner)
owner = owner_;
}

}
With these contracts, the data contract no longer works with a concrete validator contract, but an abstract (interface) representation. This makes sense, because it does not really needs to know what the validate function actually does, it only needs to know the signature.

Interfaces works the same way as it does in most other object-oriented languages, just declare functions without a body and they become abstract.

We still can’t change the code stored in a contract account, but we can change the code that is executed when a function is called, by delegating some functionality to other contract which are allowed to be replaced; all we need to do is change the validator contract to a different contract. For example, if we want to allow more owners then one we could use an instance of this contract:

contract MultiAccountValidator is AccountValidator {

mapping(address => bool) public owners;

function MultiAccountValidator() {
owners[msg.sender] = true;
}

function validate(address addr) constant returns (bool) {
return owners[addr];
}

function addOwner(address addr) {
if(owners[msg.sender])
owners[addr] = true;
}
}
Summary
Proper delegation is an important part of smart-contract systems. It is also something one has to consider from the very start, because the rules for how a set of contracts can be updated is generally contained in the contracts themselves. Also, the more contracts that are in the system the harder they become to manage, and a strategy that makes a small system work may not be suitable for a medium-sized or large one.

Another thing to keep in mind is that modularity comes with a cost, because it requires more code, storage variables and calls. On the public chain, where the gas limitations are quite severe (for obvious reasons), even a small modular system could be hard to deploy and run. Generally, when it comes to scalability vs. efficiency I tend to go with scalability. The large, expensive contracts in an excessively modular system can after all be improved and replaced, but if the contracts are locked down that may not be an option.

In our opinion, it is very important to at least acknowledge that the code is going to need updates, and at some point there must be a good policy for how it can be done. The alternative is to not have a plan and fail. And then maybe fail again, and again, until eventually it becomes clear.
[https://monax.io/docs/tutorials/solidity/solidity_7_updating_solidity_contracts/]

Name::
* cpt.ethctp'updating,

ethctp'doing.REMOVING

Description::
The HelloSystem contract can be deployed as-is without any problems, but once it’s been deployed it will remain on the chain for good. We need a way to remove it. In Solidity, the command for removing (or suiciding) a contract is this: selfdestruct(addr). The argument here is the address to which any remaining funds should be sent. In order to expose this functionality, we need to put it inside a (implicitly public) function. This is what a selfdestruct function could look like in HelloSystem:

contract HelloSystem {
function remove() {
selfdestruct(msg.sender);
}
}
What this would do is to remove the contract when the remove function is called, and it would return any funds it may have to the caller. Needless to say, this is not ideal. Normally when you add a selfdestruct function you want to restrict the access to it. The simplest way of doing it is to store the address of the contract creator when the contract is deployed, and only allow the creator to call selfdestruct on it. Here is how that could be implemented:

contract HelloSystem {

address owner;

// Constructor
function HelloSystem(){
owner = msg.sender;
}

function remove() {
if (msg.sender == owner){
selfdestruct(owner);
}
}

}
Note that msg.sender is not the same in the constructor as it is in the remove function. The constructor is called when the contract is added, so msg.sender will be the contract creator, but in all other functions it will be the address of the account that is calling it.

Name::
* cpt.ethctp'removing,

ethctp'doing.SERVICE

Name::
* cpt.ethctp'service,

Specific::
As you will see, it is possible to create contracts for voting, crowdfunding, blind auctions, multi-signature wallets and more.
[https://solidity.readthedocs.io/en/v0.4.9/]
===
Think of a “contract” as a program that provides services such as: voting systems, domain
name registries, financial exchanges, crowdfunding platforms, company governance, selfenforcing
contracts and agreements, intellectual property, smart property, and distributed
autonomous organizations.
[http://mc2-umd.github.io/ethereumlab/docs/serpent_tutorial.pdf]
===
Early work on smart contracts has been done by Szabo[1997] and Miller [1997].
Around the 1990s it became clear that algorithmic enforcement of agreements could become a significant force in human cooperation.
Though no specific system was proposed to implement such a system, it was proposed that the future of law would be heavily affected by such systems.
In this light, Ethereum may be seen as a general implementation of such a crypto-law system.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

SPECIFIC

Name::
* ethctp.specific,
* cpt.ethctp.specific,

Specific::
* examples: https://github.com/fivedogit/solidity-baby-steps,

ethctp.SPECIFIC-DIVISION.code

Specific::
* Binary-program,
* Assembly-program,
* Sourcecode-program,

ethctp.SPECIFIC-DIVISION.service

ethctp.SPECIFIC-DIVISION.5-types-model

Specific::
There are many different ways to classify contracts, but we’re going to use what I call “the five types model”. It is a simple model where contracts are divided up into five basic categories:

1) Database contracts
These are used only as data storage. The only logic they need is functions that allow other contracts to write, update and get data, and some simple way of checking caller permissions (whatever those permissions may be).

2) Controller contracts
These contracts operate on the storage contracts. In a flexible system, both controllers and databases can be replaced by other, similar contracts that share the same public api (although this is not always needed). Controllers can be advanced, and could for example do batched reads/writes, or read from and write to multiple different databases instead of just one.

3) Contract managing contracts (CMCs)
The purpose of these contracts is only to manage other contracts. Their main tasks is to keep track of all the contracts/components of the system, handle the communication between these components, and to make modular design easier. Keeping this functionality separate from normal business logic should be considered good practice, and has a number of positive effects on the system (as we will see later).

4) Application logic contracts (ALCs)
Application logic contracts contains application-specific code. Generally speaking, if the contract utilizes controllers and other contracts to perform application specific tasks it’s an ALC.

5) Utility contracts
These type of contracts usually perform a specific task, and can be called by other contracts without restrictions. It could be a contract that hashes strings using some algorithm, provide random numbers, or other things. They normally don’t need a lot of storage, and often have few or no dependencies.

The rationale for this division will be laid out after we’ve tried to apply it to the fund manager system, as it will be a lot more clear then.
[https://monax.io/docs/tutorials/solidity/solidity_1_the_five_types_model/]

ethctp.code.BINARY (ethctpbnr)

Description::
Contracts live on the blockchain in an Ethereum-specific binary format (EVM bytecode).
However, contracts are typically written in an Ethereum high level language, compiled into byte code using an EVM compiler, and finally uploaded on the blockchain using an Ethereum client.
[https://ethereum-homestead.readthedocs.org/en/latest/contracts-and-transactions/developer-tools.html#the-evm]

Description::
Note that in reality the contract code is written in the low-level EVM code;
[https://github.com/ethereum/wiki/wiki/White-Paper#ethereum-state-transition-function]
===
When Ethereum contracts are compiled down to byte-code the convention is not to represent them as binary, but instead to represent them as a single long hex string like the following:
6060604052600a8060106000396000f360606040526008565b00
This is the compiled byte-code for the following solidity contract:
contract Test {
}
[https://ericscrivner.me/2016/07/lets-write-ethereum-virtual-machine-disassembler/]

Name::
* cpt.ethact'code,
* cpt.ethctp.binary,
* cpt.ethctp.bytecode,
* cpt.ethctpbnr,
* cpt.ethevm'contract,
* cpt.eth'evm-bytecode,
* cpt.ethevm'code,
* cpt.ethevm'codeBinary,
* cpt.EVM-bytecode,

ethctpbnr'Storage

Description::
Programs are not stored in memory, but instead can be considered to be stored in a separate virtual read-only memory (ROM) that is accessible only through a special instruction – CODECOPY – which copies the program into main memory.
[https://ericscrivner.me/2016/07/lets-write-ethereum-virtual-machine-disassembler/]

ethctp.code.ASSEMBLY (ethctpasm)

Description::
A program in EVM is a sequence of opcodes, like this:
PUSH1 0 CALLDATALOAD SLOAD NOT PUSH1 9 JUMPI STOP JUMPDEST PUSH1 32 CALLDATALOAD PUSH1 0 CALLDATALOAD SSTORE
[https://ethereum.gitbooks.io/frontier-guide/content/opcodes,_costs,_and_gas.html]

Name::
* cpt.ethctp.assembly,
* cpt.ethctpasm,

ethctp.code.SOURCE

Name::
* cpt.ethctp.sourcecode,

ethctp.solidity

ethctp.CALLED

ethctp.CALLER

ethctp.VERIFIED

Description::
Verify and Publish your Solidity Source Code

Step 1 : Enter your Contract Source Code below.
Step 2 : If the Bytecode generated matches the existing Creation Address Bytecode, the contract is then Verified.
Step 3 : Contract Source Code is published online and publicably verifiable by anyone.

NOTES
1. To verify Contracts that accept Constructor arguments, please enter the ABI-encoded Arguments in the last box below.
2. For debugging purposes if it compiles correctly at Browser Solidity, it should also compile correctly here.
3. Contracts that use "imports" will need to have the code concatenated into one file as we do not support "imports" in separate files
[https://etherscan.io/verifyContract]

AddressWpg::
* https://etherscan.io/contractsVerified,
* https://etherchain.org/account_verify/

ethctp.DAO

Description::
Here is just one example: imagine you own a small business with your friends. Lawyers and accountants are expensive, and trusting a single partner to oversee the books can be a source of tension (even an opportunity for fraud). Complying strictly with a system in which more than one partner oversees the books can be trying and is subject to fraud whenever the protocol isn’t followed exactly.

Using a smart contract, ownership in your company and terms for the disbursal of funds can be specified at the outset. The smart contract can be written such that it is only changeable given the approval of a majority of owners. Smart contracts like these will likely be available as open source software, so you won’t even need to hire your own programmer in stead of an accountant/lawyer.

A smart contract like this scales instantly. A couple of teenagers can split revenue from a lemonade stand just as transparently as a sovereign wealth fund can disburse funds to the hundred million citizens who are entitled to it. In both cases the price of this transparency is likely to be fractions of a penny per dollar.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/web3.html#dao]

Whole::
* ethereum-dao-dApp,

ethctp.EMPLOYMENT-AGGREMENT

Description::
One example of a smart contract would be an employment agreement: A wants to pay $500 to B to build a website. The contract would work as follows: A puts $500 into the contract, and the funds are locked up. When B finishes the website, B can send a message to the contract asking to unlock the funds. If A agrees, the funds are released. If B decides not to finish the website, B can quit by sending a message to relinquish the funds. If B claims that he finished the website, but A does not agree, then after a 7-day waiting period it’s up to judge J to provide a verdict in A or B’s favor.
[https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide/]

ethctp.EXCHANGE

AddressWpg::
* https://github.com/bokkypoobah/TokenTrader/wiki,

ethctp.NAME-REGISTRY

Description::
Name registry, or “namereg” contracts generally lets people associate a name with an user account address. This is an example of such a contract:

contract Users {
// Here we store the names. Make it public to automatically generate an
// accessor function named 'users' that takes a fixed-length string as argument.
mapping (bytes32 => address) public users;

// Register the provided name with the caller address.
// Also, we don't want them to register "" as their name.
function register(bytes32 name) {
if(users[name] == 0 && name != ""){
users[name] = msg.sender;
}
}

// Unregister the provided name with the caller address.
function unregister(bytes32 name) {
if(users[name] != 0 && name != ""){
users[name] = 0x0;
}
}
}
When this contract is called, it will use msg.sender and a provided name as parameters. msg.sender refers to the address of the account that made the transaction. name is a fixed-length string that the sender includes in the transaction data. If the name is not already taken, it will be written into users.

This is a very basic but useful contract. It lets you refer to users by name instead of having to use their public address. It could be used as a basis for almost anything. It could use some more functionality, such as being able to list all the registered users, and maybe also make it possible to get a name by address, and not just address by name, and other things.
[https://monax.io/docs/tutorials/solidity/solidity_3_solidity_language_features/]

ethctp.WILL-MANAGER

CodeEthsol::


contract WillManager {
    address public willOwner;
    bytes32 public hashOfWill;

    function WillManager(){
        willOwner = msg.sender;
    }
    function newWill(string will) {
        if (msg.sender != willOwner) throw;
        hashOfWill = sha3(will);
    }
    function checkWill(string willUserIsChecking) constant returns (bool willIsCorrect) {
        return (sha3(willUserIsChecking) == hashOfWill);
    }
}
    

ethctp.EVOLUTING

Lifetime::
Contracts will exist and run as long as the whole network exists, and will only stop if they run out of gas or if they were programmed to self destruct.
[https://github.com/ethereum/go-ethereum/wiki/Contract-Tutorial]

ethnet'Wallet (ethwlt)

Name::
* cpt.ethnet'wallet,
* cpt.ethwlt,

Specific::
* Mist-Ethereum-wallet,
* MyEtherWallet,
* Parity-wallet,
* Jaxx-wallet,

ethwlt.Mist-ethereum-wallet (ethwltMst)

Description::
Ethereum wallet is a wallet, Mist is a browser.
===
The Mist Browser includes the Ethereum Wallet. The Ethereum Wallet is the Mist Browser with the browser function disabled. If you plan on using contracts use the Mist, else if you're just holding ETH, use the Ethereum Wallet.
[https://www.reddit.com/r/ethereum/comments/53nifc/confusion_should_i_download_mist_or_ethereum/d7undsl/]

Name::
* cpt.ethwlt.ethereum-wallet,
* cpt.ethwltMst, {2017-04-02}
* cpt.mist-ethereum-wallet,
* cpt.mewlt,

ethwltMst'Backup

ethwltMst'Data-folder

The data folder for Mist is stored in other places:
Windows %APPDATA%/Roaming/Mist (C:\Users\user\AppData\Roaming\Mist)
MacOSX ~/Library/Application Support/Mist
Linux ~/.config/Mist
[https://github.com/ethereum/mist]

ethwltMst'Resource

AddressWpg::
* https://blog.ethereum.org/2015/09/16/ethereum-wallet-developer-preview/
* https://blog.slock.it/the-ethereum-wallet-an-introduction-for-non-devs-9c530f75c018#.n1jtag8gq,

ethwltMst'Installing

ethwltMst'Updating

For updating simply download the new version and copy it over the old one (keep a backup of the old one if you want to be sure).
[https://github.com/ethereum/mist]

ethwltMst'Deleting

ethwltMst.MULTISIG

Description::
A multisig wallet – allows you to add any number of owner accounts and set a daily limit.
Every owner can send money from that account as long as it is under the daily limit. If above you need the signatures of the required other owners.
[https://blog.ethereum.org/2015/09/16/ethereum-wallet-developer-preview/]

ethwltMst.EVOLUTING

Wallet 0.5.2 (Beta 10)
@frozeman frozeman released this 19 days ago · 69 commits to wallet since this release

This release adds some additional log information to the splash screen and adds a feature to send all ether for an account.

Full list of changes:

Added a send-all functionality to the send page.
Add German (thanks to @ColRad) and Portuguese (@alexvandesande) translation for the wallet!
Added log infos to the splash screen, so users can see what the node is currently doing...
Improved ether display precision on the confirmation screen
Added a check with NTP servers to see if the computer time is correct, if not it shows an error
Increased error timeout
If you should notice that your wallet links lead to a white page, please run the following script in the console:
https://gist.github.com/frozeman/ed41008f4d30900da3e8
This changes all your wallet addresses internally back to lowercase (we introduced that by accident).
[https://github.com/ethereum/mist/releases]

ethwlt.MyEtherWallet

Description::
Open-Source, client-side tool for easily & securely interacting with the Ethereum network.
Created by kvhnuke & tayvano.
[https://www.myetherwallet.com/]

Name::
* cpt.MyEtherWallet,

ethnet'Human

Name::
* cpt.ethhmn,
* cpt.ethhuman,
* cpt.ethhmn,

Specific::
=== GENERIC:
* DEVELOPER,
* USER,
* GITTER-COMMUNITY,
* MEETUP-COMMUNITY,
* REDDIT-COMMUNITY,
* STACK-EXCHANGE-COMMUNITY,
=== INSTANCE:
* Alisie.Mihai,
* Buterin.Vitalic,
* Gerring.Taylor,
* Karapetsas.Lefteris,
* Vessenes.Peter,
* Wilcke.Jeffrey,
* Wood.Gavin,

ethhmn.DEVELOPER

Founder::
In 2014, Ethereum founders Vitalik Buterin, Gavin Wood and Jeffrey Wilcke began work on a next-generation blockchain that had the ambitions to implement a general, fully trustless smart contract platform.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain]

ethhmn.USER

Description::
Like in Bitcoin, users must pay small transaction fees to the network.
[https://ethereum-homestead.readthedocs.io/en/latest/introduction/what-is-ethereum.html#how-does-ethereum-work]

Name::
* cpt.ethereum-user,
* cpt.ethusr,

ethhmn.Gitter-community

Description::
Gitter Rooms
Gitter is our forum of choice for daily chat. It is the virtual coworking space where devs hang out, so it is where you can get quick help and a bit of handholding in needed.

Gitter uses Github accounts, offers Github integration (notification of pull requests etc), private channels, provides markdown formatting, and more.

Most Gitter channels are organised around particular repositories, or generic topics like research or governance. Please choose the appropriate room and keep discussions on topic.

See the full list of gitter rooms for the Ethereum organisation. Below is the list of active public channels:

go-ethereum - about geth (and tools related to the go implementation)
cpp-ethereum - about eth (and tools related to the C++ implementation)
web3.js - about web3.js, Ethereum JavaScript API library
Solidity - The Solidity Contract-Oriented Programming Language
serpent - The Serpent language for contract development
mist - GUI dapp browser, official wallet app
light-client - about light client and the LES protocol
research - Ethereum research
governance - about dev governance
whisper - anonymous datagram publishing
swarm - decentralised content storage and distribution network
EIPs - discussion of Ethereum Improvement Proposals (EIPs)
ethereumjs-lib - a JavaScript library of core Ethereum functions
devp2p - Π?V’s p2p network protocol & framework
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/community.html#gitter-rooms]

ethhmn.Meetup

AddressWpg::
* http://www.meetup.com/topics/ethereum/

ethhmn.Reddit

Description::
Reddit
The Ethereum subreddit is the most inclusive Ethereum forum, where most of the community discussion is happening and where core devs are also active. This is your forum of choice for generic discussion of news, media coverage, announcements, brainstorming. In general all things Ethereum relevant to the wider community.

Strictly no price discussion.

Also, this is not the ideal place to ask for hands-on help or post questions you expect there are clear immediate answers to (use Gitter Rooms and Stack Exchange for these, respectively).

Read the Ethereum subreddit rules before posting.

Further specialised subreddits:

/r/EthTrader - Ether trading, price and market
/r/EtherMining - Ether mining discussion
/r/Ethmarket - Marketplace for individuals looking to exchange goods and services for Ether
/r/Ethinvestor - News and prospects for Ethereum investors. Following the long term trends in the Ethereum marketplace.
/r/ethereumism/ - a bit more ism, ostic, ical, ist and tinfoil hats, pyramids and crystal ball type of views - the ethereal side of Ethereum
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/community.html#reddit]

ethhmn.Stack-Exchange

Description::
Stack Exchange
The Ethereum Stack Exchange is part of the StackExchange network of Q&A communities. StackExchange is a free Q&A site where all the questions and answers are preserved for posterity.

This is the best place to ask technical questions. Help your fellow etherians by answering questions and collect reputation points.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/community.html#stack-exchange]

AddressWpg::
* http://ethereum.stackexchange.com/

ethhmn.Buterin.Vitalik.1994 (hmnBtnVtk founder)

Description::
I was born in 1994 in Russia and moved to Canada in 2000, where I went to school. I went to the Abelard school in 2008 and entered the University of Waterloo in 2012, but quickly left in order to go on a six-month journey around the world and simultaneously engage in cryptocurrency-related projects on a full-time basis. The result of the journey was the idea behind Ethereum, a concept for a generalized cryptoeconomically secured state machine architecture, for which I continue to serve as Chief Scientist.

My primary academic interest consists of studying and exploring the complicated intersection between information theory, cryptography, sociology, epistemology, politics and economics, where mechanisms such as prediction markets, cryptoeconomic state machines (for the layman: "blockchains"), security deposits, consumer protection and reputation systems, multi-key personal security architectures and sampling-and-fallback scalability games sit at the core.

In general, I am trying to move beyond just being "a cryptocurrency person" and acquiring a more holistic and long-tail perspective of what role technology can play in helping to build more secure and trustworthy systems and reduce inefficiency and waste in society; I find that individuals that identify themselves around a particular solution (eg. cryptocurrency, progressivism, authoritarianism, libertarianism, radical decentralization) are likely to be more susceptible to confirmation biases and generally less interesting than people who identity themselves around a problem, and dedicate themselves to the search for a solution to that problem no matter where the search takes them.

I also enjoy learning languages (started Mandarin a year ago) and exploring interesting places like the one that's the background of this screen.
#informationtheory
#economics
#philosophy
#epistemology
#mechanismdesign
[https://about.me/vitalik_buterin]

Name::
* cpt.Buterin.Vitalik,
* cpt.hmnBtnVtk,
* cpt.hmn.Buterin.Vitalik,
* cpt.hmn.Vitalik-Buterin,
* cpt.Vitalik-Buterin,

hmnBtnVtk'Resource

Description::
* https://blog.ethereum.org/author/vitalik-buterin/
* https://medium.com/@VitalikButerin,

ethhmn.Karapetsas.Lefteris

Description::
Lefteris Karapetsas
Developer located in Berlin. University of Tokyo graduate. #emacs user. #ethereum core developer http://lefteris.refu.co,
===
Lefteris is the Technical Lead of slock.it
After graduating from the University of Tokyo, Lefteris has been developing backend software for various companies including Oracle and Acmepacket. He is an all-around tinkerer who loves to takes things apart and put them back together learning how they work in the process.
He has been part of Ethereum as a C++ core developer since November 2014, having worked on Solidity, the ethash algorithm, the core client and the CI system and is now leading the technical side of things towards revolutionizing the IoT world with the use of blockchains in Slock.it
[https://blog.slock.it/why-we-are-building-the-ethereum-framework-for-ubuntu-core-41b53ba685da]

Name::
* cpt.Karapetsas.Lefteris,
* cpt.Lefteris-Karapetsas,

AddressWpg::
Twitter: @lefterisjp
contact: lefteris@slock.it
* http://lefteris.refu.co/
* https://blog.slock.it/a-dao-counter-attack-613548408dd7#.s0ebn5fjx,

ethhmn.Vessenes.Peter

Description::
Peter Vessenes, the global blockchain and smart contracts expert who first drew attention to the vulnerability in The DAO, will be checking ChronoBank’s code to ensure it is secure.
[https://blog.chronobank.io/number-one-smart-contracts-security-expert-to-audit-chronobank-34f1289c9e4?goal=0_c14d97ba45-618679cae7-32550077#.89dwu8sch]

Name::
* cpt.hmn.Vessenes.Peter,
* cpt.Peter-Vessenes-hmn,

ethhmn.Wood.Gavin founder

Description::
Since my childhood economics and game theory have always interested me, even to the point of co-publishing a strategy board game of my own design. When I first read about Bitcoin in 2011, I was largely uninterested, focusing too much on the currency aspect rather than the technology. However, when I revisited it in early 2013, I began to realise new possibilities opening up between the fields of ITC and game theory, and the inevitable social change to which this would lead. A mutual friend made the introduction to Vitalik in late 2014 and Ethereum has dominated my life since.
I coded the first functional implementation of Ethereum and wrote the Yellow Paper, the first formal specification of any blockchain protocol and one of the key ways Ethereum separates itself from other blockchain-based systems. My original ideas for web three date back to early 2013, but my first post on the topic was in April 2014, later followed by a less-techy version.
Prior to Ethereum, I accrued a masters degree and doctorate in computer science. I consulted for Microsoft Reseach on technical aspects of embedded domain-specific languages, designed and implemented the first truly smart lighting controller for one of London's top nightclubs, designed and implemented most of the world's first C++ language workbench, and built the software systems of OxLegal, a smart text contract-editor.
[http://gavwood.com/]

Name::
* cpt.hmn.Wood.Gavin,
* cpt.Gavin-Wood,

ethhmn.Wilcke.Jeffrey founder

Description::
In 2014, Ethereum founders Vitalik Buterin, Gavin Wood and Jeffrey Wilcke began work on a next-generation blockchain that had the ambitions to implement a general, fully trustless smart contract platform.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain]

Name::
* cpt.Wilcke.Jeffrey,
* cpt.Jeffrey-Wilcke,

ethnet'Organization (ethogn)

Name::
* cpt.ethnet'organization,
* cpt.ethogn,

ethogn.EEA

Description::
The Enterprise Ethereum Alliance connects Fortune 500 enterprises, startups, academics, and technology vendors with Ethereum subject matter experts.
Together, we will learn from and build upon the only smart contract supporting blockchain currently running in real-world production – Ethereum – to define enterprise-grade software capable of handling the most complex, highly demanding applications at the speed of business.
[http://entethalliance.org/]

Name::
* cpt.EEA,
* cpt.Enterprice-Ethereum-Alliance,

AddressWpg::
* https://cointelegraph.com/news/ ethereum-alliance-formed-by-microsoft-intel-ubs-secures-support-of-eth-foundation,

ethogn.ETHCORE

Description::
Ethcore is the creator of Parity: The worlds fastest ethereum client that integrates directly into your browser.
...
Ethcore is dedicated to helping you get the most out of open source blockchain technology.
We come from a wide variety of backgrounds; computer science, engineering, consulting, finance and law.
We've lived through the expansive growth in capabilities that blockchain has seen over the last few years.
We are the people that brought the world the most advanced blockchain technology to date.
We are the thinkers, makers and coders that can help you realise your blockchain potential.
[https://ethcore.io/index.html]

Name::
* cpt.ethcore,
* cpt.ethcore-ogn,

ethcore'Human

Dr. Gavin Wood, founder of Parity Technologies and lead developer of the acclaimed Parity Ethereum client
[https://ethcore.io/press.html]

ethogn.Slock.it

Description::
Slock.it UG is a German company building the future infrastructure of the sharing economy. Our first product, the Ethereum Computer, brings blockchain technology to the entire home, making it possible to rent access to any compatible smart object and accept payments without intermediaries. We aim for this product and its ecosystem to be funded by a Decentralized Autonomous Organization (DAO), a type of digital company or trust where token holders benefit financially from the revenue of the products they supported - think of it as a Kickstarter on steroids.
The DAO model is free and open source for anyone to reproduce and study, and our white paper can be downloaded here.
Slock.it UG will soon make the Ethereum Computer proposal to the DAO available to the public. Once ready, it will be posted on this website.
[https://slock.it/faq.md]
===
Slock.it brings the benefits of the Blockchain - transparency, security and auditablity - to real-world objects.
Our technology can be embedded in almost any device and the first prototypes are already in the hands of developers.
[https://slock.it/]

Name::
* cpt.ethnet'Slock.it,
* cpt.slock.it,

ethogn.Ethereum-Foundation {2014}

Description::
The Ethereum Foundation is a non-profit organization registered in Switzerland, and has the purpose of managing the funds that were raised from the Ether Sale in order to best serve the Ethereum and decentralized technology ecosystem.

Founded July 2014 in Switzerland, Stiftung Ethereum’s mission is the promotion of developments of new technologies and applications, especially in the fields of new open and decentralized software architectures.

It is the aim that decentralized and open technologies will be developed, nurtured, promoted and maintained. A dominating, but not exclusive, focus is set on the promotion of the development of the Ethereum Protocol and the relevant technology to it as well as the promotion and support of applications using the Ethereum technology or protocol. Stiftung Ethereum will additionally support and advocate for a decentralized Internet in a variety of forms.
[https://ethereum-homestead.readthedocs.org/en/latest/ethereum-ecosystem/foundation.html]

Name::
* cpt.ethfdn,
* cpt.ethereum-foundation,
* cpt.ethnet'Ethereum-Foundation,
* cpt.ethfdn,

ethnet'Evaluation

Nick Szabo ?@NickSzabo4 7m7 minutes ago
Ethereum can solve any problem a computer can solve: but with far greater reliability and security and far less performance and efficiency.
[2016-02-10]

This massive parallelisation of computing across the entire Ethereum network is not done to make computation more efficient. In fact, this process makes computation on Ethereum far slower and more expensive than on a traditional “computer”. Rather, every Ethereum node runs the EVM in order to maintain consensus across the blockchain. Decentralized consensus gives Ethereum extreme levels of fault tolerance, ensures zero downtime, and makes data stored on the blockchain forever unchangeable and censorship-resistant.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#ethereum-virtual-machine]

One issue with Bitcoin, being a hardwired protocol, is that you can’t easily introduce many competing currency models on the same platform, and we know how hard it is to create a new network for each new protocol and a system to easily exchange value between networks, hence why softwired platforms like Ethereum are enticing – sure Ether’s issuance algorithm is fixed, but it is trivial to create almost an unlimited number of alternative easily exchangable currency models on the same platform without incurring the cost of creating a brand new network every time. Exciting times!
[https://www.linkedin.com/pulse/crypto-20-musings-bitcoin-money-creation-alex-batlin?]

ethnet'Resource (ethrsc)

Name::
* cpt.ethresource,
* cpt.ethrsc,

AddressWpg::
* http://www.ethereum.org/ Main site,
* ETHDEV: https://ethdev.com
* https://github.com/ethereum,
===
* {2017-03-20} https://medium.com/blockchannel/tools-and-technologies-in-the-ethereum-ecosystem-e5b7e5060eb9,
* https://karl.tech/intro-to-ethereum/
* {2016-06-22} http://cointelegraph.com/news/ethereum-101-from-idea-to-release,
* http://cointelegraph.com/news/ ethereum-to-open-blockchain-research-center-in-russias-silicon-valley,
* yellowpaper: http://gavwood.com/Paper.pdf,
* whitepaper: https://github.com/ethereum/wiki/wiki/White-Paper,
* https://ethereum.gitbooks.io/frontier-guide/content/
* https://github.com/ethereum/wiki/wiki/Glossary,
* https://medium.com/boost-vc/boost-vc-is-now-investing-in-products-built- using-ethereum-79cd72b7bd71,
=== docs
* https://ethereum-homestead.readthedocs.org/en/latest/
* http://ethdocs.org/en/latest/
* https://forum.ethereum.org/

=== developer:
* https://dappsforbeginners.wordpress.com/
=== evaluation:
* http://cointelegraph.com/news/eight-months-since-release-ethereum-is-second-only-to-bitcoin,

ethrsc'Book

AddressWpg::
* https://leanpub.com/decentralizedapplicationswithethereum,

ethrsc'EIP (etheip)

Description::
Ethereum Improvement Proposal. EIPs propose and describe changes made to Ethereum Protocol.
People wishing to submit EIPs first should propose their idea as an issue and then formalize it using a PR. After discussion it will be published here. Having an EIP here does not make it a formally accepted standard until its status becomes Active. For a EIP to become Active requires the mutual consent of the community. An EIP is not finalized until it has been implemented and is in use. Those proposing changes should consider that ultimately consent may rest with the consensus of the Ethereum users.
[https://github.com/ethereum/EIPs]

Name::
* cpt.ethnet'EIP,
* cpt.ethnet'Ethereum-Improvement-Proposal,
* cpt.EIP-ethnet,

AddressWpg::
* The EIP (Ethereum Improvement Proposal) system has been updated
- https://www.reddit.com/r/ethereum/comments/5rp8mr/ update_to_eip_ethereum_improvement_proposal_system/

ethrsc'ERC

Name::
* cpt.ethERC,
* cpt.ethnet'ERC,
* cpt.ethnet'Ethereum-request-for-comment,
* cpt.ERC-ethnet,

AddressWpg::
* https://github.com/ethereum/EIPs/issues/16,
* https://en.wikipedia.org/wiki/Request_for_Comments,

ethnet'DOING

Description::
Doing is any internal and as a whole (=service) doing.
[hmnSgm.2017-02-12]

Name::
* cpt.ethnet'doing,

ethnet'doing.MINING (link)

ethnet'doing.SERVICE (ethsvc)

Description::
In general, there are three types of applications on top of Ethereum.
The first category is financial applications, providing users with more powerful ways of managing and entering into contracts using their money.
This includes sub-currencies, financial derivatives, hedging contracts, savings wallets, wills, and ultimately even some classes of full-scale employment contracts.
The second category is semi-financial applications, where money is involved but there is also a heavy non-monetary side to what is being done; a perfect example is self-enforcing bounties for solutions to computational problems.
Finally, there are applications such as online voting and decentralized governance that are not financial at all.
[https://github.com/ethereum/wiki/wiki/White-Paper#applications]
===
The Ethereum platform itself is featureless or value-agnostic.
Similar to programming languages, it is up to entrepreneurs and developers to decide what it should be used for.
However, it is clear that certain application types benefit more than others from Ethereum’s capabilities.
Specifically, ethereum is suited for applications that automate direct interaction between peers or facilitate coordinated group action across a network.
For instance, applications for coordinating peer-to-peer marketplaces, or the automation of complex financial contracts.
Bitcoin allows for individuals to exchange cash without involving any middlemen like financial institutions, banks, or governments.
Ethereum’s impact may be more far-reaching.
In theory, financial interactions or exchanges of any complexity could be carried out automatically and reliably using code running on Ethereum.
Beyond financial applications, any environments where trust, security, and permanence are important – for instance, asset-registries, voting, governance, and the internet of things – could be massively impacted by the Ethereum platform.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#ethereum-virtual-machine]

Name::
* cpt.ethereum-service,
* cpt.ethnet'service,
* cpt.ethnet'usage,
* cpt.ethsvc,

ethsvc'Dapp (link)

SPECIFIC

Specific::
The stated purpose of the Ethereum project is to "decentralize the web" by introducing four components as part of its roadmap: static content publication, dynamic messages, trustless transactions and an integrated user-interface.
Each of these services are designed to replace some aspect of the systems currently used in the modern web, but to do so in a fully decentralised and pseudonymous manner.
[https://en.wikipedia.org/wiki/Ethereum]

ethsvc.GOAL

Description::
The stated purpose of the Ethereum project is to "decentralize the web" by introducing four components as part of its roadmap: static content publication, dynamic messages, trustless transactions and an integrated user-interface.[5]
Each of these services are designed to replace some aspect of the systems currently used in the modern web, but to do so in a fully decentralised and pseudonymous manner.[6]
[https://en.wikipedia.org/wiki/Ethereum]
===
Driving Factors.
There are many goals of this project; one key goal is to facilitate transactions between consenting individuals who would otherwise have no means to trust one another.
This may be due to geographical separation, interfacing difficulty, or perhaps the incompatibility, incompetence, unwillingness, expense, uncertainty, inconvenience or corruption of existing legal systems.
By specifying a state-change system through a rich and unambiguous language, and furthermore architecting a system such that we can reasonably expect that an agreement will be thus enforced autonomously, we can provide a means to this end.
Dealings in this proposed system would have several attributes not often found in the real world.
The incorruptibility of judgement, often difficult to find, comes naturally from a disinterested algorithmic interpreter.
Transparency, or being able to see exactly how a state or judgement came about through the transaction log and rules or instructional codes, never happens perfectly in humanbased systems since natural language is necessarily vague, information is often lacking, and plain old prejudices are difficult to shake.
Overall, I wish to provide a system such that users can be guaranteed that no matter with which other individuals, systems or organisations they interact, they can do so with absolute confidence in the possible outcomes and how those outcomes might come about.
[http://gavwood.com/Paper.pdf]

Name::
* cpt.ethnet'doing.goal,
* cpt.ethnet'goal,

ethsvc.EXCHANGE-VALUE-TOKEN

Description::
In general, there are three types of applications on top of Ethereum.
The first category is financial applications, providing users with more powerful ways of managing and entering into contracts using their money.
This includes sub-currencies, financial derivatives, hedging contracts, savings wallets, wills, and ultimately even some classes of full-scale employment contracts.
The second category is semi-financial applications, where money is involved but there is also a heavy non-monetary side to what is being done; a perfect example is self-enforcing bounties for solutions to computational problems.
Finally, there are applications such as online voting and decentralized governance that are not financial at all.
[https://github.com/ethereum/wiki/wiki/White-Paper#applications]

ethsvc.CROWDFUNDING

Specific::
* WeiFund.io,

ethsvc.STORAGE

Specific::
* Swarm,

ethsvc.ENS

Description::
ENS is the Ethereum Name Service, a distributed, open, and extensible naming system based on the Ethereum blockchain.

ENS can be used to resolve a wide variety of resources. The initial standard for ENS defines resolution for Ethereum addresses, but the system is extensible by design, allowing more resource types to be resolved in future without the core components of ENS requiring upgrades.
[https://ens.readthedocs.io/en/latest/introduction.html]

Name::
* cpt.ethENS,
* cpt.Ethereum-Name-Service,

ethsvc.Colony

Description::
Whatever you do, join Colony.
Colony makes it easy for people all over the world to build companies together online.
[https://colony.io/]

ethsvc.WEB3

Description::
Many have come to believe that an open, trustless blockchain platform like Ethereum is perfectly suited to serve as the shared “back end” to a decentralized, secure internet - Web 3.0.
An internet where core services like DNS and digital identity are decentralized, and where individuals can engage in economic interactions with each other.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/web3.html]

ethnet'GENERIC

Generic::
* program-blockchain-network,

SPECIFIC

Name::
* ethnet.specific,
* cpt.ethnet.specific,

ethnet.TEST

ethnet.MORDEN

Description::
The Morden testnet has been running since the launch of the Ethereum blockchain (July 2015). At that time, concerns about replay-attacks between Morden and Mainnet were addressed by using a nonce-offset. All accounts on Morden used a starting nonce of 2^20 instead of 0, ensuring that any transaction valid on one chain would not be valid on the other.
[https://blog.ethereum.org/2016/11/20/from-morden-to-ropsten/]
===
Morden
Morden is a name for one of the most popular public Ethereum TestNets. It is the same as the Ethereum network, but ETH on Morden is worth nothing. You can get ETH for free on Morden from many Morden "ETH faucets".
[https://karl.tech/learning-solidity-part-1-deploy-a-contract/]

Name::
* cpt.morden-ethtestnet,

ethnet.ROPSTEN

Description::
Before the current hard forks, there were already discussions about restarting the test network from a new genesis block in order to make full syncing simpler and less resource intensive. And due to the low difficulty of the testnet, the difficulty bomb was already causing noticeable increases in block times, which would continue to grow if unaddressed. So the time is now right to leave Morden behind and start a new test network.
[https://blog.ethereum.org/2016/11/20/from-morden-to-ropsten/]

Name::
* cpt.ropsten-ethtestnet,

ethnet.CLASSIC (ETCnet)

Name::
* cpt.etcnet,
* cpt.ethereum-classic-network,

etcnet'Resource

AddressWpg::
* {2016-09-27} https://cointelegraph.com/news/microsoft-supports-ethereum-classic-hosts-meetup-with-charles-hoskinson,
* {2016-07-28} http://www.coindesk.com/ethereum-classic-explained-blockchain/
* {2016-07-24} http://www.coindesk.com/ethereum-hard-fork-creates-competing-currencies-support-ethereum-classic-rises/

ethnet.SERENITY

Description::
Version 1.0 of Ethereum aka Frontier was released on July 30th 2015!
Development continues towards the versions named Homestead, Metropolis and Serenity (v1.1).
Frontier is aimed at exchangers and miners.
Homestead is aiming for Πapps developers, while Metropolis is aiming for end users with the release of the Mist browser.
Serenity is meant to move from consensus through Proof-of-Work to Proof-of-Stake.
[https://github.com/ethereum/wiki/wiki#frontier]

Name::
* cpt.ethnet.serenity,
* cpt.ethserenity,

ethnet.METROPOLIS

Description::
Version 1.0 of Ethereum aka Frontier was released on July 30th 2015! Development continues towards the versions named Homestead, Metropolis and Serenity (v1.1).
Frontier is aimed at exchangers and miners.
Homestead is aiming for Πapps developers, while Metropolis is aiming for end users with the release of the Mist browser.
Serenity is meant to move from consensus through Proof-of-Work to Proof-of-Stake.
[https://github.com/ethereum/wiki/wiki#frontier]

Name::
* cpt.ethmetropolis,

ethnet.HOMESTEAD {2016-02-29}

Description::
Released 16.02.29, hard fork 16.03.14
[https://docs.google.com/presentation/d/1JKKef7NVjgtRZFsTcAteS4VtHG0aYu7TApZhWUENbWQ/edit#slide=id.gf6277fbfe_0_13]
===
Homestead is the second major version of the Ethereum platform and is the first production release of Ethereum. It includes several protocol changes and a networking change that provides the ability to do further network upgrades. The first version of Ethereum, called the Frontier release, was essentially a beta release that allowed developers to learn, experiment, and begin building Ethereum decentralized apps and tools.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/the-homestead-release.html]
===
Version 1.0 of Ethereum aka Frontier was released on July 30th 2015! Development continues towards the versions named Homestead, Metropolis and Serenity (v1.1).
Frontier is aimed at exchangers and miners.
Homestead is aiming for Dapps developers, while Metropolis is aiming for end users with the release of the Mist browser.
Serenity is meant to move from consensus through Proof-of-Work to Proof-of-Stake.
[https://github.com/ethereum/wiki/wiki#frontier]

Name::
* cpt.ethnet.homestead,
* cpt.ethhomestead,

ethnet.FRONTIER (ethnet.1-0.2015-07-26)

Description::
Frontier (Released 15.07.26, Genesis 15.07.30)
[https://docs.google.com/presentation/d/1JKKef7NVjgtRZFsTcAteS4VtHG0aYu7TApZhWUENbWQ/edit#slide=id.gf6277fbfe_0_13]
===
Version 1.0 of Ethereum aka Frontier was released on July 30th 2015! Development continues towards the versions named Homestead, Metropolis and Serenity (v1.1).
Frontier is aimed at exchangers and miners.
Homestead is aiming for Ðapps developers, while Metropolis is aiming for end users with the release of the Mist browser.
Serenity is meant to move from consensus through Proof-of-Work to Proof-of-Stake.
[https://github.com/ethereum/wiki/wiki#frontier]

Name::
* cpt.ethereum.frontier,
* cpt.ethfrontier,
* cpt.ethnet.frontier.2015-07-26,

ethnet.PUBLIC.NO

Name::
* cpt.ethnet.private,
* cpt.ethnet.publicNo,

AddressWpg::
* http://hypernephelist.com/2016/05/30/deploying-a-private-Ethereum-blockchain.html,

ethnet.EVOLUTING

Name::
* cpt.ethnet.evoluting,

{time.2016.07}
=== Ethereum’s successful hard fork, Coinbase integration
The partial price and market cap recovery can be traced to Ethereum’s successful hard fork. The fork was agreed upon in response to the DAO hack, which resulted in the theft of a large amount of Ether. A proposed hard fork in the currency, isolating the stolen funds and rendering them without value, was readily agreed to by the Ethereum mining community and subsequently implemented, restoring confidence, and with it, value.
Additionally, cryptocurrency exchange/wallet provider/merchant solution Coinbase recently announced Ethereum integration, solidifying the currency’s place as being respected by the cryptocurrency “establishment.”
[https://cointelegraph.com/news/ethereum-shoots-up-as-bitcoin-drops-below-80-market-dominance]

{time.2015.11}
===
With the widening interest beyond the core Ethereum community, it was time to spread our collective wings to help the rest of the world see the same ideas that many early adopters had. Following a short delay, DEVCON1 was announced to take place in London, England for a week in November 2015. Almost 400 people joined together at this location for an entire week, totaling 80 talks and topics about the Ethereum ecosystem.
[https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/]

{time.2015-07-30}
=== FRONTIER
Version 1.0 of Ethereum aka Frontier was released on July 30th 2015! Development continues towards the versions named Homestead, Metropolis and Serenity (v1.1).
Frontier is aimed at exchangers and miners.
Homestead is aiming for Πapps developers, while Metropolis is aiming for end users with the release of the Mist browser.
Serenity is meant to move from consensus through Proof-of-Work to Proof-of-Stake.
[https://github.com/ethereum/wiki/wiki#frontier]

{time.2014.11}
===
Only two months later, in November 2014, the majority of the Ethereum project team was assembled and descended upon Berlin to participate in the first Ethereum conference: DEVCON0. Although many had spoke via Skype, this was a time when most of the project members met for the first time. At this proto-conference, in a modest but beautiful space, developers took turns standing in front of peers explaining their vision for any given segment of the many protocols that would be necessary to develop “Web3”.
[https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/]

{time.2014.07}
=== ETHER INITIAL ALLOCATION:
Beginning in July 2014, Ethereum distributed the initial allocation of ether via a 42-day public ether presale, netting 31,591 bitcoins, worth $18,439,086 at that time, in exchange for about 60,102,216 ether. The results of the sale were initially used to pay back mounting legal debts and also for the months of developer effort that had yet to be compensated, and to finance the ongoing development of the Ethereum.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/history-of-ethereum.html#the-ethereum-foundation-and-the-ether-presale]

{time.2014.04}
===
By April of 2014, Dr. Gavin Wood published the Ethereum Yellow Paper that would serve as the technical bible and de-facto specification for the Ethereum Virtual Machine (EVM).
[https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/]

{time.2014-01-25}
===
Ethereum was formally announced on January 25, 2014.
[https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/]

{time.2013}
Many of these took the form of “alt coins” - separate blockchains with cryptocurrencies of their own which improved on the original bitcoin protocol to add new features or capabilities.
In late 2013, Ethereum’s inventor Vitalik Buterin proposed that a single blockchain with the capability to be reprogrammed to perform any arbitrarily complex computation could subsume these many other projects.
[https://ethereum-homestead.readthedocs.io/en/latest/introduction/what-is-ethereum.html]
===
Buterin [2013a] first proposed the kernel of this work in late November, 2013.
Though now evolved in many ways, the key functionality of a blockchain with a Turing-complete language and an effectively unlimited inter-transaction storage capability remains unchanged.
[https://ethereum.github.io/yellowpaper/paper.pdf (e5eff48.2017-03-02)]

Origing::
Ethereum was designed as a smart contract platform. Its origin is actually linked to a critique made by Vitalik Buterin on bitcoin as a very limited smart contract platform.
[https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05#262d]

bcnnet.time.NEM (XEMnet {2015-03-29})

Description::
NEM XEM
NEM is a peer to peer platform providing solutions for blockchain multisigns, payments, messaging, naming system, asset making and other services.
One of the key features of NEM is that it doesn't require much computing power as other cryptos and has a low entry barrier for developers.
The main point of NEM is to provide cheap and super secure services worldwide.
NEM is fueled by its own cryptocurrency, named XEM.
[https://changelly.com/supported-currencies]
===
NEM (New Economy Movement) was originally conceived as a clone of the well-known Nxt blockchain, but rapidly developed into a completely new project with its own codebase. It has since grown into a thriving community and ecosystem with a market cap of around $45 million, placing it in the top 10 of all cryptocurrencies.
[https://blog.chronobank.io/chronobank-partners-with-nem-to-create-chrononem-wallet-eebdc176351d]
===
Features
- NEM is built 100% from scratch (not a fork of any existing project)
- NEM is built with test-driven development
- NEM uses innovative Proof-of-Importance algorithm: first reputation based blockchain algorithm
- NEM has customizable assets called Mosaics. Editable supply, levies, description, transferability and more.
- NEM has Namespaces to help maintain reputation of Mosaics
- NEM improves different features of POW and POS coins, being more efficient and environmentally friendly
- NEM one minute average block times
- NEM is the first crypto with delegated harvesting
- NEM is the first with localized spam protection
- NEM is the first with Eigentrust peer reputation management
- NEM is the first editable m-of-n multisig with blockchain based alerts
- NEM is the first every P2P network with nodes time syncing in a decentralized manner
- NEM offers encrypted, unencrypted and hex messaging
- NEM is easy to install with a one click installer
- NEM zero monetary inflation (fixed supply, all 9 billion coins released at launch).
- NEM relatively large egalitarian distribution
- NEM will offer a mobile wallet for both iOS and Android (coming soon)
[http://wiki.nem.io/index.php/About:_General]
===
NEM is an advanced, bitcoin 2.0+ system that has been in development since January of 2014. The development team is comprised of professional software engineers and scientists who went to great lengths to study ways to improve existing blockchain platforms and created NEM from scratch to be more secure and easier to develop for than any other platform. Instead of using Proof-of-Work mining, which is wasteful and not eco-friendly, a new concensus algorithm, Proof-of-Importance was developed, which uses low energy and also rewards participation in the economy. NEM was developed using modern software engineering practices such as test-driven development, has over 3,000 unit tests, and was tested on an open network for over 9 months before its release on 2015/3//31.
The currency of NEM is called XEM, but the transfer of XEM is far from the only utility of the NEM blockchain platform. NEM mosaics provide the most advance implementation of digital assets to date and can be associated with blockchain-level domain names. A reputation system and smart contracts/decentralized computing systems are also in development, which will make NEM the most comprehensive block chain platform to date when completed.
[http://mijin.io/en/about-mijin]

Name::
* cpt.bcnnetNEM,
* cpt.nemnet,
* cpt.netNEM,
* cpt.New-Economy-Movement-bcnnet,
* cpt.xemnet,

xemnet'Protocol

xemprl'Implementation-language

Description::
NEM is a global open source project.
It is a peer-to-peer blockchain platform and is written in Java and JavaScript with 100% original source code.
[http://wiki.nem.io/index.php/About:_General]

xemprl'Resource

AddressWpg::
* NEM Technical Reference, Version 1.0, May 15, 2015: https://www.nem.io/NEM_techRef.pdf,
* Apostille White Paper: https://www.nem.io/ApostilleWhitePaper.pdf,
* Catapult White Paper: https://www.nem.io/catapultwhitepaper.pdf,

xemnet'Node

xemnod'Node-server (NIS)

Description::
NEM 2-Tier Architecture
NEM's design architecture consists of two components. One is the Node server or NEM Infrastructure Server (NIS). The other is the NEM Client. The NIS is connected to the p2p network and acts as a gateway for the Client. NEM’s platform is therefore, a two-tier solution, following the convention of the web architecture.The first version of the NEM Client is called the NEM Community Client (NCC).The NCC is basically a client software that includes a wallet. Both the NCC and NIS can be configured to run off the same machine. As it is run from the same machine, both the NCC and the NIS will be exposed to the Internet. A second use case is to separate the NIS from the NCC.
The NIS can thus be configured to act as an additional layer of protection to the NCC thereby making the NCC reasonably protected within its own confines as it can be made not to connect to the Internet. In addition, one can have the option of putting a firewall between the NCC and the NIS, the NCC is therefore two steps away from the Internet. This means that the NCC can be made to work in stealth mode. This type of modular design makes the NCC insulated from external attacks. It is almost impossible to break into the NCC if the NCC is only connected to the NIS through another firewall. If there is any attack on the wallet, it is almost certain that the attack is from within the network rather than from outside the network. Another feature of this architecture is that the NCC acts as a wallet and can be used on any computer, whereas the NIS represents a node on the NEM network and can be hosted from remote locations. Additionally, the client can be loaded onto any computer and a person's wallet can be reloaded as long as this person has her private keys.
The NIS can be placed on a Demilitarized Zone (DMZ) behind a firewall and therefore itself is protected from the Internet. Hence, there exists many options and configurations. This makes NEM's architecture secure.
Subsequent to the NCC, more wallets have been created. These are the mobile wallets (to be released soon), the light-wallet that was created using Javascript, and the nanowallet, which is an augmented and amended version of the light wallet.
The NIS has a full set of APIs. The initial NCC has a webserver with useful APIs. These two layers create a firewall of security in between the wallet where all important information is stored and signed, while the NIS announces transactions.
[http://wiki.nem.io/index.php/NEM_2-Tier_Architecture]

Name::
* cpt.xemnet'NIS,
* cpt.xemnet'NEM-Infrastructure-Server,
* cpt.xemnet'NIS,

xemnet'Blockchain

Description::
A ‘Blockchain’ is sort of like that piece of paper in a checkbook that allows you to keep track of everything. The NEM ‘Blockchain’ keeps track of how much was spent, with whom, on what day, and even keeps track of the exact time. Now imagine if everyone in the world shared a piece of paper like this. It has everyone's spending on it. If you make changes everyone can see it, but you can only make changes if everyone agrees that this change actually happened. Everyone, at any time, can look at it and check to make sure it's right. Now, we all agree that this piece of paper is right. Usually, 'Blockchains' keep track of who owns what money and when it is moved around. In NEM, this is still true - but NEM also keeps track of other kinds of things, which will be talked about at the end of this blog.
[https://blog.nem.io/the-beginners-guide-to-nem/]

xembcn'Block (xemblk)

xemblk'Block-time

GENERATION_TIME:
- NEM one minute average block times
[http://wiki.nem.io/index.php/About:_General]

xembcn'Block-Explorer (xembex)

AddressWpg::
* http://explorer.ournem.com/#/
* http://chain.nem.ninja/#/blocks/0,
* BlockH1 http://explorer.ournem.com/#/s_block?height=1,
- http://chain.nem.ninja/#/block/1,

xemnet'Consensus-algorithm

Description::
'Proof of Importance' is a way in NEM to make sure that all the computers on a network agree with each other and helps decide who can ‘harvest’. This helps to keep everything safe from hackers and keeps NEM working well. It’s a big part of how we make sure people are telling the truth about the things that our ‘Blockchain’ keeps track of, like how much money a person owns. ‘Proof of Importance’ helps to make sure that every person using NEM can agree on everything and stops people from spending more than they have. It uses mathematical formulas made from information about an account to decide how important a person is to the group.
The more important you are, the better chance you have of getting that free money when you’re ‘Harvesting’! That means people want to be important, so they won’t lie! Once you are important, there are a couple more things that decide just how important you actually are. Your ‘Vested Balance’, who you send money with, how often you send money, and how much you send are all considered when figuring out how important you are. To fake all of these things would take more money than a liar would stand to make. The best part? This means we can always trust an important person.
[https://blog.nem.io/the-beginners-guide-to-nem/]

Name::
* cpt.proof-of-importance-xemnet,
* cpt.xemnet'proof-of-importance,

xembcn'Address

Description::
A NEM address is a base-323 encoded triplet consisting of
- a network byte
- a 160-bit hash of the account’s public key
- a 4 byte checksum
The checksum allows for quick recognition of mistyped addresses. It is possible to send XEM to any valid address even if the address has not previously participated in any transaction. If nobody owns the private key of the account to which the XEM is sent, the XEM is most likely lost forever.
However, you are unlikely to send XEM to an unowned address, because it would have to be generated with the right checksum. This means that the more likely scenario is that the owner lost the key, which caused all the XEM to be lost.
[http://wiki.nem.io/index.php/About:_Addresses]

Name::
* cpt.xemnet'address,

xemnet'Exchange-value-unit.Consensus (XEMevuC)

Description::
NEM (XEM)
$0.034570 (30.59%)
0.00002862 BTC (31.14%)
Rank 6
Currency
Market Cap
$311,128,200
257,544 BTC
Volume (24h)
$9,820,020
8,129 BTC
Circulating Supply
8,999,999,999 XEM
[https://coinmarketcap.com/currencies/nem/] {2017-04-19}
===
NEM XEM
NEM is a peer to peer platform providing solutions for blockchain multisigns, payments, messaging, naming system, asset making and other services.
One of the key features of NEM is that it doesn't require much computing power as other cryptos and has a low entry barrier for developers.
The main point of NEM is to provide cheap and super secure services worldwide. NEM is fueled by its own cryptocurrency, named XEM.
[https://changelly.com/supported-currencies]
===
What is XEM?
"XEM" is NEM's currency code. It is similar to USD, EUR, CNY, JPY etc.
[https://www.nem.io/faq.html#whatsXem]

Name::
* cpt.XEM,
* cpt.xemcevu,
* cpt.xemcevu,

xemevuC'OgnExchange

Description::
Buy XEM at one of these exchanges
POLONIEX
BTC38
BITCOIN.co.id
Changelly
===
Buy XEM directly with cash
Zaif
BTC38

xemevuC'Exchange-rate

AddressWpg::
* https://coinmarketcap.com/currencies/nem/

{time.2017-04-22}
$0.031823 (9.31%)
0.00002602 BTC (9.88%)

{time.2017-01-30}
1 BTC = 179,856.11510791 XEM,

xemevuC'Distribution

Description::
- NEM relatively large egalitarian distribution
[http://wiki.nem.io/index.php/About:_General]

xemevuC'Issuance

Description::
- NEM zero monetary inflation (fixed supply, all 9 billion coins released at launch).
[http://wiki.nem.io/index.php/About:_General]

xemevuC.SPECIFIC

How many XEM are in circulation?
The total amount is 8,999,999,999 XEM.
[https://www.nem.io/faq.html]

xemnet'Program

xempgm.Client

Description::
NEM 2-Tier Architecture
NEM's design architecture consists of two components. One is the Node server or NEM Infrastructure Server (NIS). The other is the NEM Client. The NIS is connected to the p2p network and acts as a gateway for the Client. NEM’s platform is therefore, a two-tier solution, following the convention of the web architecture.The first version of the NEM Client is called the NEM Community Client (NCC).The NCC is basically a client software that includes a wallet. Both the NCC and NIS can be configured to run off the same machine. As it is run from the same machine, both the NCC and the NIS will be exposed to the Internet. A second use case is to separate the NIS from the NCC.
Subsequent to the NCC, more wallets have been created. These are the mobile wallets (to be released soon), the light-wallet that was created using Javascript, and the nanowallet, which is an augmented and amended version of the light wallet.
[http://wiki.nem.io/index.php/NEM_2-Tier_Architecture]

xempgm.NCC

xemnet'Wallet

xemnet'Light-wallet

xemnet'Mobile-wallet

xemnet'Nanowallet

xemnet'Organization

xemnet'NEM-Foundation

Description::
In July 2016 the NEM community agreed (consensus of the community with blockchain-based voting) to set up a Company Limited by Guarantee (CLG) in Singapore, NEM.io Foundation Ltd. (“NEM Foundation”) to represent the roof international organisation. This CLG is set up in December 2016 and will lead country/regional chapters which are being registered as local non-profit societies.
[https://blog.nem.io/nem-mijin-blockchain-technology-briefing-january-2017/]

Name::
* cpt.NEM-Foundation,

xemnet'Problem

1- If you are syncing but an your machine says something like "NIS is synchronizing. At block 221896, est. 126 days behind. (at block 221896)" and doesn't move and sync but seems stuck, please try to delete your database and start a new chain. You can speed up this process by just downloading a new chain and inserting it manually. Here are some tutorials with step by step instructions. http://blog.nem.io/how-to-delete-your-local-copy-of-the-blockchain/7 http://blog.nem.io/how-to-import-the-database-file-provided-by-developers/4
2- If there is a major problem, you might have to delete all NEM software on the computer and start over from scratch installing. Here is a tutorial for that. http://blog.nem.io/how-to-remove-old-nem-software-versions/12
Generally speaking the installer is the most buggy. Most people that have a problem with the installer find that using the stand alone works. Instructions for the stand alone are here. http://blog.nem.io/nem-tutorial-list/8
If you have your private key backed up, or want to make a new wallet with a pass phrase, the Lightwallet is also very safe and easy to use. http://nem.io/install.html8
At some point NEM will fully transition away from NCC to Lightwallet and mobile apps for iOS and Android and there will no longer be any of these problems.
3- If you are having trouble logging in.
Go to C:\Users\yourname\nem\ncc and delete the ncc.cfg file and the accounts_cache_mainnet.json file.
4. If NIS wont start. Go to C:\Users\yourname\nem and delete the nis.lock file.
5- If you are having a problem with Java, please try to update your Java.
[http://wiki.nem.io/index.php/Tutorial:_Common_Problems]

xemnet'Resource

AddressWpg::
* https://www.nem.io/
* https://www.nem.io/faq.html,
* https://blog.nem.io/
* {2017-05-18} NEM Surpasses Litecoin, Posts 55 Percent Growth on Thursday, 2000 Percent In Two Months: https://cointelegraph.com/,
* {2017-03-14} Xhai Studios Integrates NEM Blockchain To Ditch Middlemen, Payment Processor: https://cointelegraph.com/news/xhai-studios-integrates-nem-blockchain-to-ditch...processor,

xemnet'DOING

xemnet'Service

Description::
NEM is a peer to peer platform providing solutions for blockchain multisigns, payments, messaging, naming system, asset making and other services.
[https://changelly.com/supported-currencies]

xemnet'Namespace

Description::
The basic things you need to know about NEM’s recent fork are Namespaces and Mosaics features. The easiest way to appreciate it is the domain and file analogy on the internet. Imagine that a domain address has to be unique in a root (lowest level). Namespace addresses this unique feature. If one creates a namespace, that namespace will appear unique in the NEM ecosystem. For example, if one were to create a namespace called “foo” that namespace cannot be created by a second person. Just like on the internet, a domain can have a sub-domain, namespaces can have sub-namespaces. And it is possible to create multiple sub-namespaces with the same name (example: “foo.bar” and “foo2.bar”, “bar” is the sub-namespace/sub-domain). A namespace and a domain name is the same in this document and shall be used interchangeably. Namespaces can have up to 3 levels, a namespace and its two levels of sub-namespace domains.
[https://blog.nem.io/mosaics-and-namespaces-2/]
===
NEM has a built in system for people to register names called Namespaces. These names can be used to run a business on the blockchain.
[https://blog.nem.io/the-beginners-guide-to-nem/]

xemnet'Mosaic

Description::
The basic things you need to know about NEM’s recent fork are Namespaces and Mosaics features. The easiest way to appreciate it is the domain and file analogy on the internet.
...
A mosaic is like a file hosted on a domain and represents an asset, and like a website and directory, a mosaic can have the same name as other files on other domains. But a total address of a namespace + mosaic will always be unique as the root namespace is unique even if the rest of it isn't.
[https://blog.nem.io/mosaics-and-namespaces-2/]

Significance of Namespaces and Mosaics
Namespaces gives rise to a unique naming convention. Mosaics gives rise to the creation of assets. Some call it a colored coin while others may call it a token. We call it a mosaic it will take on many types of properties when it is full blown (hence we call it a mosaic as it evolves to form the “big picture”) .
Our initial release is a mosaic that has the following properties:
description
Free-text description of the mosaic up to 128 characters, changeable by the owner.
divisibility
Adding this makes a quantity divisible, up to 6 decimal places. A divisibility of 2 means 2 decimal places.
information
Arbitrary byte array that can be in the property, with a size limit; this is the same as “messages” in NEM.
domain name or namespace (required)
Globally unique fully qualified domain name that is registered and owned by the mosaic creator. A top level namespace has a size limit of 16 characters, sub-namespaces have a limit of 64 characters.
name (required)
Name of the mosaic, up to a size limit of 32 characters; must be unique under the domain name.
mutable quantity
The amount of mosaic in circulation. If immutable, it is fixed, otherwise it is dynamic, i.e., more can be created or destroyed later.
transferability
If no, it means it can only be transferred between user and creator. Otherwise, it is freely transferable between third parties.
levy
A levy allows the creator of a mosaic to set a tax on any subsequent transactions of that mosaic. This levy is sent to an account of the creators choosing. Any mosaic or XEM may be used as a levy.
In the future Mosaics might have their feature set expanded to among other things include dividends, reputation, recallability, composability (ability to put assets in assets), issuer covered fees on trades, expansion of the non-transferable white list, levies to be redefinable, variable expirations, smart contracts, storage, and processing power. In addition to discussing these up grades to Mosaics, we have also discussed making Namespaces have transferable names.
[https://blog.nem.io/mosaics-and-namespaces-2/]

xemnet.EVOLUTING

{time.2015}:
NEM finally launched on March 31, 2015.
[http://wiki.nem.io/index.php/About:_General]

{time.2014}:
NEM has gone through extensive open alpha testing starting June 25, 2014, followed by lengthy and comprehensive beta testing starting on October 20, 2014.
[http://wiki.nem.io/index.php/About:_General]

bcnnet.time.Dash (DASHnet {2014-01-19})

Description::
What is Dash?
Dash (DASH) is a privacy-centric digital currency with instant transactions. It is based on the Bitcoin software, but it has a two tier network that improves it. Dash allows you to remain anonymous while you make transactions, similar to cash.
With Bitcoin, transactions are published to the blockchain and you can prove who made them or to whom, but with Dash the anonymization technology makes it impossible to trace them. This is important because the blockchain is accessible to anyone with an internet connection – a significant drawback for those don’t wish their transaction history and balances to be publicly available. Dash does this through a mixing protocol utilizing an innovative decentralized network of servers called Masternodes, avoiding the need for a trusted third party that could compromise the integrity of the system.
Dash transactions are almost instantly confirmed by the Masternodes network. This is a great improvement on Bitcoin’s system, where confirmations take much longer because all the work is done by the miners.
For full details please read the Dash whitepaper.
[https://www.dash.org/what-is-dash/]

Name::
* cpt.netCbc.dash,
* cpt.dash-cryptocurrency-net,
* cpt.dashnet,
* cpt.netDash,
===
Dash , which stands for ‘Digital Cash’
[https://www.dash.org/binaries/evo/DashPaper-v13-v1.pdf]

Generic::
* Blockchain-network-with-builtin-decentralized-governance,
* Exchange-value-unit-blockchain-network,

dashnet'whole.DAO (dashdao)

dashnet'Protocol (dashprl)

dashnet'White-paper (dashwpr)

AddressWpg::
* https://www.dash.org/wp-content/uploads/2015/04/Dash-WhitepaperV1.pdf,
* https://github.com/dashpay/dash/wiki/Whitepaper,

Dash: A Privacy­Centric Crypto­Currency
Evan Duffield ­ evan@dashpay.io
Daniel Diaz ­ daniel@dashpay.io

Abstract

A crypto­currency based on Bitcoin, the work of Satoshi Nakamoto, with various improvements such as a two­tier incentivized network, known as the Masternode network.
Included are other improvements such as Darksend, for increasing fungibility and InstantX which allows instant transaction confirmation without a centralized authority.

1 Introduction

Bitcoin[ 1 ] is a cryptocurrency that has emerged as a popular medium of exchange and is the first digital currency that has attracted a substantial number of users[ 2 ].
Since it’s inception in 2009, Bitcoin has been rapidly growing in mainstream adoption and merchant usage[ 3 ].
A main issue with the acceptance of Bitcoin in point­of­sale situations is the time required to wait for the network to confirm the transaction made is valid, alternatively payment companies have created methods to allow vendors to take zero­confirmation transactions, but these solutions utilize a trusted counterparty to mediate the transaction outside of the protocol.

Bitcoin provides pseudonymous transactions in a public ledger, with a one­to­one relationship between sender and receiver.
This provides a permanent record of all transactions that have ever taken place on the network[ 5 ].
Bitcoin is widely known in academic circles to provide a low level of privacy, although with this limitation many people still entrust their financial history to it’s blockchain.

Dash is the first privacy­centric cryptographic currency based on the work of Satoshi Nakamoto.
In this paper we propose a series of improvements to Bitcoin resulting in a decentralized, strongly anonymous crypto­currency, with tamper­proof instant transactions and a secondary peer­to­peer network incentivized to provide services to the Dash Network.

2 Masternode Network

Full nodes are servers running on a p2p network, that allow peers to use them to receive updates about the events on the network.
These nodes require significant amounts of traffic and other resources that carry substantial cost.
As a result, on the Bitcoin network a steady decrease in the amount of these nodes has been observed for some time[ 7 ] and as a result block propagation have been upwards of 40 seconds[ 14].
Many solutions have beenproposed such as a new reward scheme by Microsoft Research[ 4 ] and the Bitnodes incentive program[ 6 ].

imgDashwprFig1.png
Figure 1: Full nodes in the spring of 2014

These nodes are very important to the health of the network.
They provide clients with the ability to synchronize and quick propagation of messages throughout the network.
We propose adding a secondary network, known as the Dash Masternode network.
These nodes will have high availability and provide a required level of service to the network in order to take part in the Masternode Reward Program.

2.1 Masternode Reward Program - Cost and Payments

Much of the reason for the decrease of full nodes on the Bitcoin network, is the lack of incentive to run one.
Over time the cost of running a full node increases as the network gets used more, creating more bandwidth and costing the operator more money.
As the cost rises, operators consolidate their services to be cheaper to run or run a light client, which doesn’t help the network at all.

Masternodes are full nodes, just like in the Bitcoin network, except they must provide a level of service to the network and have a bond of collateral to participate.
Collateral is never forfeit and is safe while the Masternode is operating.
This allows investors to provide a service to the network, earn interest on their investment and reduce the volatility of the currency.

To run a Masternode, the node must store 1000 DASH.
When active, nodes provide services to clients on the network and in return are paid in the form of a dividend.
This allows the users to pay for the services and earn a return on investment. Masternodes are all paid from the same pool of money, approximately 45% [footnote] of the total block reward is dedicated to this program.

Due to the fact that the Masternode rewards program is a fixed percentage and the Masternode network nodes are fluctuating, expected Masternode rewards will vary according to the current total count of active Masternodes.
Payments for a standard day for running a Masternode can be calculated by using the following formula:

(n/t) * r * b * a

Where:
n is the number of Masternodes an operator controls
t is the total number of Masternodes
r is the current block reward (presently averaging about 5 DASH)
b is blocks in an average day. For the Dash network this usually is 576.
a is the average Masternode payment (45% of the average block amount)

Return on investment for running a Masternode can be calculated as

((n/t) * r * b * a * 365) / 1000

Where variables are the same as above.

The cost associated with running a Masternode creates a hard and soft limit of active nodes on the network.
Currently with 5.3 million DASH in circulation, only 5300 nodes could possibly be running on the network.
The soft limit is imposed by the price it costs to acquire a node and the limited liquidity on exchanges due to usage of Dash as a currency and not merely an investment.

2.2 Deterministic Ordering

A special deterministic algorithm is used to create a pseudo­random ordering of the Masternodes.
By using the hash from the proof­of­work for each block, security of this functionality will be provided by the mining network.

Pseudo Code, for selecting a Masternode:
For(mastenode in masternodes){
n = masternode.CalculateScore();
if(n > best_score){
best_score = n;
winning_node = masternode;
}}
CMasterNode::CalculateScore(){
n1 = GetProofOfWorkHash(nBlockHeight); // get the hash of this block
n2 = Hash(n1); //hash the POW hash to increase the entropy
n3 = abs(n2 ­ masternode_vin);
return n3;
}

The example code can be extended further to provide rankings of Masternodes also, a “second”, “third”, “fourth” Masternode in the list to be selected.

2.3 Trustless Quorums

Currently the Dash network has ~2400 active Masternodes[ 8 ].
By requiring 1000 DASH collateral to become an active Masternode, we create a system in which no one can control the entire network of Masternodes.
For example, if someone wants to control 50% of the Masternode network, they would have to buy 2,300,000 DASH from the open market.
This would raise the price substantially and it would become impossible to acquire the needed DASH.

With the addition of the Masternode network and the collateral requirements, we can use this secondary network to do highly sensitive tasks in a trustless way, where no single entity can control the outcome.
By selecting N pseudo random Masternodes from the total pool to perform the same task, these nodes can act as an oracle, without having the whole network do the task.

For an example implementation of a trustless quorum see InstantX[ 9 ], which uses quorums to approve transactions and lock the inputs or the proof­of­service implementation[ 10].

Another example use for trustless quorums can include utilizing the masternode network as a decentralized oracle for financial markets, making secure decentralized contracts a possibility.
As an example contract, if AAPL is over $300 on Dec 31, 2016 pay public key A, otherwise pay public key B.

2.4 Roles and Proof-Of-Service

Masternodes can provide any number of extra services to the network.
As a proof­of­concept, our first implementation included Darksend and InstantX.
By utilizing what we call proof­of­service, we can require that these nodes are online, responding and even at the correct block height.

Bad actors could also run Masternodes, but not provide any of the quality service that is required of the rest of the network.
To reduce the possibility of people using the system to their advantage nodes must ping the rest of the network to ensure they remain active.
This work is done by the Masternode network by selecting 2 quorums per block.
Quorum A checks the service of Quorum B each block.
Quorum A are the closest nodes to the current block hash, while Quorum B are the furthest nodes from said hash.

Masternode A (1) checks Masternode B (rank 2300)
Masternode A (2) checks Masternode B (rank 2299)
Masternode A (3) checks Masternode B (rank 2298)

All work done to check the network to prove that nodes are active is done by the Masternode network itself.
Approximately 1% of the network will be checked each block.
This results in the entire network being checked about six times per day.
In order to keep this system trustless, we select nodes randomly via the Quorum system, then we also require a minimum of six violations in order to deactivate a node.

In order to trick this system, an attacker will need to be selected six times in a row.
Otherwise, violations will be cancelled out by the system as other nodes are selected by the quorum system.

Attacker Controlled
Masternodes /
Total Masternodes
Required Picked
Times In A Row
Probability of
success (n/t)^r
DASH Required
1/2300 6 6.75e­21 1000DASH
10/2300 6 6.75e­15 10,000DASH
100/2300 6 6.75e­09 100,000DASH
500/2300 6 0.01055% 500,000DASH
1000/2300 6 0.6755% 1,000,000DASH

Table 1. The probability of tricking the system representing one individual Masternode as failing proof­of­service

Where:
n is the total number of nodes controlled by the attacker
t is the total number of Masternodes in the network
r is the depth of the chain
The selection of Masternodes is pseudo random based on the Quorum system

2.5 Masternode Protocol

The Masternodes are propagated around the network using a series of protocol extensions including a Masternode announce message and Masternode ping message.
These two messages are all that’s needed to make a node active on the network, beyond these there are other messages for executing a proof­of­service request, Darksend and InstantX.

Masternodes are originally formed by sending 1000 DASH to a specific address in a wallet that will “activate” the node making it capable of being propagated across the network.
A secondary private key is created that is used for signing all further messages.
The latter key allows the wallet to be completely locked when running in a standalone mode.

A cold mode is made possible by utilizing the secondary private key on two separate machines.
The primary “hot” client signs the 1000 DASH input including the secondary signing private key in the message.
Soon after the “cold” client sees a message including its secondary key and activates as a Masternode.
This allows the “hot” client to be deactivated (client turned off) and leaves no possibility of an attacker gaining access to the 1000 DASH by gaining access to the Masternode after activation.

Upon starting a Masternode sends a “Masternode Announce” message to the network, containing:

Message: (1K DASH Input, Reachable IP Address, Signature, Signature Time, 1K Dash Public Key, Secondary Public Key, Donation Public Key, Donation Percentage)

Every 15 minutes thereafter, a ping message is sent proving the node is still alive.

Message: (1K DASH Input, Signature (using secondary key), Signature Time, Stop?)

After a time­to­live has expired the network will remove an inactive node from the network, causing the node to not be used by clients or paid.
Nodes can also ping the network constantly, but if they do not have their ports open, they will eventually be flagged as inactive and not be paid.

2.6 Propagation of the Masternode List

New clients entering the Dash network must be made aware of the currently active Masternodes on the network to be able to utilize their services.
As soon as they join the meshnetwork, a command is sent to their peers asking for the known list of Masternodes.
A cache object is used for clients to record Masternodes and their current status, so when clients restart they will simply load this file rather than asking for the full list of Masternodes.

2.7 Payments via Mining and Enforcement

To ensure that each Masternode is paid it’s fair share of the block reward, the network must enforce that blocks pay the correct Masternode.
If a miner is non­compliant their blocks must be rejected by the network, otherwise cheating will be incentivized.

We propose a strategy where Masternodes form quorums, select a winning Masternode and broadcast their message.
After N messages have been broadcast to select the same target payee, a consensus will be formed and that block in question will be required to pay that Masternode.

When mining on the network, pool software (websites that merge the efforts of individual miners) use the RPC API interface to get information about how to make a block.
To pay the Masternodes this interface must be extended by adding a secondary payee to GetBlockTemplate.
Pools then propagate their successfully mined blocks, with a split payment between themselves and a Masternode.

3 Darksend

We believe it’s important to have a standard trust­less implementation for improving the privacy of it’s users in the reference client that provides a high degree of privacy.
Other clients such as electrum, Android and iPhone will also have the same anonymity layer implemented directly and utilize the protocol extensions.
This allows users a common experience anonymizing funds using a well understood system.

Darksend is an improved and extended version of the CoinJoin.
In addition to the core concept of CoinJoin, we employ a series of improvements such as decentralization, strong anonymity by using a chaining approach , denominations and passive ahead­of­time mixing.

The greatest challenge when improving privacy and fungibility of a crypto­currency is doing it in a way that does not obscure the entire blockchain.
In Bitcoin based crypto currencies, one can tell which outputs are unspent and which are not, commonly called UTXO, which stands for unspent transaction output.
This results in a public ledger that allows any user to act as guarantor of the integrity of transactions.
The Bitcoin protocol is designed to function without the participation of trusted counterparties, in their absence, it is critical that auditing capabilities remain readily accessible to the users through the public blockchain.
Our goal is to improve privacy and fungibility without losing these key elements that we believe make a successful currency.

By having a decentralized mixing service within the currency we gain the ability to keep the currency itself perfectly fungible.
Fungibility is an attribute of money, that dictates that all units of a currency should remain equal.
When you receive money within a currency, it shouldn’t come with any history from the previous users of the currency or the users should have an easy way to disassociate themselves from that history, thus keeping all coins equal.
At the same time, any user should be able to act as an auditor to guarantee the financial integrity of the public ledger without compromising others privacy.

To improve the fungibility and keep the integrity of the public blockchain, we propose using an ahead­of­time decentralized trustless mixing strategy.
To be effective at keeping the currency fungible, this service is directly built into the currency, easy to use and safe for the average user.

3.1 Tracing Coinjoin By Amounts

A common strategy in existing Bitcoin implementations of Coinjoin is simply merging transactions together.
This exposes the users to various methods of following the the users coins through these joined transaction.

imgDashwprFig2.png
Figure 2: An example Coinjoin transaction with 2 users [11][12]

In this transaction, 0.05BTC was sent through the mixer.
To identify the source of the money, one simply has to add up the values on the right until they match one of the values on the left.

Breaking apart the transaction:

0.05+0.0499+0.0001(fee) = 0.10BTC.
0.0499+0.05940182+0.0001(fee) = 0.10940182BTC.

This gets exponentially more difficult as more users are added to the mixer. However, these
sessions can be retroactively de­anonymized at any point in the future.

3.2 Through linking and Forward Linking

In other proposed implementations of Coinjoin, it’s possible that a user anonymizes money then eventually sends change from that transaction to an exchange or other entity that knows the users identity.
This breaks the anonymity and allows the entity to walk backwards through that users transactions.
We call this type of attack “Forward Linking”

imgDashwprFig3.png
Figure 3: Forward Change Linking

In this example, Alice anonymizes 1.2BTC, which goes to 2 outputs, 1BTC and 0.2BTC.
She then spends .7BTC from the 1BTC output, receiving change of 0.3BTC.
That 0.3BTC then goes to an identifiable source, confirming Alice also spent the .7BTC in the prior transaction.

To identify the sender of the anonymous transaction, start at the “exchange” transaction and go backwards in the blockchain till you get to the “Alice sends 0.7BTC anonymously”.
As the exchange, you know it was your user who just recently bought something anonymously, thus breaking the anonymity completely. We call this type of attack “Through Change Linking”.

imgDashwprFig4.png
Figure 4: Through Change Linking

In the second example, Alice buys 1.2 BTC from coinbase, then anonymizes this amount into a 1BTC output. She then spends the 1BTC, receives change in the amount of 0.3BTC and then combines that with her 0.2BTC earlier change.

By combining the change from the anonymous transaction (0.3BTC) and the change she received from the CoinJoin transaction, you can link the entire history before and after, completely breaking the anonymity.

3.3 Improved Privacy and DOS resistance

Darksend uses the fact that a transaction can be formed by multiple parties and made out to multiple parties to merge funds together in a way where they can’t be uncoupled thereafter.
Given that all Darksend transactions are setup for users to pay themselves, the system is highly secure against theft and users coins always remain safe.
Currently to mix using DarkSend requires at least 3 participants.

imgDashwprFig5.png
Figure 5: Three users submit denominated funds into a common transaction. Users pay themselves back in the form of new outputs, which are randomly ordered.

To improve the privacy of the system as a whole we propose using common denominations of 0.1DASH, 1DASH, 10DASH AND 100DASH.
In each mixing session, all users should submit the same denominations as inputs and outputs.
In addition to denominations, fees should be removed from the transactions and charged in bulk in separate, sporadic unlinkable transactions.

To address the possible DOS attacks, we propose all users submit a transaction as collateral to the pool when joining.
This transaction will be made out to themselves and will pay a high fee to miners.
In the case when a user submits a request to the mixing pool, they must provide collateral at the beginning of this exchange. If at any point any user fails to cooperate, by refusing to sign for example, the collateral transaction will automatically be broadcasted.
This will make it expensive to do a sustained attack on the privacy network.

3.4 Passive Anonymization of funds and chaining

Darksend is limited to 1000 DASH per session and requires multiple sessions to thoroughly anonymize significant amounts of money.
To make the user experience easy and make timing attacks very difficult, Darksend runs in a passive mode.
At set intervals, a user’s client will request to join with other clients via a Masternode.
Upon entry into the Masternode, a queueobject is propagated throughout the network detailing the denominations the user is looking to anonymize, but no information that can be used to identify the user.

Each Darksend session can be thought of as an independent event increasing the anonymity of user’s funds.
However each session is limited to three clients, so an observer has a one in three chance of being able to follow a transaction.
To increase the quality of anonymity provided, a chaining approach is employed, which funds are sent through multiple Masternodes, one after another.

Depth Of The Chain Possible Users (n)^r
2 9
4 81
8 6561

Table 2. How many users could possibly be involved in N mixing sessions.

3.5 Security Considerations

As transactions are merged, Masternodes can possibly “snoop” on users funds as they pass through.
This is not considered a serious limitation due to the requirement for Masternode’s to hold 1000 DASH and the fact that users utilize random Masternodes that they select to host their joins.
The probability of following a transaction throughout a chaining event can be calculated as follows

Attacker Controlled
Masternodes /
Total Masternodes
Depth Of The Chain Probability of
success (n/t)^r
DASH Required
10/1010 2 9.80e­05 10,000DASH
10/1010 4 9.60e­09 10,000DASH
10/1010 8 9.51e­11 10,000DASH
100/1100 2 8.26e­03 100,000DASH
100/1100 4 6.83e­05 100,000DASH
100/1100 8 4.66e­09 100,000DASH
1000/2000 2 25% 1,000,000DASH
1000/2000 4 6.25% 1,000,000DASH
1000/2000 8 0.39% 1,000,000DASH
2000/3000 2 44.4% 2,000,000DASH
2000/3000 4 19.75% 2,000,000DASH
2000/3000 8 3.90% 2,000,000DASH

Table 3. The probability of follow a Darksend transaction on the network given the attacker controls N Nodes.

Where:
n is the total number of nodes controlled by the attacker
t is the total number of Masternodes in the network
r is the depth of the chain
The selection of Masternodes is random

Considering the limited supply of DASH (5.3 million at the time of writing) and the low liquidity available on the market, it becomes an impossibility to attain a large enough number of Masternodes to succeed at such an attack.

Extending the system by blinding Masternodes to the transactions taking place on their node will also greatly enhance the security of the system.

3.6 Masternode Blinding via Relay System

In section 3.4 we describe the probabilities of following a single transaction through multiple sessions of Darksend mixing.
This can further be addressed by blinding Masternodes, so they can’t see which inputs/outputs belong to which users.
To do this we propose a simple relay system that users can use to protect their identity.

Instead of a user submitting the inputs and outputs directly into the pool, they will pick a random Masternode from the network and request that it relays the inputs/outputs/signatures to the target Masternode. This means that the Masternode will receive N sets of inputs/outputs and N sets of signatures. Each set belongs to one of the users, but the Masternode can’t know which belongs to which.

4 Instant Transactions via InstantX

By utilizing Masternode quorums, users are able to send and receive instant irreversible transactions. Once a quorum has been formed, the inputs of the transaction are locked to only be spendable in a specific transaction, a transaction lock takes about 4 seconds to be set currently on the network.
If consensus is reached on a lock by the Masternode network, all conflicting transactions or conflicting blocks would be rejected thereafter, unless they matched the exact transaction ID of the lock in place.

This will allow vendors to use mobile devices in place of traditional POS systems for real world commerce and users to quickly settle face­to­face non commercial transactions as with traditional cash.
This is done without a central authority.
An extensive overview of this feature can be found in the InstantX white paper[ 10].

5 Additional Improvements

5.1 x11

x11 is a widely used hashing algorithm, which takes a different approach, known as algorithm chaining.
x11 consists of all 11 SHA3 contestants[ 13], each hash is calculated then submitted to the next algorithm in the chain.
By utilizing multiple algorithms, the likelihood that an ASIC is created for the currency is minimal until a later part of it’s life cycle.

In the life cycle of Bitcoin, mining began with hobbyists which used CPUs to mine the currency, then shortly after GPU software was created, which quickly replaced the CPUs.
Years after the GPUs cycle, ASICs or Application Specific Integrated Circuits were created, which quickly replaced the GPUs.

Due to the complexity and die size required to create an ASIC for mining x11, we expect that it will take considerably longer than it did in Bitcoin, allowing for hobbyists to take part in the mining for a longer period of time.
We believe this is highly important for good distribution and growth of a cryptocurrency.

Another benefit of the chaining hashing approach is high end CPUs give an average return similar to that of GPUs.
Also GPUs have been reported to run 30­50% cooler, with less wattage than the Scrypt algorithm used by most current crypto­currencies.

5.2 Mining Supply

A different approach to restricting the inflation of mining is taken in Dash, using a 7% reduction of the supply per year.
This is done as opposed to halving implemented by other currencies.
In addition supply each block is directly tied to the amount of miners on the network; more miners result in lower mining rewards.

Production of Dash is scheduled to carry on throughout this century and onto the next, slowly grinding down until finally near the year 2150, production will cease.

imgDashwprFig6.png
Figure 6: Mining Reward Schedule

5 Conclusion

This paper introduces various concepts to improve the design of bitcoin resulting in improved privacy and fungibility for the average user, less price volatility and quicker message propagation throughout the network.
This is all accomplished by utilizing an incentivized two­tier model, rather than the existing single­tier model in other crypto­currencies such as Bitcoin.
By utilizing this alternative network design it becomes possible to add many types of services such as decentralized mixing of coins, instant transactions and decentralized oracles using masternode quorums.

References

1. A peer­to­peer electronic cash system (2008)

2. http://eprints.qut.edu.au/69169/1/Boyen_accepted_draft.pdf

3. https://www.cryptocoinsnews.com/3­solutions­instant­bitcoin­confirmations/

4. http://research.microsoft.com/pubs/156072/bitcoin.pdf

5. http://www0.cs.ucl.ac.uk/staff/s.meiklejohn/files/imc13.pdf

6. https://getaddr.bitnodes.io/nodes/incentive/

7. https://medium.com/zapchain­magazine/why­don­t­people­run­bitcoin­nodes­anymored4da0b45aae5

8. https://dashninja.pl/

9. https://www.dashpay.io/wp­content/uploads/2014/09/InstantTX.pdf

10. https://github.com/dashpay/dash/blob/master/src/Masternode­pos.cpp,

11. https://blockchain.info/tx/4eb3b2f9fe597d0aef6e43b58bbaa7b8fb727e645fa89f922952f3e57ee6d603

12. https://blockchain.info/tx/1694122b34c8543d01ad422ce600d59f8d8fde495ac9ddd894edc7139aed7617

13. http://en.wikipedia.org/wiki/NIST_hash_function_competition#Finalists

14. http://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf

dashnet'Masternode

AddressWpg::
* https://www.youtube.com/watch?v=hm7IYkgIOXc,

dashnet'Blockchain (dashbcn)

dashbcn'Block-Explorer (dashbex)

AddressWpg::
* https://chainz.cryptoid.info/dash/
* Block#1 https://chainz.cryptoid.info/dash/block.dws?1.htm,

dashnet'Exchange-value-unit.Consensus (DASHcevu)

Description::
Dash DASH
Dash is a cryptocurrency previously known as Darkcoin or XCoin.
It uses a coin-mixing service called Darksend that prevents transactions from being traced and adds privacy to the network.
Quick confirmation makes Dash payments an effective way to send money worldwide.
Two-Tier network opens new possibilities to integrate various services unavailable for other currencies.
[https://changelly.com/supported-currencies]
===
Dash (formerly known as Darkcoin) is an open source peer-to-peer cryptocurrency that uses a system called Darksend to add privacy to transactions.[1] It was rebranded from "Darkcoin" to "Dash" on March 25, 2015, a portmanteau of "Digital Cash".[2]

Dash uses a chained hashing algorithm approach called X11 for the proof-of-work. Instead of using the SHA-256 (from well-known Secure Hash Algorithm family) or scrypt it uses 11 rounds of different hashing functions.[3]

With chained hashing, high end CPUs give an average return similar to that of GPUs. Another side effect of the algorithm is that GPUs run at about 30% less electrical power than scrypt and 30% to 50% cooler, putting less stress on the computing setup and ensuring lower energy bills for miners.[4]
[https://en.wikipedia.org/wiki/Dash_%28cryptocurrency%29]

Name::
* cpt.Darkcoin,
* cpt.DASHcevu,
* cpt.dashcevt,
* cpt.mnyDash,
* cpt.mnyDarkcoin,

Generic::
* consensus-token,

dashevuC'ogn.EXCHANGE

Specific::
* https://poloniex.com/
* https://www.xbtce.com/
* https://btc-e.com/
* https://www.livecoin.net/
* https://exmo.com/
* https://bittrex.com/
* http://www.btc38.com/

dashnet'Governance-system (dashdgbb)

Description::
Governance in a decentralized project is difficult, because by definition there are no central authorities to make decisions for the project.
In Dash, such decisions are made by the network, that is, by the owners of masternodes.
The DGBB system allows masternodes to vote for or against proposals, which can then be implemented (or not) by Dash’s developers. A key example is early in 2016, when Dash’s Core Team submitted a proposal to the network asking whether the blocksize should be increased to 2 MB. Within 24 hours, consensus had been reached to approve this change. Compare this to Bitcoin, where debate on the blocksize has been raging for nearly three years.
[https://www.dash.org/governance/]
===
DDGB consists of three components: Proposals, Votes, and Budgets.
Anyone can submit a Proposal for a small fee.
Shareholders (owners of network Masternodes) cast votes for or against proposals.
Approved Proposals become Budgets.
Budgets are paid directly from the blockchain.
[https://dashpay.atlassian.net/wiki/display/DOC/Using+Decentralized+Governance%3A+Proposals%2C+Voting%2C+and+Budgets]

Name::
* cpt.Decentralized-Governance-By-Blockchain,
* cpt.DGBB,

Description::
Dash names the system Decentralized Governance by Blockchain (DGBB ) and since DGBB’s release in August 2015 all Dash operations have been under the control of the Dash network via the DGBB system, with new proposals made and funded each month autonomously by the network.
In fact since the inception of this system, the Dash network has funded the promotion of Dash conferences around the world, acquired high­value property directly from the blockchain (dash.org) and many other projects that were important to the long term success of the ecosystem.
[https://www.dash.org/binaries/evo/DashPaper-v13-v1.pdf]

Description::
Recently, new blockchains equipped with built in governance system tried to cope with this problem. Dash is the forerunner to implement governance system in their blockchain. Dash, who call themselves as the “First Self Governing, Self Funding Protocol”,proposed a decentralized management system based on the masternode voting mechanism in 2015. Dash has been steadily developed using this governance system. Recently the price of Dash surpassed over $100 (March 16th, 2017). A stable governance structure may be the reason for the increased value.
[http://cryptocentral.info/topic/913/boscoin-bos-a-congressional-cryptocurrency-platform-for-trust-contracts/4]

Description::
Governance and Funding[edit]
Dash is the first decentralized autonomous organization powered by a Sybil proof decentralized governance and funding system.[3]
DGBB or Decentralized Governance By Blockchain as it's called is a decentralized process by which the network determines where money is spent.
Each Masternode operator is given the ability to use 1 vote on each governance proposal, which is a completely open and decentralized process.[15]
Community interaction with proposal submitters is done usually through community driven websites, like DashWhale.[16]
These websites allow proposal submitters to provide multiple drafts, then lobby for community support before finally submitting their project to the network for a vote.
After the submitter has enough support, the network will automatically pay out the required funds in the next super block, which happen monthly.
Although, only in use a few months, the funding system has seen growth of it's month revenue, from originally ~$14 thousands in September 2015, to nearly $30 thousands in March 2016.[17]
Eventually the budget system can theoretically scale to $9M per month at a market cap of $500M.[18]
Since it's inception, the project has used the system for important assets like acquiring dash.org,[19] adoption into the Lamassu ATM[20][21] and the Dash N' Drink instant soda machine,[22] along with funding many public events.[23][24][25]
[https://en.wikipedia.org/wiki/Dash_(cryptocurrency)#Governance_and_Funding]

dashdgbb'Funding

Description::
The DGBB also provides a means for Dash to fund its own development. While other projects have to depend on donations or premined endowments, Dash uses 10% of the block reward to fund its own development. Every time a block is mined, 45% of the reward goes to the miner, 45% goes to a masternode, and the remaining 10% is not created until the end of the month. During the month, anybody can make a budget proposal to the network. If that proposal is approved by at least 10% of the masternode network, then at the end of the month a series of "superblocks" will be created. At that time, the block rewards that were not paid out (10% of each block) will be used to fund approved proposals. The network thus funds itself by reserving 10% of the block reward for budget projects.
[https://www.dash.org/governance/]

Name::
* cpt.dash-funding,
* cpt.dashnet'funding,

dashdgbb'Owner-of-masternode

Description::
Governance in a decentralized project is difficult, because by definition there are no central authorities to make decisions for the project.
In Dash, such decisions are made by the network, that is, by the owners of masternodes.
[https://dashpay.atlassian.net/wiki/pages/viewpage.action?pageId=84672534]

dashdgbb'Proposal (dashppl)

Description::
During the month, anybody can make a budget proposal to the network. If that proposal is approved by at least 10%* of the masternode network, then at the end of the month a series of "superblocks" will be created. At that time, the block rewards that were not paid out (10% of each block) will be used to fund approved proposals. The network thus funds itself by reserving 10% of the block reward for budget projects.
*The actual calculation is (YES VOTES - NO VOTES) > (Total Number of Masternodes / 10)
[https://dashpay.atlassian.net/wiki/pages/viewpage.action?pageId=84672534]

Name::
* cpt.dashppl,

dashppl'Structure

Structure::
The following information is required to create a proposal:
proposal-name -- a unique label, 20 characters or less
url -- a proposer-created webpage or forum post containing detailed proposal information
payment-count -- how many cycles the proposal is requesting payment
block-start -- the requested start of proposal payments
dash-address -- the address to receive proposal payments
monthly-payment-dash -- the requested payment amount
[https://dashpay.atlassian.net/wiki/display/DOC/Using+Decentralized+Governance%3A+Proposals%2C+Voting%2C+and+Budgets]

dashppl'Resource

AddressWpg::
* https://proposal.dash.org/

dashppl.BUDGET

Description::
Budgets
Budgets are proposals which receive 10% of the possible votes (currently about 410 out of 4100) more yes votes than no votes.
Budgets can be nullified at any time if vote totals (cast or re-cast) fall below the approval threshold.
Budgets are processed (paid) in order of yes minus no votes. More popular budgets get payment priority.
Approximately 7500 dash (in 2016) are available for each budget cycle, declining by %7.1 per year.
[https://dashpay.atlassian.net/wiki/display/DOC/Using+Decentralized+Governance%3A+Proposals%2C+Voting%2C+and+Budgets]

Name::
* cpt.dash-budget-proposal,

dashdgbb'Vote

Description::
Votes
Votes are cast by Masternode owners.
Votes can be changed at any time.
Votes are counted approximately every 28.8 days. (16616 blocks)
[https://dashpay.atlassian.net/wiki/display/DOC/Using+Decentralized+Governance%3A+Proposals%2C+Voting%2C+and+Budgets]

dashdgbb'Resource

AddressWpg::
* https://www.dash.org/governance/
* https://dashpay.atlassian.net/wiki/pages/viewpage.action?pageId=84672534,

dashnet'Statistics (dashstat)

Name::
* cpt.dashnet'statistics,
* cpt.dash-network-statistics,

AddressWpg::
* https://dash-stats.firebaseapp.com/

dashnet'Wallet (dashwlt)

Name::
* cpt.dashwlt,
* cpt.dashwallet,

Generic::
* blockchain-wallet,

Specific::
* DashCore-wallet,
* Electrum-wallet,
* Mobile-wallet,
* Hardware-wallet,
* Paper-wallet,
* Online-wallet,

AddressWpg::
* https://dashpay.atlassian.net/wiki/pages/viewpage.action?pageId=1146941,

dashnet'Human (dashhmn)

Name::
* cpt.dashhmn,
* cpt.dashnet'human,

AddressWpg::
* https://www.dash.org/team/

dashnet'Resource

AddressWpg::
* https://www.dash.org/
* https://github.com/dashpay/dash,
* https://www.dashcentral.org/gettingstarted,
===
* {2016-05-03} http://cointelegraph.com/news/dash-aims-to-surpass-bitcoin-and-become-the-future-of-money,
* {2014-03-29} https://www.dash.org/forum/threads/the-birth-of-darkcoin.162/

dashnet.EVOLUTING

dashnet.EVOLUTION (v13)

Description::
In the third major iteration of Dash named Dash Evolution (v13), additional architectural and functional improvements are being developed such as
the addition of a 3rd network tier (T3) comprised of a decentralized API (DAPI) that provides users with trustless remote­access via direct HTTP and RPC connections into the Dash network that are serviced by randomly comprised Masternode Quorums,
a decentralized wallet protocol that enables users to buy merchandise from the web in a trustless way (DashPay) without the need to host their own full­node or use a centralized payment gateway,
a 2nd­tier high­performance shard­based file­storage system that provides improved methods for transaction confirmation and double­spend prevention (DashDrive),
Primitives for representing users and accounts as objects to enable users to connect and transact with friends using aliases and rate each other to build trust networks (Social Wallet),
decentralized network administration by Masternode operators (DNA),
a new dynamic query language for use across Dash Evolution components providing an extensible object­based cross­tier communications standard (DSQL),
addition of a historical chain of all signatures used on the Masternode network for use in secure quorum selection (Quorum Chains),
improved Privacy architecture,
automatic instant transactions (AutoIX) and
rated­services provided by network operators such as fiat converters.
[https://www.dash.org/binaries/evo/DashPaper-v13-v1.pdf]

Name::
* cpt.Dash-Evolution,

bcnnet.time.FairCoop (FAIRnet {2014-01-07})

Cpt-created: 2015.08, 25,

Description::
Faircoin, the Faircoop ecosystem cryptocurrency
FairCoin is the monetary base system for FairCoop.
The key purposes of FairCoin is to be used as a tool for economic redistribution, increasing justice, the empowerment of grassroots groups, the transformation of social and economic relations and the creation of commons.
[https://fair.coop/faircoin/]

Name::
* cpt.bcnnet.FairCoop,
* cpt.FairCoop-network,
* cpt.fairnet,
* cpt.faircoin-network,

fairnet'Protocol

FairCoin V2 white paper {2015.05}

AddressWpg::
* https://chain.fair-coin.org/download/FairCoin2-Draft.pdf,

FairCoin V2 white paper
DRAFT
Document version 1.0
Thomas Kφnig, May 2015
tom@fair-coin.org

FairCoin is the monetary base system for FairCoop The Earth Cooperative for a Fair Economy (see https://fair.coop).
In FairCoop we develop tools and transfer knowledge that enable everybody to participate in a fair global economy.
The existing version of the FairCoin wallet relies on mining and minting technology to secure the block chain.
The problem is that neither mining nor minting can truly be considered fair, because both confer an advantage on the already rich.
Therefore we decided to create a new version of FairCoin which corrects these issues.

With FairCoin2 (in short FC2) we can create block chain-based software that is fair, secure and power-saving.
It is based on cooperation and not on competition.

It is built on the code-base of a recent version of the Bitcoin core client.
This enables us to benefit from the latest developments made by the dedicated Bitcoin developers.
Also the comprehensive infrastructure that already exists around Bitcoin can be adopted for FairCoin with minimal effort.

This document describes the design concepts we have implemented in FairCoin2.
Some knowledge about how Bitcoin works is required to fully understand the contents of this document.
The first paragraphs provide a rather high-level view of the FC2 concept and the further you read the more technical and detailed it becomes.

1 Overview

In contrast to other cryptocurrencies FC2 does not implement any mining or minting (aka. staking) functionality, which are both competitive systems.
Block generation is instead performed by so-called certified validation nodes (in short CVN).
These nodes cooperate to secure the network.
To run a CVN one needs to complete a certification procedure which is called node certification procedure (in short NCP) that is operated by FairCoop (https://fair.coop/node-certificationprocedure/).
The requirements to operate such a node are described in chapter 3.1.
Please note that definition of the NCP is out of the scope of this document and will be defined in a separate document.
In the long run the NCP should be powered by a reputation system.

There is no reward for block creation (no coinbase/stake transaction).
Therefore the money supply does not change over time and is fixed at the time we migrate to FC2.
Nevertheless, the transaction fees go to the respective block creators to compensate their efforts for running a CVN.

Certain chain parameters, e.g. the transaction fee will be dynamically adjustable (without the need of releasing a new wallet version) by democratic community consensus.
The FairCoin team needs the approval (digital signatures) of a high percentage of all the active CVN.

2 Block generation

Block generation takes place in a collaborative way.
All CVN work together to bundle pending transactions into transaction blocks.
These blocks can only be created by CVN every 3 minutes.
Which CVN will generate the next block is determined by its time-weight.
The time-weight describes how much time has passed since a CVN created its last block.
If for example CVN A created a block 50 blocks ago and CVN B created it 55 blocks ago CVN B will be chosen to create the next block in the network.
There can always only be exactly one CVN with the highest timeweight.
If a new CVN joins the network for the first time it will be elected to create the next block.
Between two blocks only one new CVN can join in.

Block generation is performed in 3 phases.
New transactions are accepted during all these phases.

2.1 Transaction accumulation phase

In this phase all nodes relay transactions they receive from other nodes to any node they are currently connected to.
This phase lasts at least 170 sec.
If there are no pending transactions in the network it takes as long as the next transaction hits the network.
In other words, this phase only ends when there is at least 1 pending transaction in the network.

2.2 Time-weight announcement phase

In this phase each CVN determines its own time-weight based on the local block chain information and announces it to all other connected nodes.
Announcement messages are relayed by all nodes just like transactions.
The higher the nodes time-weight the sooner the announce message is sent to the network according to the following simple formula:

delay=10-(10*otw/tn)

Where:
delay is the time in seconds to wait before a CVN sends its own time-weight
otw is the CVN calculated own time-weight
tn is the total number of active nodes
10 is the constant of ten seconds, which is the duration of this phase

This will greatly reduce the amount of announcement packets sent over the network because if a CVN receives and correctly validates a time-weight announcement message from an other node with a higher time-weight it will not send its weight to the network.

Every CVN verifies that each time-weight announcement it receive is correct using the local block chain data (bogus announcements are discarded and a DoS ban score of 50 is proposed).

Time-weight announcements are used to determine the node with the highest time weight that is currently connected to the network.

This phase starts 10 sec. before the actual block target time.

2.3 Block creator election phase

This phase starts right after the Time-weight announcement phase.
Every CVN determines the CVN with the greatest time-weight according to the announcements it received.
It then signs and sends their candidate vote message to the network, which is relayed by every node just like transactions.

This phase has no defined length.
It stops once the elected CVN has received enough vote messages for its own id from over 90% of all active nodes.
This is the point in time when the collaboratively-elected CVN finally creates the next block in the chain containing all pending transactions from the so called “rawmempool”.
Also parts of the signed vote messages are incorporated into the block to prove that optimally 100% but at least 90% of all active connected nodes agreed on the elected CVN.

3 Certified validation nodes (CVN)

The aim of the CVNs is to secure the network by validating all the transactions that had been sent to the network and put them into a transaction block chain.
Blocks are created each 3 minutes (180 sec.).
Transactions are confirmed after they have been added to a block.
If there are no pending transactions no further blocks are created, which will not happen anymore after FairCoin has been widely adopted.

A CVN is a standard FairCoin core client configured with additional information namely certification data issued by FairCoop which “upgrades” it to a CVN.
Every node will be assigned a unique id.

3.1 Requirements for running a CVN:

Every entity running a CVN must agree upon the following technical requirements and must carry the responsibility to full fill these rules.

1. The system must be connected to the Internet all the time (24/7) and the TCP port 46392 must be reachable by all remote nodes from the Internet
2. The system must use a public NTP server to synchronize its system time to, preferably pool.ntp.org to ensure that the system time is always correct
3. The entity must have an account at the FairCoop web site
4. The wallet software must be configured with certification data issued by FairCoop

Further requirements might be defined after public discussion.
But this will be subject to the NCP document.

4 Node certification

But why would we need certification at all?
A decent certification procedure ensures that a high percentage of all CVNs are honest creator nodes.
At the moment the author sees no easy way of ensuring that each node has only one identity without a well established reputation system.
If every node was a creator node a skilled attacker could modify the client software in such a way to create thousands of different identities and could then perform numerous different attacks against the network.

5 Transaction fees

The transaction fees go to the node which created the block.
Transaction fees exist to avoid block chain spam and give block creators a small reward for taking the effort to leave their node running and pass through the certification procedure.
Fees should be dynamically adjustable to satisfy any change in the value of FairCoin.

fairnet'Blockchain

fairbcn'Block-explorer

AddressWpg::
* https://chain.fair-coin.org/chain/FairCoin,
* BlockH0: https://chain.fair-coin.org/block/f1ae188b0c08e...4ff02d5293538275bacdbcb05ef275,

fairnet'Exchange-value-unit.Consensus (FAIRevuC)

Description::
FairCoin is the monetary base system for FairCoop. We constantly drive development of the FairCoop/FairCoin ecosystem further and shape the individual components to fit our vision: building tools to enable everyone to participate in a fair economy on a global scale.

We decided to create a new version of FairCoin which corrects issues we encountered. The current version of FairCoin relies on PoS (proof-of-stake) which cannot be considered fair, because it confer an advantage on the already rich. Therefore we needed to come up with a new way to secure the network. We call it PoC (proof-of-cooperation). This innovation will finally make FairCoin fair, secure, and sustainable.

The draft we present here is meant to start a discussion on what the new version would look like. Many hours of voluntary work have already been put into building the basic concept and the white paper. The focus of the draft paper is mainly on the technical and implementation side of the FairCoin2 project. Many more aspects besides the technical have to be taken into account and elaborated on.

So, here it is the first draft of the FairCoin V2.0 white paper. Enter the fair dimension of cryptocurrency and download the PDF file now.
[https://fair-coin.org/faircoin2.html]
===
FairCoin (FAIR)
$0.037195 (1.64%)
0.00003150 BTC (0.58%)
Rank 116
Currency
Market Cap
$1,972,825
1,671 BTC
Volume (24h)
$2,277
1.93 BTC
Circulating Supply
53,040,622 FAIR
[https://coinmarketcap.com/currencies/faircoin/] {2017-04-16}

Name::
* cpt.Faircoin,
* cpt.mnyFair,
* cpt.mnyFaircoin,

fairnet'Human

König.Thomas

Thomas-König,
tom@fair-coin.org

fairnet'Resource

AddressWpg::
* https://fair-coin.org/
* https://fair.coop,

bcnnet.time.Emercoin (EMCnet {2013-12-11})

Description::
A World of Blockchain Services
Emercoin's decentralized blockchain is used by a growing number of innovative services. Official services include EMCSSH (PKI management for system admins), EMCLNX (text advertising network), EMCSSL (passwordless website logins), InfoCard (business card / profile management), Magnet (torrent links), EMCTTS (digital timestamps) and EMCDPO (proof of ownership). For more information, see the "Technology" and "Guides" sections of this website.
[http://emercoin.com/getstarted]
===
Emercoin (EMC) - Cryptocurrency with hybrid POS + POW mining.
- Total Supply: Algorithmically increasing at approx. 6% per year (see latest stats).
- POS reward: approx. 6% annual with 30 day coin maturity.
- POW Algorithm: SHA-256.
- Block speed: 10 minute average.
- Initial POW block reward: 5020 EMC, decreasing depending on difficulty.
- POW difficulty is recalculated each block.
- Confirmations for new block: 32
Focused mostly on production of coins by POS as POW difficulty will gradually increase.
Energy-conservative POS mining algorithm is at the core of EMC.
[https://emercoin.com/specifications]

Name::
* cpt.emercoin-network,
* cpt.netEmc,
* cpt.emercoin-network,
* cpt.netEmc,

emcnet'Blockchain

emcbcn'Block-explorer

AddressWpg::
* https://emcblock.info/
* https://emercoin.mintr.org/
* BlockH1 https://emcblock.info/block/00000000cd...2f09d564da3ee05fa69f8db9ee3d119c23c6,

emcnet'Exchange-value-unit.Consensus (EMCevuC)

Name::
* cpt.EMCevuC,
* cpt.emercoin-token,
* cpt.mnyEmc,

emcevuC'Exchange-rate (emcexr)

AddressWpg::
* https://coinmarketcap.com/currencies/emercoin/

emcevuC'Geting

Description::
EMC is the currency which is used to transact on the Emercoin network and pay network fees for blockchain services. The easiest way to obtain EMC is to buy it on an exchange, however EMC can also be earned through mining or by selling goods and services.
[http://emercoin.com/getstarted]

emcnet'Resource

AddressWpg::
* http://emercoin.com/,
* https://wiki.emercoin.com/en/EMW,

emcnet'Wallet

emcnet'DOING

emcnet'Service

Description::
In addition to being used for the payment of goods and services, Emercoin provides a platform for a wealth of novel applications such as decentralized domain names and an advertising network. How you decide to use Emercoin is really up to your imagination.
[http://emercoin.com/getstarted]

bcnnet.time.Nxt (NXTnet {2013-11-24})

Cpt-created: {2015-08-13}

Description::
Nxt is more than just a digital currency. It’s the infrastructure for a digital economy.
[http://nxt.org/about/what-is-nxt/]
===
Nxt makes sending money as easy as sending an email. But it’s far more than a digital currency. It’s a platform for transactions of all kinds and the foundation of something much bigger than P2P cash.
[http://nxt.org/about/what-is-nxt/]

Name::
* cpt.netNext,
* cpt.netNxt,
* cpt.Nxt-platform,
* cpt.nxtnet,
* cpt.sihNxt,

nxtnet'GENERIC

Generic::
* Exchange-value-unit-blockchain-network,

nxtnet'Blockchain (nxtbcn)

nxtbcn'Block-Explorer (nxtbex)

AddressWpg::
* https://www.mynxt.info/blockexplorer/
* Block#1 https://mynxt.info/block/1,
* https://nxtportal.org/monitor/
* http://www.peerexplorer.com/

nxtnet'Exchange-value-unit (nxtevu)

Description::
MONETARY SYSTEM
The Nxt Monetary System allows you to create and trade user-defined Tokens called Currencies.

Currencies are a specific class of Asset which have several extra parameters, such as the ability to back them with the NXT crypto-currency to stabilise their value.

Monetary System currencies can be freely traded both within the Nxt system using the decentralized Exchange Booth feature and outside the Nxt core on external exchanges or projects that support the MS Currency system

The Monetary System allows an individual or project that needs a digital currency to quickly create one ‘off the shelf’ and then immediately begin using it, taking advantage of the established Nxt blockchain, software and network.
[https://nxt.org/what-is-nxt/monetary-system/]

nxtevu.Ardor (ARDRevu)

Description::
Ardor ARDR
Ardor is a scalable blockchain platform based on Child Chains, allowing to build cost-savvy and stable decentralized applications for any purposes.
Ardor is powered by the cryptocurrency of the same name, based on the NXT blockchain technology.
[https://changelly.com/supported-currencies]

Name::
* cpt.Ardor-evu,
* cpt.ARDRevu,

AddressWpg::
* https://www.ardorplatform.org/

nxtnet'Exchange-value-unit.Consensus (NXTevuC)

Description::
Next NXT
The developers of Nxt deem it a second-generation cryptocurrency dramatically different from Bitcoin and all the altcoins.
It is written from scratch, based on PoS mechanism and can be considered an eco-friendly coin as it does not require great amounts of hashing power.
Its efficient feature "Transparent Forging" minimizes the transaction time as it determines which server node will generate the next block, so the transaction is sent straight to this node.
[https://changelly.com/supported-currencies]

Name::
* cpt.mnyNext,
* cpt.mnyNxt,
* cpt.nxtmny,

Description::
Nxt (NXT)
$0.020194 (3.77%)
0.00001656 BTC (4.36%)
Rank 36
Currency
Market Cap
$20,173,806
16,539 BTC
Volume (24h)
$305,907
250.79 BTC
Circulating Supply
998,999,983 NXT
Max Supply
1,000,000,000 NXT
[https://coinmarketcap.com/currencies/nxt/] {2017-04-22}
===
Nxt is an open source[5] cryptocurrency and payment network launched in November 2013 by anonymous software developer BCNext.[6] It uses proof-of-stake to reach consensus for transactions - as such there is a static money supply and no mining as with Bitcoin. Nxt is specifically conceived as flexible platform to build applications and financial services around.[7] It has an integrated asset-exchange[8] (comparable to shares), messaging system and marketplace. Users can also create new currencies within the system. The last major release enabled Multisignature capabilities and a plugin-system for the client.[9]
[https://en.wikipedia.org/wiki/Nxt]

nxtevuC.AGGREGATE

Nxt is a scam because all Nxt coins are pre-mined:
First, it's important to note that Nxt is a 100% Proof-of-Stake (PoS) coin.
The only way to implement this form of currency is to issue all available coins in the genesis block.
To do otherwise would force the implementation of some form of Proof-of-Work scheme in order to prevent attacks on the network that "fake" stake.
Since the creator of Nxt wanted a 100% PoS platform, this was not a desirable course of action.
Second, the term "pre-mined" is a misnomer because Nxt coins are not being mined at all.
The original stakeholders in Nxt contributed Bitcoin in order to seed the creation of the 1 billion coins represented in the genesis block, and these coins were distributed among the original stakeholders.
The stakeholders are expected to distribute coins by donating them, using them as "bounties" to pay for work on the coin (software, documentation, translations, support, etc.) that is done by the community.
Even the creator of Nxt (BCNxt ) made an investment.
The coins were not generated from nothing!
Third, the creation of the genesis block was fully public, and all of the original account numbers and their assigned amounts of Nxt are visible: see https://bitcointalk.org/index.php?topic=303898.msg3652710#msg3652710
[http://nxtwiki.org/wiki/FAQ#Nxt_is_a_scam_because_all_Nxt_coins_are_pre-mined]

Why is it called forging instead of mining?
With Bitcoin and many other cryptocurrencies, the act of securing and verifying the blockchain results in new coins being created. With Nxt, however, all possible coins already exist, and accounts earn coins from transaction fees alone. As a result, it was felt that a new word - "forge" - was needed to describe the manner in which coins are earned.
[http://nxtwiki.org/wiki/FAQ#Why_is_it_called_forging_instead_of_mining.3F]

nxtnet'Program

nxtpgm.IMPLEMENTATION

Description::
What is the difference between the Nxt Server and Nxt Client?
The Nxt Server is the software that implements the core features of Nxt. When we talk about "version 1.1.2 of Nxt" being released, we are talking about the server. It is written in Java, and runs on a command-line interface. The Nxt Client is the web-based interface you use when interacting with Nxt at http://127.0.0.1:7876/ (or http://localhost:7876/). Developers keep working on new clients for all platforms (even mobile devices!). It's likely that most client softwares will also include the core server software so that you can easily set up and operate Nxt.
[http://nxtwiki.org/wiki/FAQ#What_is_the_difference_between_the_Nxt_Server_and_Nxt_Client.3F]

AddressWpg::
* http://nxtwiki.org/wiki/For_Programmers,
* https://bitbucket.org/JeanLucPicard/nxt/src,

nxtnet'Wallet

Description::
Where is my wallet?
Unlike Bitcoin or other altcoins, there is no local wallet with Nxt. More specifically, the coin uses a "brain wallet", which is to say that wallets are decentralized and kept on the network. When you create an account in Nxt, your secret passphrase is used to create your account number. Once your account number is generated, you can unlock it and access it by using your passphrase on any running Nxt node.
[http://nxtwiki.org/wiki/FAQ#Where_is_my_wallet.3F]

nxtnet'Security

Description::
Improved security. This property also protects the network from the problems of mining power being concentrated in a few big pools or organisations, which renders it vulnerable to a ‘51 percent’ attack. Nxt’s proof-of-stake means that even if one person owns 90 percent of all the coins available, the network remains secure.
[http://nxt.org/about/what-is-nxt/]

nxtnet'Human

nxthmn.BCNext

Description::
BCNext
BCNext is the founder of Nxt and wrote the initial version of Nxt's code. BCNext saw Bitcoin as a failed attempt to create a digital economy and so created Nxt as a platform to build a digital economy upon. He first appeared on Bitcointalk with a post announcing Nxt on 28th September 2013 and was a self-declared Sockpuppet of a long-standing Bitcointalk member. BCNext was involved in the early development of Nxt but their last post was on the 8th November 2013. BCNext then began to communicate through Come-from-Beyond. BCNext left the project once he was satisfied the community had established itself in April/May 2014. Come-from-Beyond now has his notes and planned implementation of the announced and unannounced features of Nxt.
[http://nxtwiki.org/wiki/Glossary#BCNext]

Name::
* cpt.BCNext,

nxthmn.Come-from-Beyond

Description::
Come-from-Beyond
Come-from-Beyond is an important developer for the initial implementation of Nxt and is a continuing forum member and Nxt development contributer. He was originally employed on contract directly by BCNext from the start of Nxt in late 2013. After BCNext stopped posting from the BCNext account, he was the conduit through which BCNext communicated. Come-from-Beyond’s contract came to an end on the 3rd April 2014, the day before the beginning of George Orwell’s book ‘1984’. He now works as freelance developer to complete the ideas BCNext passed on, and to build his own projects on top of the Nxt Platform.
[http://nxtwiki.org/wiki/Glossary#Come-from-Beyond]

nxthmn.FOUNDER

Description::
Founder
Nxt's founders are the 73 people who sent bitcoin to secure an initial stake in Nxt.
All of Nxt's coins were generated on November 25, 2013 and distributed in the genesis block to the founders, based on the amount of bitcoin sent.
[http://nxtwiki.org/wiki/Glossary#Founder]

nxtnet'Organization

nxtogn.Exchange-organization

Specific::
Poloniex
Bter
BTC38
Nxt Multigateway
CCEX
HitBTC
Changelly
Litebit (buy with IDEAL)

nxtogn.NXT-Foundation

NXT Foundation
Mauvestraat 44-4
Amsterdam, MA 1073RM
Netherlands

nxtnet'Resource

AddressWpg::
* http://nxt.org/
* https://cointelegraph.com/news/nxtardor-platform-to-make-blockchain-cheaper-and-safer, {2016-07-27}
* http://nxt.org/about/what-is-nxt/
* https://en.wikipedia.org/wiki/Nxt,

nxtnet'Doing

Description::
Nxt takes a different approach.
Instead of building on the Bitcoin protocol, Nxt started with a vision of a radical new digital economy and was designed from the ground up to create a platform to realise it.
Not only does it open up new possibilities – everything from digital cash and property ownership records to smart contracts and online transfer of stocks and shares – but it addresses all of the most serious deficiencies in existing cryptocurrencies.
Most altcoins aim to fix one or two of these.
Nxt was developed to allow a sustainable, fair and versatile platform that would benefit everyone.
[http://nxt.org/about/what-is-nxt/]
===
Nxt is an open source[5] cryptocurrency and payment network launched in November 2013 by anonymous software developer BCNext.[6] It uses proof-of-stake to reach consensus for transactions - as such there is a static money supply and no mining as with Bitcoin. Nxt is specifically conceived as flexible platform to build applications and financial services around.[7] It has an integrated asset-exchange[8] (comparable to shares), messaging system and marketplace. Users can also create new currencies within the system. The last major release enabled Multisignature capabilities and a plugin-system for the client.[9]
[https://en.wikipedia.org/wiki/Nxt]

nxtsvc.ASSET-EXCHANGE

Description::
ASSET EXCHANGE
The Nxt Asset Exchange is a peer-to-peer exchange built directly into the Nxt software, allowing secure and fast decentralized trading in Nxt Assets. This eliminates the need to transfer assets or to put trust in an outside agency or business, and as Nxt Assets can be used to represent literally anything (from Bitcoin to coffee beans) there are a wide range of potential investments or trades to be made on the Asset Exchange.
[https://nxt.org/what-is-nxt/asset-exchange/]

nxtsvc.MARKETPLACE

Description::
MARKETPLACE
The Nxt Marketplace feature allows you to list items for sale and make sales on the blockchain.

You do not need to rely on external market sites to conduct your business. Instead, transactions are done between seller and buyer directly.
[https://nxt.org/what-is-nxt/marketplace/]

nxtsvc.STORAGE

Description::
DATA CLOUD
The Nxt Data Cloud is a decentralised data storage system.

In addition to keeping a record of Nxt transactions, the blockchain can also be used to store user-defined data. All forms of data can be uploaded to the Nxt blockchain, providing a secure (and, if desired, permanent) method of storing, retrieving and publishing information. Nxt Messaging makes use of this ability to embed data in the blockchain, and the Data Cloud can be seen as an extension of the Messaging system.

One of the most important features of data storage on the blockchain is that the Nxt blockchain is a permanent and immutable record that provides a tamper-proof time stamp. This allows for legal records (such as contracts) to be embedded in the blockchain, with absolute certainty about the time at which they were created.
[https://nxt.org/what-is-nxt/data-cloud/]

nxtsvc.ALIAS-SYSTEM

Description::
The Alias System feature of Nxt essentially allows one piece of text to be substituted for another, so that keywords or keyphrases can be used to represent other things – names, telephone numbers, physical addresses, web sites, account numbers, email addresses, product SKU codes... almost anything you can think of.
For example, you could ask Nxt to associate "search" with "www.google.com". Once this is done, all you have to do to get to Google is type "nxt:search" into a Nxt-capable browser, and it will translate your request in one for "www.google.com".
Immediate applications are simple: you can create an easy-to-remember alias for your Nxt account number, for example. But since the Alias System is open-ended, it can be used to implement a decentralized DNS system, shopping cart applications, and more.
Creating aliases is
A user sends a transaction that states "ThisText = ThatText"
If the alias is to be changed, just send another transaction with a new definition. Only the account that created an alias can change it.
[http://nxtwiki.org/wiki/Alias_System]

bcnnet.time.Peercoin (PPCnet {2012-08-19})

Cpt-created: {2013-08-24}

Description::
Peercoin seeks to be the most secure cryptocoin at the lowest cost, rewarding all users for strengthening the network by giving them a 1% annual PPC return when minting.
?Built to Last
?The world's first Proof-of-Stake coin.
?Fair Distribution
?No insider pre-sale or instant mining.
?Energy Efficient
?Mint Peercoins on any device.
?Stable and Secure
?Protecting your investment since 2012.
[https://peercoin.net/]

ppcnet'Protocol

ppcprl'White-paper {2012}

AddressWpg::
* https://peercoin.net/assets/paper/peercoin-paper.pdf,

PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake
Sunny King, Scott Nadal
(sunnyking9999@gmail.com, scott.nadal@gmail.com)
August 19th, 2012

Abstract

A peer-to-peer crypto-currency design derived from Satoshi Nakamoto’s Bitcoin.
Proof-of-stake replaces proof-of-work to provide most of the network security.
Under this hybrid design proof-of-work mainly provides initial minting and is largely non-essential in the long run.
Security level of the network is not dependent on energy consumption in the long term thus providing an energy efficient and more cost-competitive peer-to-peer crypto-currency.
Proof-of-stake is based on coin age and generated by each node via a hashing scheme bearing similarity to Bitcoin’s but over limited search space.
Block chain history and transaction settlement are further protected by a centrally broadcasted checkpoint mechanism.

Introduction

Since the creation of Bitcoin (Nakamoto 2008), proof-of-work has been the predominant design of peer-to-peer crypto currency.
The concept of proof-of-work has been the backbone of minting and security model of Nakamoto’s design.

In October 2011, we have realized that, the concept of coin age can facilitate an alternative design known as proof-of-stake, to Bitcoin’s proof-of-work system.
We have since formalized a design where proof-of-stake is used to build the security model of a peer-to-peer crypto currency and part of its minting process, whereas proof-of-work mainly facilitates the initial part of the minting process and gradually reduces its significance.
This design attempts to demonstrate the viability of future peer-to-peer crypto-currencies with no dependency on energy consumption.
We have named the project ppcoin.

Coin Age

The concept of coin age was known to Nakamoto at least as early as 2010 and used in Bitcoin to help prioritize transactions, for example, although it didn’t play much of an critical role in Bitcoin’s security model.
Coin age is simply defined as currency amount times holding period.
In a simple to understand example, if Bob received 10 coins from Alice and held it for 90 days, we say that Bob has accumulated 900 coin-days of coin age.

Additionally, when Bob spent the 10 coins he received from Alice, we say the coin age Bob accumulated with these 10 coins had been consumed (or destroyed).
In order to facilitate the computation of coin age, we introduced a timestamp field into each transaction.
Block timestamp and transaction timestamp related protocols are strengthened to secure the computation of coin age.

Proof-of-Stake

Proof-of-work helped to give birth to Nakamoto’s major breakthrough, however the nature of proof-of-work means that the crypto-currency is dependent on energy consumption, thus introducing significant cost overhead in the operation of such networks, which is borne by the users via a combination of inflation and transaction fees.
As the mint rate slows in Bitcoin network, eventually it could put pressure on raising transaction fees to sustain a preferred level of security.
One naturally asks whether we must maintain energy consumption in order to have a decentralized crypto-currency?
Thus it is an important milestone both theoretically and technologically, to demonstrate that the security of peer-to-peer crypto-currencies does not have to depend on energy consumption.

A concept termed proof-of-stake was discussed among Bitcoin circles as early as 2011.
Roughly speaking, proof-of-stake means a form of proof of ownership of the currency.
Coin age consumed by a transaction can be considered a form of proof-of-stake.
We independently discovered the concept of proof-of-stake and the concept of coin age in October 2011, whereby we realized that proof-of-stake can indeed replace most proof-ofwork’s functions with careful redesign of Bitcoin’s minting and security model.
This is mainly because, similar to proof-of-work, proof-of-stake cannot be easily forged.
Of course, this is one of the critical requirements of monetary systems - difficulty to counterfeit.
Philosophically speaking, money is a form of ‘proof-of-work’ in the past thus should be able to substitute proof-of-work all by itself.

Block Generation under Proof-of-Stake

In our hybrid design, blocks are separated into two different types, proof-of-work blocks and proof-of-stake blocks.
Kernel input
Stake input        Stake output (pay to stake owner himself)
Stake input
Figure: Structure of Proof-of-Stake (Coinstake) Transaction

The proof-of-stake in the new type of blocks is a special transaction called coinstake (named after Bitcoin’s special transaction coinbase).
In the coinstake transaction block owner pays himself thereby consuming his coin age, while gaining the privilege of generating a block for the network and minting for proof-of-stake.
The first input of coinstake is called kernel and is required to meet certain hash target protocol, thus making the generation of proof-of-stake blocks a stochastic process similar to proof-ofwork blocks.
However an important difference is that the hashing operation is done over a limited search space (more specifically one hash per unspent wallet-output per second) instead of an unlimited search space as in proof-of-work, thus no significant consumption of energy is involved.

The hash target that stake kernel must meet is a target per unit coin age (coin-day) consumed in the kernel (in contrast to Bitcoin’s proof-of-work target which is a fixed target value applying to every node).
Thus the more coin age consumed in the kernel, the easier meeting the hash target protocol.
For example, if Bob has a wallet-output which accumulated 100 coin-years and expects it to generate a kernel in 2 days, then Alice can roughly expect her 200 coin-year wallet-output to generate a kernel in 1 day.

In our design both proof-of-work hash target and proof-of-stake hash target are adjusted continuously rather than Bitcoin’s two-week adjustment interval, to avoid sudden jump in network generation rate.

Minting based on Proof-of-Stake

A new minting process is introduced for proof-of stake blocks in addition to Bitcoin’s proof-of-work minting.
Proof-of-stake block mints coins based on the consumed coin age in the coinstake transaction.
A mint rate of 1 cent per coin-year consumed is chosen to give rise to a low future inflation rate.

Even though we kept proof-of-work as part of the minting process to facilitate initial minting, it is conceivable that in a pure proof-of-stake system initial minting can be seeded completely in genesis block via a process similar to stock market initial public offer (IPO).

Main Chain Protocol

The protocol for determining which competing block chain wins as main chain has been switched over to use consumed coin age.
Here every transaction in a block contributes its consumed coin age to the score of the block.
The block chain with highest total consumed coin age is chosen as main chain.

This is in contrast to the use of proof-of-work in Bitcoin’s main chain protocol, whereas the total work of the block chain is used to determine main chain.

This design alleviates some of the concerns of Bitcoin’s 51% assumption, where the system is only considered secure when good nodes control at least 51% of network mining power.
First the cost of controlling significant stake might be higher than the cost of acquiring significant mining power, thus raising the cost of attack for such powerful entities.
Also attacker’s coin age is consumed during the attack, which may render it more difficult for the attacker to continue preventing transactions from entering main chain.

Checkpoint: Protection of History

One of the disadvantages of using total consumed coin age to determine main chain is that it lowers the cost of attack on the entire block chain of history.
Even though Bitcoin has relatively strong protection over the history Nakamoto still introduced checkpoints in 2010 as a mechanism to solidify the block chain history, preventing any possible changes to the part of block chain earlier than the checkpoint.

Another concern is that the cost of double-spending attack may have been lowered as well, as attacker may just need to accumulate certain amount of coin age and force reorganization of the block chain.
To make commerce practical under such a system, we decided to introduce an additional form of checkpoints that are broadcasted centrally, at much shorter intervals such as a few times daily, to serve to freeze block chain and finalize transactions.
This new type of checkpoint is broadcasted similar to Bitcoin’s alert system.

Laurie (2011) has argued that Bitcoin has not completely solved the distributed concensus problem as the mechanism for checkpointing is not distributed.
We attempted to design a practical distributed checkpointing protocol but found it difficult to secure against network split attack.
Although the broadcasted checkpointing mechanism is a form of centralization, we consider it acceptable before a distributed solution is available.

Another technical reason entails the use of centrally broadcasted checkpointing.
In order to defend against a type of denial-of-service attack coinstake kernel must be verified before a proof-of-stake block can be accepted into the local database (block tree) of each node.
Due to Bitcoin node’s data model (transaction index specifically) a deadline of checkpointing is needed to ensure all nodes’ capability of verifying connection of each coinstake kernel before accepting a block into the block tree.
Because of the above practical considerations we decided not to modify node’s data model but use central checkpointing instead.
Our solution is to modify the coin age computation to require a minimum age, such as one month, below which the coin age is computed as zero.
Then the central checkpointing is used to ensure all nodes can agree upon past transactions older than one month thus allowing the verification of coinstake kernel connection as a kernel requires non-zero coin age thus must use an output from more than one month ago.

Block Signatures and Duplicate Stake Protocol

Each block must be signed by its owner to prevent the same proof-of-stake from being copied and used by attackers.

A duplicate-stake protocol is designed to defend against an attacker using a single proofof-stake to generate a multitude of blocks as a denial-of-service attack.
Each node collects the (kernel, timestamp) pair of all coinstake transactions it has seen.
If a received block contains a duplicate pair as another previously received block, we ignore such duplicate-stake block until a successor block is received as an orphan block.

Energy Efficiency

When the proof-of-work mint rate approaches zero, there is less and less incentive to mint proof-of-work blocks. Under this long term scenario energy consumption in the network may drop to very low levels as disinterested miners stop mining proof-of-work blocks.
The Bitcoin network faces such risk unless transaction volume/fee rises to high enough levels to sustain the energy consumption.
Under our design even if energy consumption approaches zero the network is still protected by proof-of-stake.
We call a crypto-currency long-term energy-efficient if energy consumption on proof-of-work is allowed to approach zero.

Other Considerations

We modified the proof-of-work mint rate to be not determined by block height (time) but instead determined by difficulty.
When mining difficulty goes up, proof-of-work mint rate is lowered.
A relatively smooth curve is chosen as opposed to Bitcoin’s step functions, to avoid artificially shocking the market.
More specifically, a continuous curve is chosen such that each 16x raise of mining difficulty halves the block mint amount.

Over longer term the proof-of-work mint curve would not be too dissimilar to that of Bitcoin in terms of the inflationary behavior, given the continuation of Moore’s Law.
We consider it wise to follow the traditional observation that the Market favors a low inflation currency over a high-inflation one, despite of significant criticism of Bitcoin from some mainstream economists due to ideological reasons in our opinion.

Babaioff et al. (2011) studied the effect of transaction fee and argued that transaction fee is an incentive to not cooperate between miners.
Under our system this attack is exacerbated so we no longer give transaction fees to block owner.
We decided to destroy transaction fees instead.
This removes the incentive to not acknowledge other minter’s blocks.
It also serves as a deflationary force to counter the inflationary force from the proof-of-stake minting.

We also choose to enforce transaction fees at protocol level to defend against block bloating attack.

During our research we have also discovered a third possibility besides proof-of-work and proof-of-stake, which we termed proof-of-excellence.
Under this system typically a tournament is held periodically to mint coins based on the performance of the tournament participants, mimicking the prizes of real-life tournaments.
Although this system tends to consume energy as well when artificial intelligence excels at the game involved, we still found the concept interesting even under such situation as it provides a somewhat intelligent form of energy consumption.

Conclusion

Upon validation of our design in the Market, we expect proof-of-stake designs to become a potentially more competitive form of peer-to-peer crypto-currency to proof-of-work designs due to the elimination of dependency on energy consumption, thereby achieving lower inflation/lower transaction fees at comparable network security levels.

Acknowledgement

Many thanks to Richard Smith for helping out with testing and various network/fork
related work.
We would like to thank Satoshi Nakamoto and Bitcoin developers whose brilliant
pioneering work opened our minds and made a project like this possible.

References

Babaioff M. et al. (2011): On Bitcoin and red balloons.

Laurie B. (2011): Decentralised currencies are probably impossible (but let’s at least make them efficient). (http://www.links.org/files/decentralised-currencies.pdf)

Nakamoto S. (2008): Bitcoin: A peer-to-peer electronic cash system. (http://www.bitcoin.org/bitcoin.pdf)

ppcnet'Concensous-exval-tokent (PPCevuC)

Description::
PPCoin (code: PPC), also known as Peercoin and Peer-to-Peer Coin is the first known cryptocurrency based on an implementation of a combined proof-of-stake/proof-of-work system.[1]

As of 2 July 2013, one PPCoin had a value of approximately 0.14 USD, giving PPCoin a money supply with a value of $2.9 million USD, making it roughly level with Namecoin as the third largest cryptocurrency.[3][4][5]
Central bank    None. The PPCoin peer-to-peer network regulates and distributes through consensus in protocol.[1]
Date of introduction    12 August 2012, 17:57:38 UTC
User(s)    International
Inflation    Limited release (Geometric series, rate halves every 4 years), there is also 1% inflation due to the proof-of-stake system.[1][2]
Subunit   
0.001    mPPC (millicoin)
0.000001    µPPC (microcoin)
0.00000001    Smallest unit
Symbol    ?, PPC
Nickname    Peercoin, P2PCoin
Plural    PPCoin, PPCoins
[http://en.wikipedia.org/wiki/PPCoin]
===
PPCoin:
AKA Peercoin or P2P coin.
An altcoin using the proof of stake mechanism in conjunction with proof of work.
Based on a paper produced by Sunny King and Scott Nadal.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Peercoin (PPC)
$0.836138 (-0.66%)
0.00070832 BTC (-1.28%)
Rank 35
Mineable Currency
Market Cap
$20,078,420
17,009 BTC
Volume (24h)
$257,009
217.72 BTC
Circulating Supply
24,013,285 PPC
[https://coinmarketcap.com/currencies/peercoin/] {2017-04-16}

Name::
* cpt.mny.Peercoin,
* cpt.mny.PPCoin,
* cpt.mny.PPC,
* cpt.peercoin,
* cpt.PPCoin,

ppcnet'Resource

AddressWpg::
* https://chainz.cryptoid.info/ppc/
* Block#1: https://chainz.cryptoid.info/ppc/block.dws?1.htm,
* http://peercoin.net/assets/paper/peercoin-paper.pdf,

bcnnet.time.Ripple (XRPnet {2012})

Cpt-created: 2015-08-12,

Description::
Ripple is a real-time gross settlement system (RTGS), currency exchange and remittance network by Ripple Labs. Also called the Ripple Transaction Protocol (RTXP) or Ripple protocol,[3] it is built upon a distributed open source Internet protocol, consensus ledger and native currency called XRP (ripples). Released in 2012, Ripple purports to enable "secure, instant and nearly free global financial transactions of any size with no chargebacks." It supports tokens representing fiat currency, cryptocurrency, commodity or any other unit of value such as frequent flier miles or mobile minutes.[4][5] At its core, Ripple is based around a shared, public database or ledger,[6] which uses a consensus process that allows for payments, exchanges and remittance in a distributed process.[7] The security of the Ripple consensus algorithm was challenged by rivals in 2014,[8] with Ripple Labs defending the safety of the system.[9] As of 2014, Ripple is the second-largest cryptocurrency by market capitalization,[10][11] after Bitcoin.[12][13][14][15] Currently implemented by companies such as Fidor Bank, the Ripple protocol has been increasingly adopted by banks and payment networks as settlement infrastructure technology,[16] with American Banker explaining that "from banks' perspective, distributed ledgers like the Ripple system have a number of advantages over cryptocurrencies like Bitcoin," including price and security.[17]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]
===
Ripple:
A payment network that can be used to transfer any currency (including ad hoc currencies that have been created by users).
The network consists of payment nodes and gateways operated by authorities.
Payments are made using a series of IOUs, and the network is based on trust relationships.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.netXrp,
* cpt.digital-currency-system.ripple, cptIt51.11,
* cpt.ripple-distributed-network, cptIt51.11,
* cpt.ripple-network, cptIt51.11,
* cpt.ripple-system,
* cpt.stmRpl,
* cpt.xrpnet,

Generic::
* blockchain-network,

xrpnet'Protocol

Name::
* cpt.Ripple-Transaction-Protocol,
* cpt.xrpprl,

AddressWpg::
* https://ripple.com/files/ripple_consensus_whitepaper.pdf,

xrpnet'Node (xrpnod)

xrpnod'UNL

Description::
Unique Node List (UNL): Each server, s, maintains a unique node list, which is a set of other servers that s queries when determining consensus.
Only the votes of the other members of the UNL of s are considered when determining consensus (as opposed to every node on the network).
Thus the UNL represents a subset of the network which when taken collectively, is “trusted” by s to not collude in an attempt to defraud the network.
Note that this definition of “trust” does not require that each individual member of the UNL be trusted (see section 3.2).
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

Name::
* cpt.Ripple-UNL,

xrpnod.FAULTY

Description::
We use the term nonfaulty to refer to nodes in the network that behave honestly and without error.
Conversely, a faulty node is one which experiences errors which may be honest (due to data corruption, implementation errors, etc.), or malicious (Byzantine errors).
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

Name::
* cpt.xrpnet'malicious-node,

xrpnod.FAULTY.NO

Description::
We use the term nonfaulty to refer to nodes in the network that behave honestly and without error.
Conversely, a faulty node is one which experiences errors which may be honest (due to data corruption, implementation errors, etc.), or malicious (Byzantine errors).
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

xrpnod.SERVER

Description::
Server: A server is any entity running the Ripple Server software (as opposed to the Ripple Client software which only lets a user send and receive funds), which participates in the consensus process.
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

xrpnod.server.PROPOSER

Description::
Proposer: Any server can broadcast transactions to be included in the consensus process, and every server attempts to include every valid transaction when a new consensus round starts.
During the consensus process, however, only proposals from servers on the UNL of a server s are considered by s.
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

xrpnet'Blockchain (xrpbcn)

Description::
The ledger is a record of the amount of currency in each user’s account and represents the “ground truth” of the network.
The ledger is repeatedly updated with transactions that successfully pass through the consensus process.
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]
===
At its core, Ripple is based around a shared, public database or ledger that has its contents decided on by consensus.[6] In addition to balances, the ledger holds information about offers to buy or sell currencies and assets, creating the first distributed exchange.[53]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

Name::
* cpt.xrpnet'database,
* cpt.xrpnet'distributed-ledger,
* cpt.xrpnet'public-database,
* cpt.xrpnet'shared-database,

xrpbcn'Consensus-algorithm

Description::
The Ripple Protocol consensus algorithm (RPCA), is applied every few seconds by all nodes, in order to maintain the correctness and agreement of the network.
Once consensus is reached, the current ledger is considered “closed” and becomes the last-closed ledger.
Assuming that the consensus algorithm is successful, and that there is no fork in the network, the last-closed ledger maintained by all nodes in the network will be identical.
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

Description::
We begin by defining the components of the Ripple Protocol.
In order to prove correctness, agreement, and utility properties, we first formalize those properties into axioms.
These properties, when grouped together, form the notion of consensus: the state in which nodes in the network reach correct agreement.
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

Description::
The strength of a consensus algorithm is usually measured in terms of the fraction of faulty processes it can tolerate.
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

xrpbcn'Transaction

xrptx.FRAUDELENT

xrpbcn.LAST-CLOSED

Description::
The last-closed ledger is the most recent ledger that has been ratified by the consensus process and thus represents the current state of the network.
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

xrpbcn.OPEN

Description::
The open ledger is the current operating status of a node (each node maintains its own open ledger).
Transactions initiated by end users of a given server are applied to the open ledger of that server, but transactions are not considered final until they have passed through the consensus process, at which point the open ledger becomes the last-closed ledger.
[https://ripple.com/files/ripple_consensus_whitepaper.pdf]

xrpnet'Exchange-value-unit.Consensus (XRPevuC)

Description::
Ripple XRP
Ripple is a digital currency of Ripple payment network created to support fast and secure financial transactions worldwide. This currency is present uniquely within the system and cannot be mined. It helps avoid counterparty risk and serves as the network’s native asset.
[https://changelly.com/supported-currencies]
===
XRP is the native currency of the Ripple network that only exists within the Ripple system.[82] XRP are currently divisible to 6 decimal places, and the smallest unit is called a drop with 1 million drops equaling 1 XRP.[82] There were 100 billion XRP created at Ripple's inception, with no more allowed to be created according to the protocol's rules.[83] As such, the system was designed so XRP is a scarce asset with decreasing available supply.[83] Not dependent on any third party for redemption, XRP is the only currency in the Ripple network that does not entail counterparty risk, and it is the only native digital asset. The other currencies in the Ripple network are debt instruments (i.e. liabilities), and exist in the form of balances.[2] Users of the Ripple network are not required to use XRP as a store of value or a medium of exchange. Each Ripple account is required, however, to have a small reserve of 20 XRP[84] (US$0.38 as of January 28, 2014[85]). The purpose for this requirement is discussed in the anti-spam section.
XRP distribution

Of the 100 billion created, 20 billion XRP were retained by the creators, who were also the founders of Ripple Labs. The creators gave the remaining 80% of the total to Ripple Labs, with the XRP intended to fund operations.[83] Ripple Labs also had a short-lived 2013 giveaway of under 200 million XRP (0.002% of all XRP) via World Community Grid.[86] As of November 30, 2012, 7.2 billion XRP of Ripple Lab's amounts had been distributed,[87] with some of the amount given to charities such as the Computing for Good initiative, which began offering XRP in exchange for time volunteered on research projects.[88] As of March 2015, 67% of Ripple Labs's original 80% was still retained by the company,[83] with Ripple Labs stating that "we will engage in distribution strategies that we expect will result in a stable or strengthening XRP exchange rate against other currencies."[89] The amount of XRP distributed and their movement can be tracked through the Ripple Charts website.[90]
XRP as a bridge currency

One of the specific functions of XRP is as a bridge currency,[73] which can be necessary if no direct exchange is available between two currencies at a specific time,[91] for example when transacting between two rarely traded currency pairs.[81] Within the network’s currency exchange, XRP are traded freely against other currencies, and its market price fluctuates against dollars, euros, yen, bitcoin, etc. Ripple's design focus is as a currency exchange and a distributed-RTGS, as opposed to emphasizing XRP as an alternative currency.[81] In April 2015, Ripple Labs announced that a new feature called autobridging had been added to Ripple, with the intent of making it easier for market makers to transact between rarely traded currency pairs. The feature is also intended to expose more of the network to liquidity and better FX rates.[92]
XRP as an anti-spam measure

When a user conducts a financial transaction in a non-native currency, Ripple charges a transaction fee. The purpose of the fees is to protect against network flooding by making the attacks too expensive for hackers. If Ripple were completely free to access, adversaries could broadcast large amounts of "ledger spam" (i.e. fake accounts) and "transaction spam" (i.e. fake transactions) in an attempt to overload the network. This could cause the size of the ledger to become unmanageable and interfere with the network’s ability to quickly settle legitimate transactions. Thus, to engage in trade, each Ripple account is required to have a small reserve of 20 XRP,[84] (US$0.38 as of January 28, 2014[85]), and a transaction fee starting at .00001 XRP (US$.0000002 as of January 28, 2014[85]) must be spent for each trade. This transaction fee is not collected by anyone; the XRP is destroyed and ceases to exist.[93] The transaction fee rises if the user posts trades at an enormous rate (many thousands per minute), and resettles after a period of inactivity.[58]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

Name::
* cpt.mnyRipple,
* cpt.mnyXrp,
* cpt.ripple-evuC,
* cpt.xrpevuC,

xrpevuC'Exchange-rate

{time.2017-04-22}
Ripple (XRP)
$0.032565 (7.90%)
0.00002665 BTC (8.45%)
[https://coinmarketcap.com/currencies/ripple/]

xrpevuC'OgnEXCANGE

Specific::
XRP is listed on Bitstamp, GateHub and Kraken.
[https://ripple.com/xrp-portal/how-to-buy-xrp/]

xrpevuC'Resource

AddressWpg::
* https://bithomp.com/explorer/

xrpevuC.AGGREGATE

{time.2021forcast}:
If market conditions permit, we expect our company to hold approximately 50 billion XRP by the end of 2021. This schedule is indicative and discretionary.
[https://ripple.com/xrp-portal/ {2017-01-28}]

{time.2017-01-22}:
TOTAL XRP HELD BY RIPPLE 63,139,536,437
TOTAL XRP HELD BY OTHERS 36,856,524,148*
As of January 22nd, 2017
*Total includes business development agreements that are still pending.

xrpnet'Statistics

Riple-Charts

Description::
Ripple Charts provides visualizations of the information on the Ripple Network, including a live trade feed, trends, and historical metrics. Ripple Charts is available for anyone to use, alter, or embed.
[https://ripple.com/knowledge_center/about-ripple-os-products/]

xrpnet'Program

Description::
As of 2015, the current release of Ripple Trade is version 0.2.48-3 and the server (known as rippled) is version 0.24.0.[1]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

xrppgm.CLIENT

xrppgm.SERVER

xrppgm.Riple-Trade

Description::
With Ripple Trade, users can trade currency with minimal configuration.
Ripple Trade is available for anyone to use, alter, or embed.
[https://ripple.com/knowledge_center/about-ripple-os-products/]

xrpnet'Security

Description::
In May 2011 they began developing a digital currency system in which transactions were verified by consensus among members of the network, rather than by the mining process used by Bitcoin, which relies on blockchain ledgers.[21] This new version of the Ripple system[20] was therefore designed to eliminate Bitcoin's reliance on centralized exchanges, use less electricity than Bitcoin, and perform transactions much more quickly than Bitcoin.
...
To maintain security OpenCoin programmed Ripple to rely on a common ledger that is "managed by a network of independent validating servers that constantly compare their transaction records." Servers could belong to anyone, including banks or market makers.[26]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

xrpnet'Human

Description::
Original author(s)     Arthur Britto, David Schwartz, Ryan Fugger

Name::
* cpt.ripple'human,
* cpt.xrpnet'human,

Britto.Arthur:
Arthur Britto, for his work on transaction sets,

McCaleb.Jed:
Jed McCaleb, for the original Ripple Protocol consensus concept,

Schwartz.David:
David Schwartz, for his work on the “failure to agree is agreement to defer” aspect of consensus.

xrpnet'Organization

xrpogn.Ripple-Labs

Description::
For its creation and development of the Ripple protocol (RTXP) and the Ripple payment/exchange network, the Massachusetts Institute of Technology (MIT) recognized Ripple Labs as one of 2014's 50 Smartest Companies in the February 2014 edition of MIT Technology Review.[99]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

Name::
* cpt.Ripple-Labs,

xrpogn'Gateway

Description::
Gateways are the businesses that link the Ripple network to the rest of the world.
By becoming a Ripple gateway, existing online financial services, such as payment systems and digital currency exchange, can gain several advantages:
By enabling its users to send and receive value in Ripple, the business increases its value proposition to users.
By accepting payments from the Ripple network, the business increases the number of ways that users can fund accounts at its business, even internationally.
The business can use Ripple-related services as a new source of revenue.
[https://ripple.com/build/gateway-guide/]

Name::
* cpt.Ripple-gateway,

xrpnet'Resource

AddressWpg::
* https://ripple.com/ Join the Global Settlement Network
Instant, certain, low-cost international payments
* https://ripple.com/files/ripple_consensus_whitepaper.pdf,

xrpnet.EVOLUTING

{time.2014.12}:
=== Earthport:
By December Ripple Labs began working with global payments service Earthport, combining Ripple's software with Earthport's payment services system. Earthport's clients include banks such as Bank of America and HSBC, and it operates in 65 countries. The partnership marked the first network usage of the Ripple protocol.[45] In December 2014 alone, the XRP price value rose over 200%, helping Ripple surpass litecoin to become the second biggest crypto-currency, and setting Ripple's market cap at close to half a billion.[46]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

{time.2014.07}:
=== CODIUS:
In July 2014, Ripple Labs proposed Codius, a project to develop a new smart contract system that is "programming language agnostic."[42]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

{time.2014.early}:
=== Fidor-Bank:
The first bank to use Ripple was Fidor Bank in Munich, which announced the partnership in early 2014. Fidor is an online-only bank based in Germany.[44]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

{time.2013.10}:
=== ZipZap partnership:
In October 2013, Ripple partnered further with ZipZap, with the relationship called a threat to Western Union in the press.[37]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

{time.2013-09-26}:
=== Ripple Labs Inc:
On September 26, 2013, OpenCoin Inc. changed its name to Ripple Labs Inc.,[25] with Chris Larsen remaining CEO.[35] On the same day the Ripple reference server and client became free software, released as open source under the terms of the ISC License.[2] Ripple Labs continued as the primary contributors of code to the consensus verification system behind Ripple, which can "integrate with banks’ existing networks."[36]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

{time.2013-07-01}:
=== XRP-II:
On July 1, 2013, XRP Fund II, LLC (now called simply XRP II)[31] was incorporated as a wholly owned subsidiary of OpenCoin, and headquartered in South Carolina.[31]
The following day, Ripple Labs announced its linking of the Bitcoin and Ripple protocols via the Bitcoin Bridge. The Bitcoin Bridge allows Ripple users to send a payment in any currency to a Bitcoin address
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

{time.2012.09}:
=== OpenCoin:
This led to the conception of a new system by Jed McCaleb of eDonkey network,[23] which was designed and built by Arthur Britto and David Schwartz.[24] In May 2011 they began developing a digital currency system in which transactions were verified by consensus among members of the network, rather than by the mining process used by Bitcoin, which relies on blockchain ledgers.[21] This new version of the Ripple system[20] was therefore designed to eliminate Bitcoin's reliance on centralized exchanges, use less electricity than Bitcoin, and perform transactions much more quickly than Bitcoin.[20] Chris Larsen,[21] who had previously founded the lending services companies E-Loan and Prosper, joined the team in August 2012,[23] and together McCaleb and Larsen approached Ryan Fugger with their digital currency idea. After discussions with long-standing members of the Ripple community, Fugger handed over the reins.[21] In September 2012 the team co-founded the corporation OpenCoin,[21] or OpenCoin Inc.[23][25]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

{time.2004}:
=== RipplePay:
The predecessor to the Ripple payment protocol, Ripplepay, was first developed in 2004 by Ryan Fugger,[18][19] a web developer in Vancouver, British Columbia.[20] Fugger conceived of the idea after working on a local exchange trading system in Vancouver, and his intent was to create a monetary system that was decentralized and could effectively allow individuals and communities to create their own money. Fugger's first iteration of this system, RipplePay.com,[21] debuted in 2005 as a financial service to provide secure payment options to members of an online community via a global network.[20][22]
[https://en.wikipedia.org/wiki/Ripple_%28payment_protocol%29]

bcnnet.time.Litecoin (LTCnet {2011-10-07})

Description::
Litecoin is a peer-to-peer Internet currency that enables instant, near-zero cost payments to anyone in the world.
Litecoin is an open source, global payment network that is fully decentralized without any central authorities.
Mathematics secures the network and empowers individuals to control their own finances.
Litecoin features faster transaction confirmation times and improved storage efficiency than the leading math-based currency.
With substantial industry support, trade volume and liquidity, Litecoin is a proven medium of commerce complementary to Bitcoin.
[https://litecoin.org/]

Name::
* cpt.litecoin-network,
* cpt.ltcnet,

ltcnet'Exchange-value-unit.Consensus (LTCevuC)

Cpt-created: 2013-08-24,

Description::
Litecoin is a peer-to-peer Internet currency that enables instant payments to anyone in the world. It is based on the Bitcoin protocol but differs from Bitcoin in that it can be efficiently mined with consumer-grade hardware. Litecoin provides faster transaction confirmations (2.5 minutes on average) and uses a memory-hard, scrypt-based mining proof-of-work algorithm to target the regular computers with GPUs most people already have. The Litecoin network is scheduled to produce 84 million currency units. One of the aims of Litecoin was to provide a mining algorithm that could run at the same time, on the same hardware used to mine Bitcoins. With the rise of specialized ASICs for Bitcoin, Litecoin continues to satisfy these goals. It is unlikely for ASIC mining to be developed for Litecoin until the currency becomes more widely used.
[https://changelly.com/supported-currencies]
===
Litecoin (sign: L; code: LTC) is a peer-to-peer cryptocurrency and open source software project released under the MIT/X11 license.[1] Inspired by and technically nearly identical to Bitcoin (BTC),[2] Litecoin creation and transfer is based on an open source encryption protocol and is not managed by any central authority.[1][3] Litecoin is intended by its developers to improve upon Bitcoin[4] and offers three key differences.[5][6]
Each Litecoin is subdivided into 100,000,000 smaller units, defined by eight decimal places.
Central bank    None. The Litecoin peer-to-peer network regulates and distributes through consensus in protocol.
Date of introduction    7 October 2011
User(s)    International
Inflation    Limited release (geometric series, rate halves every 4 years reaching a final total of 84 million LTC)
Subunit   
0.001    mLTC (millicoin)
0.000001    µLTC (microcoin)
0.00000001    Smallest unit
Symbol    L
Nickname    LTC
Plural    Litecoin, litecoins
[http://en.wikipedia.org/wiki/Litecoin]
===
Το Litecoin γεννήθηκε το 2011 (2009 το Bitcoin), από έναν απόφοιτο του ΜΙΤ και πρώην εργαζόμενο της Google – θεωρείται δε ως το «ασήμι» της αγοράς, εάν θεωρηθεί ως ο «χρυσός» το Bitcoin. Συνολικά υπολογίζεται να τοποθετηθούν στην αγορά 21 εκ. Bitcoins έως το 2040, καθώς επίσης 84 εκ. Litecoins – ενώ οι συναλλαγές με το δεύτερο είναι κατά πολύ γρηγορότερες (2,5 λεπτά της ώρας), από ότι με το πρώτο (10 λεπτά).
[http://www.analyst.gr/2013/12/02/4959/]

Name::
* cpt.litecoin-consensus-exval-token, {2017-03-31}
* cpt.LTC-evuC,
* cpt.LTC-token,
* cpt.ltccevt, {2017-03-31}
* cpt.Litecoin,
* cpt.bcnevt.litecoin,
* cpt.mnyLitecoin,
* cpt.mnyLtc,
* cpt.mnyLitecoin,
* cpt.mnyLTC,

ltcnet'Resource

AddressWpg::
* https://litecoin.com/,
* {2017-05-10} Litecoin Has Now Deployed Segregated Witness: https://bitcoinmagazine.com/,

bcnnet.time.Namecoin (NMCnet {2011-04-17})

Description::
Namecoin is an experimental open-source technology which improves decentralization, security, censorship resistance, privacy, and speed of certain components of the Internet infrastructure such as DNS and identities.
(For the technically minded, Namecoin is a key/value pair registration and transfer system based on the Bitcoin technology.)
Bitcoin frees money – Namecoin frees DNS, identities, and other technologies.
[https://namecoin.org/]

Name::
* cpt.namecoin-network,
* cpt.nmcnet,

nmcnet'Blockchain (nmcbcn)

nmcnet'Block-explorer

AddressWpg::
* http://explorer.namecoin.info/
* BlockH0: http://explorer.namecoin.info/b/0,

nmcnet'Concensus-evt (NMCevuC)

Cpt-created: 2013-08-24,

Description::
Namecoin (NMC)
$0.827300 (-0.32%)
0.00069793 BTC (-1.30%)
Rank 48
Mineable Currency
Market Cap
$12,191,424
10,285 BTC
Volume (24h)
$124,627
105.14 BTC
Circulating Supply
14,736,400 NMC
[https://coinmarketcap.com/currencies/namecoin/ {2017-04-15}]
===
Namecoin (sign: N; code: NMC) is a cryptocurrency which also acts as an alternative, decentralized DNS, which would avoid domain name censorship by making a new top level domain outside of ICANN control, and in turn, make internet censorship much more difficult, as well as reduce downages.[3][4][5][1][2][6][7][8][9]

Namecoin currently uses the .bit domain, and as of July 2013, 78549 .bit domains have been registered.[1][2][7][10][11] bit domains are not currently awarded, hence to resolve domain names, one must have either a copy of the Namecoin "blockchain" (a decentralized ledger storing all transactions and domains), or access to a public DNS server that participates in the Namecoin system.[1][12]

There is a limit of 21 million Namecoins, and each Namecoin is divisible down to 8 decimal places.[1] As of July 2013, one Namecoin costs around 0.45 USD, making Namecoin roughly level with PPCoin as the third largest cryptocurrency, with a money supply valued at around 2.9 million USD.[13][14][15]
[http://en.wikipedia.org/wiki/Namecoin]
===
Namecoin - created in 2010, Namecoin is best described as a decentralized name registration database. In decentralized protocols like Tor, Bitcoin and BitMessage, there needs to be some way of identifying accounts so that other people can interact with them, but in all existing solutions the only kind of identifier available is a pseudorandom hash like 1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy. Ideally, one would like to be able to have an account with a name like "george". However, the problem is that if one person can create an account named "george" then someone else can use the same process to register "george" for themselves as well and impersonate them. The only solution is a first-to-file paradigm, where the first registerer succeeds and the second fails - a problem perfectly suited for the Bitcoin consensus protocol. Namecoin is the oldest, and most successful, implementation of a name registration system using such an idea.
[https://github.com/ethereum/wiki/wiki/White-Paper]
===
Namecoin:
An altcoin designed to provide an alternative to the traditional domain name system (DNS).
Users can register .bit domains, accessible via proxy servers, by paying with namecoins.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.Namecoin,
* cpt.Namecoin-token,
* cpt.NMC-evuC,
* cpt.NMC-token,
* cpt.nmccevt,

bcnnet.time.Bitcoin (BTCnet {2009-01-03})

Cpt-created: {2012-05-27}

Generic::
* blockchain-network,

btcnet'DESCRIPTON

* btcdefinition,

Description::
Bitcoin
Refers to a protocol, network or a unit of currency.

As a protocol, Bitcoin is a set of rules that every client must follow to accept transactions and have its own transactions accepted by other clients. Also includes a message protocol that allows nodes to connect to each other and exchange transactions and blocks.

As a network, Bitcoin is all the computers that follow the same rules and exchange transactions and blocks between each other.

As a unit, one Bitcoin (BTC, XBT) is defined as 100 million satoshis, the smallest units available in the current transaction format. Bitcoin is not capitalized when speaking about the amount: "I received 0.4 bitcoins."
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md#bitcoin]

Description::
Bitcoin represents the culmination of decades of research in cryptography and distributed systems and includes four key innovations brought together in a unique and powerful combination.
Bitcoin consists of:
A decentralized peer-to-peer network (the bitcoin protocol)
A public transaction ledger (the blockchain)
A decentralized mathematical and deterministic currency issuance (distributed mining)
A decentralized transaction verification system (transaction script)
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

Description::
Bitcoin is two things which share a name: 1) a payment system and 2) a currency. You use the Bitcoin payment system to send bitcoins as currency from one account holder to another. The transfer is instantaneous, carries no necessary fee, works anywhere in the world, and is private.
[http://keepyourassets.net/2012/09/27/bitcoin-the-first-five-questions/]
Bitcoin is also the name of the open source software which enables the use of this currency.
[http://bitcoin.org/] 2012-05-27,

Description::
Connect to the world’s first borderless payment network - Bitcoin.
[https://bitpay.com/tour]

Description::
Bitcoin is a decentralized P2P electronic cash system without a central server or trusted parties. Users hold the crypto keys to their own money and transact directly with each other, with the help of the network to check for double-spending.
[http://sourceforge.net/projects/bitcoin/] 2013-03-18

Description::
Just like the Internet, Bitcoin is not a corporation and does not have a CEO.
[http://www.givebtc.org/GiveBTC_-_Handbook_for_Non_Profits.pdf]

Description::
Bitcoin uses a simple broadcast network to propagate transactions and blocks. All communications are done over TCP. Bitcoin is fully able to use ports other than 8333 via the -port parameter. IPv6 is suported with Bitcoind/Bitcoin-Qt v0.7.
[https://en.bitcoin.it/wiki/Network]

Description::
A decentralized peer-to-peer network (the bitcoin protocol)
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

Description::
Behind the scenes, bitcoin is also the name of the protocol, a network, and a distributed computing innovation.
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

btcnet'NAME

Name::
* cpt.bitcoin-ecosystem,
* cpt.bitcoin-Electronic-Cash-System, [Nakamoto 2008]
* cpt.bitcoin-financial-network,
* cpt.bitcoin-network,
* cpt.bitcoin-payment-system,
* cpt.Bitcoin-Peer-to-Peer-Electronic-Cash-System, [Nakamoto]
* cpt.bitcoin-peer-to-peer-network,
* cpt.bitcoin-system,
* cpt.bitcoinland,
* cpt.btcn,
* cpt.btcnet,
* cpt.btcnetwork,
* cpt.btcStm, {2015-08-10}
* cpt.netBtc, {2016-03-25}
* cpt.stmBtc, {2015-08-10}
======
* Bitcoin is the first financial network that exhibits the characteristics of neutrality.
[https://www.cryptocoinsnews.com/bitcoin-evangelist-antonopoulos-in-barcelona-thoughts-on-the-future-of-money/]

btcnet'Attribute.INDEXED (btcatt)

Name::
* cpt.btcattribute.indexed,
* cpt.btcglossary,
* cpt.btcvocabulary,

Specific::
* https://en.bitcoin.it/wiki/Vocabulary,
* Oleg Andreev: https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md,
===
* btcBare_multisig

* btcChild_private_key
* btcChild_public_key
* btcCompressed_public_key
* btcConfirmation_score

* btcData_carrier_transaction
* btcData_pushing_op_code
* btcDNS_seed

* btcEscrow_contract
* btcExtended_key

* btcFree_transaction

* btcHardened_extended_key
* btcHeader
* btcHeader_chain
* btcHeaders_first_sync
* btcHigh_priority_transaction

* btcIBD
* btcInitial_block_download
* btcInternal_byte_order
* btcInventory

* btcMajority_attack
* btcMaster_chain_code
* btcMaster_private_key
* btcMerkle_block
* btcMerkle_root
* btcMessage_header
* btcMiners_fee
* btcMinimum_relay_fee
* btcMultisig

* btcNetwork_magic
* btcnLockTime
* btcNon_data_pushing_op_code
* btcNull_data_transaction

* btcOP_RETURN_transaction
* btcOrphan_block
* btcOutpoint

* btcP2P_protocol_messages
* btcP2PKH_address
* btcP2PKH_output
* btcP2SH_address
* btcP2SH_multisig
* btcP2SH_output
* btcParent_key
* btcParent_private_key
* btcParent_public_key
* btcPayment_protocol
* btcPayment_request
* btcPOWPrivate_extended_keyPrivate_key
* btcPublic_extended_key
* btcBitcoin_Core_RPCs

* btcRaw_transaction
* btcRedeem_script
* btcRedeemScript
* btcRegression_test_mode
* btcRegtest
* btcRelay_fee
* btcRPC_byte_order

* btcSatoshis
* btcScriptPubKey
* btcSig
* btcSequence_number
* btcSerialized_block
* btcSerialized_transaction
* btcSighash
* btcSIGHASH_ALL
* btcSIGHASH_ANYONECANPAY
* btcSIGHASH_NONE
* btcSIGHASH_SINGLE
* btcSignature
* btcSignature_hash
* btcStale_block
* btcStart_string

* btcTransaction_malleability
* btcTransaction_mutability
* btcTxid
* btcWallet_Import_Format
* btcWatch_only_address
* btcWIF

btcatt.Oleg-Adreev

Description::
Glossary is made by Oleg Andreev (oleganza@gmail.com).
Twitter: @oleganza.

Send your thanks here: 1CBtcGivXmHQ8ZqdPgeMfcpQNJrqTrSAcG.

This glossary is released under WTFPL.
Do what you want with it, but I would appreciate if you give full credit in case you republish it.

Please report any mistakes or create pull requests on Github.
Contributors will be listed here. Thanks!

Some unusual terms are frequently used in Bitcoin documentation and discussions like *tx* or *coinbase*.
Or words like *scriptPubKey* were badly chosen and now deserve some extra explanation.
This glossary will help you understand exact meaning of all Bitcoin-related terms.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcglossary.Oleg-Adreev,
* cpt.btcOleg-Adreev-glossary,

btcASIC:
Stands for "application-specific integrated circuit".
In other words, a chip designed to perform a narrow set of tasks (compared to CPU or GPU that perform a wide range of functions).
ASIC typically refers to specialized *mining* chips or the whole machines built on these chips.
Some ASIC manufacturers: Avalon, ASICMiner, Butterfly Labs (BFL) and Cointerra.

btcASICMiner:
A Chinese manufacturer that makes custom mining hardware, sells shares for bitcoins, pays dividends from on-site mining and also ships actual hardware to customers.

btcBitcoin_ruby:
A Bitcoin utilities library in Ruby by Julian Langschaedel.
Used in production on *Coinbase.com*.

btcCasascious_Coins:
Physical collectible coins produced by Mike Caldwell. Each coin contains a *private key* under a tamper-evident hologram. The name "Casascius" is formed from a phrase "call a spade a spade", as a response to a name of Bitcoin itself.

btcCoin:
An informal term that means either 1 bitcoin, or an unspent *transaction output* that can be *spent*.

btcCoinbase.com:
US-based Bitcoin/USD exchange and web wallet service.

btcKey:
Could mean an ECDSA public or private key, or AES symmetric encryption key.
AES is not used in the protocol itself (only to encrypt the ECDSA keys and other sensitive data), so usually the word *key* means an ECDSA key.
When talking about *keys*, people usually mean private keys as public key can always be derived from a private one.
See also Private Key and *Public Key*.

btcMain_Chain:
A part of the blockchain which a node considers the most difficult (see difficulty).
All nodes store all valid blocks, including orphans and recompute the total difficulty when receiving another block.
If the newly arrived block or blocks do not extend existing main chain, but create another one from some previous block, it is called *reorganization*.

btcMiner:
A person, a software or a hardware that performs mining.

btcSecret_key:
Either the *Private Key* or an encryption key used in encrypted *wallets*.
Bitcoin protocol does not use encryption anywhere, so *secret key* typically means a *private key* used for signing transactions.


Incorrect peer-to-peer messages (like sending invalid transactions) may be considered a denial of service attack (see *DoS*).
Valid transactions sending very tiny amounts and/or having low *mining fees* are called Dust by some people.
The protocol itself does not define which transactions are not worth relaying or mining, it's a decision of every individual node.
Any valid transaction in the blockchain must be accepted by the node if it wishes to accept the remaining blocks, so transaction censorship only means increased confirmation delays.
Individual payees may also blacklist certain addresses (refuse to accept payments from some addresses), but that's too easy to work around using *mixing*.


VarInt:
This term may cause confusion as it means different formats in different Bitcoin implementations. See *CompactSize* for details.

btcatt.Coindesk

Description::
CoinDesk is the world leader in news and information on digital currencies such as bitcoin, and its underlying technology – the blockchain.
We cover news and analysis on the trends, price movements, technologies, companies and people in the bitcoin and digital currency world.
[http://www.coindesk.com/about-us/]

Name::
* cpt.btcglossary.Coindesk,
* cpt.btcCoindesk-glossary,

AddressWpg::
[http://www.coindesk.com/information/bitcoin-glossary/]

btcAML:
Anti-Money Laundering techniques are used to stop people converting illegally obtained funds, to appear as though they have been earned legally.
AML mechanisms can be legal or technical in nature.
Regulators frequently apply AML techniques to bitcoin exchanges.

btcASIC:
An Application Specific Integrated Circuit is a silicon chip specifically designed to do a single task.
In the case of bitcoin, they are designed to process SHA-256 hashing problems to mine new bitcoins.

btcASIC_miner:
A piece of equipment containing an ASIC chip, configured to mine for bitcoins.
They can come in the form of boards that plug into a backplane, devices with a USB connector, or standalone devices including all of the necessary software, that connect to a network via a wireless link or ethernet cable.

btcBitcoin_Investment_Trust:
This private, open-ended trust invests exclusively in bitcoins and uses a state-of-the-art protocol to store them safely on behalf of its shareholders.

It provides a way for people to invest in bitcoin without having to purchase and safely store the digital currency themselves.

btcBitcoin_Sentiment_Index, btcBSI:
The Bitcoin Sentiment Index is a measure of whether individuals feel the digital currency's prospects are increasing or decreasing on any given day, and is powered by data collected by Qriously.

btcBitcoin_Market_Potential_Index, btcBMPI:
The Bitcoin Market Potential Index (BMPI) uses a data set to rank the potential utility of bitcoin across 177 countries.
It attempts to show which markets have the greatest potential for bitcoin adoption.

btcBitcoin_Price_Index, btcBPI:
The CoinDesk Bitcoin Price Index represents an average of bitcoin prices across leading global exchanges that meet criteria specified by the BPI.
There is also an API for developers to use.

btcBitPay:
A payment processor for bitcoins, which works with merchants, enabling them to take bitcoins as payment.

btcButtonwood:
A project founded by bitcoin enthusiast Josh Rossi, to form a public outcry bitcoin exchange in New York's Union Square.
Named after the Buttonwood agreement, which formed the basis for the New York Stock Exchange in 1792.

btcCircle:
Circle is an exchange and wallet service, offering users worldwide the chance to store, send, receive and exchange bitcoins.

btcCoin_age:
The age of a coin, defined as the currency amount multiplied by the holding period.

btcDDoS:
A distributed denial of service attack uses large numbers of computers under an attacker’s control to drain the resources of a central target.
They often send small amounts of network traffic across the Internet to tie up computing and bandwidth resources at the target, which prevents it from providing services to legitimate users.
Bitcoin exchanges have sometimes been hit with DDoS attacks.

btcDeflation:
The reduction of prices in an economy over time.
It happens when the supply of a good or service increases faster than the supply of money, or when the supply of money is finite, and decreases.
This leads to more goods or services per unit of currency, meaning that less currency is needed to purchase them.
This carries some downsides.
When people expect prices to fall, it causes them to stop spending and hoard money, in the hope that their money will go further later.
This can depress an economy.

btcEscrow:
The act of holding funds or assets in a third-party account to protect them during an asynchronous transaction.
If Bob wants to send money to Alice in exchange for a file, but they cannot conduct the exchange in person, then how can they trust each other to send the money and file to each other at the same time?
Instead, Bob sends the money to Eve, a trusted party who holds the funds until Bob confirms that he has received the file from Alice.
She then sends Alice the money.

btcFaucent:
A technique used when first launching an altcoin.
A set number of coins are pre-mined, and given away for free, to encourage people to take interest in the coin and begin mining it themselves.

btcFiat_currency:
A currency, conjured out of thin air, which only has value because people say it does.
Constantly under close scrutiny by regulators due to its known application in money laundering and terrorist activities.
Not to be confused with bitcoin.

btcFinCEN:
The Financial Crimes Enforcement Network, an agency within the US Treasury Department.
FinCEN has thus far been the main organization to impose regulations on exchanges trading in bitcoin.

btcFPGA:
A Field Programmable Gate Array is a processing chip that can be configured with custom functions after it has been fabricated.
Think of it as a blank silicon slate on which instructions can be written.
Because FPGAs can be produced en masse and configured after fabrication, manufacturers benefit from economies of scale, making them cheaper than ASIC chips.
However, they are usually far slower.

btcGPU:
Graphical Processing Unit.
A silicon chip specifically designed for the complex mathematical calculations needed to render millions of polygons in modern computer game graphics.
They are also well suited to the cryptographic calculations needed in cryptocurrency mining.

btcInflation:
When the value of money drops over time, causing prices for goods to increase.
The result is a drop in purchasing power.
Effects include less motivation to hoard money, and more motivation to spend it quickly while the prices of goods are still low.

btcKYC:
Know Your Client/Customer rules force financial institutions to vet the people they are doing business with, ensuring that they are legitimate.

btcLeverage, btcMargin_requirement:
In foreign currency trading, leverage multiplies the real funds in your account by a given factor, enabling you to make trades that result in significant profit.
By giving leverage to a trader, the trading exchange is effectively lending them money, in the hope that it will earn back more than it loaned in commission.
Leverage is also known as a margin requirement.

btcLiberty_Reserve:
A centralized digital currency payment processor based in Costa Rica.
It was shut down by the US government, after it was found guilty of money laundering.

btcLiquidity:
The ability to buy and sell an asset easily, with pricing that stays roughly similar between trades.
A suitably large community of buyers and sellers is important for liquidity.
The result of an illiquid market is price volatility, and the inability to easily determine the value of an asset.

btcMargin_call:
The act of calling in a margin requirement.
An exchange will issue a margin call when it feels that a trader does not have sufficient funds to cover a leveraged trading position.

btcMarket_order:
An instruction given to an exchange, asking it to buy or sell an asset at the going market rate.
In a bitcoin exchange, you would place a market order if you simply wanted to buy or sell bitcoins immediately, rather than holding them until a set market condition is triggered to try and make a profit.

btcP2P:
Peer-to-peer.
Decentralized interactions that happen between at least two parties in a highly interconnected network.
An alternative system to a 'hub-and-spoke' arrangement, in which all participants in a transaction deal with each other through a single mediation point.

btcPrimecoin
Developed by Sunny King, Primecoin uses a proof of work system to calculate prime numbers.

btcPSP:
Payment Service Provider.
The PSP offers payment processing services for merchants who wish to accept payments online.

btcPump_and_dump:
Inflating the value of a financial asset that has been produced or acquired cheaply, using aggressive publicity and often misleading statements.
The publicity causes others to acquire the asset, forcing up its value.
When the value is high enough, the perpetrator sells their assets, cashing in and flooding the market, which causes the value to crash.

btcSilk_Road:
An underground online marketplace, generally used for illicit purchases, often with cryptocurrencies such as bitcoin.
Silk Road was shut down in early October 2013 by the FBI after owner Ross Ulbricht was arrested.
Ulbricht was later convicted on money laundering and drug distribution charges.

btcSEPA:
The Single European Payments Area.
A payment integration agreement within the European Union, designed to make it easier to transfer funds between different banks and nations in euros.

btcTOR:
An anonymous routing protocol, used by people wanting to hide their identity online.

btcVolatility:
The measurement of price movements over time for a traded financial asset (including bitcoin).

btcWire_transfer:
Electronically transferring money from one person to another.
Commonly used to send and retrieve fiat currency from bitcoin exchanges.

btcZerocoin:
A protocol designed to make cryptocurrency transactions truly anonymous.

btcnet'Protocol (btcprl)

Name::
* cpt.bitcoin-protocol,
* cpt.btcprotocol,
* cpt.Bitcoin-message-protocol,
* cpt.bitcoin-protocol,
* cpt.btcprl,

NameGreek::
* ενν.μπιτκόιν-πρωτόκολλο,
* ενν.πρωτόκολλο-μπιτκόιν,

Generic::
* blockchain-protocol,

btcprl'White-paper (btcwpr {2008})

Description::
The bitcoin whitepaper was written by ‘Satoshi Nakamoto’ and posted to a Cryptography Mailing list in 2008.
The paper describes the bitcoin protocol in detail, and is well worth a read.
Satoshi Nakamoto followed this by releasing the bitcoin code in 2009.
...
In November 2008, a paper, authored (probably pseudonymously) by Satoshi Nakamoto, was posted on the newly created Bitcoin.org website with the title ‘Bitcoin: A Peer-to-Peer Electronic Cash System’.
The eight-page document described methods of using a peer-to-peer network to generate "a system for electronic transactions without relying on trust" and laid down the working principles of the cryptocurrency.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-whitepaper,
* cpt.btcwpr,

NameGreek::
* ενν.λευκή-βίβλος-του-μπτικόιν,

AddressWpg::
* https://bitcoin.org/bitcoin.pdf,
* http://www.cryptovest.co.uk/resources/Bitcoin%20paper%20Original.pdf,

Bitcoin: A Peer-to-Peer Electronic Cash System
Satoshi Nakamoto
www.bitcoin.org
{2008-10-31}

Abstract

A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.
Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending.
We propose a solution to the double-spending problem using a peer-to-peer network.
The network timestamps transactions by hashing them into an ongoing chain of hashbased proof-of-work, forming a record that cannot be changed without redoing the proof-of-work.
The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power.
As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers.
The network itself requires minimal structure.
Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.

1. Introduction

Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments.
While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model.
Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes.
The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for nonreversible services.
With the possibility of reversal, the need for trust spreads.
Merchants must be wary of their customers, hassling them for more information than they would otherwise need.
A certain percentage of fraud is accepted as unavoidable.
These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party.

What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party.
Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers.
In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions.
The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes.

2. Transactions

We define an electronic coin as a chain of digital signatures.
Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin.
A payee can verify the signatures to verify the chain of ownership.


The problem of course is the payee can't verify that one of the owners did not double-spend the coin.
A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending.
After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent.
The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank.

We need a way for the payee to know that the previous owners did not sign any earlier transactions.
For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend.
The only way to confirm the absence of a transaction is to be aware of all transactions.
In the mint based model, the mint was aware of all transactions and decided which arrived first.
To accomplish this without a trusted party, transactions must be publicly announced[01], and we need a system for participants to agree on a single history of the order in which they were received.
The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received.

3. Timestamp Server

The solution we propose begins with a timestamp server.
A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post[2-5].
The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash.
Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it.


4. Proof-of-Work

To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof-of-work system similar to Adam Back's Hashcash[06], rather than newspaper or Usenet posts.
The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits.
The average work required is exponential in the number of zero bits required and can be verified by executing a single hash.

For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits.
Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work.
As later blocks are chained after it, the work to change the block would include redoing all the blocks after it.


The proof-of-work also solves the problem of determining representation in majority decision making.
If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs.
Proof-of-work is essentially one-CPU-one-vote.
The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it.
If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains.
To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes.
We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added.

To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour.
If they're generated too fast, the difficulty increases.

5. Network

The steps to run the network are as follows:
1. New transactions are broadcast to all nodes.
2. Each node collects new transactions into a block.
3. Each node works on finding a difficult proof-of-work for its block.
4. When a node finds a proof-of-work, it broadcasts the block to all nodes.
5. Nodes accept the block only if all transactions in it are valid and not already spent.
6. Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash.

Nodes always consider the longest chain to be the correct one and will keep working on extending it.
If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first.
In that case, they work on the first one they received, but save the other branch in case it becomes longer.
The tie will be broken when the next proof-of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one.

New transaction broadcasts do not necessarily need to reach all nodes.
As long as they reach many nodes, they will get into a block before long.
Block broadcasts are also tolerant of dropped messages.
If a node does not receive a block, it will request it when it receives the next block and realizes it missed one.

6. Incentive

By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block.
This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them.
The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation.
In our case, it is CPU time and electricity that is expended.

The incentive can also be funded with transaction fees.
If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free.

The incentive may help encourage nodes to stay honest.
If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins.
He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth.

7. Reclaiming Disk Space

Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space.
To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash.
Old blocks can then be compacted by stubbing off branches of the tree.
The interior hashes do not need to be stored.


A block header with no transactions would be about 80 bytes.
If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year.
With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.

8. Simplified Payment Verification

It is possible to verify payments without running a full network node.
A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in.
He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.


As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker.
While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network.
One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency.
Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.

9. Combining and Splitting Value

Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer.
To allow value to be split and combined, transactions contain multiple inputs and outputs.
Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender.


It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here.
There is never the need to extract a complete standalone copy of a transaction's history.

10. Privacy

The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party.
The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous.
The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone.
This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the "tape", is made public, but without telling who the parties were.


As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner.
Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner.
The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner.

11. Calculations

We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain.
Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker.
Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them.
An attacker can only try to change one of his own transactions to take back money he recently spent.

The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk.
The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1.

The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem.
Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven.
We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows[8]:



Given our assumption that p>q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases.
With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind.

We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction.
We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed.
The receiver will be alerted when that happens, but the sender hopes it will be too late.

The receiver generates a new key pair and gives the public key to the sender shortly before signing.
This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment.
Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction.

The recipient waits until the transaction has been added to a block and z blocks have been linked after it.
He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value:



To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point:



Rearranging to avoid summing the infinite tail of the distribution...


#include <math.h>
double AttackerSuccessProbability(double q, int z)
{
  double p = 1.0 - q;
  double lambda = z * (q / p);
  double sum = 1.0;
  int i, k;
  for (k = 0; k <= z; k++)
  {
    double poisson = exp(-lambda);
    for (i = 1; i <= k; i++)
    poisson *= lambda / i;
    sum -= poisson * (1 - pow(q / p, z - k));
  }
  return sum;
}
    

Running some results, we can see the probability drop off exponentially with z.

q=0.1
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012

q=0.3
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006

Solving for P less than 0.1%...

P < 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340

12. Conclusion

We have proposed a system for electronic transactions without relying on trust.
We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending.
To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power.
The network is robust in its unstructured simplicity.
Nodes work all at once with little coordination.
They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis.
Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone.
They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them.
Any needed rules and incentives can be enforced with this consensus mechanism.

References

[1]. W. Dai, "b-money," http://www.weidai.com/bmoney.txt, 1998.

[2]. H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimal trust requirements," In 20th Symposium on Information Theory in the Benelux, May 1999.

[3]. S. Haber, W.S. Stornetta, "How to time-stamp a digital document," In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991.

[4]. D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital timestamping," In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993.

[5]. S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997.

[6]. A. Back, "Hashcash - a denial of service countermeasure," http://www.hashcash.org/papers/hashcash.pdf, 2002.

[7]. R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980.

[8]. W. Feller, "An introduction to probability theory and its applications," 1957.

btcprl'Implementation

btcprl'Reference-implementation (link)

btcprl'BIP (Bitcoin-Improvement-Proposals | btcbip)

Description::
People wishing to submit BIPs, first should propose their idea or document to the mailing list. After discussion they should email Greg Maxwell <gmaxwell@gmail.com>. After copy-editing and acceptance, it will be published here.

We are fairly liberal with approving BIPs, and try not to be too involved in decision making on behalf of the community. The exception is in very rare cases of dispute resolution when a decision is contentious and cannot be agreed upon. In those cases, the conservative option will always be preferred.

Having a BIP here does not make it a formally accepted standard until its status becomes Active. For a BIP to become Active requires the mutual consent of the community.

Those proposing changes should consider that ultimately consent may rest with the consensus of the Bitcoin users (see also: economic majority).
[https://github.com/bitcoin/bips#readme]
===
Bitcoin Improvement Proposals.
RFC-like documents modeled after PEPs (Python Enhancement Proposals) discussing different aspects of the protocol and software.
Most interesting BIPs describe *hard fork* changes in the core protocol that require supermajority of Bitcoin users (or, in some cases, only miners) to agree on the change and accept it in an organized manner.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.BIP,
* cpt.Bitcoin-Improvement-Proposals,
* cpt.btcBIP,
* cpt.btcBitcoin-Improvement-Proposals,
* cpt.btcprl'BIP,
* cpt.btcnet'BIP,

NameGreek::
* ενν.Προτάσεις-Βελτίωσης-Bitcoin,

AddressWpg::
* https://github.com/bitcoin/bips#readme,

btcbip'Attribute

Specific::
* Number
* Layer
* Title
* Owner
* Type
* Status

ptcprl'SegWit

Description::
Segwit is a proposal to allow transaction-producing software to separate (segregate) transaction signatures (witnesses) from the rest of the data in a transaction, and to allow miners to place those witnesses outside of the traditional block structure.
[https://bitcoincore.org/en/2016/06/24/segwit-next-steps/]

Name::
* cpt.btcnet'SegWit,
* cpt.segwit,

btcnet'Sidechain

Name::
* cpt.bitcoin-sidechain,
* cpt.pegged-sidechain,
* cpt.btcsidechain,

AddressWpg::
* https://www.blockstream.com/
* https://www.blockstream.com/sidechains.pdf,

btcprl'Lightning-network

Description::
A quick overview of what the Lightning network is
- A payment layer that makes use of the script language in Bitcoin
- A way to send and spend Bitcoin across nodes instantly and irreversibly
- A layer that builds on the security of the underlying protocol, Bitcoin
[https://medium.com/@btc_coach/lightning-network-in-action-b18a035c955d]
===
The lightning network is a highly anticipated second-layer protocol to be rolled out on top of Bitcoin’s blockchain. Cleverly utilizing Bitcoin’s programmable elements (like multisignature and time-locks), lightning users should be able to make a virtually unlimited number of off-chain transactions with instant confirmations and at low cost. This should boost Bitcoin’s micropayment-ability, overall scalability and even privacy.
[https://bitcoinmagazine.com/articles/lightning-network-one-step-closer-to-reality-as-lightning-labs-announces-alpha-release-1484333955]
===
Announcing the Thunder Network Alpha Release
Peter · May 16, 2016 · Leave a Reply
At Blockchain, we’re on a mission to create an open, accessible, and equitable financial future. Since our inception, we have focused on building products that make it easy for everyday people to use bitcoin to store and transfer value all over the world. We make Bitcoin usable and useful. We’ve been able to do that because we develop with a user-focused mandate.

A faster, cheaper, and more functional network would deliver real value to our users, so we were excited by the growth of research into payment channel technology on the bitcoin network and innovative uses of this technology. We were particularly interested in the idea of using smart contracts to build what are basically super-charged payments networks, as outlined in a white paper by the lightning.network team. Last year, we hired a talented engineer, Mats Jerratsch, who had been pioneering innovation in this vertical to work with our engineering team and lead research and development on a network based around these ideas.

Lightning networks have been purely conceptual, research based, and only in test nets and labs – until now. Today, we release the alpha version of our Thunder Network, the first usable implementation of the Lightning network for off chain bitcoin payments that settles back to the main bitcoin blockchain.

We used it internally a few days ago. Click here to learn all about Transaction 0 between Mats and me.

Thunder has the potential to facilitate secure, trustless, and instant payments. It has the ability to unleash the power of microtransactions, to allow the bitcoin network to handle heavy loads, and to increase user privacy. In this Alpha version, we prove that it can be done. From a feature perspective, there is both a node and a wallet (with GUI) present. Even more importantly:

Settlement to the bitcoin blockchain
Scale: According to our tests so far, we can achieve better-than-Visa scale (100,000 TPS) with only a few thousand nodes on the network
Extremely cheap payments: fees will develop naturally, due to the free market in an open and permissionless network and will fundamentally be lower than on-chain payments
Encryption and Authentication: All communications between all nodes and wallets are encrypted using AES-CTR and take place only after completing authentication.
Seed Peers and automatically provide them with network topology using a basic gossip protocol similar to the one used in the bitcoin network, which allows complex routes over multiple hops
Payment Channels can be opened and closed at will, with transactions settling onto the bitcoin blockchain
Payment Debate: Across the route each hop will renegotiate a new status with the next hop, as a payment makes its way through the network with cryptography in place to prevent fraud
Relaying Payments: TN will relay payments over multiple nodes in the network automatically, using encrypted routing. No one knows who made a payment, allowing for more privacy
Settle payments automatically, no manual intervention needed. The settlement will ripple back through the network to provide proof-of-payment
Instant Payments that are irrevocable the moment you see them
Until both CSV and SegWit are implemented on the bitcoin blockchain, transactions are not enforceable at the bitcoin protocol level. So, the current Thunder prototype is best suited for transactions among a trusted network of users. Try this amongst your dev team or amongst your trusted internet friends, but don’t use it for real payments. Remember: this is alpha testing software.

So why release this now? We believe it is critical to get something in the hands of users as soon as possible to gain feedback that will enable us to be ready when the network is. So review it, test it out, open an issue on GitHub, or send us an email. If you want to work on tech like this full time, head here and apply to join our team.

We encourage you to find out more at:
www.blockchain.com/thunder
https://github.com/blockchain/thunder
[https://blog.blockchain.com/2016/05/16/announcing-the-thunder-network-alpha-release/]

Name::
* cpt.bitcoin-lightning-network,
* cpt.bitcoin-thunder-network,
* cpt.btcnet'Lightning-network,
* cpt.lightning-network-of-bitcoin,

AddressWpg::
* {2017-03-26} https://medium.com/@btc_coach/lightning-network-in-action-b18a035c955d#.t0xv3e8mk,
* https://lightning.network/
* https://medium.com/@AudunGulbrands1/lightning-faq-67bd2b957d70#.gtx36kylc,

ptcprl'Resource

AddressWpg::
* https://lightning.network/lightning-network-paper.pdf,

btcnet'Node (btcnod)

Description::
Node:
A computer connected to the bitcoin network using a client that relays transactions to others (see client).
If you'd like to run a bitcoin node, then bitcoin.org offers a comprehensive guide.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Node, or client, is a computer on the network that speaks Bitcoin message protocol (exchanging transactions and blocks).
There are *full nodes* that are capable of validating the entire blockchain and *lightweight nodes*, with reduced functionality.
Wallet applications that speak to a server are not considered nodes.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
A computer connected to the bitcoin network using a client that relays transactions to others (see client). If you'd like to run a bitcoin node, then bitcoin.org offers a comprehensive guide.
[http://www.coindesk.com/information/bitcoin-glossary/#node]
===
A system running a Bitcoin client is called a Bitcoin node.
The Bitcoin network's function is to relay two types of messages: Transactions and blocks.
A transaction is a digitally signed instruction to transfer money between addresses, as described earlier.
A block is: A set of transactions.Apr 7, 2013
Bitcoin part 10: The network « self-evident
[https://self-evident.org/?p=999]

Name::
* cpt.btcnod,
* cpt.btcnode,
* cpt.bitcoin-node,
* cpt.btcnet'node,

NameGreek::
* ενν.κόμβος-μπιτκόιν,

btcnod'Consensus

Description::
When several nodes (usually most nodes on the network) all have the same blocks in their locally-validated best block chain.
[https://bitcoin.org/en/glossary/consensus]

Name::
* cpt.btcconsensus,

NameGreek::
* ενν.μπιτκόιν-συναίνεση,

btcnod'Hardware

btcnod'Software

btcnod'Resource

AddressWpg::
* https://getaddr.bitnodes.io/

btcnod.AGGREGATE

{time.2017-04-05};
Reachable nodes as of Wed Apr 05 2017 15:37:06 GMT+0300 (Eastern Europe Daylight Time).
6981 NODES
[https://bitnodes.21.co/]

{time.2017}:
Each of the currently approx. 6,500 computing nodes in the Bitcoin network constantly works on forming blocks, a process referred to as mining.
[http://www.sciplore.org/wp-content/papercite-data/pdf/gipp15a.pdf, ~=2015]

btcnod.FULL

Description::
A node which implements all of Bitcoin protocol and does not require trusting any external service to validate transactions.
It is able to download and validate the entire *blockchain*.
All full nodes implement the same peer-to-peer messaging protocol to exchange transactions and blocks, but that is not a requirement.
A full node may receive and validate data using any protocol and from any source.
However, the highest security is achieved by being able to communicate as fast as possible with as many nodes as possible.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
A full node is defined as a network-attached bitcoin client application, such as the original bitcoin Core (QT) client or an implementation of the bitcoind framework. A full node has the entire, up-to-date set of blockchain files, and also has port 8333 open, so it is set to listen for incoming requests. This list is very specific, and all of these conditions must be met for it to be a useful full node.
[http://bravenewcoin.com/news/the-decline-in-bitcoins-full-nodes/]
===
A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
Most full nodes also serve lightweight clients by allowing them to transmit their transactions to the network and by notifying them when a transaction affects their wallet. If not enough nodes perform this function, clients won’t be able to connect through the peer-to-peer network—they’ll have to use centralized services instead.
Many people and organizations volunteer to run full nodes using spare computing and bandwidth resources—but more volunteers are needed to allow Bitcoin to continue to grow. This document describes how you can help and what helping will cost you.
[https://bitcoin.org/en/full-node#what-is-a-full-node]
===
Each full node in the Bitcoin network independently stores a block chain containing only blocks validated by that node.
[https://bitcoin.org/en/developer-guide#block-chain]
===
The Bitcoin network protocol allows full nodes (peers) to collaboratively maintain a peer-to-peer network for block and transaction exchange.
[https://bitcoin.org/en/developer-guide#term-peer]

Name::
* cpt.bitcoin-full-node,
* cpt.btcfull-node,
* cpt.btcpeer,
* cpt.btcfnd,

AddressWpg::
* https://bitcoin.org/en/full-node,

btcnodFul'Bitcoin-Core (link)

btcnodFul'requirements

Description::
Minimum Requirements
Bitcoin Core full nodes have certain requirements. If you try running a node on weak hardware, it may work—but you’ll likely spend more time dealing with issues. If you can meet the following requirements, you’ll have an easy-to-use node.

Desktop or laptop hardware running recent versions of Windows, Mac OS X, or Linux.

50 gigabytes of free disk space

2 gigabytes of memory (RAM)

A broadband Internet connection with upload speeds of at least 400 kilobits (50 kilobytes) per second

An unmetered connection, a connection with high upload limits, or a connection you regularly monitor to ensure it doesn’t exceed its upload limits. It’s common for full nodes on high-speed connections to use 200 gigabytes upload or more a month. Download usage is around 20 gigabytes a month, plus around an additional 40 gigabytes the first time you start your node.

6 hours a day that your full node can be left running. (You can do other things with your computer while running a full node.) More hours would be better, and best of all would be if you can run your node continuously.

Note: many operating systems today (Windows, Mac, and Linux) enter a low-power mode after the screensaver activates, slowing or halting network traffic. This is often the default setting on laptops and on all Mac OS X laptops and desktops. Check your screensaver settings and disable automatic “sleep” or “suspend” options to ensure you support the network whenever your computer is running.
[https://bitcoin.org/en/full-node#minimum-requirements]

btcnod.FULL.NO (lightweight)

Description::
Lightweight client
Comparing to a full node, lightweight node does not store the whole blockchain and thus cannot fully verify any transaction.
There are two kinds of lightweight nodes: those fully trusting an external service to determine wallet balance and validity of transactions (e.g. blockchain.info) and the apps implementing Simplified Payment Verification (SPV).
SPV clients do not need to trust any particular service, but are more vulnerable to a 51% attack than full nodes. See Simplified Payment Verification for more info.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md#lightweight-client]
===
A protocol known as “simplified payment verification” (SPV) allows for another class of nodes to exist, called “light nodes”, which download the block headers, verify the proof of work on the block headers, and then download only the “branches” associated with transactions that are relevant to them.
This allows light nodes to determine with a strong guarantee of security what the status of any Bitcoin transaction, and their current balance, is while downloading only a very small portion of the entire blockchain.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

Name::
* cpt.bitcoin-light-node,
* cpt.btcnod.light,
* cpt.btclightweight-client-node,
* cpt.btclightweight-node,

btcnod.HONEST

Name::
* cpt.btchonest-peer,

btcnod.HONEST.NO

Description::
Take note that for both types of broadcasting, mechanisms are in place to punish misbehaving peers who take up bandwidth and computing resources by sending false information. If a peer gets a banscore above the -banscore=<n> threshold, he will be banned for the number of seconds defined by -bantime=<n>, which is 86,400 by default (24 hours).
[https://bitcoin.org/en/developer-guide#misbehaving-nodes]

Name::
* cpt.btchonestNo-peer,
* cpt.btcmalicious-node,
* cpt.btcmisbehaving-node,
* cpt.btcuntrustworthy-peer,

btcnod.MINER

Description::
The bitcoin network is driven by what are called miners, specialized computers that run the bitcoin software. In exchange, the people who run these miners are automatically paid in bitcoin. That’s their immediate incentive. But they also have an interest in expanding the network and keeping it running smoothly. Otherwise, those payments will dry up.
...
As Hearn pointed out, two Chinese operations control about 50 percent of the network’s mining power, and they’re reluctant to adopt the larger block size. “[They] refuse to switch to any competing product, as they perceive doing so as ‘disloyalty’—and they’re terrified of doing anything that might make the news of a ‘split’ and cause investor panic,” he wrote. “They have chosen instead to ignore the problem and hope it goes away.”
[http://www.wired.com/2016/02/the-schism-over-bitcoin-is-how-bitcoin-is-supposed-to-work/]
===
The process of finding a valid block is called mining whereas nodes that participate in that process are called miners.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Name::
* cpt.btcminer-node,
* cpt.btcnet'miner,

btcnodMnr'Mining (btcmng)

Description::
Mining infrastructure is the backbone of bitcoin. Anyone who contributes computing power to help process transactions on the network is rewarded with the chance to "mine" bitcoin.
In plain English, in return for helping keep the network up and running, they have the chance of being given a newly created piece of the digital currency.
[https://www.weforum.org/agenda/2016/06/these-photos-show-you-inside-an-icelandic-bitcoin-mine?]
===
Τα bitcoin δημιουργούνται μέσω μιας διαδικασίας που ονομάζεται «εξόρυξη» (mining), η οποία αφορά τον ανταγωνισμό για εύρεση λύσεων σε ένα μαθηματικό πρόβλημα κατά την επεξεργασία των συναλλαγών bitcoin.
Κάθε συμμετέχων στο δίκτυο bitcoin (ο καθένας δηλαδή με τη χρήση μιας συσκευής που τρέχει τη πλήρη στοίβα πρωτοκόλλου bitcoin) μπορεί να λειτουργήσει ως εξορύκτης (miner), χρησιμοποιώντας την επεξεργαστική ισχύ του υπολογιστή του για να επαληθεύει και να καταγράφει τις συναλλαγές.
Κάθε 10 λεπτά, κατά μέσο όρο, είναι σε θέση κάποιος να επικυρώσει τις συναλλαγές των τελευταίων 10 λεπτών και να ανταμειφθεί με ολοκαίνουργια bitcoin.
[Mastering Bitcoin, Adonopoulos, https://www.bitcoinbook.info/translations/el/book.pdf]
===
A decentralized mathematical and deterministic currency issuance (distributed mining)
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

Name::
* cpt.bitcoin-mining,
* cpt.btccevt'creating,
* cpt.btccevt'issuance,
* cpt.btccevt'mining,
* cpt.netBtc'currency-issuance,
* cpt.btccevt'mining,
* cpt.btcmining,
* cpt.netBtc'mining,

NameGreek::
* ενν.εξόρυξη-μπιτκόιν,

btcnodMnr'Resource

AddressWpg::
* https://cointelegraph.com/news/ pros-and-cons-of-starting-bitcoin-mining-farm-no-more-childs-play,

btcnodMnr'CLOUD-MINING

Name::
* cpt.bitcoin-clound-mining,
* cpt.btcclound-mining,

AddressWpg::
* {2016-07-02} https://cointelegraph.com/news/ hashocean-scam-victims-sign-petitions-to-fbi-hackers-to-reveal-more-scams,
“The website HashOcean.com is off-line and took with them millions of dollars from approximately 700,000 users worldwide. Since there are neither regulating institutions nor reliable sources of information, we have decided to open this channel to all users and supporters of cloud mining - people who believe in a transparent mining process. We created this petition to be able to ask the FBI and other similar institutions to trace those in charge of www.HashOcean.com - Cloud Mining. 700,000 users want their money back and the supporters of Cloud Mining deserve a reliable mining process.
If you lost money with www.HashOcean.com - Cloud Mining or you are simply a cryptocurrency supporter, please help us to raise awareness and get specialist help to trace the people responsible for HashOcean.com. Please sign the petition and forward to as many people as possible in all social medias. Let΄s unite and raise awareness as soon as possible.”

btcnodMnr'COMPANY

Description::
Bitcoin’s biggest mining farm, Bitmain/Antpool,
[http://cointelegraph.com/news/bitcoins-biggest-miner-invests-in-wings-development-to-make-dao-mainstream]

Name::
* cpt.bitcoin-mining-company,
* cpt.btcmining-company,

btcnod.SEED

Description::
Seed Nodes
Nodes whose IP addresses are included in the Bitcoin client for use during a new installation when the normal bootstrapping process through IRC wasn't possible.
[https://en.bitcoin.it/wiki/Vocabulary#Seed_Nodes]

Name::
* cpt.bitcoin-seed-node,
* cpt.btcseed-node,

btcnet'Blockchain (btcbcn)

Description::
The blockchain is a record of all transactions that have occured in the Bitcoin system and is shared by every node in it.
Its main purpose is to infer a list of all unspent transaction outputs and their spending conditions.
The novelty of Bitcoin lies, among other things, in how the blockchain is structured in order to guarantee chronological ordering of transactions and prevent double-spending in a distributed network.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Name::
* cpt.btcbcn,
* cpt.btcnet'blockchain,
* cpt.bitcoin-global-database,
* cpt.blockchain.bitcoin,
* cpt.btcbcn, 2015-09-13,
* cpt.btcbc, 2015-09-03,
* cpt.btcblockchain,
* cpt.btcblockchain,
* cpt.bitcoin-block-chain,

NameGreek::
* ενν.μπιτκόιν-μπλοκτσέιν,
* ενν.μπλοκτσέιν-του-μπικόιν,
* ενν.παγκόσμιο-μπιτκόιν-μπλοκτσέιν,
* ενν.παγκόσμιο-μπλοκτσέιν-του-μπικόιν,

Generic::
* Blockchain,

Description::
Blockchain:
The full list of blocks that have been mined since the beginning of the bitcoin cryptocurrency.
The blockchain is designed so that each block contains a hash drawing on the blocks that came before it.
This is designed to make it more tamperproof.

To add further confusion, there is a company called Blockchain, which has a very popular blockchain explorer and bitcoin wallet.
[http://www.coindesk.com/information/bitcoin-glossary/]

Description::
A block chain is a transaction database shared by all nodes participating in a system based on the Bitcoin protocol. A full copy of a currency's block chain contains every transaction ever executed in the currency. With this information, one can find out how much value belonged to each address at any point in history.

Every block contains a hash of the previous block. This has the effect of creating a chain of blocks from the genesis block to the current block. Each block is guaranteed to come after the previous block chronologically because the previous block's hash would otherwise not be known. Each block is also computationally impractical to modify once it has been in the chain for a while because every block after it would also have to be regenerated. These properties are what make double-spending of bitcoins very difficult. The block chain is the main innovation of Bitcoin.

Honest generators only build onto a block (by referencing it in blocks they create) if it is the latest block in the longest valid chain. "Length" is calculated as total combined difficulty of that chain, not number of blocks, though this distinction is only important in the context of a few potential attacks. A chain is valid if all of the blocks and transactions within it are valid, and only if it starts with the genesis block.

For any block on the chain, there is only one path to the genesis block. Coming from the genesis block, however, there can be forks. One-block forks are created from time to time when two blocks are created just a few seconds apart. When that happens, generating nodes build onto whichever one of the blocks they received first. Whichever block ends up being included in the next block becomes part of the main chain because that chain is longer. More serious forks have occurred after fixing bugs that required backward-incompatible changes.

Blocks in shorter chains (or invalid chains) are not used for anything. When the bitcoin client switches to another, longer chain, all valid transactions of the blocks inside the shorter chain are re-added to the pool of queued transactions and will be included in another block. The reward for the blocks on the shorter chain will not be present in the longest chain, so they will be practically lost, which is why a network-enforced 100-block maturation time for generations exists.

These blocks on the shorter chains are often called "orphan" blocks. This is because the generation transactions do not have a parent block in the longest chain, so these generation transactions show up as orphan in the listtransactions RPC call. Several pools have misinterpreted these messages and started calling their blocks "orphans". In reality, these blocks have a parent block, and might even have children.

Because a block can only reference one previous block, it is impossible for two forked chains to merge.

It's possible to use the block chain algorithm for non-financial purposes: see Alternative chain.

The block chain is broadcast to all nodes on the networking using a flood protocol: see Block chain download.
[https://en.bitcoin.it/wiki/Block_chain]

Description::
6) The mined block is added to the "blockchain", a big, unbreakable ledger that lives on the bitcoin network and serves as a record of all transactions.
[http://www.economist.com/blogs/graphicdetail/2015/01/daily-chart-3]

Description::
A public transaction ledger (the blockchain)
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

Description::
Blockchain is the system that bitcoin inventors devised. To understand how blockchain works requires dedicated study, but non-specialists might think of it as a publicly viewable spreadsheet that records every bitcoin transaction — who sent how much to whom (it's possible to remain fairly anonymous). Every few minutes, a "block" of new rows is added. But old blocks on the chain can't be edited. They're locked tight by theoretically unbreakable computer code.

See the most-read stories this hour >>
At least thousands of specially set up computers store a copy of the blockchain, so messing with records would require the herculean feat of infecting them all. Anyone can set up one of these computers, which work together to find inconsistencies and prevent fraud like double-spending. The people and businesses around the world who have set up these computers collect fees in exchange for authorizing transactions.

Finding applications for blockchain is wide-open territory right now. Factom, an organization in Austin, Texas, proposes using it to verify and lock down the records on mortgage contracts, with the aim of preventing some of the abuses of the mortgage meltdown, where signatures were faked and mortgage contracts went missing.
[http://www.latimes.com/business/la-fi-cutting-edge-blockchain-20150809-story.html]

Description::
Blockchain:
A public ledger of all confirmed transactions in a form of a tree of all valid *blocks* (including *orphans*).
Most of the time, "blockchain" means the *main chain*, a single most *difficult* chain of blocks.
Blockchain is updated by *mining* blocks with new transactions.
*Unconfirmed transactions* are not part of the blockchain.
If some clients disagree on which chain is main or which blocks are valid, a *fork* happens.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btcbcn'Block (btcblk)

Name::
* cpt.btc'block,
* cpt.btcblk,
* cpt.btcblock,
* cpt.btcBlock-Of-Transactions,
* cpt.btcnet'block,
* cpt.bitcoin-block,
* cpt.btcnet'blockchain'Block-of-transactions,

Whole::
* btc-blockchain,

Generic::
* file,

Description::
A data structure that consists of a *block header* and a *merkle tree* of transactions.
Each block (except for *genesis block*) references one previous block thus forming a tree called the *blockchain*.
Block can be though of as a group of transactions with a timestamp and a *proof-of-work* attached.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
One or more transactions prefaced by a block header and protected by proof of work.
Blocks are the data stored on the block chain.
[https://bitcoin.org/en/glossary/block]
===
Data is permanently recorded in the Bitcoin network through files called blocks.
A block is a record of some or all of the most recent Bitcoin transactions that have not yet been recorded in any prior blocks. They could be thought of like the individual pages of a city recorder's recordbook (where changes to title to real estate are recorded) or a stock transaction ledger. New blocks are added to the end of the record (known as the block chain), and can never be changed or removed once written (although some software will remove them if they are orphaned). Each block memorializes what took place in the minutes before it was created.
[https://en.bitcoin.it/wiki/Block]

btcblk'PART

Description::
Each block is composed of a header and a payload.
The header stores the current block header version (nVersion), a reference to the previous block (HashPrevBlock), the root node of the Merkle tree (HashMerkleRoot), a timestamp (nTime), a target value (nBits) and a nonce (nNonce).
Finally, the payload stores the number of transactions (#vtx ) and the vector of transactions (vtx ) included in the block.
Field name Type(Size) Description
* nVersion int(4 bytes) Block format version (currently 2).
* HashPrevBlock uint256(32 bytes) Hash of previous block header SHA2562 (nV ersion|| . . . ||nNonce).
* HashMerkleRoot uint256 (32 bytes) Top hash of the Merkle tree built from all transactions.
* nTime unsigned int (4 bytes) Timestamp in UNIX-format of approximate block creation time.
* nBits unsigned int (4 bytes) Target T for the proof of work problem in compact format. Full target value is derived as: T = 0xh2h3h4h5h6h7 * 2 8*(0xh0h1-3)
* nNonce unsigned int (4 bytes) Nonce allowing variations for solving the proof of work problem.
* #vtx VarInt (1-9 bytes) Number of transaction entries in vtx.
* vtx[ ] Transaction (Variable) Vector of transactions.
Table 3.1. Block Structure
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

btcblk'part.HEADER (80B)

Description::
Each block is composed of a header and a payload.
The header stores the current block header version (nVersion), a reference to the previous block (HashPrevBlock), the root node of the Merkle tree (HashMerkleRoot), a timestamp (nTime), a target value (nBits) and a nonce (nNonce).
Finally, the payload stores the number of transactions (#vtx ) and the vector of transactions (vtx ) included in the block.
Field name Type(Size) Description
1) nVersion int(4 bytes) Block format version (currently 2).
2) HashPrevBlock uint256(32 bytes) Hash of previous block header SHA256^2 (nV ersion|| . . . ||nNonce).
3) HashMerkleRoot uint256 (32 bytes) Top hash of the Merkle tree built from all transactions.
4) nTime unsigned int (4 bytes) Timestamp in UNIX-format of approximate block creation time.
5) nBits unsigned int (4 bytes) Target T for the proof of work problem in compact format. Full target value is derived as: T = 0xh2h3h4h5h6h7 * 2 8*(0xh0h1-3)
6) nNonce unsigned int (4 bytes) Nonce allowing variations for solving the proof of work problem.
* #vtx VarInt (1-9 bytes) Number of transaction entries in vtx.
* vtx[ ] Transaction (Variable) Vector of transactions.
Table 3.1. Block Structure
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]
===
A data structure containing a previous block hash, a hash of a merkle tree of transactions, a timestamp, a *difficulty* and a *nonce*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
An 80-byte header belonging to a single block which is hashed repeatedly to create proof of work.
[https://bitcoin.org/en/glossary/block-header]

Name::
* cpt.btcblk'header,
* cpt.btcblk-header,
* cpt.btcblock-header,

nVersion (4B)

Description::
The version field stores the version number of the block format.
Ever since BIP0034 [5] is in place, the block format version is 2 and blocks of any other version are neither relayed nor mined.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Name::
* cpt.btcnVersion,

HashPrevBlock (32B)

Description::
This field stores the reference to the previous block, computed as a hash over the block header as depicted in Fig. 3.1.
Figure 3.1. Block Reference Computation
A double-SHA256 hash is calculated over the concatenation of all elements in the previous block header:
SHA2562 (nVersion||HashPrevBlock||HashMerkleRoot||nTime||nBits||nNonce) (4)
The reference functions as a chaining link in the blockchain. By including a reference to the previous block, a chronological order on blocks, and thus transactions as well, is imposed.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Name::
* cpt.btcblk'HashPrevBlock,
* cpt.btcHashPrevBlock,

HashMerkleRoot (32B)

Description::
Merkle root:
Every transaction has a hash associated with it.
In a block, all of the transaction hashes in the block are themselves hashed (sometimes several times -- the exact process is complex), and the result is the Merkle root.
In other words, the Merkle root is the hash of all the hashes of all the transactions in the block.
The Merkle root is included in the block header.
With this scheme, it is possible to securely verify that a transaction has been accepted by the network (and get the number of confirmations) by downloading just the tiny block headers and Merkle tree -- downloading the entire block chain is unnecessary.
This feature is currently not used in Bitcoin, but it will be in the future.
[https://en.bitcoin.it/wiki/Vocabulary#Merkle_root]
===
Merkle Root
The root node of a merkle tree, a descendant of all the hashed pairs in the tree.
Block headers must include a valid merkle root descended from all transactions in that block.
[https://bitcoin.org/en/glossary/merkle-root]
===
This field stores the root of the Merkle hash tree.
It is used to provide integrity of all transactions included in the block and is computed according to the scheme described in Sect. 2.2.
The parameters used for computing the tree are double-SHA256 as the hashing algorithm and raw transactions as the data blocks (see Table 3.2 and 3.4).
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Name::
* cpt.btcblk'merkle-root,
* cpt.btcHashMerkleRoot,
* cpt.btcMerkle-root,

Merkle-Tree

Description::
Merkle Tree
A tree constructed by hashing paired data (the leaves), then pairing and hashing the results until a single hash remains, the merkle root.
In Bitcoin, the leaves are almost always transactions from a single block.
[https://bitcoin.org/en/glossary/merkle-tree]
===
Merkle_Tree:
Merkle tree is an abstract data structure that organizes a list of data items in a tree of their hashes (like in Git, Mercurial or ZFS).
In Bitcoin the merkle tree is used only to organize transactions within a block (the block header contains only one hash of a tree) so that full nodes may prune fully spent transactions to save disk space.
*SPV* clients store only block headers and validate transactions if they are provided with a list of all intermediate hashes.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcMerkle-tree,
* cpt.Merkle-hash-tree-btcnet,
* cpt.Merkle-tree-btcnet,

nTime (4B)

Description::
The time field stores the timestamp in UNIX format denoting the approximate block creation time.
As the timestamp is a parameter included in block mining, it is fixed at the beginning of the process.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]
===
UNIX timestamp is a standard representation of time as a number of seconds since January 1st 1970 GMT.
Usually stored in a 32-bit signed integer.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-timestamp,
* cpt.btcnTime,
* cpt.btcTimestamp,

NameGreek::
* ενν.χρονοσφραγίδα,

nBits (4B)

Description::
The target is the threshold below which a block header hash must be in order for the block to valid, and nBits is the encoded form of the target threshold as it appears in the block header.
[https://bitcoin.org/en/glossary/nbits]

Name::
* cpt.btcnBits,
* cpt.btctarget,
* cpt.btctarget-threshold,
==

NameGreek::
* ενν.στόχος-δυσκολίας-μπικόιν,

Description::
A 256-bit number that puts an upper limit for a block header hash to be valid.
The lower the target is, the higher the *difficulty* to find a valid hash.
The maximum (easiest) target is 0x00000000FFFF0000000000000000000000000000000000000000000000000000.
The difficulty and the target are adjusted every 2016 blocks (approx. 2 weeks) to keep interval between the blocks close to 10 minutes.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
The target is the threshold below which a block header hash must be in order for the block to valid, and nBits is the encoded form of the target threshold as it appears in the block header.
[https://bitcoin.org/en/glossary/nbits]

Difficulty

Description::
Difficulty is a measure of how difficult it is to find a new block compared to the easiest it can ever be.
By definition, it is a maximum *target* divided by the current target.
Difficulty is used in two Bitcoin rules:
1) every block must be meet difficulty target to ensure 10 minute interval between blocks and
2) transactions are considered confirmed only when belonging to a *main chain* which is the one with the biggest cumulative difficulty of all blocks.
As of July 27, 2014 the difficulty is 18 736 441 558 and grows by 3-5% every two weeks.
See also *Target*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
The contents of the block are then hashed with an incrementing random number (called a “nonce”) until the resulting output contains a certain number of leading zeroes.
The network dynamically adjusts the requisite number of leading zeroes (or the “difficulty”) so that a block is mined every 10 minutes on average.
Because the results of hashing algorithms are unpredictable, finding a valid hash which the rest of the network will accept requires both luck and CPU power.
[https://media.consensys.net/time-sure-does-fly-ed4518792679#.rjkzhxgwo]
===
What is the formula for difficulty?
difficulty = difficulty_1_target / current_target
(target is a 256 bit number)
difficulty_1_target can be different for various ways to measure difficulty. Traditionally, it represents a hash where the leading 32 bits are zero and the rest are one (this is known as "pool difficulty" or "pdiff"). The Bitcoin protocol represents targets as a custom floating point type with limited precision; as a result, Bitcoin clients often approximate difficulty based on this (this is known as "bdiff").
[https://en.bitcoin.it/wiki/Difficulty#What_is_the_formula_for_difficulty.3F]
===
This number determines how difficult it is to hash a new block.
It is related to the maximum allowed number in a given numerical portion of a transaction block’s hash.
The lower the number, the more difficult it is to produce a hash value that fits it.
Difficulty varies based on the amount of computing power used by miners on the bitcoin network.
If large numbers of miners leave a network, the difficulty would decrease.
Thus far, however, bitcoin’s growing popularity has attracted more computing power to the network, meaning that the difficulty has increased.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-difficulty,
* cpt.btcdifficulty,
* cpt.btcNetwork-difficulty,

NameGreek::
* ενν.δυσκολία-μπικόιν,

nNonce (4B)

Description::
Nonce:
Stands for "number used once".
A 32-bit number in a *block header* which is iterated during a search for proof-of-work.
Each time the nonce is changed, the *hash* of the block header is recalculated.
If nonce overflows before valid proof-of-work is found, an *extra nonce* is incremented and placed in the *coinbase* script.
Alternatively, one may change a merkle tree of transactions or a timestamp.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Nonce:
A random string of data used as an input when hashing a transaction block.
A nonce is used to try and produce a digest that fits the numerical parameters set by the bitcoin difficulty.
A different nonce will be used with each hashing attempt, meaning that billions of nonces are generated when attempting to hash each transaction block.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
The nonce field contains arbitrary data and is used as a source of randomness for solving the proof of work problem.
However, since it is fairly small in size with 4 bytes, it does not necessarily provide sufficient variation for finding a solution.
Therefore, other sources exist and will be addressed in more detail in Sect. 5.2.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Name::
* cpt.btcnNonce,
* cpt.btcNonce,

header-chain

Description::
A chain of block headers with each header linking to the header that preceded it; the most-difficult-to-recreate chain is the best header chain
[https://bitcoin.org/en/glossary/header-chain]

Name::
* cpt.btcheader-chain,

best header chain

Description::
A chain of block headers with each header linking to the header that preceded it; the most-difficult-to-recreate chain is the best header chain
[https://bitcoin.org/en/glossary/header-chain]

Name::
* cpt.btcbest-header-chain,

btcblk'part.PAYLOAD

Description::
Each block is composed of a header and a payload.
Finally, the payload stores
- the number of transactions (#vtx ) and
- the vector of transactions (vtx ) included in the block.
Field name Type(Size) Description
* #vtx VarInt (1-9 bytes) Number of transaction entries in vtx.
* vtx[ ] Transaction (Variable) Vector of transactions.
Table 3.1. Block Structure
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Name::
* cpt.btcblk'payload,

btcblk'number-of-transaction-entries
btcblk'vector-of-transactions

btcblk'Height

Description::
The number of blocks preceding a particular block on a block chain.
For example, the genesis block has a height of zero because zero block preceded it.
[https://bitcoin.org/en/glossary/block-height]
===
Since multiple blocks can have the same height during a block chain fork, block height should not be used as a globally unique identifier.
Instead, blocks are usually referenced by the hash of their header (often with the byte order reversed, and in hexadecimal).
[https://bitcoin.org/en/developer-guide#block-height-and-forking]
===
Block-Height:
A sequence number of a block in the blockchain.
Height 0 refers to the genesis block.
Several blocks may share the same height (see *Orphan*), but only one of them belongs to the *main chain*.
Block height is used in Lock time.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcblk'height,
* cpt.btcBlock-Chain-Height,
* cpt.btcBlock-Height,
* cpt.btcHeight,

btcblk'Miner (link)

btcblk'Proof-of-work (link)

btcblk'Reward

Description::
Together, the transaction fees and block subsidy are called the block reward.
A coinbase transaction is invalid if it tries to spend more value than is available from the block reward.
[https://bitcoin.org/en/developer-reference#serialized-blocks]

Name::
* cpt.bitcoin-block-reward,
* cpt.bitcoin-reward,
* cpt.btcBlock-Reward,
* cpt.btcBlock-Miner-Reward,
* cpt.btcreward,

AddressWpg::
* http://www.bitcoinblockhalf.com/

Description::
Together, the transaction fees and block subsidy are called the block reward.
A coinbase transaction is invalid if it tries to spend more value than is available from the block reward.
[https://bitcoin.org/en/developer-reference#serialized-blocks]
===
The amount that miners may claim as a reward for creating a block. Equal to the sum of the block subsidy (newly available satoshis) plus the transactions fees paid by transactions included in the block.
[https://bitcoin.org/en/glossary/block-reward]
===
Bitcoin Block Reward Halving Countdown
Reward-Drop ETA date: 11 Jul 2016 22:03:04
The Bitcoin block mining reward halves every 210,000 blocks, the coin reward will decrease from 25 to 12.5 coins.
Total Bitcoins in circulation:    15,443,050
Total Bitcoins to ever be produced:    21,000,000
Percentage of total Bitcoins mined:    73.54%
Total Bitcoins left to mine:    5,556,950
Total Bitcoins left to mine until next blockhalf:    306,950
Bitcoin price (USD):    $431.25
Market capitilzation (USD):    $6,659,815,312.50
Bitcoins generated per day:    3,600
Bitcoin inflation rate per annum:    8.88%
Bitcoin inflation rate per annum at next block halving event:    4.09%
Bitcoin inflation per day (USD):    $1,552,500
Bitcoin inflation until next blockhalf event based on current price (USD):    $132,372,188
Total blocks:    407,722
Blocks until mining reward is halved:    12,278
Approximate block generation time:    10.00 minutes
Approximate blocks generated per day:    144
Difficulty:    178,678,307,672
Hash rate:    1.39 Exahashes/s
[http://www.bitcoinblockhalf.com/] {2016-04-17}
===
The reward given to a miner which has successfully hashed a transaction block.
This can be a mixture of coins and transaction fees, depending on the policy used by the cryptocurrency in question, and whether all of the coins have already been successfully mined.
Bitcoin currently awards 25 bitcoins for each block.
The block reward halves when a certain number of blocks have been mined.
In bitcoin’s case, the threshold is every 210,000 blocks.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Reward:
Amount of newly generated bitcoins that a *miner* may claim in a new block.
The first transaction in the block allows miner to claim currently allowed reward as well as all *transaction fees* from all transactions in the block.
Reward is *halved* every 210 000 blocks, approximately every 4 years.
As of July 27, 2014 the reward is 25 BTC (the first halving occurred in December 2012).
For security reasons, rewards cannot be *spent* before 100 blocks built on top of the current block.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btcblkrwd'Transaction-fee (link)
btcblkrwd'Subsidy

Description::
All blocks with a block height less than 6,930,000 are entitled to receive a block subsidy of newly created bitcoin value, which also should be spent in the coinbase transaction. (The block subsidy started at 50 bitcoins and is being halved every 210,000 blocks—approximately once every four years. As of November 2014, it’s 25 bitcoins.)

Together, the transaction fees and block subsidy are called the block reward.
A coinbase transaction is invalid if it tries to spend more value than is available from the block reward.
[https://bitcoin.org/en/developer-reference#serialized-blocks]

Name::
* cpt.btcblk'subsidy,
* cpt.btcBlock-subsidy,

AddressWpg::
* http://www.bitcoinblockhalf.com/

btcblkrwd'Halving

Description::
Halving:
Refers to reducing *reward* every 210 000 blocks (approximately every 4 years).
Since the *genesis block* to a block 209999 in December 2012 the reward was 50 BTC.
Till 2016 it will be 25 BTC, then 12.5 BTC and so on till 1 *satoshi* around 2140 after which point no more bitcoins will ever be created.
Due to reward halving, the total supply of bitcoins is limited: only about 2100 trillion *satoshis* will ever be created.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-reward-halving,
* cpt.btchalving,

btcblkrwd.VIRGIN-BITCOIN

Description::
Virgin bitcoin
The reward for generating a block that has not yet been spent, a state which might increase the ability to transact anonymously.
[https://en.bitcoin.it/wiki/Vocabulary#Virgin_bitcoin]

Name::
* cpt.btcvirgin-bitcoin,

btcblk'Hash

Name::
* cpt.bitcoin-block-hash,
* cpt.bitcoin-hash-of-block,
* cpt.btchash-of-block,

Hash-of-previous-block (link)
Checkpoint

Description::
Checkpoint:
A hash of a block before which the *BitcoinQT* client downloads blocks without verifying digital signatures for performance reasons.
A checkpoint usually refers to a very deep block (at least several days old) when it's clear to everyone that that block is accepted by the overwhelming majority of users and *reorganization* will not happen past that point.

It also helps protecting most of the history from a *51% attack*.
Since checkpoints affect how the *main chain* is determined, they are part of the protocol and must be recognized by alternative clients (although, the risk of reorganization past the checkpoint would be incredibly low).
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-checkpoint,
* cpt.btccheckpoin,

btcblk'Size

Description::
This isn’t the first time bitcoin community members attempted to change the block size limit. Originally, there was no block size limit. The current limit was introduced early on to protect the system against “spam transactions.” At the time, it wasn’t a big deal since few people were using bitcoin. The one megabyte limit was like a 500 MPH speed limit. It was completely non-binding. But the system has grown a lot since then. Although it’s not yet bumping up against the hard constraint—it averaged around 117,500 transactions per day over the last month—many believe the block size limit will become binding in the very near future.
...
There’s a related concern that bigger block sizes will require more bandwidth, which would preclude some smaller players from competing in the mining race. Opponents claim this, too, would result in a more centralized system.
[http://www.forbes.com/sites/realspin/2015/09/08/new-bitcoin-development-spurs-unnecessary-fear-of-centralization/]

Description::
BitPay Supports Increase in Bitcoin Block Size Limit
Posted on August 23, 2015Author Gautham
BitPay Supports Increase in Bitcoin Block Size Limit.
BitPay, the largest bitcoin payment processor has sided with Gavin Andresen’s court by showing its support towards incorporation of BIP 101. In other words, BitPay in one of their blog posts mentioned that the company supports the move to increase bitcoin block size from 1 MB to 8 MB (which is known as BIP 101).

Bitcoin XT has been a topic of serious debate among the bitcoin community for a while now. The debate has ranged ever since Gavin Andresen, the Chief Scientist at Bitcoin Foundation and Mike Hearn proposed Bitcoin XT a few months ago.

The Bitcoin XT proposal was later changed to incorporate a few changes after receiving inputs from members of the bitcoin community. While there are few who are in favor of a 7MB increase in the bitcoin block size, there are others who are opposed to this idea. The bitcoin block size limit is currently 1 MB, which Bitcoin XT proposed to change to 8 MB. Gavin Andresen and Mike Hearn finally launched a Bitcoin XT fork few days ago. The launch didn’t go will with many bitcoin based entities who are also part of the club.

The bitcoin network has experienced rapid growth since its inception in 2009. At the current rate of growth, the bitcoin network with 1 MB block size limit will be left obsolete by 2017.

BitPay has put forward a sensible argument as to why BIP 101 has to be incorporated while expressing its support towards its integration into bitcoin core client. Contrary to the opinions of a few people, BitPay believes that the integration of BIP 101 will not compromise the integrity of the Bitcoin network. BIP 101 will instead protect the decentralized nature of the bitcoin network. BitPay sees the current argument against integration of BIP 101 to be favoring a centralized group of developers, which if continued will compromise the decentralized nature of the bitcoin network. Increased block size limit will prevent big mining companies from running a full bitcoin node, thereby preserving the decentralized nature of bitcoin.

To summarize in the words of Stephen Pair, the CEO and co-founder of BitPay — BIP 101 will safeguard bitcoin’s decentralized nature while providing reliable, immediate path towards greater network throughput and BitPay supports merging BIP 101 into Bitcoin Core.
[http://www.newsbtc.com/2015/08/23/bitpay-supports-increase-in-bitcoin-block-size-limit/]

Description::
A spat between developers may split the digital currency
The project approaches a "fork" in the road
Aug 18th 2015 | Business and finance

"FEDERAL Reserve deeply split. Renegade group of board members to create separate American dollar.” Such a headline seems highly unlikely, but this in essence is happening in the land of bitcoin, the digital currency. On August 15th two of bitcoin’s five main developers released a competing version, or “fork”, of the software that powers the currency—a move, some fear, that may split bitcoin.

The dispute is predictably arcane. The bone of contention is the size of a “block”, a batch of bitcoin transactions into which these are assembled before they are processed. Satoshi Nakamoto, the elusive creator of bitcoin who went offline in 2011, limited their size to 1Mb. That is enough to handle about 300,000 transactions per day—suitable for a currency used mainly by crypto-geeks, as bitcoin once was, but nowhere near enough to rival conventional payment systems. The likes of Visa and MasterCard can process tens of thousands of payments per second if needed.

Related topics
Bitcoins
By how much and when to increase this limit has long been a matter of a heated debate within the bitcoin community. One camp wants to set the number much higher and do it soon. Otherwise, they argue, the system could crash as it runs out of capacity as early as next year. Transactions could take hours to confirm and fees could rocket, warns Mike Hearn, a leading bitcoin developer. “Bitcoin would survive,” he wrote in a blog post in May, “but it would have lost critical momentum.”

The other side, led by the other three main bitcoin developers, frets that increasing the block size hastily would lead to centralisation and turn bitcoin into more of a conventional payment system. This matters to bitcoin purists, who laud the currency’s decentralised approach of running a currency. The system currently relies on thousands of independent “nodes”, computers spread across the world that check whether blocks of transactions are valid and keep tabs on who owns which bitcoins. Increasing the size of these blocks would make the system so unwieldy as to dissuade nodes from participating, so hastening a worrying recent decline in participants.


How Bitcoin works
The dispute is as ideological as it is technical. The bitcoin community has a process to settle such controversies, but it is by design slow and produces decisions only when everybody is happy. Frustrated that the discussion has kept dragging on, Mr Hearn and Gavin Andresen, one of the dissenting developers, decided to press the issue by organising a referendum of sorts: they have called on “miners”, specialised nodes that assemble the blocks and mint new bitcoin, to install their new version, called “Bitcoin XT”.

Once at least 75% of the blocks are processed by Bitcoin XT, but no earlier than January, it will upgrade to a block size of a maximum of 8Mb (and double that limit every two years). The nodes that then still run the old “Bitcoin Core” software would find themselves excluded from the system.

Predictably, the move has increased the temperature of the debate. On discussion sites such as Reddit, moderators have censored mentions of Bitcoin XT because they see it as an effort to undermine the bitcoin community. Comments purportedly made by Mr Nakamoto warning that a fork would lead him to “declare bitcoin a failed project” have been widely dismissed as a hoax.

Despite all the sound and fury, such an outcome is still unlikely. Like spatting doves and hawks at an old-fashioned central bank, the two sides will probably agree on some compromise; two fun-sounding “Bitcoin Scalability Workshops” have been scheduled for later this year.

Even if miners get to make the decision, this would probably not lead to a bitcoin split. Once it becomes clear which version is likely to prevail, all miners will have an incentive to jump on the winning bandwagon. Already, 8% of them have joined the dissident XT faction, a rapid take-up. Whether such a majority rule is the best way to run the highly complex bitcoin system, however, is an entirely different question.
[http://www.economist.com/news/business-and-finance/21661404-spat-between-developers-may-split-digital-currency-forking-hell]

btcblk'Depth

Description::
Depth:
Depth refers to a place in the blockchain.
A transaction with 6 *confirmations* can also be called "6 blocks deep".
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcdepth-of-block,

btcblk'Blocktime

Description::
For reasons of stability and low latency in transactions, the network tries to produce one block every 10 minutes.
[https://en.bitcoin.it/wiki/Target]

Name::
* cpt.bitcoin-block-interval,

btcblk'Validation-rule

Description::
The block validation rules that full nodes follow to stay in consensus with other nodes.
[https://bitcoin.org/en/glossary/consensus-rules]

Name::
* cpt.btcconsensus-rule,
* cpt.btcconsensus-rules,
* cpt.btcvalidation-rule,

btcblk'Explorer (link)

btcblk'Resource

AddressWpg::
* https://blockexplorer.com/block/ 0000000000000000015d91f146e17f2bee451d90ecde7d3649b5b6678a1f715f,

btcblk'DOING

btcdng.CREATING

Description::
Mining:
The act of generating new bitcoins by solving cryptographic problems using computing hardware.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Mining adds new blocks to the block chain, making transaction history hard to modify.
[https://bitcoin.org/en/developer-guide#mining]
===
Central to Bitcoin’s architecture is a public ledger called the blockchain, which stores all processed transactions in chronological order.
Transactions are processed by a loosely organized network of miners in a process called mining (see Sect. 5.2).
In it the miner creates a block with a set of unprocessed transactions and attempts to solve a proof of work puzzle (see Sect. 2.1).
Once a valid solution has been found, the block including the solution is published throughout the network and accepted into the blockchain.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]
===
Mining:
A process of finding valid *hashes* of a block header by iterating millions of variants of block headers (using *nonce* and *extra nonce*) in order to find a hash lower than the *target* (see also *difficulty*).
The process needs to determine a single global history of all transactions (grouped in blocks).
Mining consumes time and electricity and nowadays the difficulty is so big, that energy-wise it's not even profitable to mine using video graphics cards.
Mining is paid for by *transaction fees* and by block *rewards* (newly generated coins, hence the term "mining").
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcblk'adding,
* cpt.btcblk'creating,
* cpt.btcblk'processing,
* cpt.btcmining,
* cpt.bitcoin-block-creation,
* cpt.bitcoin-hashing-a-block,
* cpt.bitcoin-to-hash-a-block,

Doing::
As described in [9], mining nodes perform the following
steps in an endless loop:
1) Collect all broadcasted transactions and validate whether they satisfy the miner’s
self-defined policy. Typically, a transaction includes a transaction fee that functions
as an incentive for the miner to include it in the block. However, if it does
not, then it is up to the miner to decide whether or not to include it.
2) Verify all transactions that are to be included in the block. Transactions are
verified as described in Sect. 4.2 and it is checked whether their inputs have been
previously spent.
3) Select the most recent block on the longest path in the blockchain, i.e. the path
that involves most accumulated computational effort, and insert the hash of the
block header into the new block.
4) Solve the proof of work problem as described below and broadcast the solution.
Should another node solve the proof of work problem before, then the block is
first validated, meaning the proof of work solution is checked and all transactions
included in the block are verified. If it passes these controls then the cycle is
repeated. Note that if there are transactions that have not been included in the
new block then they are saved and included in the next cycle.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

btcmining'Mining-pool

Description::
Mining_Pool:
A service that allows separate owners of mining hardware to split the reward proportionally to submitted work.
Since probability of finding a valid block hash is proportional to miner's *hashrate*, small individual miners may work for months before finding a big per-block reward.
Mining pools allow more steady stream of smaller income.
Pool owner determines the block contents and distributes ranges of *nonce* values between its workers.
Normally, mining pools are centralized.
P2Pool is a fully decentralized pool.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Pool:
A collection of mining clients which collectively mine a block, and then split the reward between them.
Mining pools are a useful way to increase your probability of successfully mining a block as the difficulty rises.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-mining-pool,
* cpt.btcmining-pool,

NameGreek::
* ενν.ομάδα-εξόρυξης-μπιτκόιν,

btcmining.POOLED

Description::
Pooled mining, where the miner pools resources with other miners to find blocks more often, with the proceeds being shared among the pool miners in rough correlation to the amount of hashing power they each contributed, allowing the miner to receive small payments with a lower variance (shorter time between payments).
[https://bitcoin.org/en/developer-guide#mining]

Name::
* cpt.btcpooled-mining,

btcmining.SOLO

Description::
Solo mining, where the miner attempts to generate new blocks on his own, with the proceeds from the block reward and transaction fees going entirely to himself, allowing him to receive large payments with a higher variance (longer time between payments)
[https://bitcoin.org/en/developer-guide#mining]

Name::
* cpt.btcsolo-mining,

btcdng.REORGANIZATION

Description::
Reorg, Reorganization:
An event in the *node* when one or more blocks in the *main chain* become *orphaned*.
Usually, newly received blocks are extending existing main chain.
Sometimes (4-6 times a week) a couple of blocks of the same *height* are produced almost simultaneously and for a short period of time some nodes may see one block as a tip of the main chain which will be eventually replaced by a more difficult block(s).
Each transaction in the orphaned blocks either becomes invalid (if already included in the main chain block) or becomes *unconfirmed* and moved to the *mempool*.
In case of a major bug or a *51% attack*, reorganization may involve reorganizing more than one block.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Reorganize
A block chain reorganize (or reorg) happens when one chain becomes longer than the one you are currently working on.
All of the blocks in the old chain that are not in the new one become orphan blocks, and their generations are invalidated.
Transactions that use the newly-invalid generated coins also become invalid, though this is only possible in large chain splits because generations can't be spent for 100 blocks.
The number of confirmations for transactions may change after a reorg, and transactions that are not in the new chain will become "0/unconfirmed" again.
If a transaction in the old chain conflicts with one in the new chain (as a result of double-spending), the old one becomes invalid.
[https://en.bitcoin.it/wiki/Vocabulary#Reorganize]

Name::
* cpt.bitcoin-reorganization,
* cpt.btcreorg,
* cpt.btcreorganization,

SPECIFIC

Name::
* btcblk.specific,

btcblk.EXAMPLE

Example::
An example header in hex (2-hex-digits = 1 byte, (ff)16=(11111111)2=(255)10):

02000000 ............................................ Block version: 2

b6ff0b1b1680a2862a30ca44d346d9e8
910d334beb48ca0c0000000000000000 ... Hash of previous block's header
9d10aa52ee949386ca9385695f04ede2
70dda20810decd12bc9b048aaab31471 ... Merkle root

24d95a54 ............................................. Unix time: 1415239972
30c31b18 ............................................. Target: 0x1bc330 * 256**(0x18-3)
fe9f0864 ............................................... Nonce

btcblk.GENESIS (btcblk0)

Description::
Genesis block
A genesis block is the first block of a block chain.
Modern versions of Bitcoin assign it block number 0, though older versions gave it number 1.
The genesis block is almost always hardcoded into the software.
It is a special case in that it does not reference a previous block, and for Bitcoin and almost all of its derivatives, it produces an unspendable subsidy.
[https://en.bitcoin.it/wiki/Genesis_block]
===
Genesis_Block:
A very first block in the blockchain with hard-coded contents and a all-zero reference to a previous block.
Genesis block was released on 3rd of January 2009 with a newspaper quote in its coinbase:
"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks" as a proof that there are no secretly pre-mined blocks to overtake the blockchain in the future.
The message ironically refers to a reason for Bitcoin existence: a constant inflation of money supply by governments and banks.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Block Height 0 Blocks at depth 0 in the bitcoin blockchain
Summary
Height    0 (Main chain)
Hash    000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Previous Block    0000000000000000000000000000000000000000000000000000000000000000
Next Blocks    00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048
Time    2009-01-03 18:15:05
Difficulty    1
Bits    486604799
Number Of Transactions    1
Output Total    50 BTC
Estimated Transaction Volume    0 BTC
Size    0.285 KB
Version    1
Merkle Root    4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
Nonce    2083236893
Block Reward    50 BTC
Transaction Fees    0 BTC
[https://blockchain.info/block-height/0]

Name::
* cpt.Bitcoin-genesis-block,
* cpt.btcblk.genesis,
* cpt.btcGenesis-Block,
* cpt.btcBlock-0,

btcblk.BLOCK1 (btcblk1)

Description::
Block Height 1 Blocks at depth 1 in the bitcoin blockchain
Summary
Height    1 (Main chain)
Hash    00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048
Previous Block    000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Next Blocks    000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd
Time    2009-01-09 02:54:25
Difficulty    1
Bits    486604799
Number Of Transactions    1
Output Total    50 BTC
Estimated Transaction Volume    0 BTC
Size    0.215 KB
Version    1
Merkle Root    0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098
Nonce    2573394689
Block Reward    50 BTC
Transaction Fees    0 BTC
[https://blockchain.info/block-height/1]

Name::
* cpt.btcblk1,
* cpt.btcBlock-1,

btcblk.ORPHAN

Description::
Orphan Block
An orphan block is a block which has no known parent in the currently-longest block chain.
Not to be confused with a Stale Block (which has a known parent, but is no longer part of the longest chain).
[https://en.bitcoin.it/wiki/Vocabulary#Orphan_Block]
===
Orphan_block:
A block which is not a part of the valid blockchain, but which was instead part of a fork that was discarded.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Orphan block (a block whose previous (parent) hash field points to an unknown block, meaning the orphan can’t be validated)
[https://bitcoin.org/en/glossary/stale-block]
===
A valid block that is no longer a part of a *main chain*.
Usually happens when two or more blocks of the same *height* are produced at the same time.
When one of them becomes a part of the main chain, others are considered "orphaned".
Orphans also may happen when the blockchain is *forked* due to an attack (see *51% attack*) or a bug.
Then a chain of several blocks may become abandoned.
Usually a transaction is included in all blocks of the same height, so its *confirmation* is not delayed and there is no *double spend*. See also *Fork*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcorphan-Block,
* cpt.btcOrphan,
* cpt.btcOrphaned-block,

btcblk.RAW

Description::
A complete block in its binary format—the same format used to calculate total block byte size; often represented using hexadecimal.
[https://bitcoin.org/en/glossary/serialized-block]

Name::
* cpt.btcBinary-block,
* cpt.btcRaw-block,
* cpt.btcSerialized-block,

btcblk.STALE

Description::
Blocks which were successfully mined but which aren’t included on the current best block chain, likely because some other block at the same height had its chain extended first.
Not To Be Confused With Orphan block (a block whose previous (parent) hash field points to an unknown block, meaning the orphan can’t be validated)
[https://bitcoin.org/en/glossary/stale-block]
===
Stale:
When a bitcoin block is successfully hashed, any others attempting to hash it may as well stop, because it is now ‘stale'.
They would simply be repeating work that someone else has already done, for no reward.
The term is also used in mining pools to describe a share of a hashing job that has already been completed.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.btcStale-block,

btcblk.VALID

Name::
* cpt.btcvalid-block,

btcbcn'Block-explorer

Description::
A block chain browser (also called "block explorer") is a program or web site that lets users search and navigate a block chain. Uses include:
- checking address balances
- tracking coin transfer histories
- watching for transaction acceptance
- monitoring the network hash rate and other statistics

Block chain browsers typically provide:
- a list of a chain's recent blocks
- transactions in a given block
- links to the previous and next transaction involving each input and output
- a list of all transactions involving a given address
- current and historical address balances
- a way to search for blocks, transactions, and addresses
[https://en.bitcoin.it/wiki/Block_chain_browser]

Name::
* cpt.bitcoin-block-explorer,
* cpt.bitcoin-explorer,
* cpt.bitcoin-browser,
* cpt.btcblk'explorer,
* cpt.btcblkexr,
* cpt.btcblock-explorer,
* cpt.btcbrowser,
* cpt.btcnet'explorer,

Specific::
* https://blockexplorer.com/
* https://blockchain.info/
* https://blockchain.info/block-height/0,
* BlockH0 https://blockchain.info/block-height/0,
* https://blockchain.info/address/3LpiaPt5To7876GRm3W4hGoZ6npr8cDwYG,

btcbcn'Consensus-algorithm

Description::
The algorithm for checking if a block is valid, expressed in this paradigm, is as follows:

Check if the previous block referenced by the block exists and is valid.
Check that the timestamp of the block is greater than that of the previous block[2] and less than 2 hours into the future
Check that the proof of work on the block is valid.
Let S[0] be the state at the end of the previous block.
Suppose TX is the block's transaction list with n transactions. For all i in 0...n-1, set S[i+1] = APPLY(S[i],TX[i]) If any application returns an error, exit and return false.
Return true, and register S[n] as the state at the end of this block.
Essentially, each transaction in the block must provide a valid state transition from what was the canonical state before the transaction was executed to some new state. Note that the state is not encoded in the block in any way; it is purely an abstraction to be remembered by the validating node and can only be (securely) computed for any block by starting from the genesis state and sequentially applying every transaction in every block. Additionally, note that the order in which the miner includes transactions into the block matters; if there are two transactions A and B in a block such that B spends a UTXO created by A, then the block will be valid if A comes before B but not otherwise.

The one validity condition present in the above list that is not found in other systems is the requirement for "proof of work". The precise condition is that the double-SHA256 hash of every block, treated as a 256-bit number, must be less than a dynamically adjusted target, which as of the time of this writing is approximately 2187. The purpose of this is to make block creation computationally "hard", thereby preventing sybil attackers from remaking the entire blockchain in their favor. Because SHA256 is designed to be a completely unpredictable pseudorandom function, the only way to create a valid block is simply trial and error, repeatedly incrementing the nonce and seeing if the new hash matches.

At the current target of ~2187, the network must make an average of ~269 tries before a valid block is found; in general, the target is recalibrated by the network every 2016 blocks so that on average a new block is produced by some node in the network every ten minutes. In order to compensate miners for this computational work, the miner of every block is entitled to include a transaction giving themselves 25 BTC out of nowhere. Additionally, if any transaction has a higher total denomination in its inputs than in its outputs, the difference also goes to the miner as a "transaction fee". Incidentally, this is also the only mechanism by which BTC are issued; the genesis state contained no coins at all.

In order to better understand the purpose of mining, let us examine what happens in the event of a malicious attacker. Since Bitcoin's underlying cryptography is known to be secure, the attacker will target the one part of the Bitcoin system that is not protected by cryptography directly: the order of transactions. The attacker's strategy is simple:

Send 100 BTC to a merchant in exchange for some product (preferably a rapid-delivery digital good)
Wait for the delivery of the product
Produce another transaction sending the same 100 BTC to himself
Try to convince the network that his transaction to himself was the one that came first.
Once step (1) has taken place, after a few minutes some miner will include the transaction in a block, say block number 270000. After about one hour, five more blocks will have been added to the chain after that block, with each of those blocks indirectly pointing to the transaction and thus "confirming" it. At this point, the merchant will accept the payment as finalized and deliver the product; since we are assuming this is a digital good, delivery is instant. Now, the attacker creates another transaction sending the 100 BTC to himself. If the attacker simply releases it into the wild, the transaction will not be processed; miners will attempt to run APPLY(S,TX) and notice that TX consumes a UTXO which is no longer in the state. So instead, the attacker creates a "fork" of the blockchain, starting by mining another version of block 270000 pointing to the same block 269999 as a parent but with the new transaction in place of the old one. Because the block data is different, this requires redoing the proof of work. Furthermore, the attacker's new version of block 270000 has a different hash, so the original blocks 270001 to 270005 do not "point" to it; thus, the original chain and the attacker's new chain are completely separate. The rule is that in a fork the longest blockchain is taken to be the truth, and so legitimate miners will work on the 270005 chain while the attacker alone is working on the 270000 chain. In order for the attacker to make his blockchain the longest, he would need to have more computational power than the rest of the network combined in order to catch up (hence, "51% attack").
[https://github.com/ethereum/wiki/wiki/White-Paper]

Name::
* cpt.bitcoin-consensus-algorithm,
* cpt.btcconsensus-algorithm,

Description::
A proof of work is a cryptographic puzzle used to ensure that a party has performed a certain amount of work.
In particular, the Bitcoin mining process (see Sect. 5.2) incorporates a proof of work system based on Adam Back’s Hashcash [3].
It has two basic properties - firstly, it ensures that the party providing the proof of work has invested a predefined amount of effort in order to create the proof and secondly, that the proof is efficiently verifiable.
Typically, finding a solution to a proof of work puzzle is a probabilistic process with a success probability depending on the predefined difficulty.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

btcbcn'consensus-rule

Description::
The block validation rules that full nodes follow to stay in consensus with other nodes.
[https://bitcoin.org/en/glossary/consensus-rules]

Name::
* cpt.btcconsensus-rule,
* cpt.btcconsensus-rules,
* cpt.btcvalidation-rule,

Specific::
* current-consensus-rules,
* previous-consensus-rules,

btcbcncsa'Proof-of-work (PoW)

Description::
A hash below a target value which can only be obtained, on average, by performing a certain amount of brute force work—therefore demonstrating proof of work.
[https://bitcoin.org/en/glossary/proof-of-work]

Name::
* cpt.btcPOW,
* cpt.btcproof-of-work,
* cpt.btcnet'proof-of-work,

Description::
Proof_of_Work_(PoW):
A number that is provably hard to compute.
That is, it takes measurable amount of time and/or computational power (energy) to produce.
In Bitcoin it is a hash of a block header.
A block is considered valid only if its hash is lower than the current *target* (roughly, starts with a certain amount of zero bits). Each block refers to a previous block thus accumulating previous proof-of-work and forming a *blockchain*.

Proof-of-work is not the only requirement, but an important one to make sure that it is economically infeasible to produce an alternative history of transactions with the same accumulated work. Each client can independently consider the most difficult chain of valid blocks as the "true" history of transactions, without need to trust any source that provides the blocks.

Note that owning a very large amount of computational power does not override other rules enforced by every client. Ill-formed blocks or blocks containing invalid transactions are rejected no matter how difficult they were to produce.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Description::
A proof of work is a piece of data which was difficult (costly, time-consuming) to produce so as to satisfy certain requirements. It must be trivial to check whether data satisfies said requirements. Producing a proof of work can be a random process with low probability, so that a lot of trial and error is required on average before a valid proof of work is generated. Bitcoin uses the Hashcash proof of work.

One application of this idea is using hashcash as a method to preventing email spam, requiring a proof of work on the email's contents (including the To address), on every email. Legitimate emails will be able to do the work to generate the proof easily (not much work is required for a single email), but mass spam emailers will have difficulty generating the required proofs (which would require huge computational resources).

Hashcash proofs of work are used in Bitcoin for block generation. Proofs of work that are tied to the data of each block are required for the blocks to be accepted. The difficulty of this work is adjusted so as to limit the rate at which new blocks can be generated by the network to one every 10 minutes. Due to the very low probability of successful generation, this makes it unpredictable which worker computer in the network will be able to generate the next block.

For a block to be valid it must hash to a value less than the current target; this means that each block indicates that work has been done generating it. Each block contains the hash of the preceding block, thus each block has a chain of blocks that together contain a large amount of work. Changing a block (which can only be done by making a new block containing the same predecessor) requires regenerating all successors and redoing the work they contain. This protects the block chain from tampering.

The most widely used proof-of-work scheme is SHA-256, which was introduced by Bitcoin. Some other hashing algorithms that are used for proof-of-work include scrypt, Blake-256, CryptoNight,[1] HEFTY1, Quark, SHA-3, scrypt-jane, scrypt-n, and combinations.
[https://en.bitcoin.it/wiki/Proof_of_work]

btcbcn'Address (btcads)

Description::
Bitcoin-address is THE-PUBLIC-NAME of some-bitcoin-tokens[1].
Looks like 3EtZT5fEQ9Atf73UMnyRUXsbWqcNeQ6rXy.
The-owner of these[1] bitcoins has a-sectret-private-key with which s|he can-spent these[1] bitcoin-tokens.
Wallets manage the-addresses and its corresponding private-keys.
Anyone who owns bitcoin-tokens can-send bitcoin-tokens to any address.
[hmnSgm.2017-04-09]

Name::
* cpt.bitcoin-address,
* cpt.btcaddress,
* cpt.btcads,
* cpt.btcnet'address,
* cpt.btcpayment-address,

NameGreek::
* ενν.διεύθυνση-Bitcoin,

Description::
A bitcoin address looks like 1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV.
It consists of a string of letters and numbers.
It’s really an encoded base58check version of a public key 160-bit hash.
Just like you ask others to send an email to your email address, you would ask others to send you bitcoins to one of your bitcoin addresses.
[https://github.com/bitcoinbook/bitcoinbook/blob/develop/glossary.asciidoc]

Description::
Bob provides the pubkey hash to Alice.
Pubkey hashes are almost always sent encoded as Bitcoin addresses, which are base58-encoded strings containing an address version number, the hash, and an error-detection checksum to catch typos.
The address can be transmitted through any medium, including one-way mediums which prevent the spender from communicating with the receiver, and it can be further encoded into another format, such as a QR code containing a bitcoin: URI.
[https://bitcoin.org/en/developer-guide#transactions]

Description::
Bitcoin address is a Base58Check representation of a Hash160 of a *public key* with a version byte 0x00 which maps to a prefix "1".
Typically represented as text (ex. 1CBtcGivXmHQ8ZqdPgeMfcpQNJrqTrSAcG) or as a QR code.

A more recent variant of an address is a *P2SH* address: a hash of a spending script with a version byte 0x05 which maps to a prefix "3" (ex. 3NukJ6fYZJ5Kk8bPjycAnruZkE5Q7UW7i8).

Another variant of an address is not a hash, but a raw private key representation (e.g. 5KQntKuhYWSRXNqp2yhdXzjekYAR7US3MT1715Mbv5CyUKV6hVe). It is rarely used, only for importing/exporting private keys or printing them on *paper wallets*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Description::
A bitcoin address is used to receive and send transactions on the bitcoin network.
It contains a string of alphanumeric characters, but can also be represented as a scannable QR code.
A bitcoin address is also the public key in the pair of keys used by bitcoin holders to digitally sign transactions (see Public key).
[http://www.coindesk.com/information/bitcoin-glossary/]

Description::
addresses (hashed public keys)
[https://bitcoin.org/en/developer-guide#transaction-fees-and-change]

Description::
To each Bitcoin wallet is associated one or many matching pairs of a Bitcoin address and a private key (they consist of a string of numbers and letters).
The Bitcoin address is someone’s identification in the network, and each address is associated with a balance of funds denominated in Bitcoins.
The private key can be thought of as the password which allows users to have access to the funds associated
with the matching public address.
To put it simply: the Bitcoin address is like a person’s email address while the private key is like the password.
When we say that someone owns Bitcoins, what we mean is that he is in possession of a private key which corresponds to the public address to which those Bitcoins are associated.
[http://www.givebtc.org/GiveBTC_-_Handbook_for_Non_Profits.pdf]

Description::
A Bitcoin address is a unique, 27-34 alphanumeric characters long identifier that can be used as a destination for Bitcoin payments.
There are currently two different types of Bitcoin addresses in existence, Pay-to-PubkeyHash and Pay-to-ScriptHash, which are used in conjunction with their corresponding transaction type.
In the following both will be described in detail.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Description::
A 20-byte hash formatted using base58check to produce either a P2PKH or P2SH Bitcoin address. Currently the most common way users exchange payment information.
[https://bitcoin.org/en/glossary/address]

Description::
A Bitcoin address, or simply address, is an identifier of 26-35 alphanumeric characters, beginning with the number 1 or 3, that represents a possible destination for a Bitcoin payment.
Addresses can be generated at no cost by any user of Bitcoin.
An example of a Bitcoin address is 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy.
[https://en.bitcoin.it/wiki/Address]

Description::
Address validation
A bitcoin address includes a four byte checksum, which means addresses can be validated without talking to any servers.
The bitcoin-address module (GitHub: shtylman / bitcoin-address, npm: bitcoin-address) by Roman Shtylman implements the algorithm: a double SHA-256 digest of the 21 bytes before the checksum is calculated to validate the address.
var btcAddr = require('bitcoin-address');
btcAddr.validate('1Gtov23WTQPbj4c6dMaXnXxbvFKc87Lutb');
// true
Addresses are encoded with base 58, so Roman’s module includes his own decoding library.
He also uses Node Buffer objects to work with the decoded data.
Node’s crypto core module is used to create SHA-256 hashes.
[http://dailyjs.com/2013/08/23/bitcoins/]

Description::
A bitcoin address is an identifier (account number), starting with 1 or 3 and containing 27-34 alphanumeric Latin characters (except 0, O, I, l).
An address can be also represented as a QR-code, is anonymous, and does not contain information about the owner.
It can be obtained for free, using, for example, bitcoin software.
[https://en.wikipedia.org/wiki/Bitcoin_network]

Description::
Address:
A bitcoin address is used to receive and send transactions on the bitcoin network.
It contains a string of alphanumeric characters, but can also be represented as a scannable QR code.
A bitcoin address is also the public key in the pair of keys used by bitcoin holders to digitally sign transactions (see Public key).
[http://www.coindesk.com/information/bitcoin-glossary/]
===
This is wrong.
A-bitcoin-address is-not a-public-key, it derives from a-public-key.
[hmnSgm.2017-04-08]

AddressWpg::
* https://github.com/shtylman/bitcoin-address,
* https://npmjs.org/package/bitcoin-address,

btcads'QR-code

Description::
QR_code:
A two-dimensional graphical block containing a monochromatic pattern representing a sequence of data.
QR codes are designed to be scanned by cameras, including those found in mobile phones, and are frequently used to encode bitcoin addresses.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-QR-code,
* cpt.btcQR-code,

btcads'Private-key

Description::
The bitcoin private key is just a number.
You can pick your private keys randomly using just a coin, pencil, and paper: toss a coin 256 times and you have the binary digits of a random private key you can use in a bitcoin wallet.
The public key can then be generated from the private key.
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch04.asciidoc#private-keys]

Name::
* cpt.bitcoin-private-key,
* cpt.btcaddress'private-key,
* cpt.btcnet'private-key,
* cpt.btcprivate-key,

Description::
The private portion of a keypair which can create signatures that other people can verify using the public key.
[https://bitcoin.org/en/glossary/private-key]
===
When we say that someone owns Bitcoins, what we mean is that he is in possession of a private key which corresponds to the public address to which those Bitcoins are associated.
[http://www.givebtc.org/GiveBTC_-_Handbook_for_Non_Profits.pdf]
===
A private key in the context of bitcoin is a secret number that allows bitcoins to be spent.
Every bitcoin address has a matching private key, which is usually saved in the wallet file of the person who owns the balance but can be also stored using other means and methods.
The private key is mathematically related to the bitcoin address, and is designed so that the bitcoin address can be calculated from the private key but, importantly, the reverse cannot be done.
[https://en.wikipedia.org/wiki/Bitcoin_network]
===
private keys should not be stored on web servers,
[https://bitcoin.org/en/developer-guide#requesting-payments]
===
Private_Key_(Privkey):
A 256-bit number used in *ECDSA* algorithm to create transaction *signatures* in order to prove ownership of certain amount of bitcoins.
Can also be used in arbitrary *elliptic curve arithmetic* operations.
Private keys are stored within *wallet* applications and are usually encrypted with a pass phrase.
Private keys may be completely random (see *Key Pool*) or generated from a single secret number ("seed").
See also *Deterministic Wallet*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btcads'Public-key

Description::
Bob must first generate a private/public key pair before Alice can create the first transaction.
Bitcoin uses the Elliptic Curve Digital Signature Algorithm (ECDSA) with the secp256k1 curve; secp256k1 private keys are 256 bits of random data.
A copy of that data is deterministically transformed into an secp256k1 public key.
Because the transformation can be reliably repeated later, the public key does not need to be stored.
[https://bitcoin.org/en/developer-guide#transactions]
===
Public_Key_(Pubkey):
A 2D point on an elliptic curve secp256k1 that is produced by multiplying a predefined "generator" point by a *private key*.
Usually it is represented by a pair of 256-bit numbers ("uncompressed public key"), but can also be compressed to just one 256-bit number (at the slight expense of CPU time to decode an uncompressed number). A special hash of a public key is called *address*.
Typical Bitcoin transactions contain public keys or addresses in the output scripts and *signatures* in the input scripts.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-public-key,
* cpt.btcpublic-key,
* cpt.btcaddress'public-key,
* cpt.btcnet'public-key,
* cpt.btcwlt'public-key,

btcads'Version-number

Description::
Pubkey hashes are almost always sent encoded as Bitcoin addresses, which are base58-encoded strings containing an address version number, the hash, and an error-detection checksum to catch typos.
[https://bitcoin.org/en/developer-guide#transactions]

btcads'Public-key-hash

Description::
The public key (pubkey) is then cryptographically hashed.
This pubkey hash can also be reliably repeated later, so it also does not need to be stored.
The hash shortens and obfuscates the public key, making manual transcription easier and providing security against unanticipated problems which might allow reconstruction of private keys from public key data at some later point.
[https://bitcoin.org/en/developer-guide#transactions]

Name::
* cpt.btcpubkey-hash,
* cpt.btcpublic-key-hash,
* cpt.public-key-hash-of-bitcoin,

btcads'Hash160

Description::
Hash160:
SHA-256 hashed with RIPEMD-160.
It is used to produce an *address* because it makes a smaller hash (20 bytes vs 32 bytes) than SHA-256, but still uses SHA-256 internally for security.
BTCHash160() in CoreBitcoin, Hash160() in BitcoinQT.
It is also available in scripts as OP_HASH160.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btchash160,

btcads'Error-detection-checksum

Description::
DESCRIPTION:
Address validation
A bitcoin address includes a four byte checksum, which means addresses can be validated without talking to any servers.
The bitcoin-address module (GitHub: shtylman / bitcoin-address, npm: bitcoin-address) by Roman Shtylman implements the algorithm: a double SHA-256 digest of the 21 bytes before the checksum is calculated to validate the address.
var btcAddr = require('bitcoin-address');
btcAddr.validate('1Gtov23WTQPbj4c6dMaXnXxbvFKc87Lutb');
// true
Addresses are encoded with base 58, so Roman’s module includes his own decoding library.
He also uses Node Buffer objects to work with the decoded data.
Node’s crypto core module is used to create SHA-256 hashes.
[http://dailyjs.com/2013/08/23/bitcoins/]
===
Pubkey hashes are almost always sent encoded as Bitcoin addresses, which are base58-encoded strings containing an address version number, the hash, and an error-detection checksum to catch typos.
[https://bitcoin.org/en/developer-guide#transactions]

btcads'Base58

Description::
A compact human-readable encoding for binary data invented by Satoshi Nakamoto to make more user-friendly addresses.
It consists of alphanumeric characters, but does not allow "0", "O", "I", "l" characters that look the same in some fonts and could be used to create visually identical looking addresses.
Lowercase "o" and "1" are allowed.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.Base58-of-Bitcoin,
* cpt.btcBase58,

btcads'Base58check

Description::
The method used in Bitcoin for converting 160-bit hashes into P2PKH and P2SH addresses.
Also used in other parts of Bitcoin, such as encoding private keys for backup in WIP format.
Not the same as other base58 implementations.
[https://bitcoin.org/en/glossary/base58check]
===
Base58Check:
A variant of Base58 encoding that appends first 4 bytes of Hash256 of the encoded data to that data before converting to Base58.
It is used in addresses to detect typing errors.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.Base58check-of-Bitcoin,
* cpt.btcBase58check,
* cpt.btcBitcoin-Address-Encoding,

btcads'Explorer

AddressWpg::
* https://blockexplorer.com/address/38DdqhVuqb36jjmxTbvBkiFPXKA8EmW9Ly,

btcads'Taint-analysis

Description::
Taint:
An analysis of how closely related two addresses are when they have both held a particular bitcoin.
A taint analysis could be used to determine how many steps it took for bitcoins to move from an address known for stolen coins, to the current address.

Name::
* cpt.bitcoin-taint-analysis,
* cpt.btctaint-analysis,

btcads'DOING

btcads'Creating

Description::
Wallet-programs create bitcoin-addresses for free.

btcads'Changing

Description::
Using a separate address for each incoming payment makes it trivial to determine which customers have paid their payment requests.
Your applications need only track the association between a particular payment request and the address used in it, and then scan the block chain for transactions matching that address.
[https://bitcoin.org/en/developer-guide#requesting-payments]

Name::
* cpt.bitcoin-key-reuse,
* cpt.btcads'changing,
* cpt.btcads'reusing,
* cpt.btckey-reuse,

Description::
Avoiding Key Reuse
In a transaction, the spender and receiver each reveal to each other all public keys or addresses used in the transaction. This allows either person to use the public block chain to track past and future transactions involving the other person’s same public keys or addresses.

If the same public key is reused often, as happens when people use Bitcoin addresses (hashed public keys) as static payment addresses, other people can easily track the receiving and spending habits of that person, including how many satoshis they control in known addresses.

It doesn’t have to be that way.
If each public key is used exactly twice—once to receive a payment and once to spend that payment—the user can gain a significant amount of financial privacy.

Even better, using new public keys or unique addresses when accepting payments or creating change outputs can be combined with other techniques discussed later, such as CoinJoin or merge avoidance, to make it extremely difficult to use the block chain by itself to reliably track how users receive and spend their satoshis.

Avoiding key reuse can also provide security against attacks which might allow reconstruction of private keys from public keys (hypothesized) or from signature comparisons (possible today under certain circumstances described below, with more general attacks hypothesized).

Unique (non-reused) P2PKH and P2SH addresses protect against the first type of attack by keeping ECDSA public keys hidden (hashed) until the first time satoshis sent to those addresses are spent, so attacks are effectively useless unless they can reconstruct private keys in less than the hour or two it takes for a transaction to be well protected by the block chain.

Unique (non-reused) private keys protect against the second type of attack by only generating one signature per private key, so attackers never get a subsequent signature to use in comparison-based attacks. Existing comparison-based attacks are only practical today when insufficient entropy is used in signing or when the entropy used is exposed by some means, such as a side-channel attack.

So, for both privacy and security, we encourage you to build your applications to avoid public key reuse and, when possible, to discourage users from reusing addresses. If your application needs to provide a fixed URI to which payments should be sent, please see the bitcoin: URI section below.
[https://bitcoin.org/en/developer-guide#avoiding-key-reuse]

AddressWpg::
* http://bitzuma.com/posts/five-ways-to-lose-money-with-bitcoin-change-addresses/

btcads.MULTISIG

Description::
Multisig:
Multi-signature addresses allow multiple parties to partially seed an address with a public key.
When someone wants to spend some of the bitcoins, they need some of these people to sign their transaction in addition to themselves.
The needed number of signatures is agreed at the start when people create the address.
Services using multi-signature addresses have a much greater resistance to theft.
Read more about Multisig here.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-multisig-address,
* cpt.btcmultisig-address,

btcads.P2PKH

Description::
A Bitcoin payment address comprising a hashed public key, allowing the spender to create a standard pubkey script that Pays To PubKey Hash (P2PKH).
[https://bitcoin.org/en/glossary/p2pkh-address]
===
P2PKH is the most common form of pubkey script used to send a transaction to one or multiple Bitcoin addresses.
Pubkey script: OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
Signature script: <sig> <pubkey>
[https://bitcoin.org/en/developer-guide#pay-to-public-key-hash-p2pkh]

Name::
* cpt.btcads.P2PKH,
* cpt.btcP2PKH,
* cpt.btcPay-To-PubKey-Hash,

btcads.P2SH

Description::
A Bitcoin payment address comprising a hashed script, allowing the spender to create a standard pubkey script that Pays To Script Hash (P2SH).
The script can be almost any valid pubkey script.
[https://bitcoin.org/en/glossary/p2sh-address]

Name::
* cpt.btcaddress.P2SH,
* cpt.btcP2SH,
* cpt.btcPay-To-Script-Hash,

btcads.VANITY

Description::
Vanity_address:
A bitcoin address with a desirable pattern, such as a name.

Name::
* cpt.bitcoin-vanity-address,
* cpt.btcvanity-address,

btcbcn'Transaction (btctx)

Description::
A chunk of binary data that describes how bitcoins are moved from one owner to another.
Transactions are stored in the *blockchain*.
Every transaction (except for *coinbase* transactions) has a reference to one or more previous transactions (*inputs*) and one or more rules on how to spend these bitcoins further (*outputs*).
See *Transaction Input* and *Transaction Output* for more info.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Bitcoins are the equivalent of Internet cash. You can send bitcoins over the Internet directly to anyone with no middle man. Like cash, Bitcoin transactions are irreversible. Bitcoins are traded worldwide.
[https://www.bitstamp.net/help/what-is-bitcoin/]
===
How do bitcoin transactions work?
Jan 9th 2015, 15:03 BY THE DATA TEAM

Even Satoshi Nakamoto, the elusive creator of bitcoin, admitted that his invention is hard to explain–because there is nothing you can compare it to. Here is how a bitcoin transaction is processed:

1) Payers initiate a bitcoin payment using "wallet" software.

2) This and other pending transactions are broadcast on the global bitcoin network.

3) Once every ten minutes or so, "miners", specialised computers (or groups of computers) on this network, collect a few hundred transactions and combine them in a "block".

4) In order to mine a block and validate the transaction, miners compete to solve a difficult mathematical equation (a "hash function"). The miner that solves the equation first further processes the block and broadcasts this "proof-of-work" to the bitcoin network.

5) The other miners check the proof-of-work and the validity of the transactions. If they approve, the winning miner gets a reward of 25 newly minted bitcoin (about $6,900 at current prices), which is the incentive for miners to provide computing power. Adjusting the difficulty of the puzzle ensures that the supply of new bitcoins remains steady.

6) The mined block is added to the "blockchain", a big, unbreakable ledger that lives on the bitcoin network and serves as a record of all transactions.

7) The payee can use his wallet software to see whether the bitcoin have arrived.
[http://www.economist.com/blogs/graphicdetail/2015/01/daily-chart-3]

Name::
* cpt.btcnet'blockchain-transaction,
* cpt.btcnet'transaction,
* cpt.bitcoin-transaction,
* cpt.btctransaction,
* cpt.btctrn,
* cpt.btctrn,
* cpt.btctx,
* cpt.btctransaction-record,

NameGreek::
* ενν.συναλλαγή-μπιτκόιν,

Whole::
* btc-block,
* btc-blockchain,

btctx'PART

btctx'part.VERSION (4B)

Description::
Every transaction consists of
- a transaction version (nVersion),
- a vector of inputs (vin) and
- a vector of outputs (vout), both preceded by their count, and
- a transaction inclusion date (nLockTime).
nVersion / int (4 bytes) / Transaction format version (currently 1).
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]
===
Each transaction is prefixed by a four-byte transaction version number which tells Bitcoin peers and miners which set of rules to use to validate it. This lets developers create new rules for future transactions without invalidating previous transactions.
===
Transaction version numbers will be a better way to specify exactly what rues should be used to validate a transaction; transactions with old version numbers will be validated under the old rules, transactions with new version numbers will always be validated under the new rules before being relayed or included in mined blocks. To avoid being in the minority fork of a block chain split, transactions with new version numbers appearing in blocks will only be validated using the new rules when a super-majority of the network (as expressed by block version numbers in the last N blocks) supports the new feature.

A transaction's version number is part of it's hash (transaction ID) and is part of the signature hash, so cannot be changed by an attacker. However, software using new transaction features will need to make sure that transactions have the correct version number before asking users to provide signatures or telling users that the transaction has been properly signed, etc.
[https://gist.github.com/gavinandresen/2355445]

Name::
* cpt.btctx'version,
===
* cpt.btctx'version,
* cpt.btcnVersion,
* cpt.btctransaction-version-number,

btctx'part.INPUT-ARRAY

btctx'part.INPUT

Description::
An input
- references an output in a previous transaction — a transaction ID (the hash of the transaction data) and output index — and
- provides a script, known as the scriptSig, that satifies the output script conditions.
[http://joncave.co.uk/2014/08/bitcoin-sighash-single/]
===
Every transaction consists of
- a transaction version (nVersion),
- a vector of inputs (vin) and
- a vector of outputs (vout), both preceded by their count, and
- a transaction inclusion date (nLockTime).
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]
===
Transaction_Input:
A part of a transaction that contains
- a reference to a previous transaction's *output*
- and a *script* that can prove ownership of that output.
The script usually contains a *signature* and thus called *scriptSig*.
Inputs spend previous outputs completely.
So if one needs to pay only a portion of some previous output, the transaction should include extra *change* output that sends the remaining portion back to its owner (on the same or different address).
*Coinbase* transactions contain only one input with a zeroed reference to a previous transaction and an arbitrary data in place of script.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Each transaction has at least one input and one output. Each input spends the satoshis paid to a previous output.
[https://bitcoin.org/en/developer-guide#transactions]
===
An input in a transaction which contains four fields:
- an outpoint,
- a signature script, and
- a sequence number.
The outpoint references a previous output and the signature script allows spending it.
[https://bitcoin.org/en/glossary/input]
===
Each transaction spends the satoshis previously received in one or more earlier transactions, so the input of one transaction is the output of a previous transaction.
[https://bitcoin.org/en/developer-guide#block-chain-overview]
===
Input:
The part of a bitcoin transaction denoting where the bitcoin payment has come from.
Typically, this will be a bitcoin address, unless the transaction is a generation transaction, meaning that the bitcoin has been freshly mined (see Coinbase).
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-transaction-input,
* cpt.btcInput,
* cpt.btctx'input,
* cpt.btcTransaction-Input,
* cpt.btcTxin,

btctxinpt'part.OUTPOINT (32B+4B)

Description::
The data structure used to refer to a particular transaction output, consisting of a 32-byte TXID and a 4-byte output index number (vout).
[https://bitcoin.org/en/glossary/outpoint]
===
Outpoint (the combination of a txid with a vout used to identify a specific output)
[https://bitcoin.org/en/glossary/txid]

Name::
* cpt.btctxinpt'outpoint,
* cpt.btcoutpoint,
* cpt.btctx'outpoint

btctxinpt'id (32B)

Description::
An identifier used to uniquely identify a particular transaction; specifically, the sha256d hash of the transaction.
[https://bitcoin.org/en/glossary/txid]
===
The rawtransaction format is hashed to create the transaction identifier (txid).
From these txids, the merkle tree is constructed by pairing each txid with one other txid and then hashing them together.
[https://bitcoin.org/en/developer-guide#transaction-data]

Name::
* cpt.btctx'id,
==
* cpt.btctxinpt'txid,
* cpt.btcTransaction-Identifier,
* cpt.btcTxid,
* cpt.btctx'id,

btctxinpt'vout (4B)

Description::
An input uses a transaction identifier (txid) and an output index number (often called “vout” for output vector) to identify a particular output to be spent.
[https://bitcoin.org/en/developer-guide#transactions]

Name::
* cpt.btcoutput-index-number,
* cpt.btcoutput-vector,

btctxinpt'part.SEQUENCE-NUMBER

Description::
Part of all transactions.
A number intended to allow unconfirmed time-locked transactions to be updated before being finalized; not currently used except to disable locktime in a transaction
[https://bitcoin.org/en/glossary/sequence-number]
===
Sequence:
A 32-bit unsigned integer in a transaction input used to replace older version of a transaction by a newer one.
Only used when *locktime* is not zero.
Transaction is not considered valid until the sequence number is 0xFFFFFFFF.
By default, the sequence is 0xFFFFFFFF.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btctxinpt'sequence-number,
* cpt.btcsequence-number,
* cpt.btctx'sequence-number

btctxinpt'part.SIGNATURE-SCRIPT (link)
btctxinpt'Coinbase

Description::
A special field used as the sole input for coinbase transactions.
The coinbase allows claiming the block reward and provides up to 100 bytes for arbitrary data.
[https://bitcoin.org/en/glossary/coinbase]
===
Coinbase:
An input script of a transaction that generates new bitcoins. Or a name of that transaction itself ("coinbase transaction"). Coinbase transaction does not spend any existing transactions, but contains exactly one input which may contain any data in its script. *Genesis block* transaction contains a reference to The Times article from January 3rd 2009 to prove that more blocks were not created before that date. Some *mining pools* put their names in the coinbase transactions (so everyone can estimate how much *hashrate* each pool produces).

Coinbase is also used to vote on a protocol change (e.g. *P2SH*). Miners vote by putting some agreed-upon marker in the coinbase to see how many support the change. If a majority of miners support it and expect non-mining users to accept it, then they simply start enforcing new rule. Minority then should either continue with a forked blockchain (thus producing an *altcoin*) or accept new rule.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-coinbase,
* cpt.btccoinbase,

btctxinpt'Hash-type

Description::
Hash_Type_(hashtype):
A single byte appended to a transaction *signature* in the *transaction input* which describes how the transaction should be hashed in order to verify that signature.
There are three types affecting outputs:
ALL (default), SINGLE, NONE and one optional modifier ANYONECANPAY affecting the inputs (can be combined with either of the first three).
ALL requires all outputs to be hashed (thus, all outputs are signed).
SINGLE clears all output scripts but the one with the same index as the input in question.
NONE clears all outputs thus allowing changing them at will.
ANYONECANPAY removes all inputs except the current one (allows anyone to contribute independently).
The actual behavior is more subtle than this overview, you should check the actual source code for more comments.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btchash-type,
* cpt.btchashtype,

btctx'part.OUTPUT-ARRAY

btctx'part.OUTPUT (btctxout)

Description::
An output in a transaction which contains two fields:
- a value field for transferring zero or more satoshis and
- a pubkey script for indicating what conditions must be fulfilled for those satoshis to be further spent.
[https://bitcoin.org/en/glossary/output]

Name::
* cpt.bitcoin-transaction-output,
* cpt.btcOutput,
* cpt.btcTransaction-Output,
* cpt.btctx'output,
* cpt.btcTxOut,

Description::
Each transaction has at least one input and one output.
Each input spends the satoshis paid to a previous output.
Each output then waits as an Unspent Transaction Output (UTXO) until a later input spends it.
When your Bitcoin wallet tells you that you have a 10,000 satoshi balance, it really means that you have 10,000 satoshis waiting in one or more UTXOs.
[https://bitcoin.org/en/developer-guide#transactions]

Description::
A single transaction can create multiple outputs, as would be the case when sending to multiple addresses, but each output of a particular transaction can only be used as an input once in the block chain.
[https://bitcoin.org/en/developer-guide#block-chain-overview]

Description::
The destination address for a bitcoin transaction.
There can be multiple outputs for a single transaction.
[http://www.coindesk.com/information/bitcoin-glossary/]

Description::
Transaction_Output:
An output contains an amount to be sent and a *script* that allows further spending.
The script typically contains a *public key* (or an *address*, a hash of a public key) and a signature verification *opcode*.
Only an owner of a corresponding *private key* is able to create another transaction that sends that amount further to someone else.
In every transaction, the sum of output-amounts must be equal or less than a sum of all input amounts.
See also *Change*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btctxout'part.INDEX-implied

Description::
An output has an implied index number based on its location in the transaction—the first output is output zero.
[https://bitcoin.org/en/developer-guide#transactions]

Name::
* cpt.btctxout'index,

btctxout'part.AMOUNT

Description::
The output also has an amount in satoshis which it pays to a conditional pubkey script.
[https://bitcoin.org/en/developer-guide#transactions]

Name::
* cpt.btctxout'amount,

btctxout'part.PUBKEY|OUTPUT-SCRIPT (link)
btctxout.CHANGE

Description::
An output in a transaction which returns satoshis to the spender, thus preventing too much of the input value from going to transaction fees.
[https://bitcoin.org/en/glossary/change-address]

Name::
* cpt.btcChange,
* cpt.btcChange-Output,

NameGreek::
* ενν.επιστροφή-μπιτκόιν,
* ενν.ρέστα-μπιτκόιν,

Description::
Change outputs are regular outputs which spend the surplus satoshis from the UTXOs back to the spender. They can reuse the same P2PKH pubkey hash or P2SH script hash as was used in the UTXO, but for the reasons described in the next subsection, it is highly recommended that change outputs be sent to a new P2PKH or P2SH address.
[https://bitcoin.org/en/developer-guide#transaction-fees-and-change]
===
Change:
Informal name for a portion of a *transaction output* that is returned to a sender as a "change" after spending that output.
Since *transaction outputs* cannot be partially spent, one can spend 1 BTC out of 3 BTC output only be creating two new outputs: a "payment" output with 1 BTC sent to a payee address, and a "change" output with remaining 2 BTC (minus *transaction fees*) sent to the payer's addresses.
*BitcoinQT* always uses new address from a *key pool* for a better privacy.
*Blockchain.info* sends to a default address in the wallet.

A common mistake when working with a *paper wallet* or a *brain wallet* is to make a change transaction to a different address and then accidentally delete it.
E.g. when importing a private key in a temporary BitcoinQT wallet, making a transaction and then deleting the temporary wallet.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btctxout.DUST

Description::
Dust:
A transaction output that is smaller than a typically fee required to spend it. This is not a strict part of the protocol, as any amount more than zero is valid. BitcoinQT refuses to mine or relay "dust" transactions to avoid uselessly increasing the size of unspent transaction outputs (UTXO) index. See also discussion about *UTXO*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcdust-transaction-output,

btctxout.MULTISIG

Description::
M-of-N-Multisig, Multisig-Output:
A pubkey script that provides n number of pubkeys and requires the corresponding signature script provide m minimum number signatures corresponding to the provided pubkeys.
[https://bitcoin.org/en/glossary/multisig]

Name::
* cpt.btcm-of-n-multisig,
* cpt.btcmultisig-output,

btctxout.SPENT

Description::
Used as input in another transaction.
[hmnSgm.2017-02-18]
===
Because each output of a particular transaction can only be spent once, the outputs of all transactions included in the block chain can be categorized as either Unspent Transaction Outputs (UTXOs) or spent transaction outputs.
[https://bitcoin.org/en/developer-guide#block-chain-overview]
===
#idBtc1Spent_Output#
A transaction *output* can be spent only once: when another valid transaction makes a reference to this output from its own input.
When another transaction attempts to spend the same output, it will be rejected by the nodes already seeing the first transaction.
Blockchain as a *proof-of-work* scheme allows every node to agree on which transaction was indeed the first one.
The whole transaction is considered spent when all its outputs are spent.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcSpent-Transaction-Output,

btctxout.SPENT.NO (unspent UTXO)

Description::
An Unspent Transaction Output (UTXO) that can be spent as an input in a new transaction.
[https://bitcoin.org/en/glossary/unspent-transaction-output]

Name::
* cpt.bitcoin-Unspent-Transaction-Output,
* cpt.btctx'UTXO,
* cpt.btctxout.UTXO,
* cpt.btcUnspent-Transaction-Output,
* cpt.btcUTXO,

UTXO-SET

Description::
UTXO_Set:
A collection of *Unspent Transaction Outputs*.
Typically used in discussions on optimizing an ever-growing index of *transaction outputs* that are not yet *spent*.
The index is important to efficiently validate newly created transactions.
Even if the rate of the new transactions remains constant, the time required to locate and verify unspent outputs grows.

Possible technical solutions include more efficient indexing algorithms and a more performant hardware.
*BitcoinQT*, for example, keeps only an index of outputs matching user's keys and scans the entire blockchain when validating other transactions.
A developer of one web wallet service mentioned that they maintain the entire index of UTXO and its size was around 100 Gb when the blockchain itself was only 8 Gb.

Some people seek social methods to solve the problem.
For instance, by refusing to *relay* or *mine* transactions that are considered *dust* (containing outputs smaller than a *transaction fee* required to mine/relay them).
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-Unspent-Transaction-Output-Set,
* cpt.btctx'UTXO-set,
* cpt.btctxout.UTXO-set,
* cpt.btcUnspent-Transaction-Output-set,
* cpt.btcUTXO-set,

btctx'part.LOCKTIME (4Bytes)

Description::
Part of a transaction which indicates the earliest time or earliest block when that transaction may be added to the block chain.
[https://bitcoin.org/en/glossary/locktime]
===
One thing all signature hash types sign is the transaction’s locktime. (Called nLockTime in the Bitcoin Core source code.) The locktime indicates the earliest time a transaction can be added to the block chain.

Locktime allows signers to create time-locked transactions which will only become valid in the future, giving the signers a chance to change their minds.

If any of the signers change their mind, they can create a new non-locktime transaction. The new transaction will use, as one of its inputs, one of the same outputs which was used as an input to the locktime transaction. This makes the locktime transaction invalid if the new transaction is added to the block chain before the time lock expires.
[https://bitcoin.org/en/developer-guide#locktime-and-sequence-number]
===
Every transaction consists of
- a transaction version (nVersion),
- a vector of inputs (vin) and
- a vector of outputs (vout), both preceded by their count, and
- a transaction inclusion date (nLockTime).
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]
===
Lock_Time_(locktime):
A 32-bit field in a *transaction* that means either a block *height* at which the transaction becomes valid, or a UNIX timestamp.
Zero means transaction is valid in any block.
A number less than 500000000 is interpreted as a block number (the limit will be hit after year 11000), otherwise a timestamp.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btctx'locktime,
* cpt.btcLocktime,
* cpt.btcnLockTime,

btctx'Bytes

Description::
the fee is relative to the number of bytes in the transaction
[https://bitcoin.org/en/faq#transactions]

btctx'Fee

Description::
Fees are relatively unimportant at the moment since “miners” who successfully process a block of transactions are rewarded with newly created bitcoin. However, fees will become more important in the future because the amount of new bitcoin issued to a successful miner is cut in half roughly every four years. If increasing the block size lowers the transaction fees miners can expect to receive, one would expect fewer miners competing to process transactions as the block reward decreases over time. The bitcoin system would become more centralized as a result.
[http://www.forbes.com/sites/realspin/2015/09/08/new-bitcoin-development-spurs-unnecessary-fear-of-centralization/]
===
Transaction_Fee:
Also known as "miners' fee", an amount that an author of transaction pays to a miner who will include the transaction in a block.
The fee is expressed as difference between the sum of all *input* amounts and a sum of all *output* amounts.
Unlike traditional payment systems, miners do not explicitly require fees and most miners allow free transactions.
All miners are competing between each other for the fees and all transactions are competing for a place in a block.
There are soft rules encoded in most clients that define minimum fees per kilobyte to relay or mine a transaction (mostly to prevent *DoS* and *spam*).
Typically, the fee affects the priority of a transaction.
As of July 27, 2014 average fee per block is below 0.1 BTC.
See also *Reward*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
The amount remaining when the value of all outputs in a transaction are subtracted from all inputs in a transaction; the fee is paid to the miner who includes that transaction in a block.
[https://bitcoin.org/en/glossary/transaction-fee]
===
A small fee imposed on some transactions sent across the bitcoin network.
The transaction fee is awarded to the miner that successfully hashes the block containing the relevant transaction.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Transaction fees may be included with any transfer of bitcoins from one address to another. At the moment, many transactions are typically processed in a way where no fee is expected at all, but for transactions which draw coins from many bitcoin addresses and therefore have a large data size, a small transaction fee is usually expected.

The transaction fee is processed by and received by the bitcoin miner. When a new bitcoin block is generated with a successful hash, the information for all of the transactions is included with the block and all transaction fees are collected by that user creating the block, who is free to assign those fees to himself.

Transaction fees are voluntary on the part of the person making the bitcoin transaction, as the person attempting to make a transaction can include any fee or none at all in the transaction. On the other hand, nobody mining new bitcoins necessarily needs to accept the transactions and include them in the new block being created. The transaction fee is therefore an incentive on the part of the bitcoin user to make sure that a particular transaction will get included into the next block which is generated.

It is envisioned that over time the cumulative effect of collecting transaction fees will allow somebody creating new blocks to "earn" more bitcoins than will be mined from new bitcoins created by the new block itself. This is also an incentive to keep trying to create new blocks even if the value of the newly created block from the mining activity is zero in the far future.
[https://en.bitcoin.it/wiki/Transaction_fees]

Name::
* cpt.btctx'fee,
* cpt.btcfee,
* cpt.btcTransaction-Fee,
* cpt.btcMiner-Fee,
* cpt.btcMiners-Fee,
* cpt.bitcoin-transaction-fee,

NameGreek::
* ενν.τέλη-μπικόιν-συναλλαγής,
* ενν.χρέωση-μπικόιν-συναλλαγής,

AddressWpg::
* http://cointelegraph.com/news/bitcoins-transaction-fees-skyrocket-as-the-bitcoin-halving-looms,
Having almost tripled since last summer, Bitcoin transaction fees continue to grow. {2016-05-15}
* New Service Finds Optimum Bitcoin Transaction Fee,

{time.2017-02-18}
Now, the average fee to have a transaction included in the next six blocks or roughly one hour is $0.37, higher than many card processors’ fees.
[https://cointelegraph.com/news/bitcoin-fork-soon-bitcoin-unlimited-surges-past-segwit-core-blocks-drop-below-75]

btctx'Format.Binary

Description::
All transactions, including the coinbase transaction, are encoded into blocks in binary rawtransaction format.
[https://bitcoin.org/en/developer-guide#transaction-data]

Name::
* cpt.btcxt'binary-format,
* cpt.btcxt'raw-format,
===
* cpt.btcTransaction-format,
* cpt.btcrawtransaction-format,

btctx'Script-language (btcstl)

Description::
Bitcoin uses a scripting system for transactions.
Forth-like, Script is simple, stack-based, and processed from left to right.
It is purposefully not Turing-complete, with no loops.
[https://en.bitcoin.it/wiki/Script]
===
The script language is a Forth-like stack-based language deliberately designed to be stateless and not Turing complete.
Statelessness ensures that once a transaction is added to the block chain, there is no condition which renders it permanently unspendable.
Turing-incompleteness (specifically, a lack of loops or gotos) makes the script language less flexible and more predictable, greatly simplifying the security model.
[https://bitcoin.org/en/developer-guide#p2pkh-script-validation]
===
A decentralized transaction verification system (transaction script)
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]
===
The scripting language is stack-based, this means that each data, input or output is put on a stack of other data.
[https://docs.google.com/document/d/1D_gi_7Sf9sOyAHG25cMpOO4xtLq3iJUtjRwcZXFLv1E/edit]
===
Pubkey scripts and signature scripts combine secp256k1 pubkeys and signatures with conditional logic, creating a programmable authorization mechanism.
[https://bitcoin.org/en/developer-guide#transactions]

Name::
* cpt.btcstl,
* cpt.btctx'script-language,
* cpt.bitcoin-scripting-system,
===
* cpt.bitcoin-script-language,
* cpt.btcscripting-language,
* cpt.btctransaction-script,
* cpt.btcnet'transaction-script,

btcstl'Script

Description::
Script is code written with the-bitcoin-script-language.
[hmnSgm.2017-04-06]

Name::
* cpt.bitcoin-script,
* cpt.btcscript,
* cpt.btcstl'script,

NameGreek::
* ενν.σενάριο-μπιτκόιν,

Description::
Script:
A compact turing-incomplete programming language used in transaction *inputs* and *outputs*.
Scripts are interpreted by a Forth-like stack machine: each operation manipulates data on the stack.
Most scripts follow the standard pattern and verify the digital *signature* provided in the transaction *input* against a *public key* provided in the previous transaction's *output*.
Both signatures and public keys are provided using scripts.
Scripts may contain complex conditions, but can never change amounts being transferred.
Amount is stored in a separate field in a *transaction output*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btcstl'script'Opcode

Description::
Operation codes from the Bitcoin Script language which push data or perform functions within a pubkey script or signature script.
[https://bitcoin.org/en/glossary/op-code]
===
Opcode:
8-bit code of a *script* operation.
Codes from 0x01 to 0x4B (decimal 75) are interpreted as a length of data to be pushed on the stack of the interpreter (data bytes follow the opcode).
Other codes are either do something interesting, or disabled and cause transaction verification to fail, or do nothing (reserved for future use).
See also *Script*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-opcode,
* cpt.btctx'Op-Code,
* cpt.btcopcode,
* cpt.btcop-code,

AddressWpg::
* https://en.bitcoin.it/wiki/Script,

btcOP_CHECKSIG:

btcOP_DUP:

btcOP_EQUALVERIFY:

btcOP_HASH160:

btcstl'script.Signature-Script (input)

Description::
It [an input] also has a signature script which allows it to provide data parameters that satisfy the conditionals in the pubkey script.
[https://bitcoin.org/en/developer-guide#transactions]
===
Signature-script:
Data generated by a spender which is almost always used as variables to satisfy a pubkey script.
Called a scriptSig in code.
[https://bitcoin.org/en/glossary/signature-script]
===
Anyone who can satisfy the conditions of that pubkey script can spend up to the amount of satoshis paid to it.
[https://bitcoin.org/en/developer-guide#transactions]
===
scriptSig:
Original name in *bitcoind* for a transaction *input* script.
Typically, input scripts contain *signatures* to prove ownership of bitcoins sent by a previous transaction.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.biticoin-input-script,
* cpt.btcinput-script,
* cpt.btcscriptInput,
* cpt.btcscriptSig,
* cpt.btcsequence-script,
* cpt.btcsignature-script,
* cpt.btctx'signature-script,
* cpt.btctxinpt'signature-script,

btcstl'script.Pubkey-script (output)

Name::
* cpt.bitcoin-output-script,
* cpt.btcoutput-script,
* cpt.btcpubkey-script,
* cpt.btcscriptOutput,
* cpt.btcScriptPubKey,
* cpt.btctxotp'pubkey-script,

Whole::
* bitcoin-transaction's-output,

Description::
The output also has an amount in satoshis which it pays to a conditional pubkey script.
Anyone who can satisfy the conditions of that pubkey script can spend up to the amount of satoshis paid to it.
[https://bitcoin.org/en/developer-guide#transactions]
===
A script included in outputs which sets the conditions that must be fulfilled for those satoshis to be spent.
Data for fulfilling the conditions can be provided in a signature script.
Called a scriptPubKey in code.
[https://bitcoin.org/en/glossary/pubkey-script]
===
scriptPubKey:
Original name in *bitcoind* for a transaction *output* script.
Typically, output scripts contain *public keys* (or their hashes; see *Address*) that allow only owner of a corresponding *private key* to redeem the bitcoins in the output.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Description::
Pubkey
Pubkey outputs are a simplified form of the P2PKH pubkey script, but they aren’t as secure as P2PKH, so they generally aren’t used in new transactions anymore.

Pubkey script: <pubkey> OP_CHECKSIG
Signature script: <sig>
[https://bitcoin.org/en/developer-guide#pubkey]

btcscriptPubKey.multisig

Description::
A pubkey script that provides n number of pubkeys and requires the corresponding signature script provide m minimum number signatures corresponding to the provided pubkeys.
[https://bitcoin.org/en/glossary/multisig]

Name::
* cpt.btcM-of-N-Multisig,
* cpt.btcmultisig,
* cpt.btcMultisig-Output,

btcscriptPubKey.P2PKH-address

Description::
In a P2PKH output, the pubkey script is:
OP_DUP OP_HASH160 <PubkeyHash> OP_EQUALVERIFY OP_CHECKSIG
[https://bitcoin.org/en/developer-guide#p2pkh-script-validation]

Name::
* cpt.btcP2PKH-Output,

btcscriptSig'secp256k1-signature

Description::
Signature, ECDSA Signature
A value related to a public key which could only have reasonably been created by someone who has the private key that created that public key. Used in Bitcoin to authorize spending satoshis previously sent to a public key.
[https://bitcoin.org/en/glossary/signature]

Name::
* cpt.btcscriptSig'sig,
* cpt.btcscriptSig'signature,
* cpt.btcsecp256k1-signature,
* cpt.btcstl'sig,
* cpt.btcECDSA-signature,
btcstl'secp256k1_signature

btcscriptSig.P2PKH-address

Description::
In a P2PKH transaction, the signature script contains an secp256k1 signature (sig) and full public key (pubkey), creating the following concatenation:
<Sig> <PubKey> OP_DUP OP_HASH160 <PubkeyHash> OP_EQUALVERIFY OP_CHECKSIG
[https://bitcoin.org/en/developer-guide#p2pkh-script-validation]

Name::
* cpt.btcscriptSig.P2PKH,

btcstl'script.P2PKH

Description::
Pay To Public Key Hash (P2PKH)
P2PKH is the most common form of pubkey script used to send a transaction to one or multiple Bitcoin addresses.
Pubkey script: OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
Signature script: <sig> <pubkey>
[https://bitcoin.org/en/developer-guide#standard-transactions]

btcstl'script.P2SH

Description::
Pay To Script Hash (P2SH)
P2SH is used to send a transaction to a script hash.
Each of the standard pubkey scripts can be used as a P2SH redeem script, but in practice only the multisig pubkey script makes sense until more transaction types are made standard.
Pubkey script: OP_HASH160 <Hash160(redeemScript)> OP_EQUAL
Signature script: <sig> [sig] [sig...] <redeemScript>
[https://bitcoin.org/en/developer-guide#pay-to-script-hash-p2sh]
===
Pay_to_Script_Hash:
A type of the *script* and *address* that allows sending bitcoins to arbitrary complex scripts using a compact hash of that script.
This allows payer to pay much smaller *transaction fees* and not wait very long for a *non-standard* transaction to get included in the blockchain.
Then the actual script matching the hash must be provided by the payee when redeeming the funds.
P2SH addresses are encoded in *Base58Check* just like regular public keys and start with number "3".
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btcstl'script.Multisig

Description::
Multisig
Although P2SH multisig is now generally used for multisig transactions, this base script can be used to require multiple signatures before a UTXO can be spent.

In multisig pubkey scripts, called m-of-n, m is the minimum number of signatures which must match a public key; n is the number of public keys being provided. Both m and n should be opcodes OP_1 through OP_16, corresponding to the number desired.

Because of an off-by-one error in the original Bitcoin implementation which must be preserved for compatibility, OP_CHECKMULTISIG consumes one more value from the stack than indicated by m, so the list of secp256k1 signatures in the signature script must be prefaced with an extra value (OP_0) which will be consumed but not used.

The signature script must provide signatures in the same order as the corresponding public keys appear in the pubkey script or redeem script. See the description in OP_CHECKMULTISIG for details.

Pubkey script: <m> <A pubkey> [B pubkey] [C pubkey...] <n> OP_CHECKMULTISIG
Signature script: OP_0 <A sig> [B sig] [C sig...]
Although it’s not a separate transaction type, this is a P2SH multisig with 2-of-3:

Pubkey script: OP_HASH160 <Hash160(redeemScript)> OP_EQUAL
Redeem script: <OP_2> <A pubkey> <B pubkey> <C pubkey> <OP_3> OP_CHECKMULTISIG
Signature script: OP_0 <A sig> <C sig> <redeemScript>
[https://bitcoin.org/en/developer-guide#multisig]

btcstl'script.Null-data

Description::
Null Data
Null data transaction type relayed and mined by default in Bitcoin Core 0.9.0 and later that adds arbitrary data to a provably unspendable pubkey script that full nodes don’t have to store in their UTXO database. It is preferable to use null data transactions over transactions that bloat the UTXO database because they cannot be automatically pruned; however, it is usually even more preferable to store data outside transactions if possible.

Consensus rules allow null data outputs up to the maximum allowed pubkey script size of 10,000 bytes provided they follow all other consensus rules, such as not having any data pushes larger than 520 bytes.

Bitcoin Core 0.9.x to 0.10.x will, by default, relay and mine null data transactions with up to 40 bytes in a single data push and only one null data output that pays exactly 0 satoshis:

Pubkey Script: OP_RETURN <0 to 40 bytes of data>
(Null data scripts cannot be spent, so there's no signature script.)
Bitcoin Core 0.11.x increases this default to 80 bytes, with the other rules remaining the same.

Bitcoin Core 0.12.0 defaults to relaying and mining null data outputs with up to 83 bytes with any number of data pushes, provided the total byte limit is not exceeded. There must still only be a single null data output and it must still pay exactly 0 satoshis.

The -datacarriersize Bitcoin Core configuration option allows you to set the maximum number of bytes in null data outputs that you will relay or mine.
[https://bitcoin.org/en/developer-guide#null-data]

btcstl'Evaluation

Description::
However, the scripting language as implemented in Bitcoin has several important limitations:

Lack of Turing-completeness - that is to say, while there is a large subset of computation that the Bitcoin scripting language supports, it does not nearly support everything. The main category that is missing is loops. This is done to avoid infinite loops during transaction verification; theoretically it is a surmountable obstacle for script programmers, since any loop can be simulated by simply repeating the underlying code many times with an if statement, but it does lead to scripts that are very space-inefficient. For example, implementing an alternative elliptic curve signature algorithm would likely require 256 repeated multiplication rounds all individually included in the code.
Value-blindness -
there is no way for a UTXO script to provide fine-grained control over the amount that can be withdrawn.
For example, one powerful use case of an oracle contract would be a hedging contract, where A and B put in $1000 worth of BTC and after 30 days the script sends $1000 worth of BTC to A and the rest to B.
This would require an oracle to determine the value of 1 BTC in USD, but even then it is a massive improvement in terms of trust and infrastructure requirement over the fully centralized solutions that are available now.
However, because UTXO are all-or-nothing, the only way to achieve this is through the very inefficient hack of having many UTXO of varying denominations (eg. one UTXO of 2k for every k up to 30) and having O pick which UTXO to send to A and which to B.
Lack of state -
UTXO can either be spent or unspent; there is no opportunity for multi-stage contracts or scripts which keep any other internal state beyond that.
This makes it hard to make multi-stage options contracts, decentralized exchange offers or two-stage cryptographic commitment protocols (necessary for secure computational bounties).
It also means that UTXO can only be used to build simple, one-off contracts and not more complex "stateful" contracts such as decentralized organizations, and makes meta-protocols difficult to implement.
Binary state combined with value-blindness also mean that another important application, withdrawal limits, is impossible.
Blockchain-blindness -
UTXO are blind to certain blockchain data such as the nonce and previous block hash.
This severely limits applications in gambling, and several other categories, by depriving the scripting language of a potentially valuable source of randomness.
[https://github.com/ethereum/wiki/wiki/White-Paper#scripting]

btcstl'Execution

Description::
To test whether the transaction is valid, signature script and pubkey script operations are executed one item at a time, starting with Bob’s signature script and continuing to the end of Alice’s pubkey script.
[https://bitcoin.org/en/developer-guide#p2pkh-script-validation]
===
scriptIpt: <Sig> <PubKey>
scriptOpt: OP_DUP OP_HASH160 <PubkeyHash> OP_EQUALVERIFY OP_CHECKSIG
<Sig> <PubKey> OP_DUP OP_HASH160 <PubkeyHash> OP_EQUALVERIFY OP_CHECKSIG

Name::
* cpt.btcspt'execution,
* cpt.btcspt'validation,
* cpt.btcspt'verification,

DOING:
1. CODE: <Sig>        STACK: <Sig>
The signature (from Bob’s signature script) is added (pushed) to an empty stack. Because it’s just data, nothing is done except adding it to the stack.
2. CODE: <PubKey>    STACK: <PubKey><Sig>
The public key (also from the signature script) is pushed on top of the signature.
3. CODE: OP_DUP    STACK: <PubKey><PubKey><Sig>
From Alice’s pubkey script, the OP_DUP operation is executed. OP_DUP pushes onto the stack a copy of the data currently at the top of it—in this case creating a copy of the public key Bob provided.
4. CODE: OP_HASH160    STACK: <PubKeyHash><PubKey><Sig>
The operation executed next, OP_HASH160, pushes onto the stack a hash of the data currently on top of it—in this case, Bob’s public key. This creates a hash of Bob’s public key.
5. CODE: <PubKeyHash>    STACK: <PubKeyHash><PubKeyHash><PubKey><Sig>
Alice’s pubkey script then pushes the pubkey hash that Bob gave her for the first transaction. At this point, there should be two copies of Bob’s pubkey hash at the top of the stack.
6. CODE: OP_EQUALVERIFY    STACK: <PubKey><Sig>
Now it gets interesting: Alice’s pubkey script executes OP_EQUALVERIFY.
OP_EQUALVERIFY is equivalent to executing OP_EQUAL followed by OP_VERIFY (not shown).
OP_EQUAL (not shown) checks the two values at the top of the stack; in this case, it checks whether the pubkey hash generated from the full public key Bob provided equals the pubkey hash Alice provided when she created transaction #1.
OP_EQUAL pops (removes from the top of the stack) the two values it compared, and replaces them with the result of that comparison: zero (false) or one (true).
OP_VERIFY (not shown) checks the value at the top of the stack.
If the value is false it immediately terminates evaluation and the transaction validation fails.
Otherwise it pops the true value off the stack.
7. CODE: OP_CHECKSIG    STACK: true
Finally, Alice’s pubkey script executes OP_CHECKSIG, which checks the signature Bob provided against the now-authenticated public key he also provided.
If the signature matches the public key and was generated using all of the data required to be signed, OP_CHECKSIG pushes the value true onto the top of the stack.
If false is not at the top of the stack after the pubkey script has been evaluated, the transaction is valid (provided there are no other problems with it).
[https://bitcoin.org/en/developer-guide#p2pkh-script-validation]

btcstl'Resource

AddressWpg::
* http://www.crmarsh.com/script-playground/

btctx'Priority

Description::
Priority
A scoring mechanism to help ensure that expensive data storage isn't consumed by lower quality and spam. Low priority transactions will not get included by a miner if the limited space is already filled by higher priority transactions. A transaction fee will affect priority.
[https://en.bitcoin.it/wiki/Vocabulary#Priority]

Name::
* cpt.btcpriority,

btctx'Time

AddressWpg::
* https://cointelegraph.com/news/why-is-my-bitcoin-transaction-taking-so-long-heres-why,

btctx'Visibility

Description::
Transactions are not encrypted, so it is possible to browse and view every transaction ever collected into a block.
All transactions are visible in the block chain, and can be viewed with a hex editor.
A block chain browser is a site where every transaction included within the block chain can be viewed in human-readable terms.
This is useful for seeing the technical details of transactions in action and for verifying payments.
[https://en.bitcoin.it/wiki/Transaction]

btctx'DOING

btctx'Confirmation

Description::
Confirmation means that a transaction has been processed by the network and is highly unlikely to be reversed.
Transactions receive a confirmation when they are included in a block and for each subsequent block.
Even a single confirmation can be considered secure for low value transactions, although for larger amounts like 1000 US$, it makes sense to wait for 6 confirmations or more.
Each confirmation exponentially decreases the risk of a reversed transaction.
[https://bitcoin.org/en/vocabulary#confirmation]
===
Unconfirmed transactions aren't secure
Transactions don't start out as irreversible. Instead, they get a confirmation score that indicates how hard it is to reverse them (see table). Each confirmation takes between a few seconds and 90 minutes, with 10 minutes being the average. If the transaction pays too low a fee or is otherwise atypical, getting the first confirmation can take much longer.
Confirm­ations    Lightweight wallets    Bitcoin Core
0    Only safe if you trust the person paying you
1    Somewhat reliable            Mostly reliable
3    Mostly reliable                Highly reliable
6    Minimum recommendation for high-value bitcoin transfers
30    Recommendation during emergencies to allow human intervention
[https://bitcoin.org/en/you-need-to-know#instant]
===
Confirmation:
The act of hashing a bitcoin transaction successfully into a transaction block, and cementing its validity.
A single confirmation will take around 10 minutes, which is the average length of time for a transaction block to be hashed.
However, some more sensitive or larger transactions may require multiple confirmations, meaning that more blocks must be hashed and added to the blockchain after the transaction’s block has been hashed.
Each time another block is added to the blockchain after the transaction’s block, the transaction is confirmed again.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-transaction-confirmation,
* cpt.btcconfirmation,
* cpt.btctransaction-confirmation,

NameGreek::
* ενν.επιβεβαίωση-συναλλαγής-μπιτκόιν,

btctx'Resource

AddressWpg::
* https://www.blocktrail.com/BTC/tx/ 79ef1753f92c97e7f97eb01fa69d46838ab2924eb5655b10dac2b0cb479b66fd,
* https://en.bitcoin.it/wiki/Transaction,

btctx'blockchain.info-site

Description::
We also have a website called Blockchain.info where you can follow all the transactions that are happening in the Bitcoin network, you can get market and price information and even pull down data if you want to do some interesting statistical work.
For all the nerds out there we have developed a platform that allows enterprises and software programmers to build great things on top of the bitcoin protocol
[http://cointelegraph.com/news/our-goal-is-to-replace-your-need-for-a-bank-says-blockchain-co-founder-and-ceo-nicolas-cary]
===
Blockchain.info:
A web service running a Bitcoin *node* and displaying statistics and raw data of all the transactions and blocks.
It also provides a *web wallet* functionality with *lightweight clients* for Android, iOS and OS X.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.blockchain.info-site,

SPECIFIC

Name::
* btctx.specific,
* cpt.btctx.specific,

btctx.AGGREGATE

btctx.aggregate.DAY

Description::
The bitcoin system can currently handle around 300,000 transactions per day
For comparison, Visa averages around 150 million transactions per day and reports the ability to handle more than 24,000 transactions per second.
[http://www.forbes.com/sites/realspin/2015/09/08/new-bitcoin-development-spurs-unnecessary-fear-of-centralization/]

btctx.aggregate.SECOND

With Thunder, a transaction is so fast that the network can process 100,000 transactions per second. On average, Visa handles 2,000 transactions per second and the Visa network is capable of processing 56,000 transactions per second.
To put this into perspective, Blockchain wallet users are on track to make 40 million transactions this year, or around 1.3 transaction per second. Quite impressive, but let’s be honest. While there are many other wallets out there, given that Blockchain is the most popular wallet maker, bitcoin transaction volume is very far behind Visa. Reason of this lies in the fact that bitcoin transactions have been too cumbersome. So I’m convinced projects like Thunder are part of the solution.
[http://techcrunch.com/2016/05/16/blockchain-open-sources-thunder-network-paving-the-way-for-instant-bitcoin-transactions/?ncid=rss]

btctx.BIGEST-in-money

Description::
The largest transaction processed so far by the network was 150 million US dollars, transmitted instantly and processed without any fees.
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

btctx.BINARY (raw)

Description::
Serialized Transaction, Raw Transaction
Complete transactions in their binary format; often represented using hexadecimal.
Sometimes called raw format because of the various Bitcoin Core commands with “raw” in their names.
[https://bitcoin.org/en/glossary/serialized-transaction]
===
All transactions, including the coinbase transaction, are encoded into blocks in binary rawtransaction format.
The rawtransaction format is hashed to create the transaction identifier (txid).
[https://bitcoin.org/en/developer-guide#transaction-data]

Name::
* cpt.btctx.binary,
* cpt.btctx.hexadecimal,
* cpt.btctx.raw,
* cpt.btcbinary-transaction-format,
* cpt.btcSerialized-Transaction,
* cpt.btcRaw-Transaction,
* cpt.btcRaw-Transaction-format,

btctx.COINBASE (new bitcoin)

Description::
In principle, there are two types of transactions, coinbase transactions and regular transactions.
Coinbase transactions are special transactions in which new Bitcoins are introduced into the system.
They are included in every block as the very first transaction and are meant as a reward for solving a proof of work puzzle.
Regular transactions, on the other hand, are used to transfer existing Bitcoins amongst different users.
From an architectural point of view, a coinbase transaction can be seen as a special case of a regular transaction.
For this reason, the structure of a regular transaction will be discussed first, followed by the differences between coinbase and regular transactions.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]
===
The first transaction in a block.
Always created by a miner, it includes a single coinbase.
[https://bitcoin.org/en/glossary/coinbase-transaction]
===
Coinbase transactions can only be created by Bitcoin miners and they’re an exception to many of the rules listed below.
[https://bitcoin.org/en/developer-guide#transactions]
===
Coinbase:
Another name for the input used in a bitcoin’s generation transaction.
When a bitcoin is mined, it doesn't come from another bitcoin user, but is generated as a reward for the miner.
That reward is recorded as a transaction, but instead of another user's bitcoin address, some arbitrary data is used as the input.

Coinbase is also the name of a bitcoin wallet service that also offers payment processing services for merchants and acts as an intermediary for purchasing bitcoins from exchanges.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-coinbase-transaction,
* cpt.btctx.coinbase,
* cpt.btccoinbase-transaction,
* cpt.btcgeneration-transaction,
* cpt.btctx.generation,

btctxCnbs'Extra-nonce

Description::
Extra_nonce:
A number placed in *coinbase* script and incremented by a miner each time the *nonce* 32-bit integer overflows.
This is not the required way to continue mining when nonce overflows, one can also change the *merkle tree* of transactions or change a public key used for collecting a block *reward*.
See also *nonce*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-extra-nonce,
* cpt.btcextra-nonce,

btctxCnbs'UTXO

Description::
UTXO:
The UTXO of a coinbase transaction has the special condition that it cannot be spent (used as an input) for at least 100 blocks.
This temporarily prevents a miner from spending the transaction fees and block reward from a block that may later be determined to be stale (and therefore the coinbase transaction destroyed) after a block chain fork.
[https://bitcoin.org/en/developer-guide#transaction-data]

Generic::
* bitcoin-UTXO,

btctx.COINBASE.NO (regular)

Description::
In principle, there are two types of transactions, coinbase transactions and regular transactions.
Coinbase transactions are special transactions in which new Bitcoins are introduced into the system.
They are included in every block as the very first transaction and are meant as a reward for solving a proof of work puzzle.
Regular transactions, on the other hand, are used to transfer existing Bitcoins amongst different users.
From an architectural point of view, a coinbase transaction can be seen as a special case of a regular transaction.
For this reason, the structure of a regular transaction will be discussed first, followed by the differences between coinbase and regular transactions.
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

Name::
* cpt.btcregular-transaction,
* cpt.btctx.regular,

Part::
Every transaction consists of
- a transaction version (nVersion),
- a vector of inputs (vin) and
- a vector of outputs (vout), both preceded by their count, and
- a transaction inclusion date (nLockTime).
[https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf]

btctx.CONFIRMED

Description::
Confirmed_Transaction:
Transaction that has been included in the blockchain.
Probability of transaction being rejected is measured in a number of confirmations.
See *Confirmation Number*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Confirmation Score: A score indicating the number of blocks on the best block chain that would need to be modified to remove or modify a particular transaction.
A confirmed transaction has a confirmation score of one or higher.
[https://bitcoin.org/en/glossary/confirmation-score]

Name::
* cpt.btcConfirmed-transaction,

Confirmation-Number

Description::
Confirmation_Number:
Confirmation number is a measure of probability that transaction could be rejected from the *main chain*.
"Zero confirmations" means that transaction is *unconfirmed* (not in any block yet).
One confirmation means that the transaction is included in the latest block in the main chain.
Two confirmations means the transaction is included in the block right before the latest one.
And so on.
Probability of transaction being reversed (*"double spent"*) is diminishing exponentially with more blocks added "on top" of it.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcconfirmation-number,
* cpt.btctx'confirmation-number,

Zero-confirmation-transaction

Description::
Zero_confirmation_transaction:
A transaction in which the merchant is happy to provide a product or service before the bitcoin’s transmission has been confirmed by a miner and added to the blockchain.
It can carry a risk of double spending.

Name::
* cpt.bitcoin-Zero-confirmation-transaction:
* cpt.btcZero-confirmation-transaction:

btctx.CONFIRMED.NO

Description::
Unconfirmed_Transaction:
Transaction that is not included in any block.
Also known as "0-confirmation" transaction.
Unconfirmed transactions are *relayed* by the nodes and stay in their *mempools*.
Unconfirmed transaction stays in the pool until the node decides to throw it away, finds it in the blockchain, or includes it in the blockchain itself (if it's a miner).
See also *Confirmation Number*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btc0-confirmation-transaction,
* cpt.btcUnconfirmed-transaction,
* cpt.btczero-confirmation-transaction,

Mempool

Description::
Mempool:
A technical term for a collection of unconfirmed transactions stored by a node until they either expire or get included in the main chain.
When *reorganization* happens, transactions from orphaned blocks either become invalid (if already included in the *main chain*) or moved to a pool of unconfirmed transactions.
By default, bitcoind nodes throw away unconfirmed transactions after 24 hours.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-mempool,
* cpt.btcmempool,

AddressWpg::
* {2017-05-12} https://cointelegraph.com/news/bitcoin-mempool-hits-all-time-high-highlighting-urgent-need-for-scaling,

btctx.CONTRACT

Description::
Contracts are transactions which use the decentralized Bitcoin system to enforce financial agreements.
Bitcoin contracts can often be crafted to minimize dependency on outside agents, such as the court system, which significantly decreases the risk of dealing with unknown entities in financial transactions.
[https://bitcoin.org/en/developer-guide#contracts]

Name::
* cpt.btccontract,
* cpt.bitcoin-contract,

btctx.DUST

Description::
Dust transaction
A transaction for an extremely small amount of bitcoins, which offers little financial value, but takes up space in the blockchain.
The bitcoin developer team has taken efforts to eliminate dust transactions by increasing the minimum transaction amount that will be relayed by the network.
[http://www.coindesk.com/information/bitcoin-glossary/#dusttransaction]

Name::
* cpt.btcDust-Transaction,

btctx.HIGH-PRIORITY

Description::
Transactions that don’t have to pay a transaction fee because their inputs have been idle long enough to accumulated large amounts of priority.
Note: miners choose whether to accept free transactions.
[https://bitcoin.org/en/glossary/high-priority-transaction]

Name::
* cpt.btcHigh-Priority-Transaction,
* cpt.btcFree-Tx,

btctx.MULTISIG

Description::
M-of-N Multisig, Multisig Output
A pubkey script that provides n number of pubkeys and requires the corresponding signature script provide m minimum number signatures corresponding to the provided pubkeys.
[https://bitcoin.org/en/glossary/multisig]
===
M_of_N_Multi_signature_Transaction:
A transaction that can be spent using M signatures when N public keys are required (M is less or equal to N).
Multi-signature transactions that only contain one *OP_CHECKMULTISIG* opcode and N is 3, 2 or 1 are considered standard.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btctx.multisig,
* cpt.btcM-of-N-Multi-signature-Transaction,
* cpt.btcMultisig-transaction,

btctx.P2PKH

Name::
* cpt.btcPay-To-Public-Key-Hash-transaction,
* cpt.btcP2PKH-transaction,

btctx.P2SH

Description::
Pubkey scripts are created by spenders who have little interest what that script does. Receivers do care about the script conditions and, if they want, they can ask spenders to use a particular pubkey script. Unfortunately, custom pubkey scripts are less convenient than short Bitcoin addresses and there was no standard way to communicate them between programs prior to widespread implementation of the BIP70 Payment Protocol discussed later.

To solve these problems, pay-to-script-hash (P2SH) transactions were created in 2012 to let a spender create a pubkey script containing a hash of a second script, the redeem script.
[https://bitcoin.org/en/developer-guide#p2sh-scripts]

Name::
* cpt.btctx.P2SH,
* cpt.btcPay-To-Script-Hash-transaction,

btctx.RELAYING

Description::
Relaying_Transactions:
Connected Bitcoin *nodes* relay new transactions between each other on best effort basis in order to send them to the *mining* nodes.
Some transactions may not be relayed by all nodes.
E.g. *non-standard* transactions, or transactions without a minimum *fee*.
Bitcoin message protocol is not the only way to send the transaction.
One may also send it directly to a miner, or mine it yourself, or send it directly to the payee and make them to relay or mine it.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcSigned-transaction,

btctx.SIGNED

Name::
* cpt.btcSigned-transaction,

btctx.SIGNED.NO

Name::
* cpt.btcSignedNo-transaction,
* cpt.btcUnsigned-transaction,

btctx.STANDARD

Description::
After the discovery of several dangerous bugs in early versions of Bitcoin, a test was added which only accepted transactions from the network if their pubkey scripts and signature scripts matched a small set of believed-to-be-safe templates, and if the rest of the transaction didn’t violate another small set of rules enforcing good network behavior.
This is the IsStandard() test, and transactions which pass it are called standard transactions.
[https://bitcoin.org/en/developer-guide#standard-transactions]
===
As of Bitcoin Core 0.9.3, standard transactions must also meet the following conditions:

The transaction must be finalized: either its locktime must be in the past (or less than or equal to the current block height), or all of its sequence numbers must be 0xffffffff.

The transaction must be smaller than 100,000 bytes. That’s around 200 times larger than a typical single-input, single-output P2PKH transaction.

Each of the transaction’s signature scripts must be smaller than 1,650 bytes. That’s large enough to allow 15-of-15 multisig transactions in P2SH using compressed public keys.

Bare (non-P2SH) multisig transactions which require more than 3 public keys are currently non-standard.

The transaction’s signature script must only push data to the script evaluation stack. It cannot push new opcodes, with the exception of opcodes which solely push data to the stack.

The transaction must not include any outputs which receive fewer than 1/3 as many satoshis as it would take to spend it in a typical input. That’s currently 546 satoshis for a P2PKH or P2SH output on a Bitcoin Core node with the default relay fee. Exception: standard null data outputs must receive zero satoshis.
[https://bitcoin.org/en/developer-guide#non-standard-transactions]
===
Some transactions are considered *standard*, meaning they are relayed and mined by most *nodes*.
More complex transactions could be buggy or cause DoS attacks on the network, so they are considered *non-standard* and not relayed or mined by most nodes.
Both standard and non-standard transactions are valid and once included in the blockchain, will be recognized by all nodes.
Standard transactions are:
1) sending to a *public key*,
2) sending to an *address*,
3) sending to a P2SH address,
4) sending to *M-of-N multi-signature transaction* where N is 3 or less.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcStandard-transaction,

btctx.STANDARD.NO

Description::
Non_standard_Transaction:
Any valid transaction that is not *standard*.
Non-standard transactions are not relayed or mined by default *BitcoinQT* nodes (but are relayed and mined on *testnet*).
However, if anyone puts such transaction in a block, it will be accepted by all nodes.
In practice it means that unusual transactions will take more time to get included in the blockchain.
If some kind of non-standard transaction becomes useful and popular, it may get named standard and adopted by users (like it ).
See also Standard Transaction.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-non-standard-transaction,
* cpt.btcnon-standard-transaction,
* cpt.btcStandardNo-transaction,

btctx.VALID

Name::
* cpt.btcvalid-transaction,

btctx.VALID.NO

Description::
Ignoring coinbase transactions (described later), if the value of a transaction’s outputs exceed its inputs, the transaction will be rejected.
[https://bitcoin.org/en/developer-guide#block-chain-overview]

Name::
* cpt.btcvalidNo-transaction,

btcbcn'Hashrate (btchhrt )

Description::
The hash rate is the measuring unit of the processing power of the Bitcoin network.
The Bitcoin network must make intensive mathematical operations for security purposes.
When the network reached a hash rate of 10 Th/s, it meant it could make 10 trillion calculations per second.
[https://bitcoin.org/en/vocabulary#hash-rate]

Name::
* cpt.btchashing-power,
* cpt.btchashrate,
* cpt.btcmny'hashing-power,
* cpt.btcnet'Hashing-power,
* cpt.hash-rate-btcnet,

Time::
3.39-Exahash {2017-01-24}

Description::
Hashrate:
A measure of mining hardware performance expressed in hashes per second (GH/s).
As of July 27, 2014 the hash rate of all Bitcoin mining nodes combined is around 135 799 000 GH/s.
For comparison, AMD Radeon graphics cards produce from 0.2 to 0.8 GH/s depending on model.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Hash (Rate) ~ A hash is the output of a hash function and, as it relates to Bitcoin, the Hash Rate is the speed at which a compute is completing an operation in the Bitcoin code.
A higher hash rate is better when mining as it increases your opportunity of finding the next block and receiving the reward.
[http://bitcoinsimplified.org/definitions/]

btchhrt'Resource

Bitcoin’s Network Hash Rate Has Doubled Since October
Jan 23, 20174:20 PM EST by Kyle Torpey

Bitcoin’s mining difficulty increased by 16.6 percent over the weekend, signaling that the network’s overall hash rate has also increased by a similar amount over the past two weeks. The network’s total estimated hash rate has essentially doubled since the middle of October. A large chunk of this increase has taken place over the past month, where the hash rate has increased by more than 50 percent.

The network hash rate is the total amount of computing power pointed at the Bitcoin network.

Pools That Saw Their Share of Total Hashing Power Increase

It’s difficult to know where exactly this new hashing power is being deployed, but it is possible to see the differences in mining pools’ shares of the overall hash rate.

When comparing the most recently completed difficulty period with a run of 2016 blocks from the middle of October, GBMiners is the pool that saw the largest amount of growth. GBMiners enjoyed an increase of 62 blocks compared to the total set of 2016 blocks from October. Recently, it was found that GBMiners is connected to a Ponzi scheme disguised as a bitcoin cloud mining operation in India.

Since October, BTC.TOP has grown from nothing to roughly 3 percent of the network hash rate. Batpool also emerged during this period of time to grab a little over 1 percent of the network. Not much is known about either of these China-based pools, other than the fact that ltc1btc.com Founder and CEO Jiang Zhuo’er is behind BTC.TOP and does not much care for Bitcoin Core’s Segregated Witness improvement.

Both GBMiners and BTC.TOP signal support for Bitcoin Unlimited as opposed to Bitcoin Core. Bitcoin Unlimited is software that intends to replace Bitcoin’s 1 MB block size limit with the concept of emergent consensus. At this time, it is unclear if this new digital currency network would be a new version of Bitcoin or an altcoin.

In terms of pools signaling for Bitcoin Core’s Segregated Witness improvement, Bitfury saw the largest amount of growth. The mining pool saw an increase of just under 3 percent between the middle of October and the most recently completed difficulty period.

Pools That Saw Their Share of Total Hashing Power Decrease

If the above mining pools are mining more blocks, then that means someone else must be mining fewer blocks.

No miner saw a bigger drop in their share of the network since October than BTCC. BTCC now mines about 35 percent less blocks than they did in October.

No other pool came close to BTCC in terms of a loss in their share of the network hash rate, but ViaBTC and Slush Pool also saw notable declines. These two pools are mining about 25 percent less than the number of blocks they were mining in October.

The two largest mining pools on the network, Antpool and F2Pool, mined roughly 5 percent fewer blocks when their numbers were combined.

Although never the largest pools on the network, Bitcoin.com, GoGreenLight and Kano CKPool all saw sizable declines.

Hash Rate Continuing to Increase

Although the last difficulty period saw a rather massive increase of 16.6 percent, it appears that hash rate is continuing to be added to the network. At 118 blocks into the current difficulty period, there has already been another estimated 15.25 percent increase in the network hash rate.

Judging from the rapidly increasing hash rate, it appears multiple mining pools are receiving shipments of new hardware. While some predicted Bitcoin could crash and burn as a result of the halving event over the summer, the mining pools were correct in predicting a more positive outcome.

As Bitcoin’s total hash rate increases, it becomes more difficult for a motivated adversary to pull off an effective attack on the network.

Kyle Torpey by Kyle Torpey
Kyle Torpey is a freelance writer and researcher who has been following Bitcoin since 2011. His work has been featured on VICE Motherboard, Business Insider, NASDAQ, RT’s Keiser Report, and many other media outlets. You can follow @kyletorpey on Twitter.
[https://bitcoinmagazine.com/articles/bitcoins-network-hash-rate-has-doubled-october/]

btchhrt.KILOHASH/SEC (1000^1)

Description::
Kilohashes/sec:
The number of hashing attempts possible in a given second, measured in thousands of hashes.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.btckilohash,

btchhrt.MEGGAHASH/SEC (1000^2)

Description::
Megahashes/sec:
The number of hashing attempts possible in a given second, measured in millions of hashes (thousands of Kilohashes).
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.btcmegahash,

btchhrt.GIGAHASH/SEC (1000^3)

Description::
Gigahashes/sec:
The number of hashing attempts possible in a given second, measured in billions of hashes (thousands of Megahashes).
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.btcgigahash,

btchhrt.TERAHASH/SEC (1000^4)

Description::
Terahashes/sec:
The number of hashing attempts possible in a given second, measured in trillions of hashes (thousands of Gigahashes).
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.btcterahash,

btchhrt.PETAHASH/SEC (1000^5)

Name::
* cpt.btcpetahash,

btchhrt.EXAHASH/SEC (1000^6)

Name::
* cpt.btcexahash,

btcbcn'Crypto (btccrpt)

Name::
* cpt.bitcoin-crypto,
* cpt.btccrypto,

btccrpt'Hash-function

Description::
Hash-Function:
Bitcoin protocol mostly uses two cryptographic hash functions: SHA-256 and RIPEMD-160.
First one is almost exclusively used in the two round hashing (*Hash256*), while the latter one is only used in computing an *address* (see also *Hash160*).
*Scripts* may use not only Hash256 and Hash160, but also SHA-1, SHA-256 and RIPEMD-160.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-hash-function,
* cpt.btchash-function,

Generic::
* cryptographic-hash-function,

btccrpt'To-hash

Description::
To_hash:
To compute a hash function of some data.
If hash function is not mentioned explicitly, it is the one defined by the context.
For instance, "to hash a transaction" means to compute Hash256 of binary representation of a transaction.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-hashing,
* cpt.bitcoin-to-hash,
* cpt.btchashing,
* cpt.btcto-hash,

btccrpt'Hash256

Description::
The-output of two executions of the-hash-function SHA-256.
[hmnSgm.2017-04-08]
===
Hash, Hash256:
When not speaking about arbitrary hash functions, Hash refers to two rounds of SHA-256.
That is, you should compute a SHA-256 hash of your data and then another SHA-256 hash of that hash.
It is used in *block header* hashing, *transaction* hashing, making a *merkle tree* of transactions, or computing a checksum of an *address*.
Known as BTCHash256() in CoreBitcoin, Hash() in BitcoinQT.
It is also available in scripts as OP_HASH256.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
SHA-256d is also known as Double SHA-256 hash algorithm.
It is a cryptographic hash, first proposed by Ferguson and Schneier in the book “Practical Cryptography”.
Bitcoin is one such cryptocurrency that utilizes the SHA-256d hashing algorithm.
The SHA-256d hash is achieved by applying the regular SHA-256 hash twice, by first applying SHA-256 hash to the data and then once again to the resulting hash.

Many of the early released cryptocurrencies uses the SHA-256d algorithm such as: Bitcoin, Freicoin, Namecoin and Peercoin.
[https://cryptojunction.com/questions/question/what-is-the-difference-between-the-sha256d-and-sha256-hashing-algorithm]

Name::
* cpt.btchash,
* cpt.btchash256,

SHA-256

Description::
SHA-2 includes significant changes from its predecessor, SHA-1.
The SHA-2 family consists of six hash functions with digests (hash values) that are 224, 256, 384 or 512 bits: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
[https://en.wikipedia.org/wiki/SHA-2]
===
SHA-256:
The cryptographic function used as the basis for bitcoin’s proof of work system.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
The most widely used proof-of-work schemes are based on SHA-256, which was introduced by bitcoin, and scrypt, which is used by currencies such as Litecoin.
[https://en.wikipedia.org/wiki/Cryptocurrency]

Name::
* cpt.bitcoin-SHA-256,
* cpt.btcSHA-256,

btccrpt'Signature

Description::
Signature:
A sequence of bytes that proves that a piece of data is acknowledged by a person holding a certain *public key*.
Bitcoin uses ECDSA for signing transactions.
Amounts of bitcoins are sent through a chain of transactions: from one to another.
Every transaction must provide a signature matching a public key defined in the previous transaction.
This way only a proper owner a secret *private key* associated with a given public key can spend bitcoins further.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Signature:
A digital digest produced by hashing private and public keys together to prove that a bitcoin transaction came from a particular address.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-signature,
* cpt.btcsignature,

btccrpt'Elliptic-Curve-Arithmetic

Description::
Elliptic_Curve_Arithmetic:
A set of mathematical operations defined on a group of points on a 2D elliptic curve.
Bitcoin protocol uses predefined curve secp256k1.
Here's the simplest possible explanation of the operations: you can add and subtract points and multiply them by an integer.
Dividing by an integer is computationally infeasible (otherwise cryptographic signatures won't work).
The private key is a 256-bit integer and the public key is a product of a predefined point G ("generator") by that integer: A = G * a.
Associativity law allows implementing interesting cryptographic schemes like Diffie-Hellman key exchange (ECDH): two parties with private keys *a* and *b* may exchange their public keys *A* and *B* to compute a shared secret point C: C = A * b = B * a because (G * a) * b == (G * b) * a.
Then this point C can be used as an AES encryption key to protect their communication channel.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcElliptic-Curve-Arithmetic,

btccrpt'ECDSA

Description::
ECDSA:
Stands for Elliptic Curve Digital Signature Algorithm.
Used to verify transaction ownership when making a transfer of bitcoins.
See *Signature*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
ECDSA:
The Elliptic Curve Digital Signature Algorithm is the lightweight cryptographic algorithm used to sign transactions in the Bitcoin protocol.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.btcECDSA,
* cpt.btcElliptic-Curve-Digital-Signature-Algorithm,

btccrpt'CompactSize

Description::
CompactSize:
Original name of a variable-length integer format used in transaction and block serialization.
Also known as "Satoshi's encoding".
It uses 1, 3, 5 or 9 bytes to represent any 64-bit unsigned integer.
Values lower than 253 are represented with 1 byte.
Bytes 253, 254 and 255 indicate 16-, 32- or 64-bit integer that follows.
Smaller numbers can be presented differently.
In *bitcoin-ruby* it is called "var_int", in *Bitcoinj* it is VarInt.
*BitcoinQT* also has even more compact representation called VarInt which is not compatible with CompactSize and used in block storage.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btccompactSize,
* cpt.btcSatshi's-encoding,

btcbcn'Evaluation

Description::
However, another, arguably more important, part of the Bitcoin experiment is the underlying blockchain technology as a tool of distributed consensus, and attention is rapidly starting to shift to this other aspect of Bitcoin.
[https://github.com/ethereum/wiki/wiki/White-Paper]

Name::
* cpt.bitcoin-blockchain-evaluation,

btcbcn'Size

{time.2015}:
=== the full 35 gigabyte Blockchain
[http://bravenewcoin.com/news/the-decline-in-bitcoins-full-nodes/]

{time.2014.04}:
A “full node” in the Bitcoin network, one that stores and processes the entirety of every block, takes up about 15 GB of disk space in the Bitcoin network as of April 2014, and is growing by over a gigabyte per month.
[https://leanpub.com/decentralizedapplicationswithethereum/read_sample]

btcbcn'Resource

AddressWpg::
* http://www.weforum.org/agenda/2015/12/what-is-the-future-of-blockchain/
* http://recode.net/2015/07/05/forget-bitcoin-what-is-the-blockchain-and-why-should-you-care/

btcbcn'Doing

Maintainance::
The block chain is collaboratively maintained by anonymous peers on the network, so Bitcoin requires that each block prove a significant amount of work was invested in its creation to ensure that untrustworthy peers who want to modify past blocks have to work harder than honest peers who only want to add new blocks to the block chain.
[https://bitcoin.org/en/developer-guide#proof-of-work]

btcbcn'Changing

AddressWpg::
* Blockchain Rule Update Process: https://gist.github.com/gavinandresen/2355445,

btcbcn'Synchronizing

Description::
Synchronizing the block chain by downloading each block from a peer and then validating it.
[https://bitcoin.org/en/glossary/blocks-first-sync]

Name::
* cpt.bitcoin-locks-first-sync,
* cpt.btcBlocks-First-Sync,

btcbcn'Split

Description::
Blockchain-split is the-process at which a-blockchain-network is-split into two networks.
The-blockchain of the-new-networks is the-same until the-timepoint of split, but different after that timepoint.
[hmnSgm.2017-04-07]
===
Andreas@aantonop
Needs repeating...
Users: If you hold bitcoin and there is a HF, you will now own bitcoin on both forks. You don't need to do anything.
[https://twitter.com/aantonop/status/841347865972740097 {2017-03-13}]

Name::
* cpt.bitcoin-blockchain-split,
* cpt.bitcoin-split,
* cpt.btcblockchain-split,

AddressWpg::
* {2017-03-20} https://news.bitcoin.com/this-happens-to-your-coins-during-a-bitcoin-hard-fork-and-possible-blockchain-split/

btcbcn'Service (link)

btcbcn'doing.FORK

Description::
The creation of an alternative ongoing version of the blockchain, typically because one set of miners begins hashing a different set of transaction blocks from another.
It can be caused maliciously, by a group of miners gaining too much control over the network (see 51% attack), accidentally, thanks to a bug in the system, or intentionally, when a core development team decides to introduce substantial new features into a new version of a client.
A fork is successful if it becomes the longest version of the blockchain, as defined by difficulty.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Fork:
Refers either to
- a fork of a source code (see *Altcoin*) or,
- more often, to a split of the blockchain when two different parts of the network see different *main chains*.
In a sense, fork occurs every time two blocks of the same *height* are created at the same time.
Both blocks always have the different hashes (and therefore different *difficulty*), so when a node sees both of them, it will always choose the most difficult one.
However, before both blocks arrive to a majority of nodes, two parts of the network will see different blocks as tips of the main chain.

Term *fork* or *hard fork* also refers to a change of the protocol that may lead to a split of the network (by design or because of a bug).
On March 11 2013 a smaller half of the network running version 0.7 of *bitcoind* could not include a large (>900 Kb) block at height 225430 created by a miner running newer version 0.8.
The block could not be included because of the bug in v0.7 which was fixed in v0.8.
Since the majority of computing power did not have a problem, it continued to build a chain on top of a problematic block.
When the issue was noticed, majority of 0.8 miners agreed to abandon 24 blocks incompatible with 0.7 miners and mine on top of 0.7 chain.
Except for one double spend experiment against OKPay, all transactions during the fork were properly included in both sides of the blockchain.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcfork,

btcbcn'fork.HARD

Description::
A permanent divergence in the the block chain, commonly occurs when non-upgraded nodes can’t validate blocks created by upgraded nodes that follow newer consensus rules.
[https://bitcoin.org/en/glossary/hard-fork]
===
Hard fork:
Some people use the term hard fork to stress that changing Bitcoin protocol requires overwhelming majority to agree with it, or some noticeable part of the economy will continue with original blockchain following the old rules.
See *Fork* and *Soft Fork* for further discussion.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btchard-fork,
* cpt.btcHard-Forking-Change,

btcbcn'fork.SOFT

Description::
A temporary fork in the block chain which commonly occurs when miners using non-upgraded nodes violate a new consensus rule their nodes don’t know about.
[https://bitcoin.org/en/glossary/soft-fork]
===
Soft_Fork:
Sometimes the *soft fork* refers to an important change of software behavior that is not a *hard fork* (e.g. changing *mining fee* policy).
See also *Hard Fork* and *Fork*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcsoft-fork,
* cpt.btcSoft-Forking-Change,

btcbcn.BEST

Description::
block-chain: A chain of blocks with each block referencing the block that preceded it.
The most-difficult-to-recreate chain is the best block chain.
[https://bitcoin.org/en/glossary/block-chain]
===
Main Chain
The longest Block Chain.
[https://en.bitcoin.it/wiki/Vocabulary#Main_Chain]

Name::
* cpt.bitcoin-best-blockchain,
* cpt.btcBest-block-chain,
* cpt.btcbest-blockchain,

btcnet'Exchange-value-unit.Consensus (BTCevuC)

Description::
Bitcoin-BTC is the-consensus-exval-token of the-bitcoin-network.
[hmnSgm-2017-04-04]

Name::
* cpt.bitcoin-consensus-exval-token, {2017-03-31}
* cpt.btccevt, {2017-03-31}
===
* cpt.bitcoin-currency,
* cpt.bitcoin-token,
* cpt.bitcoin-value, {2017-04-11}
* cpt.btc,
* cpt.BTC-evuC,
* cpt.BTC-token,
* cpt.btcc,
* cpt.btcevtkn,
* cpt.mnyBtc,
* cpt.bitcoin,
* cpt.btcc,
* cpt.btcc,
* cpt.BTC, 2012-07-12,
* cpt.btcMny,
* cpt.currency.bitcoin, 2012-07-12,
* cpt.mnyBtc,
* cpt.mnyBtc,
* cpt.netBtc'currency,
* cpt.XBT,
===
BTC:
The most popular informal currency code for 1 Bitcoin (defined as 100 000 000 *Satoshis*).
See also *XBT* and *Bit*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
XBT:
Informal currency code for 1 Bitcoin (defined as 100 000 000 *Satoshis*).
Some people proposed using it for 0.01 Bitcoin to avoid confusion with *BTC*.
There were rumors that Bloomberg tests XBT as a ticker for 1 Bitcoin, but currently there is only ticker XBTFUND for SecondMarket's Bitcoin Investment Trust.
See also *BTC*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

NameGreek::
* ενν.μπικόιν-αξία,
* ενν.μπικόιν-νόμισμα,

Generic::
* consensus-exval-token,
* global-digital-currency,

Description::
2) The currency units used on this payment system have a market price, based purely on supply and demand.
Currently one bitcoin is worth about $12 USD, and there are a couple dozen exchanges around the world which enable conversion between normal government currencies and bitcoins.
The currency unit can be divided to eight decimal places (so you can send someone 0.00000001 bitcoins).
There are about 10 million bitcoins currently in existence (as of Sept. 2012) and there will never be more than 21 million in existence.
They are released in blocks of 50 bitcoins at a time every ten minutes and this amount gets cut in half every four years (thus creating the limit of 21 million coins).
[http://keepyourassets.net/2012/09/27/bitcoin-the-first-five-questions/]

Description::
Bitcoin is an experimental new digital currency that enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Bitcoin is also the name of the open source software which enables the use of this currency.
[http://bitcoin.org/] 2012-05-27,

Description::
Bitcoin is one of the first implementations of a concept called crypto-currency, which was first described in 1998 by Wei Dai on the cypherpunks mailing list. Building upon the notion that money is any object, or any sort of record, accepted as payment for goods and services and repayment of debts in a given country or socio-economic context, Bitcoin is designed around the idea of using cryptography to control the creation and transfer of money, rather than relying on central authorities.
[http://bitcoin.org/about.html]

btcevuC'adoption

Description::
How extensively is Bitcoin used? Well, around the world there are somewhere between 100,000 and 1,000,000 users, some of whom use it frequently and some who use it only on occasion. Several million dollars worth are transferred per day, but it is impossible to know for what purpose. In the last 24 hours, about 30,000 transactions occurred, or over one thousand transactions per hour. Since Bitcoins are exchanged back and forth with standard government currencies, the volume of this trading is about $100,000-$500,000 worth per day. Usage is increasing rapidly around the world, a chart of transactions can be found here: http://blockchain.info/charts/n-transactions?showDataPoints=false×pan=all&show_header=true&daysAverageString=7&scale=0&address= and more basic economic stats can be found here: http://bitcoinwatch.com/
[http://keepyourassets.net/2012/09/27/bitcoin-the-first-five-questions/]

Name::
* cpt.btccevt'acceptance,
* cpt.btccevt'usage,
* cpt.btcacceptance,
* cpt.btcadoption,
* cpt.btcusage,

AddressWpg::
* https://cointelegraph.com/news/ around-the-world-in-18-months-using-only-bitcoins-felix-weiss-big-adventure,
* http://cointelegraph.com/news/bitcoin-gambling-is-exploding,
* https://weacceptbitcoin.gr/
* http://cointelegraph.com/news/venezuela-economy-bitcoin,
* http://techcrunch.com/2016/03/16/why-latin-american-economies-are-turning-to-bitcoin/

company

AddressWpg::
* accounting: https://cointelegraph.com/news/ ey-switzerland-world-top-four-accounting-firm-to-accept-bitcoin,
* traveling: http://www.bookwithbit.com/

btcevuC'Distribution

Description::
So, as of Dec. 3., using a price of $1,000 (which is basically where we are now), and assuming 12 million Bitcoins in circulation, here's the breakdown: 47 individuals own 28.9% of the approximately 12 million Bitcoins in existence so far. Another 880 own 21.5%, meaning 927 people control half of the entire market cap of the digital currency. Another 10,000 individuals control about a quarter. And the rest of us (around a million of us) get the crumbs (500,000 are out of circulation, whether through government seizure or people losing their passwords).
[http://www.businessinsider.com/927-people-own-half-of-the-bitcoins-2013-12]

btcevuC'Exchange-rate

Description::
Bitcoin is attractive because, unlike the fiat system, its value as an independent currency solely depends on its market demand.
[https://cointelegraph.com/news/cloud-miner-on-trends-making-bitcoin-attractive-now-japan-litecoin-dwindling-fiat]

Name::
* cpt.bitcoin-exchange-rate,
* cpt.bitcoin-price,
* cpt.bitcoin-rate,
* cpt.btc'price,
* cpt.btccevt'value,
* cpt.btcprice,
* cpt.btcrate,
* cpt.btcvalue,

Generic::
* exchange-rate-of-bcnevuC,

AddressWpg::
* BitPay: https://bitpay.com/bitcoin-exchange-rates,
* https://bitcoinaverage.com/en/bitcoin-price/btc-to-usd,

btcrate'API

AddressWpg::
* https://openexchangerates.org/
* https://github.com/currencybot/open-exchange-rates/

btcrate'Resource

AddressWpg::
* https://www.bitstamp.net/

btcrate.PAST

Name::
* cpt.btcrate.histroical,

btcrate.PRESENT

Name::
* cpt.btcrate.live,
* cpt.btcrate.real-time,

btcrate.FUTURE

Name::
* cpt.btcrate.future,

btcrate.EVOLUTING

{time.2017-01-01}:
=== 997.75$
[https://www.bitstamp.net/]

{time.2016-01-04}:
=== 443.36$
[https://www.bitstamp.net/]

{time.2015-01-05}:
=== 277.59$
[https://www.bitstamp.net/]

{time.2014-08-19}:
=== 451$
Επεσε κατά 120 δολάρια η τιμή του Bitcoin μέσα σε μια εβδομάδα
Οι αναλυτές αναμένουν περαιτέρω μείωση για το ψηφιακό νόμισμα
ΔΗΜΟΣΙΕΥΣΗ: 08:55
Επεσε κατά 120 δολάρια η τιμή του Bitcoin μέσα σε μια εβδομάδα
Πτώση 120 δολαρίων κατέγραψε η τιμή του Bitcoin μέσα σε μια εβδομάδα με τους αναλυτές να αναμένουν πως η τιμή του ψηφιακού νομίσματος θα μειωθεί περαιτέρω, καθώς γίνεται διαρκώς όλο και λιγότερο ευαίσθητο στα «καλά νέα».

Συγκεκριμένα, σύμφωνα με την πλατφόρμα CoinDesk η αξία διαπραγμάτευσης του Bitcoin υποχώρησε σήμερα Τρίτη στα 451 δολάρια από 571 δολάρια πριν από μία εβδομάδα, ενώ χθες βρέθηκε να διαπραγματεύεται ακόμη και στα 309 δολάρια στη βουλγαρική πλατφόρμα συναλλαγών Bitcoin BTC-e.

Οι ειδικοί αποδίδουν τις απώλειες του Bitcoin στις προσπάθειες κάποιων traders να καλύψουν τις θέσεις τους, πιέζοντας περαιτέρω τις τιμές. Σε κάθε περίπτωση η πτώση της τιμής του ψηφιακού νομίσματος συνδέεται και με την μεγαλύτερη εποπτεία που έχει υπάρξει στις πλατφόρμες διαπραγμάτευσης του.

Με δεδομένο ότι τα εικονικά νομίσματα βρέθηκαν στο προσκήνιο της δημοσιότητας τον προηγούμενο Φεβρουάριο λόγω της κατάρρευσης κάποιων πλατφόρμων διαπραγμάτευσης οι κεντρικές τράπεζες διεθνώς απεύθυναν συστάσεις στους επενδυτές – καταναλωτές για τους πιθανούς κινδύνους. Το ίδιο έπραξε και η Τράπεζα της Ελλάδος υιοθετώντας σχετικές επισημάνσεις της Ευρωπαϊκής Αρχής Τραπεζών.
[http://www.tovima.gr/finance/article/?aid=623940]

{time.2014-01-06}:
=== 849.39$
[https://www.bitstamp.net/]

{time.2013-01-07}:
=== 13.69$
[https://www.bitstamp.net/]

{time.2013}:
The price of Bitcoins – based on little more than the hope the system will become a substantial means of exchange – has been yo-yoing.
It was below $7 a year ago and reached $266 in April before dropping below $80.
It has been called “a modern tulip mania but without the pretty flowers”.
[http://www.ft.com/intl/cms/s/0/51b78cb6-e40e-11e2-91a3-00144feabdc0.html, 2013-07-05]
===
Bitcoins have been in the headlines recently due to the massive volatility of their exchange rate.
When they were first introduced in 2009, they were essentially worthless, trading for just five cents per bitcoin in July 2010.
This year, however, they rocketed up in value to a high of $230 per bitcoin in April before plunging back to their current rate of exchange.
Some have attributed the rise to concerns about the ongoing euro crisis in Europe.
[http://www.spiegel.de/international/business/germany-declares-bitcoins-to-be-a-unit-of-account-a-917525.html, 2013-08-20]

{time.2012.05}:
=== 5$
In May 2012, 1 BTC traded at around $5.00 USD.
Taking into account the total number of Bitcoins in circulation, the market capitalization of the Bitcoin network stands at over 45 million USD.[51]

{time.2010.07}:
=== 0.05$
Bitcoins have been in the headlines recently due to the massive volatility of their exchange rate.
When they were first introduced in 2009, they were essentially worthless, trading for just five cents per bitcoin in July 2010.
This year, however, they rocketed up in value to a high of $230 per bitcoin in April before plunging back to their current rate of exchange.
Some have attributed the rise to concerns about the ongoing euro crisis in Europe.
[http://www.spiegel.de/international/business/germany-declares-bitcoins-to-be-a-unit-of-account-a-917525.html, 2013-08-20]

btcevuC'Evaluation

Απόρροια του περιορισμένου αριθμού των ψηφιακών νομισμάτων που βγαίνουν στην κυκλοφορία είναι ότι για όσο διάστημα αυξάνεται η αξία τους οι κάτοχοί τους έχουν συμφέρον να τα «αποταμιεύουν» στα ηλεκτρονικά «πορτοφόλια» τους και όχι να πραγματοποιούν συναλλαγές με αυτά, όπως είναι ο πρωταρχικός ρόλος κάθε νομίσματος.
[http://info-war.gr/bitcoin-h-φούσκα-του-λιγότερου-κράτους/]

Lifthrasir thinks that the 400,000-times greater hashing power of Bitcoin and its 23-time bigger market cap make it a better choice for the real estate database instead of Ethereum.
[https://cointelegraph.com/news/vitalik-buterin-bitcoin-more-likely-than-ethereum-to-split-in-2017]

btcevuC'Issuance (link)

btcevuC'Law (link)

btcevuC'Wallet (link)

btcevuC'ATM

Cpt-created: {2014-01-07}

Description::
Bitcoin_ATM
A bitcoin ATM is a physical machine that allows a customer to buy bitcoin with cash.
There are many manufacturers, some of which enable users to sell bitcoin for cash.
They are also sometimes called 'BTMs' or 'Bitcoin AVMS'.
CoinDesk maintains a worldwide map of operational bitcoin atm machines and a list of manufacturers.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-ATM,
* cpt.bitcoin-AVMS,
* cpt.btcATM,
* cpt.BTM,

H Ελλάδα αποκτάει το πρώτο της Bitcoin ATM
Είναι πλέον και επίσημο! Η Ελλάδα έχει από σήμερα το πρώτο της Bitcoin ATM σε λειτουργία!
Το Bitcoin ATM βρίσκεται στην Αθήνα και συγκεκριμένα στην ΙΩΑΝΝΟΥ ΘΗΒΑΙΟΥ 20 , ΑΧΑΡΝΑΙ, ΤΚ: 13673 στο βιβλιοπωλείο ΟΡΙΖΟΝΤΕΣ.

Το ΑΤΜ είναι το Satoshi 1 της εταιρίας Genesis (https://bitcoinatm.com ) και λειτουργεί σε συνεργασία με το Ελληνικό Bitcoin ανταλλακτήριο bitcoinsgreece. Όπως αναφέρουν στο forum του BitcoinNews.gr έχουν δημιουργήσει ένα ημερολόγιο λειτουργίας του ΑΤΜ με φωτογραφίες ενώ και στο Bitcointalk έχει δημιουργηθεί νήμα συζήτησης Το Bitcoin ATM είναι one way Fiat>Bitcoin δηλαδή μπορείς μόνο να αγοράσεις και όχι να πουλήσεις Bitcoin.

To μηχάνημα ήδη έχει μπει στην λίστα του Bitcoin ATM radar coinatmradar
[http://www.insomnia.gr/_/articles/διάφορα/internet/h-ελλάδα-αποκτάει-το-πρώτο-της-bitcoin-atm-r9602, 2015-06-25]

Get your Bitcoin in cash: World's second Bitcoin ATM to open in Hong Kong
By Naomi Ng for CNN
January 7, 2014 -- Updated 0305 GMT (1105 HKT)
This file photo shows users waiting in line to use the world's first real Bitcoin ATM in Vancouver, Canada on October 29, 2013.
Hong Kong (CNN) -- The world's second Bitcoin ATM is due to land in Hong Kong by the end of this month, according to U.S. based software company Robocoin.
The machine, available for sale to individual operators such as banks and private entrepreneurs, allows users to buy or sell Bitcoin in just a few minutes.
The process should be much faster than setting up an account on an exchange or via mobile apps and computers which could take a few days for account verification.
The advent of Bitcoin ATMs is seen as a step towards bringing the digital currency into the real world.
"It removes all the pain and barriers of entry to buying Bitcoin on an online exchange," said Robocoin chief executive Jordan Kelley.
"Our goal as a company is to make the acquisition truly grandma friendly," he added.
READ: What is Bitcoin?
Indian government warns against Bitcion Bitcoin: Money of the future? Pay for a trip to space with Bitcoin
The virtual currency has generated lots of media attention in China where investors have helped drive the price up to dramatic highs above $1,000.
"I think we're going to unleash the power of Bitcoin. It opens a virtual money portal where people can send money to and from," said Kelley.
This is how it works:
Customers must choose to either buy or sell Bitcoin.
Let's say you want to make a withdrawal from your Bitcoin wallet. After choosing an amount of cash you'd like to withdraw, the software installed in the ATM generates a code which you have to scan with your smartphone.
Simultaneously, the machine also produces a receipt.
Following a confirmation from the Bitcoin network to your phone, you can then scan the code on the receipt at the kiosk, which then prompts the ATM to spit out the allotted amount of cash.
The machine is also equipped with a hand scanner that creates a biometric authenticated identity as an anti-money laundering measure.
Casper Cheng Tsz Chun, a Hong Kong Bitcoin enthusiast, said the ATM would work a bit like a vending machine "for buying and selling virtual goods (Bitcoin) instead of physical goods like a can of soda."
READ: 8 things you can buy with bitcoins right now
Robocoin's first Bitcoin ATM launched in Vancouver in October, and after a month of operation, transactions have totaled 1 million Canadian Dollars ($942,000) in total transactions, according to the company.
Kelley said the company has already sold 50 ATMs to other operators worldwide but they are not yet in operation.
The company said it chose Hong Kong as the next place to launch its cash machine for the virtual currency because it "responds well to technological innovation."
Kelley declined to disclose where the ATM would be located.
I think we're going to unleash the power of Bitcoin
Jordan Kelley, Robocoin CEO
Not every government in Asia is ready for a Bitcoin ATM.
Taiwan's Financial Supervisory Commission (FSC) and Central Bank released a joint statement on their website on Monday stating it does not recognize Bitcoin as an accepted form of currency.
The installation of Robocoin Bitcoin ATMs will be prohibited said Tseng Ming-chung, FSC chairman in an interview with Taiwan's Central News Agency.
"Bitcoin is not real currency and banks cannot receive or provide it. Installing ATMs require the authorization of the FSC, but it will not be approved, thus it is 'impossible' for Bitcoin ATMs to enter or appear in Taiwan," Central News Agency reported.
The statement also warned institutions against the risk of investing in Bitcoin because of the extremely volatile price.
China's central bank issued new rules in December that prohibited financial institutions from dealing in the digital currency. While it did not outlaw individuals from owning Bitcoin, it specifies that it is not to be considered a currency.
Despite the setback, Robocoin's chief executive said he still firmly believes China will come to accept Bitcoin.
"Citizens around the world love Bitcoin. The Chinese are very pragmatic in their approach, they just want to make sure they have a very good understanding of the market and the usage," he said.
Kelley revealed that Robocoin has begun talks with several operators in China that are reaching out to the government and local regulators to "educate" them about the value and potential of the Bitcoin market.
[http://edition.cnn.com/2014/01/06/business/bitcoin-atm-hong-kong/index.html]

btcevuC'resource

AddressWpg::
* https://www.cashila.com/about-bitcoin,

btcevuC'DOING

btcevuC'Double-spending

Description::
Double_spending:
The act of spending bitcoins twice.
It happens when someone makes a transaction using bitcoins, and then makes a second purchase from someone else, using the same bitcoins.
They then convince the rest of the network to confirm only one of the transactions by hashing it in a block.
Double spending is not easy to do, thanks to the way that the bitcoin network operates, but it is nevertheless a risk run by those accepting zero-confirmation transactions.
[http://www.coindesk.com/information/bitcoin-glossary/]

btcevuC'Mixing

Description::
Mixing:
A process of exchanging coins with other persons in order to increase privacy of one's history.
Sometimes it is associated with money laundering, but strictly speaking it is orthogonal to laundering.
In traditional banking, a bank protects customer's privacy by hiding transactions from all 3rd parties.
In Bitcoin any merchant may do a statistical analysis of one's entire payment history and determine, for instance, how many bitcoins one owns.
While it's still possible to implement KYC (Know You Customer) rules on a level of every merchant, mixing allows to to separate information about one's history between the merchants.

Most important use cases for mixing are:
1) receiving a salary as a single big monthly payment and then spending it in small transactions ("cafe sees thousands of dollars when you pay just $4");
2) making a single payment and revealing connection of many small private spendings ("car dealer sees how much you are addicted to coffee").
In both cases your employer, a cafe and a car dealer may comply with KYC/AML laws and report your identity and transferred amounts, but neither of them need to know about each other.
Mixing bitcoins after receiving a salary and mixing them before making a big payment solves this privacy problem.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-mixing,
* cpt.btcmixing,

Description::
Mixing_service:
A service that mixes your bitcoins with someone else's, sending you back bitcoins with different inputs and outputs from the ones that you sent to it.
A mixing service (also known as a tumbler) preserves your privacy because it stops people tracing a particular bitcoin to you.
It also has the potential to be used for money laundering.
[http://www.coindesk.com/information/bitcoin-glossary/]

btcevuC.AGGREGATE

{time.2017-04-15}
Circulating Supply
16,274,987 BTC
Max Supply
21,000,000 BTC
[https://coinmarketcap.com/currencies/bitcoin/]

Description::
The protocol also halves the rate at which new bitcoins are created every four years, and limits the total number of bitcoins that will be created to a fixed total of 21 million coins. The result is that the number of bitcoins in circulation closely follows an easily predictable curve that reaches 21 million by the year 2140. Due to bitcoin’s diminishing rate of issuance, over the long term, the bitcoin currency is deflationary. Furthermore, bitcoin cannot be inflated by "printing" new money above and beyond the expected issuance rate.
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]
===
Το πρωτόκολλο επίσης μειώνει στο μισό, κάθε τέσσερα χρόνια, το ρυθμό με τον οποίο τα νέα bitcoin δημιουργούνται, ενώ ταυτόχρονα περιορίζει τον συνολικό αριθμό των bitcoin που θα δημιουργηθούν σε συνολικά 21 εκατομμύρια νομίσματα.
Το αποτέλεσμα είναι ότι ο αριθμός των bitcoin σε κυκλοφορία ακολουθεί πιστά μια εύκολα προβλέψιμη καμπύλη που φτάνει τα 21 εκατομμύρια μέχρι το έτος 2140.
Λόγω του φθίνοντος ποσοστού έκδοσης bitcoin, μακροπρόθεσμα, το bitcoin νόμισμα είναι αποπληθωριστικό.
Επιπλέον, το bitcoin δεν μπορεί να πληθωριστεί από «εκτύπωση» νέου χρήματος πάνω από τον αναμενόμενο ρυθμό έκδοσης.
[Mastering Bitcoin, Adonopoulos, https://www.bitcoinbook.info/translations/el/book.pdf]
===
Καθώς το bitcoin είναι δομημένο με τις φαντασιώσεις περί χρυσού, το αυτό ισχύει και για την ποσότητά του. O χρυσός πέρα από γυαλιστερός είναι και σχετικά σπάνιος και αυτή η σπανιότητά του, τον κάνει πολύτιμο και άρα επιθυμητό μέσο συναλλαγής και συσσώρευσης της αξίας. Έτσι και το bitcoin λοιπόν έπρεπε να γίνει σπάνιο. Από τον τρόπο που είναι δομημένο το bitcoin, υπάρχει δυνατότητα να παραχθούν μόλις 21 εκ bitcoins. Είναι αυτή η παραγωγή μια first come first serve περίπτωση? Όχι φυσικά. Τα αστέρια που σχεδίασαν τα bitcoins έφτιαξαν μια παραβολική καμπύλη σύμφωνα με την οποία, όσο περισσότερα bitcoins παράγονται, τόσο πιο δύσκολο θα γίνεται να παραχθούν τα επόμενα. Αυτό το κόλπο στην ουσία εγγυάται τη σπανιότητα του νομίσματος.
[http://www.techiechan.com/?p=1954]

btcevuC.Market-cap

Market-Cap:
{time.2017-01-01}: 15,702,359,119.12 USD

btcevuC.SUBUNIT

Description::
Denominations of Bitcoin value, usually measured in fractions of a bitcoin but sometimes measured in multiples of a satoshi.
One bitcoin equals 100,000,000 satoshis.
[https://bitcoin.org/en/glossary/denominations]
===
As the value of the unit of 1 BTC grew too large to be useful for day to day transactions, people started dealing in smaller units, such as milli-bitcoins (mBTC) or micro-bitcoins (μBTC).
[https://en.bitcoin.it/wiki/Myths]

Name::
* cpt.bitcoin-denomination,
* cpt.btccevt.subunit,
* cpt.btcdenomination,

btcevuC.unit.cBTC 1/100

Name::
* cpt.btccBTC,
* cpt.bitcenti,
* cpt.centibitcoin,

btcevuC.unit.mBTC 1/1,000

Name::
* cpt.btcmBTC,
* cpt.mBTC,
* cpt.millibitcoin,

btcevuC.unit.μBTC 1/1,000,000

Description::
Bit:
Name of a Bitcoin denomination equal to 100 *satoshis* (1 millionth of 1 *BTC*).
In 2014 several companies including Bitpay and Coinbase, and various wallet apps adopted *bit* to display bitcoin amounts.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitbitcoin,
* cpt.btcμBTC,
* cpt.btcuBTC,
* cpt.microbitcoin,
* cpt.btcbit,
* cpt.1-millionth-of-a-bitcoin,
* cpt.one-Mike, nickname,

btcevuC.unit.SATOSHI 1/100,000,000

Description::
There are a maximum of 2,099,999,997,690,000 Bitcoin elements (called satoshis), which are currently most commonly measured in units of 100,000,000 known as BTC.
Stated another way, no more than 21 million BTC can ever be created.
[https://en.bitcoin.it/wiki/Bitcoin]
===
A Satoshi is the smallest fraction of a Bitcoin that can currently be sent: 0.00000001 BTC, that is, a hundredth of a millionth BTC. In the future, however, the protocol may be updated to allow further subdivisions, should they be needed.Aug 30, 2011
terminology - What is a 'Satoshi'? - Bitcoin Stack Exchange
bitcoin.stackexchange.com/questions/114/what-is-a-satoshi
===
Satoshi:
The first name of the Bitcoin's creator Satoshi Nakamoto and also the name of the smallest unit used in transactions.
1 bitcoin (BTC) is equal to 100 million satoshis.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcsatoshi,
* cpt.mnySatoshi,
* cpt.satoshi,

btcnet'Statistics (btcstat)

AddressWpg::
* https://blockchain.info/stats,
* http://bitcointicker.co/,
* https://webbtc.com/stats,
* http://organofcorti.blogspot.gr/2016/04/april-10th-2016-bitcoin-network.html,

btcnet'Program (btcpgm)

Description::
Bitcoin is also the name of the open source software which enables the use of this currency.
[http://bitcoin.org/] 2012-05-27,

Name::
* cpt.bitcoin-software,
* cpt.btcprogram,
* cpt.btcsoftware,
===
* cpt.btcs,

SPECIFIC

Name::
* btcpgm.specific,
* cpt.btcpgm.specific,

Specific::
* Wallet-program,
* https://npmjs.org/package/bitcoin,
* http://coinwidget.com/

btcpgm.bitcoinj

Description::
Bitcoinj:
A Java implementation of a full Bitcoin node by Mike Hearn.
Also includes *SPV* implementation among other features.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
What is bitcoinj?
bitcoinj is a library for working with the Bitcoin protocol.
It can maintain a wallet, send/receive transactions without needing a local copy of Bitcoin Core and has many other advanced features. It's implemented in Java but can be used from any JVM compatible language: examples in Python and JavaScript are included.
It comes with full documentation and many large, well known Bitcoin apps and services are built on it.

Features
Highly optimised lightweight simplified payment verification (SPV) mode. In this mode, only a small part of the block chain is downloaded, making bitcoinj suitable for usage on constrained devices like smartphones or cheap virtual private servers.

Experimental full verification mode, which does the same verification work as Bitcoin Core. In this mode, the unspent transaction output set (UTXO set) is calculated and, thanks to a PostgreSQL store, can be indexed into a database allowing for fast lookup of balance by address.

A wallet class with encryption, fee calculation, multi-signing, deterministic key derivation, pluggable coin selection/coin control, extensions support and event listeners that let you stay up to date with changes in your balance.

Support for micropayment channels that let you set up a multi-signature contract between client and server, and then negotiate on the channel, allowing fast micropayments that avoid miner fees.

Provides both async and thread-per-connection for network IO, allowing you to choose between scalability and blocking-only features like SOCKS/Tor proxying.

Easily implement apps that use Bitcoin's contracts features.

A simple GUI wallet app that you can use as the basis for your own apps. Watch or read a tutorial on how to customise it and build a native installer that does not require Java.

Command line tools for working with wallet and chain files, the payment protocol, the network and more.

Strong Bitcoin standards support.

A friendly and helpful community!
[http://bitcoinj.github.io/]

Name::
* cpt.bitcoinj,

AddressWpg::
* http://bitcoinj.github.io/

btcpgm.Bitcore

Description::
An open-source platform to build bitcoin and blockchain-based applications.
[http://bitcore.io/]
===
Bitcore:
A Bitcoin toolkit by Bitpay written in JavaScript.
More complete than *Bitcoinjs*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

AddressWpg::
* http://bitcore.io/

btcpgm.CLIENT

Description::
Client
A software program running on a desktop or laptop computer, or mobile device.
It connects to the bitcoin network and forwards transactions.
It may also include a bitcoin wallet (see node).
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-client-program,
* cpt.btcclient,

NameGreek::
* ενν.μπιτκόιν-λογισμικό-πελάτη,
* ενν.μπιτκόιν-πρόγραμα-πελάτη,
* ενν.μπιτκόιν-πελάτης,

Specific::
* full-client,
* lightweight-client,
* web-client,

btcpgm.Full-client

Description::
A full client, or "full node," is a client that stores the entire history of bitcoin transactions (every transaction by every user, ever), manages the users' wallets, and can initiate transactions directly on the bitcoin network.
This is similar to a standalone email server, in that it handles all aspects of the protocol without relying on any other servers or third-party services.
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

Name::
* cpt.btcFull-client-program,
* cpt.bitcoin-full-client,

NameGreek::
* ενν.μπιτκόιν-πλήρης-πελάτης,

Whole::
* full-client-node,

btcpgm.Lightweight-client

Description::
A lightweight client stores the user’s wallet but relies on third-party–owned servers for access to the bitcoin transactions and network.
The light client does not store a full copy of all transactions and therefore must trust the third-party servers for transaction validation.
This is similar to a standalone email client that connects to a mail server for access to a mailbox, in that it relies on a third party for interactions with the network.
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

Name::
* cpt.bitcoin-light-client,
* cpt.bitcoin-SPV-client,
* cpt.btclight-client,
* cpt.btclightweight-client,
* cpt.btcThin-client,

NameGreek::
* ενν.μπιτκόιν-ελαφρύς-πελάτης,

Bloom-filter

Description::
A filter used primarily by SPV clients to request only matching transactions and merkle blocks from full nodes.
[https://bitcoin.org/en/glossary/bloom-filter]

Name::
* cpt.bitcoin-bloom-filter,
* cpt.btcBloom-filter,

Limitation

Description::
This gets us pretty far, but Bitcoin-style light clients do have their limitations. One particular limitation is that, while they can prove the inclusion of transactions, they cannot prove anything about the current state (eg. digital asset holdings, name registrations, the status of financial contracts, etc). How many bitcoins do you have right now? A Bitcoin light client can use a protocol involving querying multiple nodes and trusting that at least one of them will notify you of any particular transaction spending from your addresses, and this will get you quite far for that use case, but for other more complex applications it isn’t nearly enough; the precise nature of the effect of a transaction can depend on the effect of several previous transactions, which themselves depend on previous transactions, and so ultimately you would have to authenticate every single transaction in the entire chain.
[https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ Buterin.Vitalik]

SPV-method

Description::
A method for verifying particular transactions were included in a block without downloading the entire block.
The method is used by some lightweight Bitcoin clients.
[https://bitcoin.org/en/glossary/simplified-payment-verification]
===
SPV:
Simplified Payment Verification.
A feature of the Bitcoin protocol that enables nodes to verify payments without downloading the full blockchain.
Instead, they need only download block headers.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Simplified_Payment_Verification_(SPV):
A scheme to validate transactions without storing the whole blockchain (only block headers) and without trusting any external service.
Every transaction must be present with all its parent and sibling hashes in a *merkle tree* up to the root.
SPV client trusts the most *difficult* chain of block headers and can validate if the transaction indeed belongs to a certain block header.
Since SPV does not validate all transactions, a *51% attack* may not only cause a *double spend* (like with *full nodes*), but also make a completely invalid payment with bitcoins created from nowhere.
However, this kind of attack is very costly and probably more expensive than a product in question.
*Bitcoinj* library implements SPV functionality.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btcSPV,
* cpt.btcSimplified-Payment-Verification

btcpgm.Web-client

Description::
Web clients are accessed through a web browser and store the user’s wallet on a server owned by a third party. This is similar to webmail in that it relies entirely on a third-party server.
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

Name::
* cpt.bitcoin-web-client-program,
* cpt.btcweb-client-program,

btcpgm.Mobile-client

Description::
Mobile clients for smartphones, such as those based on the Android system, can either operate as full clients, lightweight clients, or web clients. Some mobile clients are synchronized with a web or desktop client, providing a multiplatform wallet across multiple devices but with a common source of funds.
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch01.asciidoc]

Name::
* cpt.bitcoin-mobile-client-program,
* cpt.btcmobile-client-program,

btcpgm.BITCOIN-XT

Description::
Bitcoin XT is a fork of Bitcoin Core, the reference client for the bitcoin network. In mid-2015, the concept achieved significant attention within the bitcoin community amid a contentious debate among core developers over increasing the blockchain size cap.[1] The current reference implementation for bitcoin contains a computational bottleneck.[2][3] This averages to a daily maximum of around 300,000 transactions.[4]
It was proposed that the block chain size increase to eight megabyte, i.e. and from then onwards to automatically increase it exponentially, doubling every two years. The proposal did not gain the necessary support to go into effect on the Bitcoin network by early 2016, the earliest possible switchover date. Its use has been in steady decline from March 2016 onwards.
[https://en.wikipedia.org/wiki/Bitcoin_XT]
===
The approach taken by Hearn and Andresen clearly indicates their commitment to a decentralized system

Fears over excessive centralization are warranted. After all, decentralization is a big part of bitcoin’s value proposition. But the amount of centralization being considered at the moment still seems vastly more decentralized than traditional payment systems.

Indeed, the approach taken by Hearn and Andresen clearly indicates their commitment to a decentralized system. BitcoinXT will continue to enforce the existing blocksize limit until the protocol is so widely adopted that it is used to process at least 75% of all blocks added to the blockchain. If (and only if) that occurs—but no earlier than January—BitcoinXT will increase the limit to eight megabytes and double that limit every two years thereafter.

The commitment to gradual change based on consensus observed with the issuance of BitcoinXT is incredible, but perhaps not surprising. It reflects the core values held by bitcoin supporters. And it is also a hallmark of well-functioning self-governing systems. It bodes well for bitcoin’s future.
[http://www.forbes.com/sites/realspin/2015/09/08/new-bitcoin-development-spurs-unnecessary-fear-of-centralization/]

Name::
* cpt.bitcoinXT,

AddressWpg::
* https://bitcoinxt.software/

btcpgm.Bitcoin-Core (btcbcr|btcbqt)

conceptIt1010.1#

Description::
BitcoinQT:
Bitcoin implementation based on original code by *Satoshi Nakamoto*.
Includes a graphical interface for Windows, OS X and Linux (using QT) and a command-line executable *bitcoind* that is typically used on servers.
It is considered a *reference implementation* as it's the most used *full node* implementation, especially among *miners*.
Other implementations must be bug-for-bug compatible with it to avoid being *forked*. BitcoinQT uses OpenSSL for its ECDSA operations which has its own quirks that became a part of the standard (e.g. non-canonically encoded public keys are accepted by OpenSSL without an error, so other implementations must do the same).
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md#bitcoinqt]
===
Once installed, you’ll have access to three programs: bitcoind, bitcoin-qt, and bitcoin-cli.
[https://bitcoin.org/en/developer-examples]
===
Bitcoin_Core:
New name of *BitcoinQT* since release of version 0.9 on March 19, 2014.
Not to confuse with *CoreBitcoin*, an Objective-C implementation published in August 2013.
See also *Bitcore*, a JavaScript implementation for Node.js by Bitpay.

Description::
Reference_Implementation:
BitcoinQT (or *bitcoind*) is the most used *full node* implementation, so it is considered a reference for other implementations.
If an alternative implementation is not compatible with BitcoinQT it may be *forked*, that is it will not see the same *main chain* as the rest of the network running *BitcoinQT*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.Bitcoin-core,
* cpt.bitcoin-reference-implementation,
* cpt.BitcoinQT,
* cpt.btcbcr,
* cpt.btcBitcoin-Core,
* cpt.btcBitcoinQT,
* cpt.btcbqt,
* cpt.btcpgm.Bitcoin-Core, {2014-03-19 v0.9}
* cpt.btcreference-implementation,
* cpt.btcSatoshi-client,

NameGreek::
* ενν.μπιτκόιν-πυρήνας,
* ενν.υλοποίηση-αναφοράς-μπιτκόιν,

AddressWpg::
* https://github.com/bitcoin/bitcoin,
* https://bitcoin.org/en/download,

btcbcr'application-directory

Description::
All three programs get settings from bitcoin.conf in the Bitcoin application directory:

Windows: %APPDATA%\Bitcoin\

OSX: $HOME/Library/Application Support/Bitcoin/

Linux: $HOME/.bitcoin/
[https://bitcoin.org/en/developer-examples]

Name::
* cpt.btcdirectory,

btcbcr'bitcoin.conf

Name::
* cpt.btcbitcoin.conf,

You should also make the bitcoin.conf file only readable to its owner. On Linux, Mac OSX, and other Unix-like systems, this can be accomplished by running the following command in the Bitcoin application directory:
chmod 0600 bitcoin.conf
[https://bitcoin.org/en/developer-examples]

btcrpcpassword:
To use bitcoind and bitcoin-cli, you will need to add a RPC password to your bitcoin.conf file. Both programs will read from the same file if both run on the same system as the same user, so any long random password will work:
rpcpassword=change_this_to_a_long_random_password
[https://bitcoin.org/en/developer-examples]

btcbcr'bitcoind

Description::
Bitcoind
Original implementation of Bitcoin with a command line interface.
Currently a part of *BitcoinQT* project.
"D" stands for "daemon" per UNIX tradition to name processes running in background.
See also *BitcoinQT*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md#bitcoind]
===
bitcoind is more useful for programming: it provides a full peer which you can interact with through RPCs to port 8332 (or 18332 for testnet).
[https://bitcoin.org/en/developer-examples]

Name::
* cpt.bitcoind,
* cpt.btcBitcoind,

btcbcr'Bitcoin-cli

Description::
bitcoin-cli allows you to send RPC commands to bitcoind from the command line. For example, bitcoin-cli help
[https://bitcoin.org/en/developer-examples]

Name::
* cpt.btcbitcoincli,
* cpt.btcbitcoin-cli,

btcbcr'Bitcoin-qt

Description::
bitcoin-qt provides a combination full Bitcoin peer and wallet frontend. From the Help menu, you can access a console where you can enter the RPC commands used throughout this document.
[https://bitcoin.org/en/developer-examples]

Name::
* cpt.btcbitcoin-qt,

btcbcr'Internal-byte-order

Description::
The standard order in which hash digests are displayed as strings—the same format used in serialized blocks and transactions.
Not To Be Confused With
RPC byte order (where the byte order is reversed)
[https://bitcoin.org/en/glossary/internal-byte-order]

Name::
* cpt.Internal-Byte-Order,

btcbcr'RPC

Description::
Bitcoin Core provides a remote procedure call (RPC) interface for various administrative tasks, wallet operations, and queries about network and block chain data.
[https://bitcoin.org/en/developer-reference#remote-procedure-calls-rpcs]

Name::
* cpt.btcRpc,
* cpt.btcRPC,
* cpt.btcRemoteProcedureCall,

btcbcrrpc'Byte-order

Description::
* A hash digest displayed with the byte order reversed; used in Bitcoin Core RPCs, many block explorers, and other software.
[https://bitcoin.org/en/glossary/rpc-byte-order]

Name::
* cpt.btcRPC-Byte-Order,

Example::
internal-byte-order: 5472ac8b1187bfcf91d6d218bbda1eb2405d7c55f1f8cc820000000000000000
rpc-byte-order: 000000000000000082ccf8f1557c5d40b21edabb18d2d691cfbf87118bac7254
Note: hex representation uses two characters to display each byte of data, which is why the reversed string looks somewhat mangled.
The rational for the reversal is unknown, but it likely stems from Bitcoin’s use of hash digests (which are byte arrays in C++) as integers for the purpose of determining whether the hash is below the network target. Whatever the reason for reversing header hashes, the reversal also extends to other hashes used in RPCs, such as TXIDs and merkle roots.
Off-site documentation such as the Bitcoin Wiki tends to use the terms big endian and little endian as shown in the table below, but they aren’t always consistent. Worse, these two different ways of representing a hash digest can confuse anyone who looks at the Bitcoin Core source code and finds a so-called “big endian” value being stored in a little-endian data type.
[https://bitcoin.org/en/developer-reference#hash-byte-order]

btcbcr'Resource

AddressWpg::
* https://bitcoin.org/en/bitcoin-core/
* https://bitcoincore.org/
* https://github.com/bitcoin-core,

* https://bitcoincore.org/en/releases/

* https://bitcoincore.org/en/faq/contributing-code/
* how to cotribute: https://github.com/bitcoin-core/bitcoincore.org/issues/50,

btcbcr.EVOLUTING

btcbcr.0-14-0.2017-03-07
Today marks the official release of Bitcoin Core 0.14.0, the fourteenth generation of Bitcoin’s original software client launched by Satoshi Nakamoto eight years ago.
Overseen by Bitcoin Core lead maintainer Wladimir van der Laan, this latest major release was developed by nearly 100 contributors over a six-month period.
[https://bitcoinmagazine.com/articles/bitcoin-core-0140-released-whats-new/]

btcbcr.0-13-2.2017-01-03 - Bitcoin Core version 0.13.2 released

btcbcr.0-13-1.2016-10-27 - Bitcoin Core version 0.13.1 released

btcbcr.0-13-0.2016-08-23:
Bitcoin Core version 0.13.0 released

btcbcr.0-12-0.2016-02-23:
Bitcoin Core version 0.12.0 released
23 February 2016
Bitcoin Core version 0.12.0 is now available from:
https://bitcoin.org/bin/bitcoin-core-0.12.0/
This is a new major version release, bringing new features and other improvements.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
[https://bitcoin.org/en/release/v0.12.0]

btcbcr.0-11-0.2015-07-12:
Bitcoin Core version 0.11.0 released
- https://bitcoin.org/en/release/v0.11.0
- 2015.Jul.12

Bitcoin Core version 0.10.2 released
- https://bitcoin.org/en/release/v0.10.2
- 2015.May.19

Bitcoin Core version 0.10.1 released
- https://bitcoin.org/en/release/v0.10.1
- 2015.Apr.27

btcbcr.0-10-0.2015-02-16:
Bitcoin Core version 0.10.0 released
- https://bitcoin.org/en/release/v0.10.0
- 2015.Feb.16

Bitcoin Core version 0.9.3 released
- https://bitcoin.org/en/release/v0.9.3
- 2014.Sep.27

Bitcoin Core version 0.9.2.1 released
- https://bitcoin.org/en/release/v0.9.2.1
- 2014.Jun.19

Bitcoin Core version 0.9.2 released
- https://bitcoin.org/en/release/v0.9.2
- 2014.Jun.16

Bitcoin Core version 0.9.1 released
- https://bitcoin.org/en/release/v0.9.1
- 2014.Apr.08

btcbcr.0-9-0.2014-03-19:
Bitcoin Core version 0.9.0 released
- https://bitcoin.org/en/release/v0.9.0
- 2014.Mar.19

Bitcoin-Qt version 0.8.6 released
- https://bitcoin.org/en/release/v0.8.6
- 2013.Dec.09


Bitcoin-Qt version 0.8.5 released
- https://bitcoin.org/en/release/v0.8.5
- 2013.Sep.13


Bitcoin-Qt version 0.8.4 released
- https://bitcoin.org/en/release/v0.8.4
- 2013.Sep.03


Bitcoin-Qt version 0.8.3 released
- https://bitcoin.org/en/release/v0.8.3
- 2013.Jun.25


Bitcoin-Qt version 0.8.2 released
- https://bitcoin.org/en/release/v0.8.2
- 2013.May.29


Bitcoin-Qt version 0.8.1 released
- https://bitcoin.org/en/release/v0.8.1
- 2013.Mar.18


Bitcoin-Qt version 0.8.0 released
- https://bitcoin.org/en/release/v0.8.0
- 2013.Feb.19

Bitcoin-Qt version 0.7.2 released
- https://bitcoin.org/en/release/v0.7.2
- 2012.Dec.14


Bitcoin-Qt version 0.7.1 released
- https://bitcoin.org/en/release/v0.7.1
- 2012.Oct.19


Bitcoin-Qt version 0.7.0 released
- https://bitcoin.org/en/release/v0.7.0
- 2012.Sep.17

Bitcoin-Qt version 0.6.3 released
- https://bitcoin.org/en/release/v0.6.3
- 2012.Jun.25


Bitcoin-Qt version 0.6.2 released
- https://bitcoin.org/en/release/v0.6.2
- 2012.May.08


Bitcoin-Qt version 0.6.1 released
- https://bitcoin.org/en/release/v0.6.1
- 2012.May.04


Bitcoin-Qt version 0.6.0 released
- https://bitcoin.org/en/release/v0.6.0
- 2012.Mar.30

Bitcoin-Qt version 0.5.3.1 released
- https://bitcoin.org/en/release/v0.5.3.1
- 2012.Mar.16


Bitcoin-Qt version 0.5.3 released
- https://bitcoin.org/en/release/v0.5.3
- 2012.Mar.14


Bitcoin-Qt version 0.5.2 released
- https://bitcoin.org/en/release/v0.5.2
- 2012.Jan.09


Bitcoin-Qt version 0.5.1 released
- https://bitcoin.org/en/release/v0.5.1
- 2011.Dec.15


Bitcoin-Qt version 0.5.0 released
- https://bitcoin.org/en/release/v0.5.0
- 2011.Nov.21

Bitcoin version 0.4.0 released
- https://bitcoin.org/en/release/v0.4.0
- 2011.Sep.23


Bitcoin version 0.3.24 released
- https://bitcoin.org/en/release/v0.3.24
- 2011.Jul.08


Bitcoin version 0.3.23 released
- https://bitcoin.org/en/release/v0.3.23
- 2011.Jun.14


Bitcoin version 0.3.22 released
- https://bitcoin.org/en/release/v0.3.22
- 2011.Jun.05


Bitcoin version 0.3.21 released
- https://bitcoin.org/en/release/v0.3.21
- 2011.Apr.27

btcpgm.TRADING-BOT

Name::
* cpt.bitcoin-trading-bot,

AddressWpg::
* http://www.givebtc.org/everything-know-trading-cryptocurrency-using-bitcoin-bots/

btcnet'Wallet (btcwlt)

Description::
Bitcoin-wallet is ANY ENTITY used to manage ownership of bitcoins.
BTCs are-not-stored in the-wallets, they are-stored in the-blochain.
A-bitcoin-wallet STORES the-cryptographic-keys that define the-ownership of bitcoins.
[hmnSgm.2017-04-04]
===
'wallet' could be a file, a program, a web-service.
[hmnSgm.2015-09.07]

Name::
* cpt.bitcoin-wallet,
* cpt.btcwallet,
* cpt.btcwlt,

NameGreek::
* ενν.πορτοφόλι-μπικόιν,

Generic::
* blockchain-wallet,

Description::
Bitcoin wallets at their core are a collection of private keys. These collections are stored digitally in a file, or can even be physically stored on pieces of paper.
[https://bitcoin.org/en/developer-guide#wallet-files]

Description::
The so-called wallet is a simple data file that contains a set of Bitcoin (or insert your preferred currency here) addresses. That's all you need to keep your Ecoins with you. The block chain is copied to every single client has a list of every single transaction and balance for your given currency, e.g. Bitcoin. The security of the wallet depends on the security of your computer or smartphone.
[http://www.coindesk.com/how-to-create-a-brain-wallet/]

Description::
A Bitcoin wallet can refer to either a wallet program or a wallet file.
Wallet programs create public keys to receive satoshis and use the corresponding private keys to spend those satoshis.
Wallet files store private keys and (optionally) other information related to transactions for the wallet program.
[https://bitcoin.org/en/developer-guide#wallets]

Description::
When a person joins the Bitcoin network, we typically mean that he has procured himself a Bitcoin wallet.
A Bitcoin wallet is the interface through which users will access the Bitcoin network and, more importantly, be able to utilize the Bitcoins that they own.
It can be procured for free as
- a software on a computer,
- a browser extension,
- an application on a mobile device or
- a simple web page which would look much like an online banking portal.
[http://www.givebtc.org/GiveBTC_-_Handbook_for_Non_Profits.pdf]

Description::
Wallet:
An application or a service that helps keeping private keys for signing transactions.
Wallet does not keep bitcoins themselves (they are recorded in *blockchain*).
"Storing bitcoins" usually means storing the keys.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Description::
Users send bitcoins, the units of currency, by broadcasting digitally signed messages to the network using bitcoin wallet software
[https://en.wikipedia.org/wiki/Bitcoin_network]

Description::
Bitcoin users manage their bitcoin addresses by using a digital wallet. Wallets let users send bitcoins, request payment, calculate the total balance of addresses in use, generate new addresses as needed. Many wallets include precautions to keep the private keys secret, for example by encrypting the wallet data with a password or by requiring two-factor authenticated logins.

Bitcoin wallets provide the following functionality:[10]
Storage of bitcoin addresses and corresponding public/private keys on user's computer in a wallet.dat file
Conducting transactions of obtaining and transferring bitcoins (BTC), also without connection to the Internet
Provide information about the balance in BTC at all available addresses, prior transactions, spare keys

Bitcoin wallets have been implemented as stand-alone software applications, web applications, and even printed documents or memorized passphrases.
[https://en.wikipedia.org/wiki/Bitcoin_network]
===
Since Bitcoin is open-source, any computer programmer with the right skills can create a bitcoin wallet. A Bitcoin wallet is like an email account, they are typically free to install, and you can send and receive money.

Some wallets have more features than others, and some wallets are more designed for advanced users. Some wallets store your bitcoins locally on the computer or mobile phone, and some wallets store your bitcoins in the cloud, where they can be accessed from anywhere.

A wallet that holds bitcoins only is considered an Advanced wallet, or Expert wallet, regardless of the complexity of the interface. Because Bitcoin is new, the volatility risk of holding only bitcoins is more significant than the technical risk of using the software.

Wallets in the Intermediate category allow you to store your local currency in the wallet, as well as bitcoins. This reduces the volatility risk to the user.
[http://lovebitcoins.org/getStarted.html]

Description::
Wallet:
A method of storing bitcoins for later use.
A wallet holds the private keys associated with bitcoin addresses.
The blockchain is the record of the bitcoin amounts associated with those addresses.
[http://www.coindesk.com/information/bitcoin-glossary/]

Description::
1) The payment system itself is revolutionary – nothing like it has ever been done. The system is decentralized, so there is no “server farm” or corporate office which controls payments. Transactions occur “peer to peer” just like file-sharing. To use the system, you can either download the client software (which runs on your computer and stores money locally) or you can use an “ewallet” which is a website run by a 3rd party which holds the funds for you (simpler, but introduces counter-party risk if the 3rd party is not trustworthy).
[http://keepyourassets.net/2012/09/27/bitcoin-the-first-five-questions/]

btcwlt'Address (link)

btcwlt'Security

Description::
Bitcoin's most common vulnerability is in user error. Bitcoin wallet files that store the necessary private keys can be accidentally deleted, lost or stolen.
[https://bitcoin.org/en/faq#is-bitcoin-secure]
===
To help protect against theft, many wallet programs offer users the option of encrypting the wallet files which contain the private keys. This protects the private keys when they aren’t being used, but it cannot protect against an attack designed to capture the encryption key or to read the decrypted keys from memory.
[https://bitcoin.org/en/developer-guide#full-service-wallets]
===
Tips for preventing loss of Bitcoin
You should adopt these best practices and the chance that Apple or anyone else for that matter would not be able to get to your Bitcoin and other cryptocurrencies.
- Invest in a good hardware wallet.
- Do not keep all your Bitcoin in just one wallet
- Make a will or write down instructions about what should be done with your digital assets.
- Make backups of your wallets or at least ensure that you have keys kept somewhere securely.
- If you are using mobile wallets, make sure they are platform independent.
[http://cointelegraph.com/news/can-apple-microsoft-amazon-or-google-delete-bitcoin-from-your-computer]

AddressWpg::
* https://bitcoin.org/en/secure-your-wallet,
* https://en.bitcoin.it/wiki/Securing_your_wallet,
* http://cointelegraph.com/news/10-steps-to-a-better-bitcoin-wallet,

btcwlt'Storage-medium

Description::
Το πρώτο «χρηματοκιβώτιο» για bitcoins
Δευτέρα, 13 Ιανουαρίου 2014 12:13 UPD:12:13
REUTERS/JIM URQUHART
Τα online «πορτοφόλια» που χρησιμοποιούνται για την αποθήκευση bitcoins θεωρούνται όλο και λιγότερο ασφαλή, καθώς είναι τρωτά σε κυβερνοεπιθέσεις.
Μία υπηρεσία για αποθήκευση καταθέσεων στο ψηφιακό νόμισμα, bitcoin, ξεκίνησε τη λειτουργία της στο Λονδίνο.
Σύμφωνα με δημοσίευμα του BBC, το Elliptic Vault χρησιμοποιεί τεχνικές «deep cold storage», όπου κωδικοποιημένα «κλειδιά» για bitcoins αποθηκεύονται σε servers οι οποίοι βρίσκονται σε ασφαλές σημείο και είναι αποκομμένοι από το Διαδίκτυο. Υπάρχουν πολλαπλά αντίγραφα των «κλειδιών», που προστατεύονται τόσο από ψηφιακά, όσο και από «φυσικά» συστήματα προστασίας. Στα εν λόγω αντίγραφα έχουν πρόσβαση μόνο ανώτερα στελέχη της εταιρείας. Οι δημιουργοί του ισχυρίζονται πως πρόκειται για μια παγκόσμια πρωτιά, με στόχο την παροχή ασφαλείας στους κατόχους bitcoins.
Σημειώνεται ότι τα online «πορτοφόλια» που χρησιμοποιούνται για την αποθήκευση bitcoins θεωρούνται όλο και λιγότερο ασφαλή, καθώς είναι τρωτά σε κυβερνοεπιθέσεις ενώ πολλοί χρήστες έχουν αναφέρει περιστατικά όπου χάθηκαν κατά λάθος τεράστια ποσά Χαρακτηριστικό παράδειγμα είναι η περίπτωση του Τζέιμς Χάουελς, ο οποίος πέταξε έναν σκληρό δίσκο στον οποίο είχε ξεχάσει ότι υπήρχαν από παλιά αποθηκευμένα bitcoins αξίας (σήμερα) εκατομμυρίων δολαρίων.
Δεν υπάρχει τρόπος ανάκτησης κλεμμένων bitcoins, ενώ οι συναλλαγές είναι μη αναστρέψιμες. Επίσης δεν υπάρχει κάποιος τρόπος ασφάλισής τους, όπως θα συνέβαινε σε μία «συμβατική» τράπεζα με κανονικά λεφτά.
«Ένας από τους κύριους προβληματισμούς που έχουν οι άνθρωποι με τα bitcoins είναι ότι είναι δύσκολο να τα αποθηκεύσουν με ασφάλεια» είπε στο BBC ο Τομ Ρόμπινσον, συνιδρυτής του Elliptic Vault. «Το να τους παρέχουμε αυτή την ασφάλεια φαινόταν το προφανές βήμα» πρόσθεσε.
Κατά τον Ρόμπινσον, ήταν δύσκολο να βρεθεί κάποια ασφαλιστική εταιρεία η οποία να υποστηρίξει το εγχείρημα, καθώς η σχετική βιομηχανία παρουσιάζεται πολύ συντηρητική και δεν «κατανοεί» ακόμα το bitcoin, ενώ επηρεάζεται και από την αρνητική δημοσιότητα πάνω στο ζήτημα. Ωστόσο, όπως επισημαίνει, η κατάσταση έχει βελτιωθεί από τότε που έκλεισε η online αγορά ναρκωτικών και άλλων παράνομων εμπορευμάτων, Silk Road.
[http://www.naftemporiki.gr/story/752249]

Name::
* cpt.bitcoin-wallet-storage,
* cpt.btcnet'storage,
* cpt.btcwlt'storage,

btcwlt'Key-pool

Description::
Key_Pool:
Some wallet applications that create new private keys randomly keep a pool of unused pre-generated keys (BitcoinQT keeps 100 keys by default).
When a new key is needed for *change* address or a new payment request, the application provides the oldest key from the pool and replaces it with a fresh one.
The purpose of the pool is to ensure that recently used keys are always already backed up on external storage.
Without a key pool you could create a new key, receive a payment on its address and then have your hard disk died before backing up this key.
A key pool guarantees that this key was already backed up several days before being used.
*Deterministic wallets* do not use a key pool because they need to back up a single secret key.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.btckey-pool,

btcwlt'Resource

AddressWpg::
* http://bitcoinsimplified.org/get-started/how-to-set-up-a-wallet/

btcwlt'Doing

btcwltdng.SERVICE

Name::
* cpt.btcnet'wallet-service,
* cpt.btcwallet-service,

SPECIFIC

Name::
* btcwlt.specific,
* cpt.btcwlt.specific,

Specific::
* hardware-wallet
* paper-wallet,
* prgram-wallet,

AddressWpg::
* https://bitcoin.org/en/choose-your-wallet,

Specific::
Within these two categories [hot|cold] of Bitcoin wallets there are other subcategories.
These include web wallets, desktop wallets installed on
your computer, hierarchical deterministic (“HD”) wallets, multiplesignature
(“multi-sig”) wallets, light wallets, paper wallets, and
wallets that require two-factor authentication (“2FA”).
These wallet characteristics are not mutually exclusive. For example,
you can have a web wallet that uses the multi-sig system or twofactor
authentication. You’ll find that some of the recommended
wallets appear in more than one category below.
[http://www.givebtc.org/GiveBTC_-_Handbook_for_Non_Profits.pdf]

btcwlt.AGGREGATE

Specific::
An unlimited number of wallets can be generated, by anyone, anywhere, without any licenses or permissions required.
[http://www.givebtc.org/GiveBTC_-_Handbook_for_Non_Profits.pdf]

btcwlt.BRAIN

Description::
Brain_wallet:
Brain wallet is a concept of storing *private keys* as a memorable phrase without any digital or paper trace.
Either a single key is used for a single address, or a *deterministic wallet* derived from a single key.
If done properly, a brain wallet greatly reduces the risk of theft because it is completely deniable: no one could say which or how much bitcoins you own as there are no actual wallet files to be found anywhere.
However, it is the most error-prone method as one can simply forget the secret phrase, or make it too simple for anyone to brute force and steal all the funds.
Additional risks are added by a complex wallet software.
E.g. BitcoinQT always sends *change* amount to a new address.
If a private key is imported temporarily to spend 1% of the funds and then the wallet is deleted, the remaining 99% will be lost forever as they are moved as a change to a completely new address.
This already happened to a number of people.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-brain-wallet,
* cpt.btcwlt.brain,

AddressWpg::
* https://brainwallet.io/
Brainwallet.org:
Utility based on bitcoinjs to craft transactions by hand, convert *private keys* to addresses and work with a *brain wallet*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btcwlt.PAPER

Description::
Store the-keys on paper.

Name::
* cpt.bitcoin-paper-wallet,
* cpt.btcPaper-wallet,
* cpt.btcwlt.paper,

Description::
Paper_wallet:
A printed sheet containing one or more public bitcoin addresses and their corresponding private keys.
Often used to store bitcoins securely, instead of using software wallets, which can be corrupted, or web wallets, which can be hacked or simply disappear.
A useful form of cold bitcoin storage.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Paper_Wallet:
A form of *cold storage* where a *private key* for Bitcoin *address* is printed on a piece of paper (with or without encryption) and then all traces of the key are removed from the computer where it was generated.
To redeem bitcoins, a key must be imported in the wallet application so it can sign a transaction.
See also *Casascius Coins*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

AddressWpg::
* https://blog.bitaccess.co/how-to-send-bitcoin-from-paper-wallet/

btcwlt.PROGRAM (btcwtp)

Description::
Wallet programs create public keys to receive satoshis and use the corresponding private keys to spend those satoshis.
[https://bitcoin.org/en/developer-guide#wallets]

Name::
* cpt.bitcoin-wallet-program,
* cpt.btcnet'wallet-program,
* cpt.btcwallet-application,
* cpt.btcwallet-program,
* cpt.btcwallet-software,
* cpt.btcwtp,

btcwtp'doing

Description::
This leaves us with three necessary, but separable, parts of a wallet system: a public key distribution program, a signing program, and a networked program.
In the subsections below, we will describe common combinations of these parts.
[https://bitcoin.org/en/developer-guide#wallet-programs]
===
What if I receive a bitcoin when my computer is powered off?
This works fine. The bitcoins will appear next time you start your wallet application. Bitcoins are not actually received by the software on your computer, they are appended to a public ledger that is shared between all the devices on the network. If you are sent bitcoins when your wallet client program is not running and you later launch it, it will download blocks and catch up with any transactions it did not already know about, and the bitcoins will eventually appear as if they were just received in real time. Your wallet is only needed when you wish to spend bitcoins.
[https://bitcoin.org/en/faq#what-if-i-receive-a-bitcoin-when-my-computer-is-powered-off]

btcwtp'Evaluation

Wallet Privacy Rankings
1. ledger 50
2. Breadwallet 49
3. Airbitz 47
4. Darkwallet 45
5. ArcBit 45
6. Samourai 43
7. Bitcoin-QT 43
8. Trezor 42
9. LUXSTACK 42
10. Bitcoin Wallet 42
11. MultiBit HD 40
12. GreenAddress 39
13. Armory 38
14. Copay 37
15. Mycelium 37
16. Electrum 33
17. Blockchain 30
18. BitGo 27
19. Hive 19
20. Coinbase 18
[http://www.openbitcoinprivacyproject.org/2016/02/announcing-the-2nd-edition-of-our-bitcoin-wallet-privacy-rating-report/]

SPECIFIC

Specific::
* full-service-wallet-program,

btcwtp.computer.DESKTOP

Name::
* cpt.bitcoin-mobile-wallet,
* cpt.btcdesktop-wallet,

btcwtp.computer.MOBILE

Description::
Most mobile wallets support scanning bitcoin: URIs encoded in a QR code, and almost all wallets can display them for accepting payment.
While also handy for online orders, QR Codes are especially useful for in-person purchases.
[https://bitcoin.org/en/developer-guide#requesting-payments]

Name::
* cpt.bitcoin-mobile-wallet,
* cpt.btcmobile-wallet,

btcwtp.ELECTRUM

Description::
Electrum is a lightweight Bitcoin wallet.
[http://docs.electrum.org/en/latest/index.html]

Name::
* cpt.electrum,
* cpt.electrum-btc-wallet-program,

btcwtp.FULL-SERVICE

Description::
The simplest wallet is a program which performs all three functions: it generates private keys, derives the corresponding public keys, helps distribute those public keys as necessary, monitors for outputs spent to those public keys, creates and signs transactions spending those outputs, and broadcasts the signed transactions.
As of this writing, almost all popular wallets can be used as full-service wallets.
The main advantage of full-service wallets is that they are easy to use. A single program does everything the user needs to receive and spend satoshis.
The main disadvantage of full-service wallets is that they store the private keys on a device connected to the Internet. The compromise of such devices is a common occurrence, and an Internet connection makes it easy to transmit private keys from a compromised device to an attacker.
To help protect against theft, many wallet programs offer users the option of encrypting the wallet files which contain the private keys. This protects the private keys when they aren’t being used, but it cannot protect against an attack designed to capture the encryption key or to read the decrypted keys from memory.
[https://bitcoin.org/en/developer-guide#full-service-wallets]

Part::
Several full-service wallets programs will also operate as two separate wallets:
one program instance acting as a signing-only wallet (often called an “offline wallet”) and the other program instance acting as the networked wallet (often called an “online wallet” or “watching-only wallet”).
[https://bitcoin.org/en/developer-guide#offline-wallets]

btcwtp.MYCELIUM

Description::
Mycelium Bitcoin Wallet
2,413
Mycelium Developers Finance
PEGI 3 PEGI 3
You don't have any devices

With the Mycelium Bitcoin Wallet you can send and receive Bitcoins using your mobile phone.
The unparalleled cold storage functionality allows you to 100% secure your funds until you are ready to spend them: http://youtu.be/jV-29RFU6xA
see also our promotional video "Mycelia in Wonderland" at https://www.youtube.com/watch?v=2_h9ZZwhwBg

- 100% control over your private keys, they never leave your device unless you export them
- No block chain download, install and run in seconds
- HD enabled - manage multiple accounts and never reuse addresses (Bip32, Bip44)
- Ultra fast connection to the Bitcoin network through our super nodes
- Watch-only addresses & private key import for secure cold-storage integration
- Secure your wallet with a PIN
- Compatible with other bitcoin services through bitcoin: uri handling
- Support for Bip38 Keys
- Find other people to trade Bitcoins with


Please always make sure you have backups of your private keys!

This application's source is published at https://github.com/mycelium-com/wallet
We need your feedback. If you have a suggestion or a bug to report open an issue at https://github.com/mycelium-com/wallet/issues

More features:
- Master seed based - make one backup and be safe for ever. (Bip39)
- 100% control over your private keys, they never leave your device unless you export them
- No block-chain download - install and run in seconds
- For enhanced privacy and availability you can connect to our super nodes via a tor hidden-service ( .onion address)
- Watch-only addresses (single key or HD) for a secure cold-storage integration
- Private key (single or xPriv) import
- Directly spend from paper wallets (single key, xPriv or master seed)
- Trezor enabled - directly spend from trezor-secured accounts.
- Mycelium Entropy compatible Shamir-Secret-Shared 2-out-of-3 keys spending
- Secure your wallet with a PIN
- Compatible with other bitcoin services through bitcoin: uri handling
- Encrypted PDF backup and restore of single key accounts
- Send and receive by specifying an amount in Fiat and switch between fiat and BTC while entering the amount
- Address book for commonly used addresses
- Transaction history with full transaction details.
- Share your bitcoin address using NFC, Twitter, Facebook, email and more.
- BIP70 payment request compatible
- Integration with service cashila.com to send money via SEPA
- Support for BitID Authentication
- Deterministic signatures for Bitcoin transactions (RFC6979)


Explanation for permission requests:
- Location - used to update LocalTrader location - only when user manually updates it.
- Camera/Microphone - Scan QR codes.
[https://play.google.com/store/apps/details?id=com.mycelium.wallet]

Name::
* cpt.Mycelium,

mycelium.EVOLUTING

{time.2016-07-23}
Mycelium, one of the world’s first and top rated software wallets, will integrate with Dash which will come into effect in October to allow Mycelium users to buy, sell and hold Dash, whose unique characteristics include extremely low fees, advanced encryption, instant transactions, and optional payment privacy through pool mixing technology.

Dash is like digital cash managed by a self funded, self governed organization comprised of over 15,000 users who move half a million dollars across the network every 24 hours. It can be spent instantly online and at merchants and service providers worldwide with transactions verified by miners and its system protected by 4,000 master nodes across the world. Its in-built governance and funding system allows projects to be proposed and voted on by the community, and if approved, paid for directly from the Blockchain.

The partnership is a testimony to the Dash system’s ability to make agreements with traditional corporations and keep its commitments while being a DAO.
[https://cointelegraph.com/news/dash-considered-alternative-to-bitcoin-integrates-into-mycelium]

btcwtp.OFFLINE

Description::
Several full-service wallets programs will also operate as two separate wallets: one program instance acting as a signing-only wallet (often called an “offline wallet”) and the other program instance acting as the networked wallet (often called an “online wallet” or “watching-only wallet”).

The offline wallet is so named because it is intended to be run on a device which does not connect to any network, greatly reducing the number of attack vectors. If this is the case, it is usually up to the user to handle all data transfer using removable media such as USB drives. The user’s workflow is something like:

(Offline) Disable all network connections on a device and install the wallet software. Start the wallet software in offline mode to create the parent private and public keys. Copy the parent public key to removable media.

(Online) Install the wallet software on another device, this one connected to the Internet, and import the parent public key from the removable media. As you would with a full-service wallet, distribute public keys to receive payment. When ready to spend satoshis, fill in the output details and save the unsigned transaction generated by the wallet to removable media.

(Offline) Open the unsigned transaction in the offline instance, review the output details to make sure they spend the correct amount to the correct address. This prevents malware on the online wallet from tricking the user into signing a transaction which pays an attacker. After review, sign the transaction and save it to removable media.

(Online) Open the signed transaction in the online instance so it can broadcast it to the peer-to-peer network.

The primary advantage of offline wallets is their possibility for greatly improved security over full-service wallets. As long as the offline wallet is not compromised (or flawed) and the user reviews all outgoing transactions before signing, the user’s satoshis are safe even if the online wallet is compromised.

The primary disadvantage of offline wallets is hassle. For maximum security, they require the user dedicate a device to only offline tasks. The offline device must be booted up whenever funds are to be spent, and the user must physically copy data from the online device to the offline device and back.
[https://bitcoin.org/en/developer-guide#signing-only-wallets]

Name::
* cpt.btcOffline-wallet-program,
* cpt.btcsigning-only-wallet,

Description::
To increase security, private keys can be generated and stored by a separate wallet program operating in a more secure environment. These signing-only wallets work in conjunction with a networked wallet which interacts with the peer-to-peer network.
... The following subsections describe the two most common variants of signing-only wallets: offline wallets and hardware wallets.
[https://bitcoin.org/en/developer-guide#signing-only-wallets]

btcwtp.os.ANDROID

Name::
* cpt.btcandroid-wallet,

btcwtp.os.iOS

Name::
* cpt.btcios-wallet,

btcwtp.os.LINUX

Name::
* cpt.btclinux-wallet,

btcwtp.os.WINDOWS

Name::
* cpt.btcwindows-wallet,

btcwtp.WEB

Description::
A-bitcoin-web-wallet is a-wallet-program that utilizes the-browser-program.
It could store the-keys online or locally.
[hmnSgm.2017-04-04]

Name::
* cpt.bitcoin-web-wallet,
* cpt.btcwlt.web,
* cpt.btcwtp.web,

Description::
web-wallet:
A web service providing wallet functionality: ability to store, send and receive bitcoins.
User has to trust counter-party to keep their bitcoins securely and ready to redeem at any time.
It is very easy to build your own web wallet, so most of them were prone to hacks or outright fraud.
The most secure and respected web wallet is *Blockchain.info*.
Online exchanges also provide wallet functionality, so they can also be considered web wallets.
It is not recommended to store large amounts of bitcoins in a web wallet.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btcwlt.HARDWARE

Name::
* cpt.bitcoin-hardware-wallet,
* cpt.btcHardware-wallet,

Generic::
* Bitcoin-signing-only-wallet-program,

Description::
A hardware wallet is a special type of bitcoin wallet which stores the user's private keys in a secure hardware device.

They have major advantages over standard software wallets:

private keys are often stored in a protected area of a microcontroller, and cannot be transferred out of the device in plaintext
immune to computer viruses that steal from software wallets
can be used securely and interactively, as opposed to a paper wallet which must be imported to software at some point
much of the time, the software is open source, allowing a user to validate the entire operation of the device
This page is an attempt to summarize all the known developments of hardware wallets that can use Bitcoin as part of their operation.
[https://en.bitcoin.it/wiki/Hardware_wallet]
===
Hardware wallets are devices dedicated to running a signing-only wallet. Their dedication lets them eliminate many of the vulnerabilities present in operating systems designed for general use, allowing them to safely communicate directly with other devices so users don’t need to transfer data manually. The user’s workflow is something like:

(Hardware) Create parent private and public keys. Connect hardware wallet to a networked device so it can get the parent public key.

(Networked) As you would with a full-service wallet, distribute public keys to receive payment. When ready to spend satoshis, fill in the transaction details, connect the hardware wallet, and click Spend. The networked wallet will automatically send the transaction details to the hardware wallet.

(Hardware) Review the transaction details on the hardware wallet’s screen. Some hardware wallets may prompt for a passphrase or PIN number. The hardware wallet signs the transaction and uploads it to the networked wallet.

(Networked) The networked wallet receives the signed transaction from the hardware wallet and broadcasts it to the network.

The primary advantage of hardware wallets is their possibility for greatly improved security over full-service wallets with much less hassle than offline wallets.

The primary disadvantage of hardware wallets is their hassle. Even though the hassle is less than that of offline wallets, the user must still purchase a hardware wallet device and carry it with them whenever they need to make a transaction using the signing-only wallet.

An additional (hopefully temporary) disadvantage is that, as of this writing, very few popular wallet programs support hardware wallets—although almost all popular wallet programs have announced their intention to support at least one model of hardware wallet.
[https://bitcoin.org/en/developer-guide#hardware-wallets]

btcwlt.hardware.LEDGER

Name::
* cpt.btcw.ledger,
* cpt.ledger-btcw,
* cpt.ledgerwallet,
* cpt.btcw.ledger,

AddressWpg::
* https://www.ledgerwallet.com/
* http://support.ledgerwallet.com/knowledge_base/topics/general-ledger-nano-s-faq/

btcw.Ledger-nano-s (bhwlns)

Description::
Ledger Nano S is a secure Bitcoin and Ethereum hardware wallet. It connects to any computer through USB and embeds a built-in OLED display to double-check and confirm each transaction with a single tap on its side buttons.
[http://support.ledgerwallet.com/knowledge_base/topics/general-ledger-nano-s-faq]

Name::
* cpt.bhwlns,
* cpt.bitcoin-hardware-wallet-ledger-nano-s,
* cpt.Ledger-nano-s,

bwlns'Resource

AddressWpg::
* config: https://www.ledgerwallet.com/start/
* https://medium.com/@Ledger/a-short-guide-to-nano-s-firmware-1-3-features-b92c939e7c9f,
* https://ledger.groovehq.com/knowledge_base/topics/firmware-upgrade-and-application-manager,

btcwlt.hardware.TREZOR ($99)

Description::
TREZOR is a secure bitcoin storage and a transaction signing tool. The private keys are generated by the device and never leave it thus they cannot be accessed by a malware.

It uses a deterministic wallet structure which means it can hold an unlimited number of keys (BIP 0032/BIP 0044). A recovery seed is generated when the device is initialized. In case TREZOR gets lost or stolen, all its contents can be recovered using this seed (private keys, bitcoin balance and transaction history) into a new device or another BIP 0039/BIP 0044 compatible wallet.

TREZOR also introduced a unique way of PIN entering preventing keyloggers from recording it even when entered on a compromised computer. An encryption passphrase can be set on top of the PIN protection. More passphrases can be used for plausible deniability.
[https://en.bitcoin.it/wiki/Hardware_wallet#TREZOR_The_Bitcoin_Safe]

Name::
* cpt.trezor-btcw,
* cpt.btcw.trezor,
* cpt.trezor-btcw,

AddressWpg::
* https://www.buytrezor.com/
* http://themerkle.com/hardware-wallet-comparison-keepkey-vs-trezor-vs-ledger-nano/
* https://www.amazon.com/TREZOR-The-Bitcoin-Safe-Grey/dp/B00R6MRI50/ref=pd_sim_147_4? _encoding=UTF8&psc=1&refRID=3P0WRM4792AFXVT9HSZ4,

btcwlt.HD (Hierarchical-Deterministic)

Description::
The Hierarchical Deterministic (HD) key creation and transfer protocol (BIP32), which allows creating child keys from parent keys in a hierarchy.
Wallets using the HD protocol are called HD wallets.
[https://bitcoin.org/en/glossary/hd-protocol]
===
Deterministic_Wallet:
A collective term for different ways to generate a sequence of *private keys* and/or *public keys*. Deterministic wallet does not need a *Key Pool*.
The simplest form of a deterministic wallet is based on hashing a secret string concatenated with a key number.
For each number the resulting hash is used as a private key (public key is derived from it).
More complex scheme uses *elliptic curve arithmetic* to derive sequences of public and private keys separately which allows generating new *addresses* for every payment request without storing private keys on a web server.
More information on Bitcoin Wiki.
See also *Wallet*.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-HD-wallet,
* cpt.btcHD-wallet,
* cpt.deterministic-wallet-of-btcnet,

btcwltHd'HD-protocoll

Description::
The hierarchical deterministic key creation and transfer protocol (HD protocol) greatly simplifies wallet backups, eliminates the need for repeated communication between multiple programs using the same wallet, permits creation of child accounts which can operate independently, gives each parent account the ability to monitor or control its children even if the child account is compromised, and divides each account into full-access and restricted-access parts so untrusted users or programs can be allowed to receive or monitor payments without being able to spend them.
[https://bitcoin.org/en/developer-guide#hierarchical-deterministic-key-creation]
===
The Hierarchical Deterministic (HD) key creation and transfer protocol (BIP32), which allows creating child keys from parent keys in a hierarchy. Wallets using the HD protocol are called HD wallets.
[https://bitcoin.org/en/glossary/hd-protocol]

Name::
* cpt.btcHD-protocol,
* cpt.btcBIP32,

AddressWpg::
* https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki,

btcwltHd'chain-code

Description::
In HD wallets, 256 bits of entropy added to the public and private keys to help them generate secure child keys; the master chain code is usually derived from a seed along with the master private key
[https://bitcoin.org/en/glossary/chain-code]

Name::
* cpt.btcChain-Code,
* cpt.btcHD-Wallet-Chain-Code

Master Chain Code

Description::
In HD wallets, the master chain code and master private key are the two pieces of data derived from the root seed.
[https://bitcoin.org/en/glossary/master-chain-code-and-private-key]

Name::
* cpt.btcMaster-chain-code,
* cpt.Master Chain Code And Private Key

btcwltHd'child-key

Description::
In HD wallets, a key derived from a parent key.
The key can be either a private key or a public key, and the key derivation may also require a chain code.
[https://bitcoin.org/en/glossary/child-key]

Name::
* cpt.btcChild-Key,
* cpt.btcHD-Wallet-Child-Key

btcwltHd'parent-key

Description::
In HD wallets, a key used to derive child keys. The key can be either a private key or a public key, and the key derivation may also require a chain code.
[https://bitcoin.org/en/glossary/parent-key]

Name::
* cpt.btcParent-Key,
* cpt.btcHD-Wallet-Parent-Key,

btcwltHd'Root-seed

Description::
A potentially-short value used as a seed to generate the master private key and master chain code for an HD wallet.
[https://bitcoin.org/en/glossary/hd-wallet-seed]

Name::
* cpt.btcHD-Wallet-Seed,
* cpt.btcRoot-Seed,

btcwlt.ONLINE (hot)

Description::
Wallets can be divided into two categories: hot and cold.
The difference between these is the location where the private keys are stored.
If the keys are stored on a computer connected to a network (like a laptop, desktop, or mobile device) the wallet is considered “hot” since the funds are within reach for you to use, but also for malware and cyber-criminals to steal.
If the private keys are stored on an offline device (like a laptop with disabled networking components, or a piece of paper) then it is considered “cold” since there is no way to gain access to the keys without having them physically in your hands.
[http://www.givebtc.org/GiveBTC_-_Handbook_for_Non_Profits.pdf]

Name::
* cpt.btchot-wallet,
* cpt.btcnetworked-wallet,
* cpt.btcwallet.hot,

btcwlt.ONLINE.NO (cold | offline)

Description::
Due to the risk of computers and USB drives being infected with bitcoin-stealing malware, most Bitcoin experts recommend storing your bitcoins offline. This is often referred to as “cold storage.”
[http://bitcoinconsultant.net/coinpro/]
===
btcCold_Storage:
A collective term for various security measures to reduce the risk of remote access to the private keys. It could be a normal computer disconnected from the internet, or a dedicated hardware wallet, or a USB stick with a wallet file, or a *paper wallet*.

Name::
* cpt.btccold-storage,
* cpt.btccold-wallet,
* cpt.btcwallet.cold,

btcnet'Problem

Name::
* cpt.bitcoin-problem,
* cpt.btcpbm,
* cpt.btcproblem,

btcnet'Security (btcscrt)

Description::
Two basic questions for anyone accepting digital money are:
- Can I trust the money is authentic and not counterfeit?
- Can I be sure that no one else can claim that this money belongs to them and not me? (Aka the “double-spend” problem.)
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]
===
8 November 2013 Last updated at 16:22 GMT Share this pageEmailPrint
ShareFacebookTwitter
Major Bitcoin theft from website, claims owner
Bitcoins
Bitcoins are becoming more popular as a method of payment online
Continue reading the main story
Related Stories

What is Bitcoin? Watch
Bitcoin 'at risk' of network attack
Man cashes in on $22 Bitcoin stash
A man who ran an online "wallet service" for storing Bitcoins has claimed hackers stole virtual currency from his site worth more than one million Australian dollars.

The Australian man said 4,100 Bitcoins (US$1.04m, £650,000) were taken in two separate attacks.

He said he would not report the theft to police as Bitcoin transactions are virtually impossible to trace.

This has led some users to speculate whether it was an "inside job".

In a radio interview with ABC News the man, who only used his online name TradeFortress, denied being involved.

The Bitcoin virtual currency is increasingly used to pay for things online.

According to the Sydney Morning Herald, the theft occurred on 26 October but users were only alerted this week via a message he posted on the wallet service's website.

"I know this doesn't mean much, but I'm sorry, and saying that I'm very sad that this has happened is an understatement.

"Please don't store Bitcoins on an internet-connected device, regardless if it is your own or a service's."

Bitcoin is the most well known of a handful of virtual currencies. The currencies are developed through a computer process called "mining" and can be traded on exchanges or privately between users.
[http://www.bbc.co.uk/news/technology-24871444]

Name::
* cpt.bitcoin-security,
* cpt.btcsecurity,

{time.2015}
=== Former Mt Gox chief arrested in Japan
Japanese police have arrested Mark Karpelθs, the head of the bankrupt Japan-based bitcoin exchange Mt Gox, who is alleged to have manipulated the computer system to inflate his account.
[FINANCIAL TIMES, Saturday August 01 2015, BREAKING NEWS]

btcpbm'Anonymity

Name::
* cpt.btcanonymity,

AddressWpg::
* https://www.expressvpn.com/internet-privacy/bitcoin-anonymity/

btcpbm'Fraud

Name::
* cpt.btcnet'fraud,

AddressWpg::
* http://cointelegraph.com/news/top-10-bitcoin-fails-from-gambling-ponzi-to-mother-of-all-frauds,

btcpbm'LBC

Description::
What is LBC?
The "Large Bitcoin Collider" (LBC - a homage to LHC) is a distributed effort to find at least one collision of private Bitcoin keys by creating addresses to private keys in the 2160 range. These are checked against the list of known BTC addresses with funds on them. In the rare event of a collision, the funds on the address in question would become accessible to the collision finder.
[https://lbc.cryptoguru.org/about]

btcpbm'Privacy

Description::
The concept of privacy is best defined as the amount of control you have over your information. This control not only includes the power to hide or conceal your personal information, but also the power to reveal it to the public.
[https://www.expressvpn.com/internet-privacy/bitcoin-anonymity/]

Name::
* cpt.btcprivacy,

btcpbm'Protection

Description::
Transparency Requires Protection
Bitcoin is by default a transparent system, in which every piece of information is available to the public. As such, every Bitcoin user requires some level of protection. Anyone with substantial wealth in Bitcoin would not want to advertise their funds to every person they transact with, for obvious reasons. But every time you spend just a tiny portion of your Bitcoin wallet, you reveal your wealth to the other party. Doing that on the Internet is like flashing large stacks of cash in a dark back alley. It is not advisable! A criminal might see how much you have, and decide to come after it. Distributing your wealth between several wallets and using a different address for each transaction is a common practice that prevents others from knowing how much Bitcoin you have.
[https://www.expressvpn.com/internet-privacy/bitcoin-anonymity/]

Name::
* cpt.btcprotection,

btcpbm'Resource

AddressWpg::
* https://www.bitgo.com/about,
* http://cointelegraph.com/news/bitcoin-will-it-survive-2016,

btcpbm'Transparency

Description::
Transparency Requires Protection
Bitcoin is by default a transparent system, in which every piece of information is available to the public. As such, every Bitcoin user requires some level of protection. Anyone with substantial wealth in Bitcoin would not want to advertise their funds to every person they transact with, for obvious reasons. But every time you spend just a tiny portion of your Bitcoin wallet, you reveal your wealth to the other party. Doing that on the Internet is like flashing large stacks of cash in a dark back alley. It is not advisable! A criminal might see how much you have, and decide to come after it. Distributing your wealth between several wallets and using a different address for each transaction is a common practice that prevents others from knowing how much Bitcoin you have.
[https://www.expressvpn.com/internet-privacy/bitcoin-anonymity/]

Name::
* cpt.btctransparency,

btcpbm'Double-spend

Name::
* cpt.bitcoin-double-spend,

Description::
A fraudulent attempt to spend the same *transaction output* twice.
There are two major ways to perform a double spend:
reverting an unconfirmed transaction by making another one which has a higher chance of being included in a block (only works with merchants accepting zero-confirmation transactions) or
by mining a parallel blockchain with a second transaction to overtake the chain where the first transaction was included.

Bitcoin proof-of-work scheme makes a probabilistic guarantee of difficulty to double spend transactions included in the *blockchain*.
The deeper transaction is recorded in the blockchain, the more expensive it is to "reverse" it.
See also 51% attack.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

btcpbm'51-percent-attack

Description::
A condition in which more than half the computing power on a cryptocurrency network is controlled by a single miner or group of miners.
That amount of power theoretically makes them the authority on the network.
This means that every client on the network believes the attacker’s hashed transaction block.
This gives them control over the network, including the power to:
Issue a transaction that conflicts with someone else's.
Stop someone else's transaction from being confirmed.
Spend the same coins multiple times.
Prevent other miners from mining valid blocks.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
51percent_Attack:
Also known as >50% attack or a *double spend* attack.
An attacker can make a payment, wait till the merchant accepts some number of *confirmations* and provides the service, then starts mining a parallel chain of blocks starting with a block before the transaction.
This parallel blockchain then includes another transaction that spends the same *outputs* on some other address.
When the parallel chain becomes more *difficult*, it is considered a *main chain* by all nodes and the original transaction becomes invalid.
Having more than a half of total *hashrate* guarantees possibility to overtake chain of any length, hence the name of an attack (strictly speaking, it is "more than 50%", not 51%).
Also, even 40% of hashrate allows making a double spend, but the chances are less than 100% and are diminishing exponentially with the number of confirmations that the merchant requires.

This attack is considered theoretical as owning more than 50% of hashrate might be much more expensive than any gain from a *double spend*.
Another variant of an attack is to disrupt the network by mining empty blocks, censoring all transactions.
An attack can be mitigated by blacklisting blocks that most of "honest" miners consider abnormal.
Under normal conditions, miners and mining pools do not censor blocks and transactions as it may diminish trust in Bitcoin and thus their own investments.
51% attack is also mitigated by using *checkpoints* that prevent *reorganization* past the certain block.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-51-percent-attack,
* cpt.btc51-percent-attack,

btcpbm'Denial-of-service

Description::
Denial_of_Service:
Is a form of attack on the network.
Bitcoin *nodes* punish certain behavior of other nodes by banning their IP addresses for 24 hours to avoid DoS.
Also, some theoretical attacks like *51% attack* may be used for network-wide DoS.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-denial-of-service,
* cpt.btndenial-of-service,
* cpt.btnDoS,

btcnet'Human (btchmn)

Name::
* cpt.btchmn,
* cpt.btchuman,
* cpt.btccommunity,

AddressWpg::
* http://themonetaryfuture.blogspot.gr/2016/05/how-i-met-satoshi.html,
* http://www.drcraigwright.net/
* https://bitcointalk.org/
* https://bitcoin.org/en/community,
* http://motherboard.vice.com/blog/who-is-satoshi-nakamoto-the-creator-of-bitcoin,

Specific::
* Nakamoto.Satoshi,
* Gavin Andresen
* Hal Finney
* Mark Karpeles
* Nick Szabo
* Amir Taaki
* Winklevoss twins
* Antonopoulos.Andreas,

btchmn'mailing-list

AddressWpg::
* https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev,

btchmn.MINER

Description::
blocks are created by users known as "miners" who use specialized software or equipment designed specifically to create blocks.
[https://en.wikipedia.org/wiki/Block_chain_%28database%29]

Name::
* cpt.bitcoin-miner,
* cpt.btcminer,

NameGreek::
* ενν.εξορύκτης-μπικόιν,

btcminer'reward (link)

btchmn.RECEIVER

Name::
* cpt.btcreceiver,

btchmn.SPENDER

Name::
* cpt.btcspender,

btchmn.USER

Description::
Users of the system create transactions which are loosely passed around from node to node on a best-effort basis.
[https://en.wikipedia.org/wiki/Block_chain_%28database%29]

Name::
* cpt.btcuser,
* cpt.btcnet'user,

btchmn.Antonopoulos.Andreas

Description::
Andreas M. Antonopoulos
Public Speaker | Author | Coder | Entrepreneur | Commentator

Author of “Mastering Bitcoin” by O’Reilly Media
MasteringBitcoin

Follow @aantonop on Twitter

Andreas M. Antonopoulos is a technologist and serial entrepreneur who has become one of the most well-known and well-respected figures in bitcoin. As an engaging public speaker, teacher and writer, Andreas makes complex subjects accessible and easy to understand. As an advisor, he helps startups recognize, evaluate, and navigate security and business risks.

Andreas literally grew up with the Internet, starting his first company, an early BBS and proto-ISP, as a teenager in his home in Greece. He earned degrees in Computer Science, Data Communications and Distributed Systems from University College London (UCL), recently ranked in the world’s top 10 universities. After moving to the US Andreas co-founded and managed a successful technology research company, and in that role advised dozens of Fortune 500 company executives on networking, security, data centers and cloud computing. More than 200 of his articles on security, cloud computing and data centers have been published in print and syndicated worldwide. He holds 2 patents in networking and security.

In 1990, Andreas started teaching on various IT topics in private, professional and academic environments. Andreas honed his speaking skills in front of audiences ranging in size from five executives in a boardroom to thousands of people in large conferences. With more than four hundred speaking engagements under his belt he is considered a world-class and charismatic public speaker and teacher. In 2014, he was appointed as a teaching fellow with the University of Nicosia, the first university in the world to offer a Masters Degree in Digital Currency. In this role, he helped to developed the curriculum and co-taught the Introduction to Digital Currencies course, offered as a MOOC (massively open online course), through the University.

As a bitcoin entrepreneur, Andreas has founded a number of bitcoin businesses and launched several community open-source projects. He serves as an advisor to several bitcoin and crypto-currency companies. He is a widely published author of articles and blog posts on bitcoin, is a permanent host on the popular Let’s Talk Bitcoin Podcast, and a frequent speaker at technology and security conferences worldwide.
[http://antonopoulos.com/]

Name::
* cpt.hmn.Antonopoulos.Andreas,
* cpt.Andreas-Antonopoulos,
* cpt.Antonopoulos.Andreas,

AddressWpg::
* https://antonopoulos.com/
* https://github.com/aantonop/bitcoinbook/blob/develop/book.asciidoc,

btchmn.Back.Adam

Description::
Adam Back, Ph.D.
President
Having worked on e-cash protocols since 1995, Adam is an applied cryptographer and inventor of the hashcash proof-of-work and decentralized mining used in Bitcoin. In addition to implementing credlib, he was an e-cash consultant to Nokia and later to Credentica (acquired by Microsoft). Adam was an architect and cryptographer at Zero-Knowledge Systems working on its Freedom network, a precursor to Tor. He has also consulted for leading security companies, including oneID, Vmware and QWcap. Most recently, Adam co-founded Picorp, which was acquired by EMC and where he was CSO of the company’s consumer division, Decho. Adam holds a Ph.D. in distributed systems and computer science from the University of Exeter.
[https://www.blockstream.com/team/]

Name::
* cpt.hmn.Back.Adam,
* cpt.Adam-Back,
* cpt.Back.Adam,

btchmn.Nakamoto.Satoshi (btchmnSnt)

Description::
Satoshi Nakamoto is the name used by the unknown person or persons who designed bitcoin and created its original reference implementation. As a part of the implementation, they also devised the first blockchain database. In the process they were the first to solve the double spending problem for digital currency. They were active in the development of bitcoin up until December 2010.
[https://en.wikipedia.org/wiki/Satoshi_Nakamoto] {2017-05-06}

Name::
* cpt.bcnhmn.Nakamoto.Satoshi,
* cpt.btchmn.Nakamoto.Satoshi,
* cpt.btchmnSnt,
* cpt.btchmn.Satoshi-Nakamoto,
* cpt.hmn.Nakamoto.Satoshi,
* cpt.Satoshi-Nakamoto,
* cpt.Nakamoto.Satoshi,

Description::
Blockchain technology is the technological basis of Bitcoin, first described by its mysterious author Satoshi Nakamoto in his white paper “Bitcoin: A Peer-to-Peer Electronic Cash System”, published in 2008.
[https://ethereum-homestead.readthedocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain]
===
In November 2008, a paper, authored (probably pseudonymously) by Satoshi Nakamoto, was posted on the newly created Bitcoin.org website with the title ‘Bitcoin: A Peer-to-Peer Electronic Cash System’.
The eight-page document described methods of using a peer-to-peer network to generate "a system for electronic transactions without relying on trust" and laid down the working principles of the cryptocurrency.
[http://www.coindesk.com/information/bitcoin-glossary/]
===
Satoshi left the project in late 2010 without revealing much about himself.
[https://bitcoin.org/en/faq#who-created-bitcoin]
===
A pseudonym of an author of initial Bitcoin implementation.
There are multitude of speculations on who and how many people worked on Bitcoin, of which nationality or age, but no one has any evidence to say anything definitive on that matter.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]
===
Satoshi_Nakamoto:
The name used by the original inventor of the Bitcoin protocol, who withdrew from the project at the end of 2010.
[http://www.coindesk.com/information/bitcoin-glossary/]

btcnet'Organization (btcogn)

Name::
* cpt.btcogn,
* cpt.bitcoin-system-organization,
* cpt.btcogn,

btcogn.BITCOIN-FOUNDATION

Name::
* cpt.bitcoin-foundation,

Σύλληψη ενός εκ των «πρωτοπόρων» του Bitcoin
Τετάρτη, 29 Ιανουαρίου 2014 16:06 UPD:16:11
REUTERS/LUCAS JACKSON
Ο αντιπρόεδρος του Ιδρύματος Bitcoin Τσάρλι Σρεμ κατά την έξοδό του από το Ομοσπονδιακό δικαστήριο του Μανχάταν στη Νέα Υόρκη.

Για ξέπλυμα χρημάτων συνελήφθη την Κυριακή στο αεροδρόμιο Κένεντι της Νέας Υόρκης ο 24χρονος Τσάρλι Σρεμ, ένας εκ των πλέον επιφανών υποστηρικτών της καθιέρωσης του διαδικτυακού νομίσματος, Bitcoin.
Ο Σρεμ συνελήφθη κατόπιν έρευνας της αμερικανικής υπηρεσίας Δίωξης Ναρκωτικών (DEA), καθώς κατηγορείται ότι, μαζί με συνεργό του, χρησιμοποίησαν bitcoins για να «ξεπλύνουν» χρήματα από πωλήσεις ναρκωτικών που σχετίζονταν με τη διαβόητη online αγορά Silk Road (η λειτουργία του τερματίστηκε κατόπιν επέμβασης των αρχών τον Οκτώβριο).
Σημειώνεται ότι ο Σρεμ ήταν αντιπρόεδρος του Ιδρύματος Bitcoin (Bitcoin Foundation), που έχει ως στόχο την καθιέρωση/ ευρεία αποδοχή του διαδικτυακού νομίσματος, και διευθύνων σύμβουλος, συνιδρυτής και επιβλέπων του ανταλλακτηρίου BitInstant.com.
Όπως έγινε γνωστό την Τρίτη, ο Σρεμ παραιτήθηκε από τη θέση του ως αντιπροέδρου του ιδρύματος μετά τη σύλληψή του.
Επίσης, συνελήφθη και ο 52χρονος Ρόμπερτ Φαϊέλα, (BTCKing) στη Φλόριντα.
Ειδικότερα, ο Σρεμ κατηγορείται ότι επέτρεψε στον Φαϊέλα να χρησιμοποιήσει το BitInstant για να αγοράσει μεγάλα ποσά bitcoins (αξίας ενός εκατ. δολαρίων), για να τα πουλήσει σε χρήστες του Silk Road που επιθυμούσαν να αγοράσουν ναρκωτικά. Σύμφωνα με τις αρχές, ο Σρεμ ήξερε ότι τα bitcoins προορίζονταν για αυτή τη χρήση.

EURONEWS
Η.Π.Α: Συνελήφθησαν δύο άτομα που ξέπλεναν χρήματα χρησιμοποιώντας bitcoin
Εκπρόσωπος του Bitcoin Foundation εξέφρασε την έκπληξη του ιδρύματος από την εξέλιξη της υπόθεσης, διαχωρίζοντας τη θέση του από τις συγκεκριμένες δραστηριότητες.
Το BitInstant ήταν ένα από τα μεγαλύτερα ανταλλακτήρια bitcoins στο Ίντερνετ, ωστόσο η πρόσβαση σε αυτό δεν ήταν δυνατή για κάποιο χρονικό διάστημα, όπως δήλωσε στο BBC ο Μάικ Χιρν, στέλεχος του συμβουλίου του Bitcoin Foundation.
[http://www.naftemporiki.gr/story/758439]

btcogn.SERVICE

Name::
* cpt.btcnet'service,
* cpt.bitcoin-service,
* cpt.btcService-organization,
* cpt.ognBtcsvc,

Specific::
* http://bitcoinconsultant.net/trade/

btcogn.EXCHANGE (btcognX)

Description::
Exchange:
A central resource for exchanging different forms of money and other assets.
Bitcoin exchanges are typically used to exchange the cryptocurrency for other, typically fiat, currencies.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.bitcoin-exchange,
* cpt.btcexchange,

btcognX'Resource

AddressWpg::
* https://twitter.com/TuurDemeester/status/820332549469835264,

SPECIFIC

Specific::
* https://bitcoinsgreece.com/
* https://www.mtgox.com/
Popular Bitcoin Currency Exchanges

(New York)    BitInstant
- Cash Deposit (USA, Russia, Brazil)

(New York)    BitFloor.com
- Cash Deposits (Chase, Wells Fargo)
- ING person2person
- Wire Transfer

(London)    Intersango.com
- ACH
- Dwolla
- Wire Transfer

(Tokyo)    MtGox.com
- Cash Deposit (BitInstant)
- Dwolla
- Wire Transfer

(Slovenia)    BitStamp.net
- Cash Deposit (BitInstant)
- SEPA Transfer
- Wire Transfer

(Atlanta)    CampBX.com
- Check, Money Order
- Dwolla
- Wire Transfer

(NSW, Australia)    CryptoXChange.com
- Cash Deposit (BitInstant)
- Dwolla
- Bank Transfer

(Moscow)    BTC-e.com
- Cash Deposit (BitInstant)
- SEPA Transfer
- Wire Transfer

(Hadera, Israel)    Bitcoil.co.il
- Bank Transfer

(Fujian, China)    BTCChina.com
[http://lovebitcoins.org/exchange.html]

btcognX.Cashila

Description::
The bridge between bitcoin and euro.
Pay bills, send and receive money. Fast.
[https://www.cashila.com/]

Name::
* cpt.Cashila-ogn,

AddressWpg::
* https://www.cashila.com/about-us,

btcognX.Mt.Gox

Description::
Mt.Gox:
One of the first bitcoin exchanges, and at one time the most popular.
Mt.Gox has since gone into administration.
Based in Japan, the exchange was started by Jed McCaleb in 2010.
Read the latest Mt.Gox news.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.btcMt.Gox,

btcognX.OTC

Description::
OTC_exchange:
An exchange in which traders make deals with each other directly, rather than relying on a central exchange to mediate between them.
[http://www.coindesk.com/information/bitcoin-glossary/]

Name::
* cpt.btcOTC-exchange,

btcogn.CLOUD-MINING

Description::
Most Bitcoin Cloud Mining Companies are Scams
Like the heading says, most cloud mining contracts are scams. Why? Because it’s easy for companies to take peoples’ money, and then not pay out. A company can claim to be a cloud mining company without any proof of actually owning any hardware.
So remember: 99% of cloud mining companies are scams.
Which Companies Are Not Scams?
There is only one cloud mining company we are willing to recommend on this site: Genesis Mining.
Just because it is not a scam, however, does not mean that you will make a profit by using it.
[https://www.hobbymining.com/bitcoin-cloud-mining/]

Name::
* cpt.bitcoin-cloud-mining,
* cpt.btccloud-mining,

btcogn.MINING-POOL

Description::
What is a Mining Pool?
Mining, once done on the average home computer, is now mostly done in large, specialized warehouses. These warehouses usually direct their hashing power towards mining pools. What is a mining pool? Here’s the definition from Buy Bitcoin Worldwide:

Mining pools are groups of cooperating miners who agree to share block rewards in proportion to their contributed mining hashing power. While mining pools are desirable to the average miner as they smooth out rewards and make them more predictable, they unfortunately concentrate power to the mining pool’s owner. Miners can, however, choose to redirect their hashing power to a different mining pool at anytime.

While we can see which mining pools are the largest, it’s important to understand that the hash power pointed towards a mining pool isn’t necessarily owned by the mining pool itself. There are a few cases, like with BitFury and KnCMiner, where the company itself runs the mining operation but doesn’t run a mining pool.

Bitcoin miners can switch mining pools easily by routing their hash power to a different pool. The market share of pools is constantly changing. To make the list of top 10 miners, we looked at blocks found over the past 6 months using data from BlockTrail. The size of mining pools is constantly changing. We will do our best to keep this posted up-to-date. Note that if you cloud mine then you don’t need to select a pool; the cloud mining company does this automatically.
[https://www.hobbymining.com/bitcoin-mining-pools/]

Name::
* cpt.bitcoin-mining-pool,
* cpt.btcmining-pool,

btcogn.WALLET

ognBtc.Blocktrail

Description::
A Powerful Bitcoin Wallet
Blocktrail is a Bitcoin wallet that puts you in full control of your Bitcoin
[https://www.blocktrail.com/]

btcogn.BitNation

Name::
* cpt.bitnation,

AddressWpg::
* https://bitnation.co/ (Colombia)
* https://github.com/Bit-Nation,

CONSTITUTION:
* https://github.com/Bit-Nation/BITNATION-Constitution,

btcogn.Stashcrypto

Name::
* cpt.stashcrypto,

AddressWpg::
* http://stashcrypto.com/

btcogn.MERCHANT

Name::
* cpt.bitcoin-merchant,
* cpt.bitcoin-shopping-organization,
* cpt.btcmerchant,

Specific::
* bitit https://bitit.gift/

Purse

Description::
Purse is a marketplace that connects shoppers with unused gift cards.
Shoppers pay with bitcoins at a huge discount, and Earners liquidate gift cards.
[https://purse.io/]

Name::
* cpt.btcpurse,

AddressWpg::
* https://purse.io/

btcogn.EXCHANGE

Description::
Digital currency exchangers (DCEs) or Bitcoin exchanges are businesses that allow customers to trade digital currencies for other assets, such as conventional fiat money, or different digital currencies.[1] They can be market makers that typically take the bid/ask spreads as transaction commissions for their services or simply charge fees as a matching platform.[1]
DCEs may be brick-and-mortar businesses, exchanging traditional payment methods and digital currencies, or strictly online businesses, exchanging electronically transferred money and digital currencies.[2] Most digital currency exchanges operate outside of Western countries, avoiding regulatory oversight and complicating prosecutions, but DCEs often handle Western fiat currencies, sometimes maintaining bank accounts in several countries to facilitate deposits in various national currencies.[3][4] They may accept credit card payments, wire transfers, postal money orders, or other forms of payment in exchange for digital currencies, and many can convert digital currency balances into anonymous prepaid cards which can be used to withdraw funds from ATMs worldwide.[3][4]
Some digital currencies are backed by real-world commodities such as gold.[5]
Creators of digital currencies are often independent of the DCEs that trade the currency.[4] In one type of system, digital currency providers, or DCPs, are businesses that keep and administer accounts for their customers, but generally do not issue digital currency to those customers directly.[2][6] Customers buy or sell digital currency from DCEs, who transfer the digital currency into or out of the customer's DCP account.[6] Some DCEs are subsidiaries of DCP, but many are legally independent businesses.[2] The denomination of funds kept in DCP accounts may be of a real or fictitious currency.[6]
https://en.wikipedia.org/wiki/Digital_currency_exchanger
===
The easiest way to obtain bitcoins is to receive them from another person. This can be done as an in-person trade, or you can accept bitcoins for your business using some business tools.

It is also easy to buy bitcoins at a currency exchange. There are many online currency exchanges that let you buy and sell bitcoins for US Dollars, Euros, Pounds, and many other currencies.

You can fund your exchange account with a cash deposit or electronic funds transfer. To learn more about cash deposits, visit BitInstant.com.
[http://lovebitcoins.org/exchange.html]

Name::
* cpt.bitcoin-exchange-ogn,
* cpt.btcmny'exchanger,
* cpt.btcnet'exchange,
* cpt.bitcoin-exchange,
* cpt.bitcoin-marketplace,
* cpt.bitcoin-exchange,

NameGreek::
* ενν.ανταλλακτήριο-μπιτκόιν,

btcogn.PAYMENT-PROCESSOR

Name::
* cpt.bitcoin-internet-payment-system,
* cpt.bitcoin-payment-processor,
* cpt.bitcoin-transaction-service,

Specific::
* https://bips.me/
* https://bitpay.com/

btcogn.PAYROLL

Name::
* cpt.bitcoin-salary-payment-system,

AddressWpg::
* http://cointelegraph.com/news/bitcoin-payroll-hits-germany-bitpay-partnering-with-pey, {2016-03-29}

btcnet'Evaluation (btceln)

Name::
* cpt.btceln,
* cpt.btcevaluation,
* cpt.btcnet'evaluation,

Evaluation::
The current debate centers on a perceived tradeoff between the ability to process a growing number of transactions, on the one hand, and maintaining a highly decentralized mechanism for processing transactions on the other.
[http://www.forbes.com/sites/realspin/2015/09/08/new-bitcoin-development-spurs-unnecessary-fear-of-centralization/]

Evaluation::
5. Could you speculate on what the future may hold for bitcoin specifically and digital currencies generally?

First it’s important to recognize that most “digital currencies” are not really digital currencies at all, because they are pegged to standard currencies. Credits in your Paypal account are really just USD-backed; they are not a unique currency themselves. Other “digital currencies” such as Facebook Credits, can be created out of nothing and without limit, so they are not serious money (ironically, the USD is more like Facebook Credits than Bitcoin, because both USD and Facebook Credits can be created out of thin air, whereas Bitcoin cannot be).

So Bitcoin is the first, what should be called “true” digital currency. It is a scarce, digital commodity with properties that make it perfect for use as money, and so it is used for this purpose.

As the world starts to realize the benefits of a real digital currency, it will become used in countless ways. It will become as ubiquitous as email (and for the very same reason – email made the cost of written communication near-zero and Bitcoin makes the cost of monetary communication near-zero). Really, there is no reason it should cost $45 to send a “wire transfer” of money between two people. The bank is just changing digital numbers in a digital database – why does it cost $45 and take 3 days? It’s absurd, and Bitcoin finally offers a real alternative.

Bitcoin is an invention which people will look back upon and say, “wow, that was obviously needed,” just as we look back on the internet today. And, like the internet, Bitcoin will change the way people interact and do business around the world. But, it’s a process that takes years, and it’s only just getting started.
[http://keepyourassets.net/2012/09/27/bitcoin-the-first-five-questions/]

btcnet'Advantage (pro)

Name::
* cpt.btcnet'benefit,
* cpt.btcadvantage,
* cpt.btcpro,
* cpt.bitcoin-favorable-factor,
* cpt.bitcoin-pro,

Specific::
* cheap micropayments,
* fast transactions,
* global interoperability, international currency,
* trustless (you don’t have to trust anyone)
* Bitcoins cannot be counterfeited,

the benefits of Bitcoin - fast transactions, global interoperability, cheap micropayments
[http://cointelegraph.com/news/bitcoin-in-africa-could-leapfrog-just-like-cellular-phones-replaced-landline]

2. What are the major advantages of bitcoin? How does bitcoin differ from other international payment systems like PayPal?

Advantages include:

1. Zero fee to transfer money
2. Transfers are instant. No holiday or weekend delays.
3. Works globally, no territory restrictions
4. Enables the storage and transfer of wealth with zero counter-party risk (ie – you don’t have to trust anyone)
5. Excellent hedge against monetary debasement (inflation)
6. Any amount can be sent (perfect for microtransactions under a penny, for example)
7. Zero chargeback risk (this means, once a merchant receives Bitcoin, there is no risk of a payment reversal or fraud. The funds are immediately “good”)
8. Ability to move around capital controls (for example, to get money out of China or Argentina)
9. Anyone can accept and use Bitcoin.
10. Open-source, continually upgradable. Anyone can adapt and improve the software and build with it.

How does this differ from PayPal? PayPal doesn’t share any of the above advantages, except perhaps for number 2. It’s important to realize that PayPal is just a payment system for US dollars using the traditional banking infrastructure, while Bitcoin is a payment system for its own currency unit: bitcoins, and is entirely separate from the traditional banking infrastructure.
[http://keepyourassets.net/2012/09/27/bitcoin-the-first-five-questions/]

BITCOIN IS BETTER THAN REGULAR CURRENCIESSome of the reasons Bitcoin is better than regular currencies:
Bitcoin is an international currency.
Bitcoin can be spent all over the world.
Bitcoins cannot be counterfeited.
There is no printing technology that will ever be able to fool the bitcoin network.
Bitcoin cannot be devalued.
Only 21 million bitcoins will ever be issued. Unlike regular currencies, since Bitcoin is not controlled by any government or bank, the raising of a debt ceiling and quantitative easing can not devalue bitcoins.
[https://www.bitstamp.net/help/what-is-bitcoin/]

Use Bitcoins instead of PayPal

Not linked to your bank account
No central authority telling you what you can and cannot do with your money
Available in any country
Your account can never be seized or closed
Use Bitcoins for Remittance

Eliminate the high fees
No minimum or maximum amount
Available in any country
Use Bitcoins instead of Debit or Credit Cards

Not linked to your bank account
No risk of identity theft
No chance of overdraft fees or overlimit fees
No monthly fees or annual fees
Use Bitcoins instead of Online Banking

Deposits are available within minutes
No International Boundaries: send and receive anywhere in the world for no additional fees
Unlimited Access: have full control of your money, 24 hours/day, 7 days/week, from anywhere in the world
[http://lovebitcoins.org/introduction1.html]

btcnet'Disadvantage (con)

Name::
* cpt.bitcoin-cons,
* cpt.bitcoin-problem,
* cpt.bitcoin-issue,

3. What are the major liabilities of bitcoin? Is it associated with any major security problems?

Disadvantages include:

1. Steep learning curve
2. Requires personal responsibility (if you delete your wallet without making backups, your money is gone).
3. Value fluctuates and is relatively volatile (no guarantee that the price tomorrow will be the same as today).

Regarding security problems – this is an important point. All of the “bitcoin hacks” and security breaches to date have not been against Bitcoin itself, but rather against various companies and individuals who did not secure things properly. Consider a bank that leaves its doors and vault unlocked at night… it will find a theft has occurred in the morning. This doesn’t mean the US dollar was hacked, or that banking as an institution is necessarily at fault, but simply that one specific bank screwed up. The same is true with Bitcoin.

Frankly, it is very easy to lose your bitcoins if you are foolish, and it is very easy to never lose them if you are smart. The system requires some personal responsibility and due diligence. Because there is no company behind Bitcoin itself, there is no tech support you can call (this is the same with cash or bars of gold – if you lose them, they are gone, and nobody can get them back for you).

4. Is bitcoin commonly used to facilitate illegal transactions? Is it, as it has been characterized, a currency of crime?

Bitcoin, like any money, can be used for illegal transactions. Because of its private, secure nature, it is impossible to know the extent to which it is used for such purposes (just like we don’t know how much cash is used for illicit activity, but we all know that it happens).

Certainly the media has characterized Bitcoin as a “currency of crime”, because A) they don’t understand it and B) crime makes a good news story. Bitcoin is a highly powerful technology (like fire, or automobiles, or the internet itself) and thus it carries risk and danger. It can be used for good or evil – Bitcoin is morally agnostic, it’s just a tool. Now, to be sure, it’s a very good tool , and this means criminals will love to use it, just as good people will love to use it.

Likely for the foreseeable future, US dollar cash will remain the preferred currency of crime.
[http://keepyourassets.net/2012/09/27/bitcoin-the-first-five-questions/]

BITCOIN RISKS Do not invest anything in Bitcoin you can not afford to lose. Investing in Bitcoin or any other currency is not without risk. For example, any of the following could happen to Bitcoin:
Another crypto-currency might surpass Bitcoin
Several have already tried and failed.
A weakness in the encryption might be discovered
This is the same encryption used in online banking. Like banking systems, if a flaw is found in a particular algorithm, the Bitcoin client can be upgraded to use different encryption algorithms.
Governments might try to ban or regulate Bitcoin
This would be similar to the government banning the Internet because of illegal uses. Banning the Internet is unlikely because it would place the government and its people at a strategic communications disadvantage. Banning bitcoins, is similarly unlikely as it would place the government and its people at a strategic economic disadvantage.
An unfixable flaw might be discovered in the Bitcoin protocol
People have been trying to find a flaw for over two years.
[https://www.bitstamp.net/help/what-is-bitcoin/]

quantity

The Economic Problem is entirely separate. Whereas the Security Problem may wreck BTC, if BTC is not wrecked and takes over a large macro-economy (as people abandon government issued money for BTC), it is BTC that will wreck the economy. Why? Because it is designed to mimic the Gold Standard – the monetary system that caused one depression after the other, from the 19th Century until 1929, and which was replaced because capitalism cannot breathe under a fixed quantity of money.
Mr Nakamoto, BTC’s creator (whoever he, she or they may be) used ‘built-in scarcity’ in order to ensure that BTC would grow in value relative to the dollar, the euro, the yen etc. and thus attract ‘disciples’ to the BTC community. Unwittingly, however, Nakamoto was reinventing a deflationary currency by simulating a Gold Standard through the BTC algorithm. So, if the Security Problem does not shoot down BTC first, and BTC or something similar ‘takes over the world of money’, we are on our way to re-engineering the crashes of 1884,1890,1896,1901,1907 and 1929…
[http://yanisvaroufakis.eu/2014/03/13/on-bitcoins-potential-qa-on-what-bitcoin-can-and-cannot-offer-a-troubled-world/]

btcnet'performance

Description::
Today the Bitcoin network is restricted to a sustained rate of 7 tps due to the bitcoin protocol restricting block sizes to 1MB.
VISA handles on average around 2,000 transactions per second (tps), so call it a daily peak rate of 4,000 tps. It has a peak capacity of around 56,000 transactions per second, [1] however they never actually use more than about a third of this even during peak shopping periods. [2]
PayPal, in contrast, handles around 10 million transactions per day for an average of 115 tps. [3]
Let's take 4,000 tps as starting goal. Obviously if we want Bitcoin to scale to all economic transactions worldwide, including cash, it'd be a lot higher than that, perhaps more in the region of a few hundred thousand tps. And the need to be able to withstand DoS attacks (which VISA does not have to deal with) implies we would want to scale far beyond the standard peak rates. Still, picking a target let us do some basic calculations even if it's a little arbitrary.
[https://en.bitcoin.it/wiki/Scalability], 2015-09-04,

btcnet'Relation-to-gold

Description::
BITCOIN IS BETTER THAN GOLDFor thousands of years, gold has been one of the safest stores of value. Many people hold gold to reduce their fiat risk. Bitcoin has many advantages over gold:
Gold is not divisible
You can not easily cut up gold to give people small amounts. Bitcoin is easily divisible to 8 decimal places.
Gold is not instantly assayable
You can’t instantly tell if gold is pure. You can instantly prove you have real bitcoins.
Gold is not instantly weighable
You need a scale to weigh gold. You can instantly prove how many bitcoins you have.
Gold is not transmittable over the Internet
Sending gold notes has counterparty risk. Bitcoins are easily sent on the Internet.
Gold can be outlawed and confiscated
The US government can and has in the past made it illegal to own gold. You can memorize your Bitcoin private key.
[https://www.bitstamp.net/help/what-is-bitcoin/]

btcnet'Law (btclaw)

Description::
The legal status of bitcoin varies substantially from country to country and is still undefined or changing in many of them.
While some countries have explicitly allowed its use and trade, others have banned or severely restricted it.
Likewise, various government agencies, departments, and courts have classified bitcoins differently.
While this article provides the legal status of bitcoin, regulations and bans that apply to this cryptocurrency likely extend to similar systems as well.
Steven Strauss, a Harvard public policy professor, suggested that governments could outlaw bitcoin in April 2013,[1] and this possibility was mentioned again in a July 2013 regulatory filing made by a bitcoin investment vehicle.[2]
However, the vast majority of nations have not done so as of 2014.
Bitcoin is illegal in Bangladesh,[3] Bolivia,[4] Ecuador,[5] Kyrgyzstan,[6] Russia,[7] and Vietnam.[8]
It has also been reported illegal in Indonesia.[9]
[https://en.wikipedia.org/wiki/Legality_of_bitcoin_by_country]

Name::
* cpt.btclaw,
* cpt.bitcoin-law,
* cpt.bitcoin-legal-status,

AddressWpg::
* https://en.wikipedia.org/wiki/Legality_of_bitcoin_by_country,

Description::
Bitcoins are illegal because they're not legal tender

In March 2013, the U.S. Financial Crimes Enforcement Network issues a new set of guidelines on "de-centralized virtual currency", clearly targeting Bitcoin. Under the new guidelines, "a user of virtual currency is not a Money Services Businesses (MSB) under FinCEN's regulations and therefore is not subject to MSB registration, reporting, and record keeping regulations." [2] Miners, when mining bitcoins for their own personal use, aren't required to register as a MSB or Money Transmitter. [3]

In general, there are a number of currencies in existence that are not official government-backed currencies. A currency is, after all, nothing more than a convenient unit of account. While national laws may vary from country to country, and you should certainly check the laws of your jurisdiction, in general trading in any commodity, including digital currency like Bitcoin, BerkShares, game currencies like WoW gold, or Linden dollars, is not illegal.
[https://en.bitcoin.it/wiki/Myths]

Description::
Bitcoins will be shut down by the government just like Liberty Dollars were

Liberty Dollars started as a commercial venture to establish an alternative US currency, including physical banknotes and coins, backed by precious metals. This, in and of itself, is not illegal. They were prosecuted under counterfeiting laws because the silver coins allegedly resembled US currency.

Bitcoins do not resemble the currency of the US or of any other nation in any way, shape, or form. The word "dollar" is not attached to them in any way. The "$" symbol is not used in any way.

Bitcoins have no representational similarity whatsoever to US dollars.

Of course, actually 'shutting down' Liberty Dollars was as easy as arresting the head of the company and seizing the offices and the precious metals used as backing. The decentralized Bitcoin, with no leader, no servers, no office, and no tangible asset backing, does not have the same vulnerability.
[https://en.bitcoin.it/wiki/Myths]

btclaw'LEGAL

Specific::
* Australia    Yes[10]   
* Belgium    Yes[12]   
* Brazil    Yes[14]    Bitcoin is regulated under a 2013 law that discusses both mobile payment systems and electronic currencies.[14]
* Canada    Yes[15]    Bitcoin is regulated under anti-money laundering and counter-terrorist financing laws in Canada.[16]
* Colombia    Yes[18]   
* Croatia    Yes[19]   
* Czech Republic    Yes[20]   
* Cyprus    Yes[21]   
* Denmark    Yes[22]   
* France    Yes[23]   
* Germany    Yes[24]   
* Hong Kong    Yes[25]   
* Israel    Yes[31]   
* Italy    Yes[32]
* Japan    Yes[33]   
* Jordan    Yes    The government of Jordan has issued a warning discouraging the use of bitcoin and other similar systems.[34]
* Lebanon    Yes    The government of Lebanon has issued a warning discouraging the use of bitcoin and other similar systems.[34]
* New Zealand    Yes[35]   
* Norway    Yes[36]   
* Poland    Yes[37]   
* Singapore    Yes[41]   
* Slovenia    Yes[42]   
* South Korea    Yes[43]    While not illegal in the country, Korean authorities will prosecute illegal activity involving bitcoin[44] and have indicted at least one individual for purchasing drugs with bitcoin.[45]
* Spain    Yes[46]   
* Switzerland    Yes[47]    Bitcoin businesses in Switzerland are subject to anti-money laundering regulations and in some instances may need to obtain a banking license.[47]
Sweden    Yes[48]   
* Turkey    Yes[52]   
* United Kingdom    Yes[53]   
* United States    Yes

btclaw'RESTRICTED

Specific::
* China (PRC)    Restricted[17]    Financial institutions cannot use or involve themselves with bitcoins.[17]
* Iceland    Restricted[26]    According to a 2014 opinion from the Central Bank of Iceland "there is no authorization to purchase foreign currency from financial institutions in Iceland or to transfer foreign currency across borders on the basis of transactions with virtual currency. For this reason alone, transactions with virtual currency are subject to restrictions in Iceland."[26] This does not stop[27] businesses in Iceland from mining bitcoins.[28]
* Taiwan    Restricted[7]    Bitcoin ATMs are banned here[7] although through a convoluted process, bitcoins can be purchased at some convenience stores kiosks that also sell train tickets and allow paying bills.[49]

btclaw'ILLEGAL

Specific::
* Argentina,
* Bangladesh,
* Bolivia,
* Ecuador,
* Indonesia,
* Kyrgyzstan,
* Russia,
* Thailand,
* Vietnam,

Description::
Bitcoin is illegal in
* Bangladesh,[3]
* Bolivia,[4]
* Ecuador,[5]
* Indonesia
* Kyrgyzstan,[6]
* Russia,[7] and
* Vietnam.[8] It has also been reported illegal in Indonesia.[9]
[https://en.wikipedia.org/wiki/Legality_of_bitcoin_by_country]

btcnet'Relation-to-PayPal

Difference between PayPal and Bitcoin international money transfer. (self.Bitcoin)
2016-02-23 19 hours ago ap? mouwe
I sent 100 euro via PayPal to a friend in Mexico today, and he received 1827.09 pesos (91.98 euro, 8% costs). It will take him 3-4 days to withdraw from PayPal to his Mexican bank account.
I also sent him 100 euro worth of bitcoin. I bought the bitcoin at www.bitonic.nl (Dutch exchange), sent it to him, and he withdrew with www.bitso.com (Mexican exchange). He received 1957.87 pesos (98.56 euro, 1.4% costs) and it took 45 minutes (waiting for 4 confirmations).
Adios PayPal !
[https://www.reddit.com/r/Bitcoin/comments/472ppl/difference_between_paypal_and_bitcoin/]

btcnet'Resource (btcrsc)

Name::
* cpt.bitcoin-resource,
* cpt.btcresource,
* cpt.btcrsc,

AddressWpg::
* http://bitcoin.org/
* https://en.bitcoin.it/wiki/Main_Page,
* http://sourceforge.net/projects/bitcoin/
* https://github.com/bitcoin-dot-org/bitcoin.org,
* https://github.com/minium/Bitcoin-Spec/blob/master/Bitcoin.pdf,
===
* http://davidederosa.com/basic-blockchain-programming/
===
* {2017-05-11} https://cointelegraph.com/news/australia-will-recognize-bitcoin-as-money-and-protect-bitcoin-businesses-no-taxes,
* Top 10 Moments in Bitcoin History - Bitcoin.com https://www.youtube.com/watch?v=KplwstaZ_4M,
* https://www.weusecoins.com/
* Bitcoin Is Officially a Commodity, According to U.S. Regulator
The Commodity Futures Trading Commission makes its mark.
http://www.bloomberg.com/news/articles/2015-09-17/bitcoin-is-officially-a-commodity-according-to-u-s-regulator,
* http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/
* Nik Custodio Dec 12, 2013, Explain Bitcoin Like I’m Five:
https://medium.com/@nik5ter/explain-bitcoin-like-im-five-73b4257ac833,
* https://twitter.com/topnewsbitcoin,
* http://www.techiechan.com/?p=1954,
* http://www.spiegel.de/international/business/germany-declares-bitcoins-to-be-a-unit-of-account- a-917525.html,
* http://bitcoinmagazine.com/
* http://lovebitcoins.org/
* http://bitcoin.stackexchange.com/
* https://www.weusecoins.com/en/
* http://bitcoincharts.com/
* https://localbitcoins.com/
* https://bitcointalk.org/
* http://dailyjs.com/2013/08/23/bitcoins/
* https://npmjs.org/package/bitcoin,
* http://www.coindesk.com/information/bitcoin-glossary/
* http://greece.greekreporter.com/2015/04/01/ yanis-varoufakis-greece-will-adopt-the-bitcoin-if-eurogroup-doesnt-give-us-a-deal/
===
* china: http://money.cnn.com/2013/11/18/investing/bitcoin-china/index.html,

Book::
* Adonopoulos: mastering bitcoin https://github.com/aantonop/bitcoinbook,
- https://github.com/bitcoinbook/bitcoinbook/tree/develop,
- In Greek: http://synagonism.net/dirMiwMcs/dirTchInf/book-Mastering-Bitcoin.html,

Tutorial::
* https://bitcoin.org/en/developer-guide,
* https://bitcoin.org/en/developer-reference,
* https://bitcoin.org/en/developer-glossary,
* http://www.givebtc.org/GiveBTC_-_Handbook_for_Non_Profits.pdf,

btcnet'DOING

btcnet'Service (btcsvc)

Description::
Bitcoin is the first fully autonomous system to utilize distributed consensus technology to create a more efficient and reliable global payment network.
[http://docs.bitshares.eu/bitshares/whatis.html]

Name::
* cpt.btcnet'usage,
* cpt.btcstm'service,
* cpt.btcsvc,
* cpt.btcusage,
* cpt.btcnet'service,

AddressWpg::
* http://cointelegraph.com/news/bitcoin-adoption-could-save-india-7-billion,
* http://usebitcoins.info/
* http://www.wired.com/2015/09/wall-street-officially-opens-arms-bitcoin-invaders/

btcnet'market

AddressWpg::
* {2016-05-13} Having overtaken the US, Japan has become the world’s second Bitcoin market, after China.
http://cointelegraph.com/news/what-makes-japan-second-largest-bitcoin-market-potentially-first,

SPECIFIC

Specific::
* ID-service,
* notary-service,
* payment-processing,
* shopping,
* trading,
* voting,
===
* https://proofofexistence.com/about, you can later certify that the data existed at that time.

btcsvc.ID

Name::
* cpt.btcsvc.ID,
* cpt.btcsvc.identification,

Specific::
* bitnation.co,
* https://onename.com/

btcsvc.NOTARIZATION

Description::
Blockchain notarization is an effective way to record marriage contracts, wills, birth certificates, child care contracts, land titles and business deals, among many other records. The security of the blockchain protects the document permanently, ensures its easy access, and proves its authenticity and ownership anytime you need it.
[https://bitnation.co/notary/]

Name::
* cpt.bitcoin-notarization,
* cpt.btcnotarization,

btcsvc.PAYMENT

btcsvc.payment.city

Αυτή είναι η ελβετική πόλη που πληρώνεις με bitcoin
Δημοσιεύθηκε: 14 Μαϊου 2016, 18:15 , Τελευταία Ενημέρωση: 14/05/2016, 16:18
Με το ψηφιακό νόμισμα, bitcoin, θα μπορούν να πληρώνουν τους λογαριασμούς του κάτοικοι στην πόλη Zug της Ελβετίας καθώς ξεκινά η εφαρμογή του εν λόγω πιλτικού προγράμματος από την 1η Ιουλίου. ο δήμαρχος της πόλης Dolfi M?ller ελπίζει πως με αυτό τον τρόπο θα προσελκύσει περισσότερες οικονομικές επιχειρήσεις και τεχνολογικές εταιρείες ώστε να εγκατασταθούν στην περιοχή. Για την ιστορία, έχουν γίνει και παρόμοιες προσπάθειες και σε άλλες χώρες χωρίς όμως άκρως ικανοποιητικά αποτελέσματα.
«Το πιλοτικό πρόγραμμα της κυβέρνησης της πόλης αρχικά βάζει 200 φράγκα όριο για τις δημόσιες συναλλαγές. Στα τέλη του 2016 θα γίνει και η αξιολόγηση του προγράμματος. Τότε ... το δημοτικό συμβούλιο θα αποφασίσει εάν το bitcoin και τα περισσότερα άλλα ψηφιακά νομίσματα μπορούν να γίνουν αποδεκτά ως τρόπος πληρωμής και σε άλλες υπηρεσίες στο μέλλον» αναφέρει χαρακτηριστικά η ανακοίνωση.
[http://www.sofokleousin.gr/archives/297034.html?utm_source=dlvr.it&utm_medium=twitter]

btcsvc.payment.tuition

Description::
Πληρωμές διδάκτρων με Bitcoins στο Πανεπιστήμιο της Λευκωσίας
Παρασκευή, 22 Νοεμβρίου 2013 14:41 UPD:14:45
Η είδηση κάνει το γύρο του κόσμου, καθώς το κυπριακό πανεπιστήμιο παράλληλα παρέχει και τη δυνατότητα για σπουδές διαδικτυακού συναλλάγματος, με σκοπό την καλύτερη κατανόηση του νέου φαινομένου.
Το πρώτο πανεπιστήμιο στον κόσμο το οποίο θα δέχεται πληρωμές διδάκτρων και άλλων τελών με bitcoins θα αποτελέσει το Πανεπιστήμιο της Λευκωσίας, όπως ανακοινώθηκε.
Η είδηση κάνει το γύρο του κόσμου, καθώς το κυπριακό πανεπιστήμιο παράλληλα παρέχει και τη δυνατότητα για σπουδές διαδικτυακού συναλλάγματος, με σκοπό την καλύτερη κατανόηση του νέου φαινομένου.
Το Πανεπιστήμιο της Λευκωσίας (UNic) αποτελεί το μεγαλύτερο ιδιωτικό πανεπιστήμιο στην Κύπρο και ένα από τα μεγαλύτερα αγγλόφωνα πανεπιστήμια στη Μεσόγειο. Πέρα από τις πληρωμές, οι φοιτητές του θα έχουν τη δυνατότητα σπουδών και πάνω στο ίδιο το αντικείμενο, στο πλαίσιο του MSc Degree in Digital Currency, το οποίο είναι σχεδιασμένο για να βοηθήσει τον κάθε ενδιαφερόμενο, από τον χώρο των επιχειρήσεων ή της δημόσιας διοίκησης να καταλάβει καλύτερα τα τεχνικά χαρακτηριστικά του διαδικτυακού νομίσματος, το οποίο «πιθανότατα θα αλληλεπιδράσει με τα υπάρχοντα χρηματοοικονομικά συστήματα», καθώς και θα εξετάζει τις ευκαιρίες για καινοτομία που συνεπάγονται τα συστήματα ψηφιακών συναλλαγμάτων.
«Γνωρίζουμε ότι το ψηφιακό συνάλλαγμα αποτελεί μία αναπόφευκτη τεχνική εξέλιξη η οποία θα οδηγήσει σε σημαντικές καινοτομίες στο online εμπόριο, τα οικονομικά συστήματα, τις διεθνείς πληρωμές και εμβάσματα και την παγκόσμια οικονομική ανάπτυξη. Το ψηφιακό συνάλλαγμα θα δημιουργήσει πιο αποτελεσματικές υπηρεσίες και θα λειτουργήσει ως μηχανισμός για την εξάπλωση των οικονομικών υπηρεσιών σε τομείς του κόσμου που δεν έχουν μεγάλη τραπεζική υποστήριξη» δήλωσε ο Δρ. Χρήστος Βλάχος, μέλος του συμβουλίου του Πανεπιστημίου.
«Θεωρούμε πρέπον να υιοθετήσουμε ψηφιακό συνάλλαγμα ως μία μέθοδο πληρωμών σε όλα τα ιδρύματά μας, σε όλες τις πόλεις και χώρες όπου λειτουργούμε» πρόσθεσε.
Το εν λόγω Master θα διδάσκεται στην αγγλική γλώσσα, τόσο στο campus όσο και online, με τα μαθήματα να ξεκινούν την άνοιξη του 2014. Επίσης, αξίζει να σημειωθεί ότι το UNic προτείνει στην κυπριακή κυβέρνηση την δημιουργία ενός εκτενούς πλαισίου λειτουργίας με σκοπό την εξέλιξη της Κύπρου σε ένα «κέντρο» για εμπόριο, διαχείριση και τραπεζικές συναλλαγές που αφορούν σε Bitcoins.
[http://www.naftemporiki.gr/story/733285]

Name::
* cpt.tuition-payment-with-bitcoin,

btcsvc.SHOPPING

Name::
* cpt.btcsvc.shopping,

AddressWpg::
* {2017-03-03} https://btcmanager.com/the-first-bitcoin-store-of-the-world-opens-in-vienna/

btcogn.Store

Name::
* cpt.btcogn.store,

btcnet'Overstock.com

Description::
Overstock.com, the largest online retailer to adopt bitcoin, says it accounts for less than 0.1 percent of sales.
[http://www.wired.com/2016/02/the-schism-over-bitcoin-is-how-bitcoin-is-supposed-to-work/]

btcsvc.TRADING

Description::
In December, the Ukrainian Stock Exchange also announced it would offer Bitcoin futures trading on the back of what it described as “quite high interest” from investors.
In so doing, Ukraine became the first regulated market in the world to offer the Bitcoin trading option.
[https://cointelegraph.com/news/second-ukraine-bank-launches-blockchain-partnership- {2017-03-24}]

Name::
* cpt.btcsvc.trading,

btcsvc.VOTING

Name::
* cpt.btcsvc.voting,

btcsvc.SecureVote

AddressWpg::
* http://demo.xo1.io/index.html,

XO.1
Aussie start-up to delay bitcoin transactions through anchoring 1.5bn votes to the Bitcoin blockchain over 24 hours starting 16:00, March 6 (GMT)
Stress-test of SecureVote will use 4% of bitcoin network capacity over 24 hours and delay some transactions by over 30 minutes – transaction backlog will take a maximum of 24 hours to clear
Sydney (March 5, 2017):
Australian secure voting start-up XO.1 announced a planned stress-test of their SecureVote application on March 6 GMT, which is planned to use more than 4% of the Bitcoin transaction network verification capacity.
This stress-test will process the equivalent of 1.5 billion electronic votes, verified on the Bitcoin blockchain network, over 24 hours, and during peak periods will delay some transactions by up to 30 minutes.
Co-founder and Chief Technology Officer of XO.1, Max Kaye, explained that the intent of the stresstest was to ensure the scalability and reliability of XO.1’s proprietary verification layer, and apologised for any inconvenience caused to bitcoin users.
“We’re building the world’s most secure voting technology, and while there aren’t currently any elections which would require 1.5bn votes, to prove the reliability and scalability of this technology we made the decision to conduct a stress-test a multitude of times larger than our expected first use cases,” said Mr Kaye.
“Unfortunately, this will cause disruption to some bitcoin users as we will be paying a fee to prioritise
the processing of our transactions. At the network’s anticipated peak processing times, we’ll delay
some transactions by up to 30 minutes, and create a backlog of transactions that will take a maximum of 24 hours to clear.”
SecureVote is the world’s first high-throughput commercially viable secure, verifiable, auditable, and scalable internet voting system, with voting delivered via smart-phone app and local electronic voting machines.
XO.1’s proprietary Copperfield algorithm enables verification of the vote and the vote count without compromising the privacy of the vote itself.
The start-up, which has received $500,000 of early-stage funding to date, is expecting to reach market with a product by the end of 2017.
“A number of technological advances in the past ten years have made this product possible – primarily the development of the blockchain, which ensures we have an immutable record of votes cast, once they’ve been verified,” said Mr Kaye.
“We’ll shortly be commencing another funding round which will allow us to quickly scale and capitalise on our early lead in the space,” concluded Mr Kaye.
Track the progress of the XO.1 SecureVote stress test on the demo at http://demo.xo1.io/index.html
- - Ends - -
Media contact:
Shane Allison | shane@xo1.io |+61 402 219 963
[https://xo1.io/stress-test-pr.pdf]

btcnet'GENERIC

Generic::
* Exchange-value-unit-blockchain-network,

SPECIFIC

btcnet.MAINET

Description::
The original and main network for Bitcoin transactions, where satoshis have real economic value.
[https://bitcoin.org/en/glossary/mainnet]
===
Main Bitcoin network and its blockchain.
The term is mostly used in comparison to testnet.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-mainnet,
* cpt.btcMainnet,
* cpt.btcBitcoin-Main-Network,

btcnet.REGTEST

Description::
A local testing environment in which developers can almost instantly generate blocks on demand for testing events, and can create private satoshis with no real-world value.
[https://bitcoin.org/en/glossary/regression-test-mode]

Name::
* cpt.btcRegtest,
* cpt.btcRegression-Test-Mode,

btcnet.TESTNET

Description::
A global testing environment in which developers can obtain and spend satoshis that have no real-world value on a network that is very similar to the Bitcoin mainnet.
[https://bitcoin.org/en/glossary/testnet]
===
Testnet:
A set of parameters used for testing a Bitcoin network.
Testnet is like *mainnet*, but has a different genesis block (it was reset several times, the latest testnet is *testnet3*).
Testnet uses slightly different *address* format to avoid confusion with main Bitcoin addresses and all nodes are relaying and mining non-standard transactions.
[https://github.com/oleganza/bitcoin-papers/blob/master/BitcoinGlossary.md]

Name::
* cpt.bitcoin-testnet,
* cpt.btcTestnet,
* cpt.btcTesting-Network,

btctestnet'faucet-of-BTC

AddressWpg::
* https://tpfaucet.appspot.com/

btctestnet'use

Description::
To use testnet, use the argument -testnet with bitcoin-cli, bitcoind or bitcoin-qt or add testnet=1 to your bitcoin.conf file as described earlier. To get free satoshis for testing, use Piotr Piasecki’s testnet faucet. Testnet is a public resource provided for free by members of the community, so please don’t abuse it.
[https://bitcoin.org/en/developer-examples#testnet]

btcnet.TESTNET3

Description::
Testnet3:
The latest version of *testnet* with another genesis block.

Name::
* cpt.bitcoin-testnet3,
* cpt.btcTestnet3,

btcnet.EVOLUTING

Name::
* cpt.bitcoin.evolution,
* cpt.btcevolution,

{time.2016.bitcoin, bitcoin2016}:
=== halfing: 11 Jul 2016 22:03:04
The Bitcoin block mining reward halves every 210,000 blocks, the coin reward will decrease from 25 to 12.5 coins.
[http://www.bitcoinblockhalf.com/]

{time.2015, bitcoin2015}:
=== {2015}
The major story from 2015 is undoubtedly the increasing focus on bitcoin's underlying technology, commonly referred to as blockchain or distributed ledger technology (DLT). Many parties, from government authorities to financial institutions, began to examine potential applications of DLT for securities transaction settlement and other use cases.
[http://www.coindesk.com/state-of-bitcoin-blockchain-2016/]
=== {2015-03-31} fraud:
On March 31, 2015, two now-former agents from the Drug Enforcement Administration and the U.S. Secret Service were charged with wire fraud, money laundering and other offenses for allegedly stealing bitcoin during the federal investigation of Silk Road, an underground illicit black market federal prosecutors shut down in 2013.[41]
[https://en.wikipedia.org/wiki/Cryptocurrency]

{time.2014, bitcoin2014}:
=== {2014.02}: Mt.Gox:
In February 2014, cryptocurrency made national headlines due to the world's largest bitcoin exchange, Mt. Gox, declaring bankruptcy. The company stated that it had lost nearly $473 million of their customer's bitcoins likely due to theft. This was equivalent to approximately 750,000 bitcoins, or about 7% of all the bitcoins in existence. Due to this crisis, among other news, the price of a bitcoin fell from a high of about $1,160 in December to under $400 in February.[40]
[https://en.wikipedia.org/wiki/Cryptocurrency]

{time.2013, bitcoin2013}:
=== VALUE:
At the end of August 2013, the value of all bitcoins in circulation exceeded US$ 1.5 billion with millions of dollars worth of bitcoins exchanged daily.
[https://bitcoin.org/en/faq#is-bitcoin-really-used-by-people]
=== {2013-12-05} CHINA
FINANCIAL TIMES
Thursday December 05 2013
BREAKING NEWS
Beijing bans banks from Bitcoin deals
China has taken a tough line against Bitcoin, ruling that it is a virtual product, not a currency, and barring the country’s financial institutions from doing any kind of business in it.
Surging Chinese demand has been one of the main drivers of Bitcoin’s 5000 per cent appreciation this year. The notice from Chinese financial regulators, published on Thursday, is the first official policy ruling from Beijing about the virtual currency.

=== {2013-11-22} University-of-Nicosia
Πληρωμές διδάκτρων με Bitcoins στο Πανεπιστήμιο της Λευκωσίας
Παρασκευή, 22 Νοεμβρίου 2013 14:41 UPD:14:45
Η είδηση κάνει το γύρο του κόσμου, καθώς το κυπριακό πανεπιστήμιο παράλληλα παρέχει και τη δυνατότητα για σπουδές διαδικτυακού συναλλάγματος, με σκοπό την καλύτερη κατανόηση του νέου φαινομένου.
Το πρώτο πανεπιστήμιο στον κόσμο το οποίο θα δέχεται πληρωμές διδάκτρων και άλλων τελών με bitcoins θα αποτελέσει το Πανεπιστήμιο της Λευκωσίας, όπως ανακοινώθηκε.
[http://www.naftemporiki.gr/story/733285]

=== {2013-10-26}: CHINA GBL:
GBL, a Chinese bitcoin trading platform, suddenly shut down on October 26, 2013. Subscribers, unable to login, lost up to $5 million worth of bitcoin.[37][38][39]

{time.2011}:
Satoshi Nakamoto withdrew from the public in April of 2011, leaving the responsibility of developing the code and network to a thriving group of volunteers. The identity of the person or people behind bitcoin is still unknown. However, neither Satoshi Nakamoto nor anyone else exerts control over the bitcoin system, which operates based on fully transparent mathematical principles. The invention itself is groundbreaking and has already spawned new science in the fields of distributed computing, economics, and econometrics.
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]

{time.2009}:
=== Started on Januar 3, 2009, the Bitcoin peer-to-peer network has grown very quickly.
[http://subs.emis.de/LNI/Proceedings/Proceedings208/51.pdf]

{time.2008}:
Bitcoin was invented in 2008 with the publication of a paper titled "Bitcoin: A Peer-to-Peer Electronic Cash System," written under the alias of Satoshi Nakamoto. Nakamoto combined several prior inventions such as b-money and HashCash to create a completely decentralized electronic cash system that does not rely on a central authority for currency issuance or settlement and validation of transactions. The key innovation was to use a distributed computation system (called a "proof-of-work" algorithm) to conduct a global "election" every 10 minutes, allowing the decentralized network to arrive at consensus about the state of transactions. This elegantly solves the issue of double-spend where a single currency unit can be spent twice. Previously, the double-spend problem was a weakness of digital currency and was addressed by clearing all transactions through a central clearinghouse.
[https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc]
===
εμφάνισή του το 2008 (δημιουργός του είναι ένας ανώνυμος προγραμματιστής, συλλογικά γνωστός πλέον με το ψευδώνυμο Σατόσι Νακαμότο)
[http://www.naftemporiki.gr/story/731436]

btcnet.HARDFORK

Description::
A hardfork is a change to the bitcoin protocol that makes previously invalid blocks/transactions valid, and therefore requires all users to upgrade.
Any alteration to bitcoin which changes the block structure (including block hash), difficulty rules, or increases the set of valid transactions is a hardfork. However, some of these changes can be implemented by having the new transaction appear to older clients as a pay-to-anybody transaction (of a special form), and getting the miners to agree to reject blocks including the pay-to-anybody transaction unless the transaction validates under the new rules. This is known as a softfork, and how P2SH was added to Bitcoin.
[https://en.bitcoin.it/wiki/Hardfork]

Name::
* cpt.btcnet.hardfork,

btcnet.SOFTFORK

Description::
A softfork is a change to the bitcoin protocol wherein only previously valid blocks/transactions are made invalid. Since old nodes will recognise the new blocks as valid, a softfork is backward-compatible. This kind of fork requires only a majority of the miners upgrading to enforce the new rules.
New transaction types can often be added as softforks, requiring only that the participants (sender and receiver) and miners understand the new transaction type. This is done by having the new transaction appear to older clients as a "pay-to-anybody" transaction (of a special form), and getting the miners to agree to reject blocks including these transaction unless the transaction validates under the new rules. This is how P2SH was added to Bitcoin.
[https://en.bitcoin.it/wiki/Softfork]

Name::
* cpt.btcnet.softfork,

bcnnet.Aeternity (AEnet)

Description::
æternity is a new type of open-source, public, Blockchain-based distributed computing platform that innovates and expands upon existing platforms such as Bitcoin, Ethereum, and Augur. Real-world data can interface with smart contracts through decentralized oracles[1].True scalability and trust-less Turing-complete state channels sets æternity apart from all other Blockchain 2.0 projects.
It provides a decentralised virtual machine which can execute scripts using an international network of public nodes all connected to the Blockchain and through state channels. æternity also provides a value token called "aeon", which can be transferred between participants and is used to compensate participant nodes for computations performed. aeon, is used to pay for space and computation time on the Virtual-Machine and prevents spam on the network while allocating resources (Storage & Computaion time) proportionally to the incentive offered by the request.
[https://en.wikipedia.org/wiki/AEternity] {2017-05-19}

Name::
* cpt.aenet,
* cpt.aeternity-network,

aenet'Program

aenet'Smart-contract

Description::
Despite how on-chain state settlement is limited to the transfer of Aeon, æternity still features a Turing-complete virtual machine that can run “smart contracts”. Contracts on æternity are strictly agreements that distribute funds according to some rules. This stands in stark contrast to the entity-like contracts of e.g. Ethereum. Two of the more notable practical differences are that, by default, only the involved parties know about a given contract and only parties that have an open state channel can create a valid contract. If the parties agree to a contract, they sign it and keep copies for future reference. It is only submitted to the blockchain if its outcome is disputed, in which case the code is only ever stored as part of the submitted transaction, never in any other state. If this happens, the blockchain distributes the tokens according to the contract and closes the channel.
[https://github.com/aeternity/wiki/wiki/Aeternity-Contracts#smart-contracts]

Name::
* cpt.aenet'smart-contract,
* cpt.smart-contract-of-aenet,

aenet'Resource

Address::
* https://www.aeternity.com/,
* https://blockchain.aeternity.com/%C3%A6ternity-blockchain-whitepaper.pdf,
* https://github.com/aeternity/wiki/wiki,
* https://en.wikipedia.org/wiki/AEternity,

bcnnet.Akasha

Description::
A Next-Generation Social Media Network
Powered by the Ethereum world computer
Embedded into the Inter-Planetary File System
[http://akasha.world/]
===
What can I do with AKASHA?
You can publish, share and vote for entries, similar to Medium and other modern publishing platforms, with the difference that your content is actually published over a decentralized network rather than on our servers.
Moreover, the votes are bundled with ETH micro transactions so if your content is good you’ll make ETH from it – in a way, mining with your mind.
[http://akasha.world/]

Name::
* cpt.akasha-network,

bcnnet.BOScoin (BOSnet)

Cpt-created: {2017-03-22}

Description::
BOScoin is a congressional decentralized cryptocurrency platform for “Trust Contracts”.
BOScoin is a cryptocurrency that utilizes the blockchain and numerous new technologies to solve persistent issues in decentralized systems.
1. Trust Contracts are securely executable contracts based on a decidable programming framework called Owlchain, which consists of the Web Ontology Language and the Timed Automata Language. Trust Contracts aim to overcome the issues regarding non-decidable smart contracts by using a more contained and comprehensible programming framework which provides secure and decidable transactions of contracts.
2. The Congress Network is the decision making body in the BOScoin network which improves governance issues arising in decentralized organizations and helps the system continuously evolve into a more robust ecosystem.
[https://www.boscoin.io/]

Name::
* cpt.BOScoin-network,
* cpt.bosnet,

Generic::
* Blockchain-network-with-builtin-decentralized-governance,
* program-blockchain-network,

bosnet'Protocol (bosprl)

bosprl'White-paper.2017-02-02

Name::
* bosnet'white_paper,
* bosprl'white_paper,
* cpt.boswpr,

AddressWpg::
* https://boscoin.io/wp-content/themes/boscoin/src/pdf/BOScoin.pdf,
* https://www.boscoin.io/wordpress/wp-content/themes/boscoin/src/pdf/boscoinwhitepaperv20170202.pdf,

The BOScoin White Paper
Initial Version: 20161101 / Current Version: 20170202
Han-Kyul Park, Changki Park, Yezune Choi, Jake Hyunduk Choi
BOScoin is a congressional decentralized cryptocurrency platform for Trust Contracts

Abstract

BOScoin is a cryptocurrency that utilizes the blockchain and numerous new technologies to solve persistent issues in decentralized systems.

(1) Trust Contracts are securely executable contracts based on a decidable programming framework called Owlchain, which consists of the Web Ontology Language and the Timed Automata Language.
Trust Contracts aim to overcome the issues regarding non-decidable smart contracts by using a more contained and comprehensible programming framework which provides secure and decidable transactions of contracts.

(2) The Congress Network is the decision making body in the BOScoin network which improves governance issues arising in decentralized organizations and helps the system continuously evolve into a more robust ecosystem.

1. Introduction

a. Background

The blockchain was first conceptualized in Satoshi Nakamoto’s white paper “Bitcoin: A Peer-to-Peer Electronic Cash System” in 2008( 1 ).
The technology was implemented the following year as the central technology behind Bitcoin.
Bitcoin uses blockchain technology as a financial transaction ledger where individuals publicly record transfers of currency.
Bitcoin was the first of its kind to use the blockchain to successfully solve the double spending problem.
Despite the absence of a centralized administrator, Bitcoin has successfully supported over 180 million peer-to-peer transactions and now has a market capitalization of more than 10 billion dollars.

Following the success of Bitcoin, there have been numerous systems leveraging blockchain technology.
There are hundreds of competing cryptocurrencies and according to a recent IBM report, more than 90% of banks are investing in blockchain technology( 2 ).
Although currency transactions are the most common applications of the blockchain technology, some groups are also attempting to transfer other digital assets, such as financial products and services, logistics information, property ownership, identity etc.

The cryptocurrency Ethereum gained a lot of traction in 2016 and aims to provide smart contracts on the blockchain: “a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create ‘contracts’ that can be used to encode arbitrary state transition functions." ( 3 )

The goal is to allow users to write any kind of program (or contract) onto the blockchain.
Similar to Bitcoin, Ethereum uses the blockchain and a consensus mechanism to ensure that if a malicious node attempts to forge the content of the contract, the forged contract will eventually be removed from the blockchain.
Bitcoin ensures the integrity of the amount of Bitcoin being transferred between accounts, Ethereum must similarly ensure the integrity of the contract being executed.

Smart contracts have the potential to be a paradigm shift in the development of decentralized applications.
Programs that are not held on a centralized server, yet can run the same logic anywhere.
Smart contracts can be used to develop: decentralized marketplaces, currency exchange platforms, and projects like Golem( 4 ) which aim to create a decentralized worldwide super-computer.

However the freedom and flexibility provided by the turing-complete language which Ethereum is based on is the cause for several serious problems.
We believe that using a turing-complete language may be inappropriate for writing smart contracts as they are inherently undecidable( 5 ).
Due to this undecidability issue, a smart contract based on a Turing-complete language will make it difficult to know what a smart contract will do before running it.
Ethereum attempts to overcome this issue by applying a price for computational work (gas), however the inherent issue of the language used to program and execute smart contracts has inevitably led to a series of security vulnerabilities( 6 ) and outright failed projects such as The DAO( 7 ).

b. Proposal

Trust Contracts.
BOScoin’s approach to the problem is to apply a domain-specific language which can be read easily by the average user and can demonstrate mathematically that the smart contract’s implementation is computationally decidable.
Thus, with BOScoin we aim to develop a platform for Trust Contracts: securely executable contracts based on Owlchain technology.

Additionally, through BOScoin we attempt to solve a number of commonly recurring issues related to cryptocurrencies.

Governance Issues.
Decentralized systems lack a systematic decision making process.
There have been several cases in the cryptocurrency space, where the decision making process has been persistently inefficient.
BOScoin constitutes a governance system whereby node operators referred to as the Congress Network can participate in creating and voting on proposals in order to continuously improve the software and ecosystem.
BOScoin sets aside a large public budget called the Commons Budget which is distributed to proposals that pass a vote in Congress improving the autonomy as well as fairness of the overall system.

Anti-centralizing Consensus Algorithm.
Cryptocurrencies like Bitcoin, that only use a proof-of-work(PoW) type consensus protocol, are affected by issues arising from the non-separation of economic and political incentives.
By buying up more mining hardware, a user can attain more control of the blockchain(political) and also increase their mining income(economic).
BOScoin overcomes this issue by using a consensus
mechanism(explained in more detail below) that separates economic incentives from political ones.
Attaining either political power or economical wealth requires an investment into the system.
A user can either acquire more votes by increasing the number of nodes(one operational node equals one congressional vote) or a user can invest in freezing and confirmation rewards(rewards relative to the amount of coins locked away in a node) to maximize mining income.
Additionally, the consensus protocol used is also more energy efficient and faster.

Application Ecosystem.
Decentralized currencies in many cases tend to become speculative islands with limited real applications.
As we believe the value of a currency is intrinsically tied to how useful it is, the BOScoin team will release the coin with two ready-made apps that use BOScoin.
The applications Stardaq and Delicracy have already been built and will not only increase the transactional value of the coin, but will also help acquire new users.

imgBoswprFig1.png
Fig 1. Comparison of Cryptocurrencies

2. Trust Contracts

a. Overview

BOScoin aims to use the Owlchain technology which consists of the Web Ontology Language(OWL)( 8 ) and Timed Automata Language(TAL). This architecture is designed to expand expressive power while retaining decidability to support secure and precise execution of contracts. These Owlchain based contracts on the BOScoin blockchain are called Trust Contracts.

imgBoswprFig2.png
Fig 2. Comparison of Blockchain-based Contracts

b. Background

There are two primary approaches to developing contracts on the blockchain.
One is through using a flexible programming language on a virtual machine, the other is to use a slightly less flexible but decidable domain-specific language.
Unlike cryptocurrencies based on virtual machines, as the inference engine is based on the semantic web technology, it is possible to infer information from the code before the contract is run.
The contract is decidable and the outcome of the contract clearly known.
This is a key concept in building a secure and sustainable currency with contract features.
Although Ethereum attempted to solve this issue by using market mechanisms and applying a price to complexity, we believe that the more restrictive OWL and TAL approach will provide a more secure environment for contracts on the blockchain.

c. Development

Building upon standard Web technologies such HTML, HTTP, RDF and OWL which were used to serve web pages, these technologies can be extended to share information in a way that can be predictably read by computers.
Both OWL and RDF can be used to create unambiguous structured data taxonomies.
Using these characteristics Ian Grigg proposed the concept of the Ricardian Contracts; contracts which are linked to every aspect of a payment system.( 9 )
Despite, both OWL and RDF displaying similar characteristics, no RDF standards currently supports P-time completeness.
Using reasoners, tools that infer logical consequences from a set of previously asserted facts or axioms, certain versions of the OWL standard promise P-time complexity.
This means the amount of time it takes to run a contract can be pre-determined.
This feature is a key reason why OWL was selected as the language to build Trust Contracts.

OWL DL(description logic) is a sublanguage of OWL, “designed to provide the maximum expressiveness possible while retaining computational completeness.”( 10 )
OWL DL operates on a large dictionary of predefined vocabularies and taxonomies like the ISO20022 specification.
As transactions take place on the blockchain and other BOScoin specific features will not be provided by the OWL dictionaries.
These vocabularies and taxonomies need to be called from outside the contract.
To solve this technical issue, we propose to create a designated namespace domain on the blockchain which can call non-standard primitive types(taxonomies) from the contract.
Non-standard primitive types will be added conservatively in order to sustain the OWL’s decidability and taxonomic complexity features.

imgBoswprFig3.png
Fig 3. BOScoin Transfer Example

Another issue with regards to Turing-complete contracts on blockchains is that Turing-complete languages are difficult to read by non-technical people.
If ‘code were law’, the code should be comprehensible to all the parties involved.
Currently, currencies using Turing-complete languages for contracts can only be audited by those that can read code.
By using the OWL standard and mapping the syntax to languages like SDLang(11), we aim to allow anyone to read and precisely comprehend what a contract is meant to do.

imgBoswprFig4.png
Fig 4. Trust Contract Example

The Timed Automata Language concept is based on Andrychowicz’s paper, ‘Modeling Bitcoin Contracts by Timed Automata’(12).
TAL will be used to model the programming logic used in a Trust Contract.
The HTML and Javascript pairing is similar to OWL and TAL.
OWL provides the structure of the data and TAL acts as an operator.
Operators in programming languages are constructs that do a certain function, such as adding, subtracting and comparisons.
OWL provides the information, and TAL tells the computer what to do with the data.
TAL is slightly different to other programming languages as there is a global time factor.
This means contracts can be tested for how long they take beforehand.
By running automated tests on all the different possible outcomes beforehand, we can promise a platform with bug-free contracts on the blockchain.

The details of the above concepts are further explored in the technical paper.

3. Consensus Algorithm

a. Overview

The consensus algorithm is core to any blockchain based currency or system.
The algorithm attempts to answer the question, ‘how can we prove with confidence that all distributed databases hold the same set of information?’

In response to this question, BOScoin uses a Modified Federated Byzantine Agreement(mFBA) consensus algorithm based on Stellar’s Consensus Protocol(FBA).( 13 )

imgBoswprFig5.png
Fig 5. Comparison of Consensus Algorithms

Mazieres defines key features of the federated Byzantine Agreement Protocol: (14)

* Decentralized control.
Anyone is able to participate and no central authority dictates whose approval is required for consensus.

* Low latency.
In practice, nodes can reach consensus at timescales humans expect for web or payment transactions—i.e., a few seconds at most.

* Flexible trust.
Users have the freedom to trust any combination of parties they see fit.
For example, a small non-profit may play a key role in keeping much larger institutions honest.

* Asymptotic security.
Safety rests on digital signatures and hash families whose parameters can realistically be tuned to protect against adversaries with unimaginably vast computing power.

* Governance Features.
Voting and features that are related to operating the congress are additional features embedded into the protocol.

b. Federate Byzantine Agreement Consensus Algorithm( 15 )

Bitcoin’s consensus mechanism and the traditional Byzantine agreement based protocols require a unanimous agreement by all participants of the network.
However, the federated Byzantine agreement(FBA) does not require an unanimous agreement by all participants and additionally each node can chooe which nodes to trust.
This results in faster transactions without losing integrity of the financial network and allowing for organic growth of the network.

FBA implemented this type of non-unanimous consensus mechanism by grouping nodes into teams (also known as a Quorums).
When a transaction is made, the information is sent to all those in the group.
Rather than waiting for the whole network to agree on the state of the data, if a node hears the same message from a sufficient number of trusted nodes, the node assumes the information is correct.
The overlapping of nodes, or loose federation of nodes, results in different nodes that have different sets of teams to agree on the same transactions.
This leads to a system-wide consensus, without requiring unanimous agreement for each transaction block.

In situations where nodes are in disagreement over a fraudulent transaction, there is a ballot system embedded into the system to overcome such issues.
Further technical details regarding FBA can be found in Stellar’s consensus protocol paper.

c. How is the modified federated Byzantine agreement(mFBA) algorithm different?

In addition to FBA, the BOScoin consensus protocol also applies a Proof of Stake feature for the maintenance of the governance system.
Users can freeze coins in units of 10,000 BOS within a node and forgo liquidity in return for newly issued BOScoin(similar to interest on savings) based on the total number of frozen coin in the node.
The frozen coins in the node then act as both an economic incentive to operate a node as well as collateral for the security and integrity of the information held in the node’s blockchain.
According to the pre-set rules, if the node is discovered to have forged the blockchain on the node, the frozen coins are forfeited to the Commons Budget.

4. Congress Network

a. Overview

The Congress Network is the decision-making body for BOScoin consisting of individual fully-synchronized node operators.
Although people refer to cryptocurrencies as decentralized and autonomous, in many cases, this is not true.
Both the code and the information on the blockchain are vulnerable to influence.
In order to overcome these issues, BOScoin proposes a decision-making body called the Congress Network to fully decentralize and automate the system.
Development of the source-code, forks, and even marketing resources can be allocated from within the system.

b. Congress Network Roles
i. Congress members

You will be regarded as a Congress member if you meet the following criteria:
* Run a fully-synchronized node at stable network speeds
* Freeze at least one unit (one frozen unit is 10,000 BOS)
* Participate in voting

Anyone can become a Congress member.
A node could be a server or a personal computer that a Congress member runs.
The node can be located at home or a remote location, as long as network speeds are stable.

Congress Members have the choice to either invest in increasing their political influence through running more nodes or increasing their economic return through increasing the BOScoin frozen.

ii. Users

Users are the beneficiaries of the BOScoin system.
They will interact with the BOScoin Network in three ways: by initiating transactions, submitting proposals and earning interest on BOScoins (coin freezing).
These interactions are displayed in the figure below.

imgBoswprFig6.png
Fig 6. Interactions Between the Congress Network and User Network

c. Network Interactions
i. Transactions

When a transaction of digital assets is requested by a user, the request is sent to the Congress Network.
For a simple transfer of BOScoin, when a node confirms the block –roughly every 5 seconds– the user’s transactions will be confirmed, and the BOScoin will be transferred to another wallet.
For more complex Trust Contracts, the pre-defined logic/procedures will also be carried out.
In the initial stage of BOScoin, transaction fees will be fixed at 0.01 BOS.
The fixed transaction rate can later be adjusted by the Congress Network through the voting process.
Transaction fees act as an economic incentive for node operators and also as a defence mechanism against DoS attacks.

ii. Proposals

Proposals are Commons Budget spending plans that are submitted to the Congress Network.
When a proposal is made, the ‘net percentage point difference’ between the positive and negative votes must exceed 10% for the proposal to be passed.
When the proposal is passed, the requested coins will be sent to the proposer.
Under some conditions, such as when the size of the proposal is large, the system can define a contract that requires a report on how the coins were spent.

iii. Coin Freezing

Coin Freezing is a Proof of Stake concept where if a user locks-in their coins and in return they will receive interest based on the number of coins frozen and the length of time the coins are stored.
This interest is called the Freezing Reward.
Users can freeze coins in units, which are sets of 10,000 BOS.
Frozen coins are used as collateral in case of attempted forgery of the blockchain.
If a node attempts to forge the blockchain, a portion of the frozen coins are confiscated and sent to the Commons Budget.
Additionally the system requires two weeks prior notice to unfreeze coins, as a mechanism to promote price stability.

d. Reward System

Within the Congress Network, there is a unique incentive mechanism. Congress members can either choose to maximize financial rewards, by freezing BOScoin in one node or increase their voting power by running multiple nodes (one node equals one vote).

This deliberate division incentivises the separation of economic motives from decision-making motives similar to the separation of economic and political power concept.

Bitcoin suffers from the hash power centralization issue, due to its reliance on a Proof of Work consensus protocol.
A small number of major miners can easily buy up large amounts of mining hardware, which allows them to influence changes in code and even threaten the integrity of the blockchain.
By separating the incentives of those that wish to optimize financial gain, the barriers to entry to participate in the governance process is comparatively lower than a system that equates decision making power with financial rewards.

There are three ways for Congress Members to receive BOScoin rewards: the freezing reward, confirmation rewards, and transaction fees.

* Freezing Reward:
Congress Members receive the same amount of interest as normal wallet users when coins are frozen.
Starting from the first year, a total of 27,400 BOS is distributed equally to each unit of frozen BOScoins.
This freezing reward is issued every 720 blocks(roughly one hour).
The total amount that is distributed decreases by 10% year on year over 69 years.

* Confirmation Reward:
Confirmation rewards are given to a node when a block is confirmed.
This reward is crucial in providing a financial incentive to operate a node and the reward is directly linked to the number of Frozen Units in a node.
Similar to the block reward in Bitcoin, as the number of participating nodes increases, the probability of winning the confirmation reward decreases.
The reward is issued relative to the proportion of frozen units held while initially sustaining a system average of 24.5 BOScoins.

confirmation reward = 24.5 x (Number of Frozen Units / Average of Total System Frozen Units)

Initially the block confirmation reward starts at 24.5 BOScoins per block, and it will decreased by 5% year on year over roughly 141 years.

* Transaction Fee:
The transaction fee is a fixed 0.01 BOScoins.
Congress Nodes receive 70% of the collected transactions fee in a block, and 30% is sent to the Commons Budget.
Transaction fees can be adjusted through the Congress.

e. Decision Making Process

The idea of an integrated decision-making process within the currency was inspired by Dash( 16 ) coin where the masternodes( 17 ) vote to make decisions.
In BOScoin decisions are made by submitting proposals and voting on proposals, and then financing the proposals through the transfer of funds from the Commons Budget.
Anyone can make a proposal, which is then reviewed every third Monday of the month by 24:00 GMT.
These proposals are then voted on by the Congress members by the fourth Monday of the month by 24:00 GMT.
If the ‘net percentage point difference’ between the positive and negative votes exceed 10%, the proposal is passed.
There is the option for a neutral vote to signal that the Congress member participated in the decision-making process and votes can also be changed any time before the final due date.

In order to increase the chances of a proposal being passed, it is possible to provide collateral with the proposal.
Proposals that provide more than 1,000,000 BOS become Elevated Proposals.
If a Congress member does not vote on an Elevated Proposal, they are penalized by having the freezing feature disabled for their node for two weeks.
Disabling the coin freezing feature means the node will forgo all the benefits from freezing coins and will not be able to freeze any coins for two weeks.

f. Commons Budget

The Commons Budget is an account where BOScoins are held and can only be transferred by proposals that are passed through the Congress.
The main role of Commons Budget is to expedite the growth of the coin users during the early stages.
Coins in the Commons Budget are mainly accumulated through two channels; the first is the direct issuance of 100 BOS coins per block for 35 million(roughly 5.5 years) blocks and secondly from 30% of the transaction fee.
Out of all issued coins, Commons Budget make up the largest proportion of coins.
This will ensure funds are available to growth hack the adoption of BOScoin.
Any proposal which passes through the congress can access coins from the Commons Budget.
An example of a proposal is an Airdrop proposal; geo-socially distribute free coins to users in order to increase the number of BOScoin users.
Other examples can include funding the development of the BOScoin eco-system, marketing campaigns and organizing BOScoin related meetings.

5. Ready-made Application Ecosystem

Many cryptocurrencies offer examples of how to use and build applications on their platform.
However, few have delivered working applications utilizing currency.
Although it is difficult to fully understand how much of a cryptocurrency’s value is made up of transactional value and how much is made up by speculative value, BOScoin’s goal is to increase the transactional value of the currency relative to its competitors.
In the long-run the core-value of a currency is it’s usefulness.

Through ready-built applications such as Stardaq and Delicracy released with the currency, users will have sophisticated services available immediately within the BOScoin ecosystem.

a. Stardaq

Stardaq is an international celebrity popularity prediction market.
A celebrity's popularity is represented as an index and users can place bets on whether the popularity of the celebrity will rise or fall.
The bets can only be placed with BOScoins.

b. Delicracy

Delicracy is a collective decision making tool that can be implemented in any organization.
All users can participate in the decision-making process by placing bets on a set of proposals, similar to the Augur prediction market( 18 ).
The proposal with the most bets is passed.
This type of system can help promote transparency and participation for decision-making processes in organizations large and small.

These applications serve as outlets to spend BOScoins and also serve as channels for Airdropping free coins.
Appropriately using these tools can help grow the ecosystem by introducing new users.

6. Technical Roadmap

The following is a technical roadmap defining the key milestones. imgBoswprFig7.png
Fig 7. Implementation roadmap

7. Coin Issuance

New coins are issued in four ways; initial development budget (1.0bil, 10%), confirmation rewards(3.0bil, 30%), freezing rewards(2.4bil, 24%) and the Commons Budget(3.5bil, 36%).
We aim to issue a total of 9.99 billion coins over the next 141 years.
These values are subject to change.

imgBoswprFig8.png
Fig 8. Issuance Summary

* Initial Development Budget:
Initial development coins are coins distributed prior to the Genesis block are intended to support the final development of the software.
These coins are made up of ICO sales and bounties.
1.0 billion BOScoins are issued with the Genesis block.

* Confirmation Rewards:
Confirmation rewards are financial rewards issued randomly to a node for every confirmed block(every 5 seconds).
As the reward is distributed randomly, if the number of nodes increase the probability that a node will receive a reward decreases.
This reward is relative to the number of units frozen in a node(refer to section 4d).
3.0 billion BOScoin are issued through Confirmation rewards.
Initially 24.5 BOScoins are issued per block.
The reward decreases every 6.31 million blocks–roughly one year– by 5% over 141 years.

* Freezing Rewards:
Freezing rewards are distributed relative to the number of BOScoin units frozen in a node and are issued every 720 blocks(roughly one hour).
Initially the total amount is 27,400.
The reward decreases by 10% over every 6.31 million blocks–roughly 1 year – over 69 years.
The freezing reward acts as an important incentive for congress members to increase the number of coins frozen in one node and disincentivize the centralization of decision making.

* Commons Budget:
The Commons Budget holds BOScoins that can only be used by proposals that have passed the Congress Network.
In order to create a sufficient budget for proposals, 100 Commons Coins are issued per block for the first 35 million blocks–roughly five and a half years.
After the first five and a half years the Commons Budget is maintained through the 30% commons fee on transactions fees.

imgBoswprFig9.png
Fig 9. Coin Issuance Plan

8. Conclusion

The BOScoin team aims to overcome the technical and operational issues inherent in many cryptocurrencies.
The incentive scheme and issuance plan is aimed towards creating value for the coin while deterring the centralization of power.
The Modified Federated Byzantine Agreement algorithm will allow for low latency transactions while being more energy efficient.
The Congressional System is aimed towards creating a more democratic and productive decision making process.
Trust contracts will provide a decidable and approachable framework for creating and executing contracts on the blockchain.
The BOScoin team will aim to achieve these goals while leveraging the security and integrity that can be gained through blockchain technology.

Works Cited

Andrychowicz, Dziembowski, Malinowski and Mazurek, Modeling Bitcoin Contracts by Timed Automata, Lecture Notes in Computer Science Formal Modeling and Analysis of Timed Systems, 7-22, 2014, https://arxiv.org/pdf/1405.1861v2.pdf

David Mazieres, Stellar Consensus Protocol, https://www.stellar.org/papers/stellar-consensus-protocol.pdf

Decentralized Prediction Market, https://www.augur.net/

Evan Duffield, Daniel Diaz, Dash: A PrivacyCentric CryptoCurrency, https://www.dash.org/wp-content/uploads/2015/04/Dash-WhitepaperV1.pdf

Golem, https://golem.network

Hodges, Andrew, Alan Turing: the enigma, London: Burnett Books

Ian Grigg, The Ricardian Contract, First IEEE International Workshop on Electronic Contracting (WEC) 6th July 2004, http://iang.org/papers/ricardian_contract.html

Leading the Pack in Blockchain Banking: Trailblazers Set the Pace, https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?htmlfid=GBP03467USEN&

N. Atzei, M. Bartoletti, T. Cimoli, A survey of attacks on Ethereum smart contracts, https://eprint.iacr.org/2016/1007.pdf

Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, https://bitcoin.org/bitcoin.pdf

Simple Declarative Language, https://sdlang.org/

The DAO, https://slock.it/dao.html

Using Decentralized Governance: Proposals, Voting, and Budgets, https://dashpay.atlassian.net/wiki/display/DOC/Using+Decentralized+Governance%3A+Proposals% 2C+Voting%2C+and+Budgets

OWL Web Ontology Language, https://www.w3.org/TR/owl-features/

OWL Web Ontology Language Reference, https://www.w3.org/TR/owl-ref

Vitalik Buterin, Ethereum Whitepaper, https://github.com/ethereum/wiki/wiki/White-Paper

Notes

(1) Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, https://bitcoin.org/bitcoin.pdf

(2) Leading the Pack in Blockchain Banking: Trailblazers Set the Pace, https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?htmlfid=GBP03467USEN&

(3) Vitalik Buterin, Ethereum Whitepaper, https://github.com/ethereum/wiki/wiki/White-Paper

(4) Golem, https://golem.network

(5) Hodges, Andrew, Alan Turing: the enigma, London: Burnett Books, p. 111

(6) N. Atzei, M. Bartoletti, T. Cimoli, A survey of attacks on Ethereum smart contracts, https://eprint.iacr.org/2016/1007.pdf

(7) The DAO, https://slock.it/dao.html

(8) Web Ontology Language Reference, https://www.w3.org/TR/owl-ref

(9) Ian Grigg, The Ricardian Contract, First IEEE International Workshop on Electronic Contracting (WEC) 6th July 2004

(10) OWL Web Ontology Language, https://www.w3.org/TR/owl-features/

(11) Simple Declarative Language, https://sdlang.org/

(12) Andrychowicz, Dziembowski, Malinowski and Mazurek, Modeling Bitcoin Contracts by Timed Automata, Lecture Notes in Computer Science Formal Modeling and Analysis of Timed Systems, 7-22, 2014, https://arxiv.org/pdf/1405.1861v2.pdf

(13) David Mazieres, Stellar Consensus Protocol, https://www.stellar.org/papers/stellar-consensus-protocol.pdf

(14) Ibid.

(15) Ibid.

(16) Evan Duffield, Daniel Diaz, Dash: A PrivacyCentric CryptoCurrency, https://www.dash.org/wp-content/uploads/2015/04/Dash-WhitepaperV1.pdf

(17) Using Decentralized Governance: Proposals, Voting, and Budgets, https://dashpay.atlassian.net/wiki/display/DOC/Using+Decentralized+Governance%3A+Proposals%2C+Voting%2C+and+Budgets

(18) Decentralized Prediction Market, https://www.augur.net/

bosprl'Techical-paper.2017-01-31 (bostpr)

AddressWpg::
* https://docs.google.com/document/d/16Wm1...DtaI/edit,

Owlchain(BOScoin) Technical Specification
(This is a draft version. More details to be added)
Draft version: 20170131
Yezune Choi, Jake Hyunduk Choi

0. Adventure of Ideas

Alfred North Whitehead, known as the last metaphysician, asserted that "without adventure civilization is in full decay."
Imaginations and practices of the blockchain is enriching our world.
We put our thoughts into the world to join in this adventure of thought.
Every thought has its roots in thought.
The blockchain is not a random floatage on the Internet, but an outcome that is rooted in existing ideas.
In order for owlchain to have a solid roots in the Internet world, it is necessary to know its roots correctly.
The thoughts on which the Internet and the Web could grow can be summarized by several principles.

0.1 Layered Structure

TCP/IP represents the Internet protocol, but TCP is only one of the typical application protocols of IP. For applications such as games or streaming that do not require a session connection, UDP is being used as an attractive alternative to TCP. In the Internet world, protocols define a clear function(specification) in their domain and perform only that function. The advantage of layer structure is that it does not hinder the emergence of new protocols by maximizing the possibility of substitution. IPv4 can be replaced with IPv6 because of the layer structure. When we consider this idea in the blockchain technology, the current blockchain technology is still in its infancy and is not approaching the layer structure design. In order for the blockchain to obtain the status of the protocol, it is essential to have a layer structure approach in which various technologies can be combined and compete.

0.2 Openness of the protocol

Although TCP/IP has the advantage of speed and performance, the core quality to become a standard for the Internet is the openness of the protocol.
The TCP/IP protocol is open to the public without restrictions on use such as patents, and has served as a soil where many researches and developments can be achieved.
In standardizing protocols, patents are a sensitive issue for companies or individuals seeking to contribute.
But, ownership of ideas(patents) limits the emergence of new ideas.
From the perspective of innovation, ownership of ideas is more damaging than profit in the cyber world where thoughts can be copied without marginal cost.
You can also see how narrow the view is in claiming ownership of ideas in the Internet world, when the programming codes that actually implement the protocol are the most innovative in any licensing policy.

0.3 End-to-end principle

In order for Internet protocol features to be completed, there is a need for end-to-end principles that do not interfere with high-level applications.
A principle of a protocol is that a protocol does not discriminate against content that passes through it.
It is similar to collecting the same fare regardless of the type of vehicle on the highway.
It is known to the public as "the principle of net neutrality".

Based on these three principles, we intend to develop owlchain to acquire protocol status.

1. Introduction

Owlchain is the underlying technology powering BOScoin and Trust Contracts.
Owlchain is developed in D language and Trust Contracts are written in the Web Ontology Language(OWL) and Timed Automata Language(TAL).
The purpose of OWL is to provide “trust” on the internet through the abstract combination of standard web technologies.
OWL 2.0 version solved the data handling time delay problem, which was the existing problem in 1.0 version, by creating profiles.

BOScoin provides OWL 2 Profiles that use "Linked Data" to create Trust Contract.
Linked data is a declaration of the data required to issue a particular contract, and the semantic of contracts can be automatically validated by these defined data in the OWL 2 Profile.

In addition, like using javascript, static elements as HTML and CSS to show the screen on the web browser, Timed Automata Language(TAL) can provide dynamic processing on Trust Contracts.
TAL is a programming environment with two constraints, which are the timed automata modeling and pure functions.
Timed automata modeling can detect undefined area(reachability problem) in program code that developer can not find and can eliminate side effects that can occur during development by using pure function.
Due to these limitations, operating environment of Trust Contract satisfies the memory safety and the decidability.

- Timed Automata - assure decidability
- Pure Function - remove side effect

imgBostprFig1.png
[Figure 1] Trust Contract Blockchain

For programmers, OWL language can be viewed as a user-defined linked data because defined data, constraints and links of data in the OWL language can be used to program.
TAL is the data processing language of the blockchain(owlchain).
TAL can be abstracted as an operator to register a new transaction on a blockchain.
In order to explain a simple formula in the language of c++, when "c = a + b" formula is given for "+" operators, two variables ‘a’ and ‘b’ are added and then ‘c’ is returned.
The operator itself is implemented as pure function that does not produce any changes to the two variables used in computing.
A pure function prevents a program from being transmitted by providing the memory safety.
Thereafter, the operator written in TAL returns new transactions by referring to the Linked Data and the data in the Blockchain.
TAL shall satisfy both the conditions of the pure function and the characteristics of the Timed Automata.
These restrictions are set because the TAL environment is open to all users, and it is a permissionless blockchain for all users.
In the case of Trust Contract(Linked Data + TAL Operator) written in an open environment by an anonymous user, not having a rigid security model can create an unpredictable network state.

1.1 Comparison of Blockchains

The table below compares the characteristics of OWL to the Bitcoin and Ethereum

Feature Bitcoin Ethereum Owlchain(BOScoin)
Consensus Proof of work Current: Proof of work.
Future: Casper(?)
Modified FBA(Federated Byzantine Agreement)
- History revision mechanism Soft and hard forks Current: Soft and hard forks.
Future: Block revisions in case of temporary network isolation.
Block revisions in case of temporary network isolation.
- Membership Open Open Open with constraint
(min 10,000 BOS)
Block Confirmation Time 10 minutes Current: 15 seconds 5 seconds (target)
Block Size 1 MB Dynamic Dynamic
Maximum Transaction 100 KB Dynamic based on gas limit Dynamic
Transaction Throughput 7 tx/sec 25 tx/sec 1,000 tx/sec (target)
Coins Bitcoin, plus tokens such as provided by Omni Layer Ether, plus tokens that can be issued by contracts. BOScoin
Governance system None None Commons budget, Proposal, Voting
Smart Contracts:
- Computational Power
Stack-based language with few instructions Turing complete Timed Automata Model
- Decidability Decidable Not Decidable, using instruction fee(gas) Decidable
- Runtime Architecture Script runs on Bitcoin Core, Libbitcoin, and other native implementations Ethereum Virtual Machine implemented on multiple platforms OWL inference Engine on multiple platforms
- Programming Language Bitcoin Script Solidity, Serpent, LLL and any other languages that get implemented on the EVM. OWL + TAL

[Table 1] Comparison of Blockchains

2. Architecture Overview

Owlchain’s hierarchy is designed as a generic blockchain model to accommodate multiple ontology models.
Owlchain combines the feature of the Inference Engine and Consensus protocols to handle the Trust Contract.
The class types related to features such as the transaction and voting method are implemented in the blockchain as the primitives data type of the inference engine.
The blockchain based TAL is used to expand the limits of the expressions and calculations of the Ontology based programming language.

imgBostprFig2.png
[Figure 2] BOScoin Architecture Diagram

... CONTINUE on BOScoin site

bosnet'Resource (bosrsc)

AddressWpg::
* https://www.boscoin.io/
* https://github.com/owlchain/owlchain-core,
* {2017-05-10} BOScoin Fundraiser Success!: https://medium.com/boscoin/boscoin-fundraiser-success-1e09065f838e,
===
* contact@boscoin.io

bosnet.EVOLUTING (bosevn)

Name::
* cpt.bosevn,

{time.2017-05-10-2017-06-20}
=== ICO:
DURATION: The ICO will be carried out from “May 10, 2017” to “June 20, 2017”.
===
ICO will start on April 17th 2017 and will last 45 days until May 31st 2017.
In total 276,093,688.786 coins will be distributed.

bcnnet.Cosmos-network (cmsnet)

Cpt-created: {2017-05-08}

Description::
The Cosmos network consists of many independent, parallel blockchains, called zones, each powered by classical Byzantine fault-tolerant (BFT) consensus protocols like Tendermint (already used by platforms like ErisDB). Some zones act as hubs with respect to other zones, allowing many zones to interoperate through a shared hub. The architecture is a more general application of the Bitcoin sidechains concept, using classic BFT and Proof-of-Stake algorithms, instead of Proof-of-Work.
[https://cosmos.network/]

Name::
* cpt.bcnnet.Cosmos-network,
* cpt.cmsnet,

Description::
What’s the difference between Tendermint, the Cosmos Network, the Cosmos Hub, and Atoms?
Tendermint: a general purpose blockchain engine that uses a Byzantine-fault tolerant consensus protocol and allows applications to be written in any programming language.
The Cosmos Network: a heterogenous network of Proof-of-Stake blockchains that can interoperate with one-another.
The Cosmos Hub: The first Proof-of-Stake blockchain to be launched by the Cosmos Network; it uses Tendermint consensus, contains a built in governance protocol, and serves as co-ordinater for interoperability between other blockchains.
Atoms: The native cryptocurrency on the Cosmos Hub. Atoms are necessary for participating in the consensus protocol and transacting on the network.
[https://cosmos.network/faq]

cmsnet'Resource

AddressWpg::
* https://cosmos.network/,
* https://fundraiser.cosmos.network/,
* https://cosmos.network/whitepaper,
* https://tendermint.com/,
* https://github.com/tendermint/tendermint,

bcnnet.Dfinity (DFNnet)

Cpt-created: {2017-03-23}

Description::
DFINITY is conceived as a compatible sister network for Ethereum that extends the ecosystem by intoducing governance by an omnipotent distributed intelligence called the "Blockchain Nervous System".
The traditional "Code is Law" paradigms of Bitcoin and Ethereum are made subject to the distributed intelligence, which can also upgrade the protocol, update economic parameters and run special smart contract code that uses privileged instructions to reverse hacks such as The DAO.
The DFINITY project also represents the culmination of several years research into new cryptography and network protocols referred to collectively as "crypto:3" that vastly improve the performance of the virtual computer produced and lay a roadmap to infinite scalability and a true "decentralized cloud" where smart contracts can implement open versions of mainstream services such as Uber and high load business systems - exciting benefits Ethereum may be able to gain too by backporting selected techniques.
Special properties granted by crypto:3 also make it possible for DFINITY private clouds to host smart contracts that can call into smart contracts on the public DFINITY network.
[https://dfinity.network/donate]

Name::
* cpt.bcnnet.dfinity,
* cpt.dfnnet,

Generic::
* Blockchain-network-with-builtin-decentralized-governance,
* program-blockchain-network,

dfnnet'Protocol

dfnprl'Threshold-Relay

Description::
Threshold Relay chains increase security while pushing speed 50X faster than Ethereum today, greatly improving the user experience Dapps provide.
[https://medium.com/dfinity-network-blog/the-dfinity-blockchain-nervous-system-a5dd1783288e]

dfnprl'Validation-Tower

dfnprl'Validation-Tree

dfnprl'USCID (Unique State Copy IDs)

dfnnet'Governance-system

Description::
BLOCKCHAIN NERVOUS SYSTEM
Governance by a distributed intelligence

Decentralized Intelligence
DFINITY is a different kind of decentralized world compute platform. It is platform managed by a decentralized intelligence integrated into its systems that can make arbitrary changes. This acts to mitigate misuse, protect users, fix problems, optimize network configuration and seamlessly upgrade its protocols.

A recent blog post explains how the Blockchain Nervous System works. The system depends upon human-controlled "neurons" operated by special client software. These follow each other and cascade to decisions. Neurons are created by depositing dfinities and earn rewards for performance of voting services. While the expertise within the crowd is leveraged, follow relationships exist at the edges of the network making the decision process unknowable, protecting participants.

Protecting Users
In DFINITY the "Code is Law" is contingent upon the decisions of the nervous system. As we have seen, with the recent Bitfinex theft and hack of The DAO, hackers steal keys and can sometimes break smart contract systems with design flaws. A key purpose of the BNS is to return funds where possible, and reverse the damage of hacks. The BNS can also fix systems that have simply failed due to engineering errors, such as a complex autonomous system that has deadlocked.

This increases comfort for consumers and businesses alike, many of whom will be unable to adopt decentralized systems without such protection and recourse.

Accelerating Technical Evolution
In systems such as Bitcoin and Ethereum, upgrades to the protocol occur as a result of contentious and disruptive "hard forks". In DFINITY there is no equivalent notion and the BNS upgrades the protocol transparently on a regular basis, quickly introducing fixes and optimizations and driving network evolution forward as quickly as possible.

The process is simple: the network client is wrapped by a reverse proxy wrapper that systems and Dapps interact with. The wrapper is aware of the BNS, and when instructed upgrades the client while buffering requests, making upgrades transparent.

Adaptive Network Policy
In DFINITY economic parameters such as "mining rewards" or the cost of a "mining identity" are set dynamically by the Blockchain Nervous System, rather than according to a fixed schedule as in a traditional network. The BNS ultimately seeks to increase the value of "dfinities" and indirectly to drive adoption of the network. This invisible market hand will drive the BNS to strike more sophisticated and beneficial economic balances.
[https://dfinity.network/]
===
To compliment Ethereum and truly broaden the options the ecosystem offers, DFINITY introduces the fundamental difference of governance by a novel decentralized decision-making system called the “Blockchain Nervous System” (or “BNS”).
[https://medium.com/dfinity-network-blog/the-dfinity-blockchain-nervous-system-a5dd1783288e]

Name::
* cpt.Blockchain-nervous-System-of-Dfinity,
* cpt.dfnbns,

dfngov'Neuron

dfnnrn'Controller

Name::
* cpt.dfinity'neuron-controller,

dfnnrn'Creating

dfnnrn'Voting

dfnnet'Resource

AddressWpg::
* https://dfinity.network/
* {2017-01-21} https://medium.com/dfinity-network-blog/the-dfinity-blockchain-nervous-system-a5dd1783288e,

bcnnet.IBM-Blockchain

Description::
the tech giant recently announced the development of its independent Blockchain network that is capable of operating on smart contracts for the world’s leading financial institutions and businesses, and the release of its report that suggests the technology will be implemented by 15 percent of big banks by 2017.
[https://cointelegraph.com/news/ibms-next-step-in-launching-one-of-the-worlds-largest-blockchain-implementations]

Name::
* cpt.bcnnet.ibm,
* cpt.IBM-blockchain,

AddressWpg::
* http://www.ibm.com/blockchain/

bcnnet.KSI

Description::
Blockchain meets Security
Keyless Signature Infrastructure (KSI) is designed to provide scalable digital signature based authentication for electronic data, machines and humans.

Unlike traditional approaches that depend on asymmetric key cryptography, KSI uses only hash-function cryptography, allowing verification to rely only on the security of hash-functions and the availability of a public ledger commonly referred to as a blockchain.

A blockchain is a distributed public ledger; a database of transactions such that there is a set of pre-defined rules as to how the ledger gets appended, achieved by distributed consensus of participants in the system.

The KSI blockchain overcomes three major weaknesses of mainstream blockchain technologies - which were designed to facilitate asset transactions - making KSI suitable also for cybersecurity and data governance applications:

Scalability: One of the most significant challenges with traditional blockchain approaches is scalability – they scale at O(n) scale complexity, meaning they grow linearly with the number of transactions. In contrast the KSI blockchain scales at O(t) space complexity – it grows linearly with time and independently from the number of transactions. KSI can sustain billions of asset registration events every second without growing out of control.

Settlement time: In contrast to the widely distributed crypto-currency approach, the number of participants in KSI blockchain distributed consensus protocol is limited. By limiting the number of participants it becomes possible to achieve consensus synchronously, eliminating the need for Proof of Work and ensuring settlement can occur within one second.

Formal security proof: Unlike other blockchains, KSI blockchain has been subjected to end-to-end formal mathematical proof that provides assurance that the protocol does precisely what it says it does.
[https://guardtime.com/technology/ksi-technology]

Name::
* cpt.bcnnet.KSI,

Bcnnet.Humaniq (HMQnet)

Description::
Launched in 2016, Humaniq is designed for those who don’t possess identification, with the mobile app utilizing a new reputation concept based on facial recognition for identity management. The fourth-generation mobile bank is based on the Ethereum blockchain and is attempting to tackle the global problem of financial exclusion for those who don’t have bank accounts. It is set to launch the first version of its mobile app on iOS and Android.

Initially, the alpha version of the application is by invitation only to 1,000 people; however, they expect to conduct a global rollout by October.

Speaking to Bitcoin Magazine, Alex Fork, founder of Humaniq, said that when he was talking with Ethereum co-founder Vitalik Buterin at a conference last year, he was struck by how blockchain technology can be a solution to improve the lives of disadvantaged people. After seeing that the current system doesn’t work, Fork decided to create his own tool.

“Unbanked people find it difficult to use banks for three main reasons: lack of ID, lack of minimum funds and geographical distance to the nearest branch,” he said. “We’re using facial and voice recognition technology for new user sign-up.”
[https://bitcoinmagazine.com/articles/humaniq-aims-tackle-barriers-economic-inclusion-blockchain-app/]

Name::
* cpt.Humaniq,

Generic::
* dependent-bcnnet, (Ethereum)

hmqnet'Protocol

hmqnet'White-paper

AddressWpg::
* https://humaniq.co/assets/downloads/humaniq_wp_english.pdf,


Humaniq Whitepaper
Alex Fork[]

Abstract

The Humaniq team is building a next generation model for financial services (Banking 4.0) which is based on Blockchain technology, mobile devices and biometric identification systems.
We will use cryptofinancing (Initial Coin Offering) for growth capital rather than traditional venture capital and shareholders.

Our aim is to empower a market of 2 billion people who currently don’t have access to banking across the world.
Almost half the world — over three billion people — live on less than $2.50 a day.
At least 80% of humanity lives on less than $10 a day.
More than 80 percent of the world’s population lives in countries where income differentials are widening.

We believe Humaniq can help reverse these trends and help bring people out of poverty by giving them banking tools that can provide liquidity for entrepreneurial ventures via loans, investment, online work and cryptofinancing as well as create new opportunities in the digital economy, locally, nationally and internationally.
Humaniq can also help mitigate the refugee crises occurring in many countries in the West due to economic disparity and lack of opportunities in emerging economies.

Our unique selling proposition (USP) in the digital banking market is our use of Blockchain technology combined with biometrics and a focus on mobile technology.
We plan to not only provide a software solution but also bring mobile hardware (phones) into the markets we are aiming for in Africa, Asia and South America.

1 Mission

“A small body of determined spirits fired by an unquenchable faith in their mission can alter the course of history.”
Mahatma Gandhi

Look at this map:
imgHmqwprFig1.png
Figure 1: indeed, where they are?..

You may notice: there are unbanked regions on Earth.
As a matter of fact, nearly 2.5 billion people live in regions where no banking infrastructure exist.
The only form of payment available in those regions is manually giving banknotes (and/or coins) to a counterparty.

What makes it worse, even in banked regions, there are millions of people without passports or any other forms of identity or documentation, thus they are cut off from modern banking facilities.
According to a recent World Bank estimate, the total number of people who did not have identification documents amounted to 1.5 billion by 2016.

We at Humaniq, will provide a new financial infrastructure for everyone who has a smartphone with a camera.
The smartphone is necessary to make and receive payments, and the camera is needed to earn the first coins.
The price of smartphones is falling every year and they are currently priced at between $10-$20 on the low end.

imgHmqwprFig2.png
Figure 2: 2.5 billion adults are unbanked

To put it in simple words, Humaniq is banking for the unbanked.
Our ultimate goals are:
? to integrate 2.5 billion people disconnected from the international business community, and empower them to free themselves from the chains of poverty,
? to shift emerging economies into the cryptoeconomy.

2 What makes Humaniq special?

“The biggest room in the world is the room for improvement.”
Helmut Schmidt

It is natural to ask why the problem of banking for the unbanked cannot be solved by Bitcoin or any other cryptocurrency.
And the questions can also be asked: «What makes Humaniq special?», «Are you just another startup offering yet another mobile wallet app?»

At first glance, it looks like any Bitcoin mobile wallet could be used in unbanked regions.
But if you think deeper about this, you will discover the following issues:

? The problem: the number of satoshis in circulation (or any other small units of crypto) is insufficient for some regions.
E.g., in Indonesia (250 million people), there’s just not enough digital currency to have substantial daily turnover (volume).
Bitcoin is scarce, and if you don’t have bitcoins, you are inclined not so to be interested in the network.
For regions poorly integrated into the international financial system, it would take a lot of time for sufficient liquidity to appear in the local market.
But there’s no doubt that such regions have their own domestic economy today.
It’s just they are almost exclusively cashbased.
? Our solution: unlike other cryptocurrencies, Humaniq provides an egalitarian emission mechanism.
The amount of coins that one person can mint is limited, and this is what makes Humaniq so special.
This mechanism has nothing to do with competing in specialized hardware, having access to specialized hardware, wasting electricity, or owning the coins preliminarily.
It may be called proof-of-face, and nothing is more fair than that.

? The problem: the lack of local exchanges.
Even now in 2017, there are lots of countries where no infrastructure to buy or sell cryptocurrency exists.
This is the issue even for some European countries, which have no problems with Internet adoption and where virtually the entire population is using smartphones.
We’d like to stress that it has been more than 8 years since the first cryptocurrency launched, and more than 7 years since the first cryptocurrency exchange ever appeared.
? Our solution: since our platform provides infrastructure for people to earn Humaniq coins from home, we understand that people would eventually like to exchange cryptocurrency for local currency.
Of course, we provide such infrastructure in our app.
(And still, we are in talks with some national and international shopping franchises in various countries we are targeting — and engaging them to add Humaniq as a payment option.)

? The problem: some states are concerned with pseudo-anonymity of cryptocurrencies, which causes recurring legal issues associated with them.
? Our solution: since app users have to pass bio-identification, there is no anonymity in Humaniq.
That is good news for transparency advocates, and that makes Humaniq unviable for financing terrorism, trading drugs and all the other deadly sins Bitcoin is accused of.
Another point is, Humaniq provides the ability to earn while working from countries abroad.
This enables an export-driven economy in depressed regions, improves living standards of depressed regions, and reduces the impetus for migration, which is great for all governments both in developed and in developing countries.

? The problem: the network effect of Bitcoin (and other cryptocurrencies) is relatively small because of relative usage complexity.
According to the report from Juniper Research, the number of active Bitcoin users around the world could reach 4.7 million people by the end of 2019.
Even now the network has reached the capacity limit of 250 thousand transactions.
Eight years of the Bitcoin era have passed; compared to PayPal, after 8 years it had 100 million active accounts, despite the fact that it appeared with less developed online infrastructure and can require passport details for use.
? Our solution: we discarded the private and public key approach, which confuses newcomers; we also had to reject using fractional amounts of coins, since decimal fractions may be uneasy for people with little or no education.
It’s very simple.
Coins are whole numbers (integers), faces are used as passwords — if you think it gets any easier than that, please tell us what could be simpler.

? The problem: complexity of reputation accounting in anonymous communities, needed for various p2p-solutions (p2p-insurance, p2pbanking).
? Our solution: we handle this problem with our bio-identification procedure.
By the beginning of 2017, elegant solutions for biometric authentication already exist.
If we take a combination of authentication methods it increases the likelihood of a near hundred-percent authentication.[ 1 ]
Our approach is to use one random authentication method each time.
Every authentication takes no more than two seconds and is as easy as unlocking a smartphone.

? The problem: the lack of crypto evangelists in undeveloped regions, which contributes to people’s unawareness of innovative payment systems.
? Our solution: the reasons why people don’t promote cryptocurrencies in undeveloped regions are understandable: technical complexity of the subject, language difficulties, no financial incentive etc.
But we’ve targeted our project directly at such regions.
Working on the problem, we have studied nearly everything about the current state of developing countries.
We talked to ~100 prominent bitcoiners who live in developing countries such as Sierra Leone, Afghanistan, Botswana, Pakistan and Indonesia.
Dozens of them decided to enter our Humaniq Ambassador Program: they will teach people about how to use Humaniq and earn cryptocurrency for that.

This is why Bitcoin or any other crypto isn’t used in unbanked regions.
And won’t be used.
The currency of unbanked regions (the dark ones on Figure 1) is called Humaniq.

3 Vision

“Visions are worth fighting for. Why spend your life making someone else’s dreams?”
Tim Burton

In Humaniq, the amount of coins that one person can mint is limited, and that is what makes Humaniq truly special.

This may sound really strange for an experienced crypto-community member.
How did we achieve this?

We did it with the help of bio-identification.
Our bio-identification has to be passed only once, taking less than 20 seconds and does not require to have any e-mail or passport.
And modern face recognition algorithms for neural networks can check one’s identity with incredible accuracy.

Briefly, bio-identification is obligatory to create a wallet; every user is given coins for passing bio-identification; the process consists of taking series of photos, recording videos of the user making facial gestures, and recording the user’s speech.
For details, move to subsection 9.3.

To prevent theft of coins, every time a user signs in into the app, he or she must pass the authentication procedure.
The authentication is similar to bio-identification, but much shorter: the user has to repeat just one of the recorded gestures in the front of the camera.
It is as easy as unlocking a smartphone.

The software we have developed works with the cheapest hardware solutions on Android 5.0: with smartphones that cost $10-$15.
Such affordable devices are usually fitted with a front-facing camera and microphone, and thus are sufficient to install a mobile wallet and to authenticate the user.

After passing the bio-identification, everyone is invited to earn additional coins by inviting friends and making transactions.
Moreover, we enable the possibility for everyone to earn a living with their mobile phones, and that’s what is truly impressive.

You may ask — how?
Well, we work with local companies and brands to achieve this.
Our cherished will is to make Humaniq the de facto currency of the world where over three billion people live on less than $2.50 a day.

Humaniq can give these people the opportunity to break free from poverty, improving the lives of their families and themselves by entering and helping create a new mobile digital economy.
Imagine now... over two billion users improving capitalization of popular services by getting used to them — isn’t that what brands dream of?
Isn’t that why Facebook is making a play with internet.org?

Our user may purchase a smartphone perhaps even with a loan — and after the purchase, cover his or her expenses within several weeks, by executing simple actions.

4 Emission Model

“Cryptoeconomic system may contain its own currency and token system which would be useful in any sense in some system aspect. Units of currency can be generated by the system and then sold or distributed directly as award for participation in system operation.”
Vitalik Buterin

We feel honored to repeat it once more: Humaniq provides an egalitarian emission mechanism.
The amount of coins that one person can mint is limited, and that is what makes Humaniq so special.

This mechanism has nothing to do with competing in specialized hardware, having access to specialized hardware, wasting electricity, or owning the coins preliminarily.
It may be called proof-of-face, as we’ve mentioned, and there’s nothing more fair than that.

In this section, we are about to present the details of the emission model we chose.
Developing it, we pursued the following objectives:

1) The early adopters should receive more money than the later ones.

2) The total amount of coins that will ever be issued must be five times bigger than the amount of coins issued via Pre-ICO + ICO.

3) Emission proceeds until kmax people are registered. kmax should be relatively big.

4) In average, one user is granted with 500 coins.

5) Tokens are issued by the smart contract upon request.

6) Emission per one person is carried out not by one-time payment[ 2 ], but in accordance with a scoring function which depends on the person’s activity: passing through bio-identification, inviting friends, making transactions.

Let E(k) be the amount of HMQ coins that may be granted to the person who was k-th to pass the bioidentification in the Humaniq app (the user number k).
The objective number 1 tells that the function E(k) should be decreasing one.
We chose the simplest decreasing function — the linear one:
E(k) = Emax - (Emax - Emin / kmax) · k
Thus, at k = 0 E(k) = Emax, and at k = kmax the correspondence E(k) = Emin holds.
We chose Emax equal to 860, and Emin equal to 140.
Finally for the maximum possible amount for the k-th video registrant
E(k) = round (860 - 720/kmax · k) (4.1)
Let us draw a graph showing the controlled supply of coins:

imgHmqwprFig3.png
Figure 3: The distribution of Humaniq coins. Red line represents the maximum possible amount of coins a user can be granted with respect to the scoring function. Blue line represents the number of coins that the user is granted if his or her only action is passing bio-identification.

Denote the total amount of coins sold via Pre-ICO + ICO by Vico.
According to the objective number 2, only 4Vico coins will be earned by users of the Humaniq app.
Thus, the maximum possible amount of Humaniq coins is limited by 5Vico.
The objective number 4 states that the total average number of coins that a user can mint in-app must be close to 500, thus giving immediately follows.
imgHmqwpreqn42.png
This provides the restriction upon the total amount of people who can mint the tokens in-app.[ 3 ]
We use the conventional rounding
function to guarantee that kmax is integer.

The scoring function mentioned in objective number 5 describes how people can earn their E(k) coins in the Humaniq app.
It is structured as follows:
(denoting the HMQ/USD exchange rate by r, so that 15r becomes the Humaniq equivalent of $15)
• mobile app installation — min(round(0.01 · c1 · E(k)); 15r) HMQ
• receiving first coins from a friend — min(round(0.04 · c2 · E(k)); 15r) HMQ (one-time payment)
• passing the bio-identification — min(round(0.15 · c3 · E(k)); 15r) HMQ (one-time payment)
• a referred friend passed bio-identification4 — min(round(0.1 · c4 · E(k)); 15r) HMQ (for every 5 first friends invited)
• execution of a transaction within first month after installation — min(round(0.05 · c5 · E(k)); 15r) HMQ (one-time payment)
• execution of a transaction within second month after installation — min(round(0.1 · c6 · E(k)); 15r) HMQ (one-time payment)
• execution of a transaction within the third month — min(round(0.15 · c7 · E(k)); 15r) HMQ (one-time payment)
• additional earning opportunities are provided by local and global startups and senior companies.

For moments when exchange rate HMQ/USD diminishes, the emission can be delayed.
The exchange rate is treated diminished, if
current rate < average rate for the last week.

By the start, every coefficient in the tuple (c1, c2, c3, c4, c5, c6, c7) is set to 1, but after some time these coefficients are going to become mutable.
For the first period of their mutability, the control over these coefficients will be community-driven, but eventually this control will be forwarded to a neural network, whose goal will be to maximize several reasonable metrics (the installations’ rate of growth, transactions’ number rate of growth).

Thus, the amount of HMQ that can be granted to a user is E(k), where k is the number of users who passed the identification before him or her.
The formula (4.1) can be used to calculate the potential benefit.

The earning opportunities aren’t limited by this.
Start-ups and senior companies pay additional amounts of HMQ to people executing their tasks.
The list of tasks available at you region can be found in the tab «Offers».
Our ultimate dream is that everyone could purchase the smartphone, install the Humaniq app and then cover his or her expenses on the same day, executing simple actions.[ 5 ]
That is why we tether our emission to the Humaniq equivalent of $15.

5 The ICO

“Just as treasures are uncovered from the earth, so virtue appears from good deeds, and wisdom appears from a pure and peaceful mind.
To walk safely through the maze of human life, one needs the light of wisdom and the guidance of virtue.”
Buddha

Despite we have enough money to develop the project on our own, we think it is fair to allow everyone to invest in the project.
To make the procedure egalitarian, we have chosen to utilise cryptofinancing via an initial coin offering (ICO) rather than take on venture capital.
Moreover, a crowdsale is a brilliant way to attract media attention.

Our crowdsale has two stages — the Pre-ICO and the ICO. T
he Pre-ICO took place since 15 Dec 2016 till 28 Dec 2016.

The ICO starts by 6 Apr 2017, CET 00:00 and
ends by 26 Apr 2017, CET 23:59.

To buy Humaniq, the only payment options during the ICO are Bitcoin (BTC) and Ethereum (ETH).
During the ICO, the rates are as follows:

1 ETH buys 1000 HMQ (+ bonuses)
for BTC-buyers: your BTC counts as the equivalent amount of ETH[ 6 ]

We also offer the following bonuses for those who invest earlier:
6-7th of Apr + 49.9%
8-14th of Apr + 25%
15-21th of Apr + 12.5%
22-26th of Apr + 0%

Since all Humaniq balances are whole numbers (integers) and fractional amounts of coins are not possible (see subsection «Coins are integer» for the reasoning), we had to come with the solution for the arising subtlety.
We chose different ways to handle the problem of fractional HMQ for Bitcoin-using and Ethereum-using participants.

For Bitcoin participants, if the amount of HMQ to be bought is less than 112358 HMQ, rounding down is performed; otherwise, if a buyer wishes to buy more than 112358 HMQ, the amount of HMQ to be bought is rounded up.

For Ethereum participants, we decided to conduct bounce-back transactions (and hardcode them in the smart contract).
E.g. if you transfer 3.1415926 ETH and no bonuses are applied, you are about to receive 3141.5926 HMQ, but since HMQ balances are integer, the amount of ether equal to 0.5926 HMQ is sent back to you.
Participating in the ICO doesn’t require passing bio-identification.

5.1 The key holders

Our fundkeepers are:
Alex Fork
George Basiladze
Bitcointalk user btcsec

6 The Pre-ICO (survey)

The purpose of the Pre-ICO was to create a discussion on issues raised by the project, to attract the attention of leading experts in the industry, and to raise funds to prepare the promotion and public relations of the project, as well as prepare a quality ICO.

We chose the following rates for the Pre-ICO stage:
1 ETH buys 1500 HMQ (+ bonuses)
for BTC-buyers: for the whole Pre-ICO campaign,
we treated every your bitcoin as 93.5 ETH

We announced that if the amount collected is less than 10000 ETH, all funds will be returned. Fortunately, we collected[ 7 ] 99.002855 BTC and 3122.362977 ETH, which amounted to more than the announced threshold.

The following bonuses were available during the Pre-ICO stage:
First 12 hours + 70%
16th of Dec + 50%
17-19th of Dec + 33%
20-22nd of Dec + 20%
23-25th of Dec + 7%
26-28th of Dec + 0%

We are delighted to inform you that 31824818 HMQ tokens have already been distributed during the Pre-ICO (in complete accordance with these bonuses), and we look forward to our upcoming ICO, which will provide the answer on the final quantity of tokens that can ever be generated Vico and thus determine the constant kmax from (4.2).

All rewards and bounties were distributed within one week after the end of Pre-ICO, just as it was claimed.

7 Our development process

“Success or failure of a team is determined by how its members communicate and interact.”
Ichak Adizes

Future Fintech keeps in contact with more than 200 fintech start-ups.
One of the challenges of most projects is access to the customer base.
This is why the implementation of our solution will help young projects (P2P lending, insurance, mobile wallets, scoring, freelance, etc.) offer their ideas to people who have no experience in the financial sector.
Therefore, the project will be developed as follows.

The main development team develops the core.
Others join later and develop their start-ups or solutions on a ready-made platform.
We use Github to bring the core team and third parties together.

We are open to get suggestions and ideas from ordinary users — from the Community.
We always keep in touch with them via the Humaniq app, as well as on Bitcointalk and on our brand blog on Medium.
Users also join us via our Slack channel, read the latest news on Facebook and Twitter, and participate in discussions on our subreddit.

imgHmqwprFig4.png
Figure 4: join us to see how we work

Close interaction with users and testing an idea or a prototype on potential consumers allows us to make the right decisions and save resources.
This is why customer development greatly reduces the investor risk.
After all, theory often differs from practice, and developers’ opinions on ergonomics and ease of use may differ from the perceptions of the product’s end users.
Users often have their own understanding of a set of must have functions, and ignorance of their real needs can lead to the failure of the entire start-up.

As such, our analysts and trend watchers, together with the developers, will consider every feature request communicated by users in the community.
Some ideas greatly improve the product; but, at the same time, the development of one option can take an hour or two, while the implementation of another can take a few days.

Analysts and trend watchers will also evaluate the feasibility of each request and explore it within the context of market trends.
The developers, in their turn, will integrate them properly if new ideas are given thumbs up.

At the same time, budget and deadlines must be met.
Therefore, some ideas are rejected for one reason or another, while others form the list of tasks for the team of developers.

Thanks to this, analysts, trend watchers, investors, users, project managers and programmers themselves are always aware of the current development stage of a project.
Any interested user and even a developer can connect to it from various sides and get a respective reward:
• participate in beta testing;
• voice their ideas for improving the product in the Community;
• develop their start-up;
• become an analyst or a trend watcher.

As you can see, our project development scheme allows and supports the active participation of users.
Customer development allows us to create a product that meets their needs and wishes, which eventually ensures its success.

8 The timeline of Humaniq

“The best way to predict the future is to create it.”
Peter Drucker

The milestones on this road are:
• 2016, October-November — Humaniq Whitebook is written
• 2016, December — Launch of Humaniq.co website.
• 2016, December — the pre-ICO.
• 2017, January-February — smart contract development, due diligence, marketing campaign
• 2017, February — a meeting with Humaniq project partners in India.
• 2017, February — announcing Humaniq online-hackathon in partnership with (yet undisclosed) well-known blockchain media
• 2017, February — the start of the ICO (crowdsale).
• 2017, April — headlining the BlockShow Europe 2017, giving talks on panel discussions, concluding results of the hackathon and giving awards to winners
• 2017, April — crowdsale concludes.
• 2017, May — prototype of Android mobile app.
• 2017, July — Product launch: the mobile app (wallet with bioID) + exchange app.
• 2017, September — global expansion in two directions: to underdeveloped regions (expansion of the network of users in Africa, Asia, South America) and to the cities that are crucial to modern business (London, Singapore, Hong Kong and San Francisco).
• 2018 — integration of virtual cards, of fintech start-ups, and further decentralization of Humaniq architecture.

9 Technical

“Architecture is inhabited sculpture.”
Constantin Brancusi

From the technical point of view, to implement the idea, the following ingredients are required:

1) mobile app, which is what users see.
We’re talking about Android app, since in underdeveloped regions market share of Android OS is close to 95%.
Making an iOS App is less important in our case, but for the sake of perfection we actively develop it.

2) appropriate bio-identification/authentication software

3) such software essentially produces a «chunk» of every person’s identity; these chunks are used for identification/authentication and must be stored somewhere in decentralized manner

4) these chunks must be encrypted

5) identification procedure must cost zero for end users (at least for the first time)

6) authentication procedure must cost zero for end users (at least for the first time)

7) secure consensus algorithm (e.g. robust blockchain)

8) transactions should cost zero for senders if possible.

To satisfy the first and second conditions, it is enough to build the apps, and to buy licensing rights for the best available bioID solution.
Chapter 9.2 is devoted entirely to how we made our choice of the solution.

To satisfy the third condition, we should allow every PC to become a Humaniq node.
On encryption (fourth condition), our approach is similar to Storj and (announced by Ethereum) Swarm’s one.

To meet the fifth condition, it is enough to specify in the protocol that nodes have to add «chunks» of a new person to their database, keep their databases synchronized, and are not paid for that.
It’s exactly like in Bitcoin: full nodes kept on their hard drives containing the ledger of all transactions that have ever happened without any financial incentive.

The sixth condition resolves like the previous one: people verify and broadcast identities of authenticating users for free.
Again, exactly like in Bitcoin: peers verify and broadcast new blocks and transactions, and nobody gets paid for that.

Speaking on condition eight, for the first few months of the network’s existence transaction fees will be zero for end users.
However, this is to be changed in future, since the founders cannot pay Ethereum fees forever.
We are about to decentralize the project architecture and to make it nondependent on founders, giving everyone the possibility to run a Humaniq node.

We are using Ethereum for the project and the ICO campaign because this platform allows us to create a secure solution quickly, with few resources, and without loss of quality thanks to:
• smart contracts (we plan to conduct the audit of our smart contracts);
• reliability of a ready and operating blockchain, in contrast to the risks associated with deploying own blockchain;
• future development of the Ethereum project and stated opportunities.

imgHmqwprFig5.png
Figure 5: The inner structure of the Humaniq platform

The only tough issue is the centralization.
Humaniq has several components: software part, neural network and database.
In the future, all these components are to be decentralized.

9.1 Issues and responses to them

Humaniq is based on blockchain technology.
Major component — transaction settlement will be done on Ethereum blockchain using Standard Token (ERC20) contract.
New tokens are emitted for every authenticated user and the rules of emission are controlled by «Emission smart contract».
Humaniq servers are responsible for authorization of users on the blockchain via Biometric ID services as well as approving additional token emission.
Users will only interact with Mobile Wallet for their smartphones.

Scrupulous readers may say that this system has a number of centralized places carrying risks.
But there are answers to this:
1. Each user can use the Ethereum client wallet without using additional services.
2. It should be admitted that Bitcoin protocol add-on services are used by an overwhelming majority of Bitcoin users; and this is the normal operation of a payment system, and our operation will be based on the same principles.
And since security issues are undertaken by Ethereum, this allows us to focus on the client-oriented decentralized business model.
3. With reference to bio-identification and mobile wallet, we will move towards open source and hereafter decentralization.
4. Besides the above-mentioned, the service development strategy is a decentralized business model, i.e. stimulating creation of several mobile wallets by third-party teams, chatbots, exchange services, service rendering.
5. Today there is no technological opportunity to put bio-identification into blockchain, however if there is a possibility to help people now, and to develop ecosystem of cryptoeconomics — it should be done.

There are three key components of Humaniq:
• the app (which is essentially also the mobile wallet)
• Humaniq servers
• contracts on Ethereum blockchain.

9.2 BioID: technology

We understand that biometry is not finance, and we’re not specialists in this technology.
As a consequence, we’re actively working with various well-established companies, who specialize in computer vision and/or image recognition.

Hence, to execute bio-identification, we are going to invite a solution provider when we are ready to make the choice.
We have not yet signed any formal agreements, and, due to the high responsibility of this step, we are not rushing.
We plan to announce which service provider we have chosen and to provide corresponding formal agreements during the crowdsale.

9.3 BioID: user experience

During the first launch of the Humaniq app, one must pass through the
bio-identification procedure[ 8 ].
Otherwise, the Humaniq interface just won’t show up.

This bio-identification is arranged as follows.
A registrant is required to make a photo of themselves with the smartphone, to record a video of smiling and grinning, and to pronounce the text shown on the screen.
To avoid counterfeits, the device ID is added and the text is chosen at random out of very large pool; it eliminates the ability to use pre-prepared audio tracks.
All the instructions are shown on the mobile phone screen, so of course no prerequisite knowledge is needed to use the app; you don’t need to know anything about the app in advance.
You may download the app from Google Play and try it yourself.

This authentication method takes less than five seconds and requires no e-mail, SMS, passport, and you don’t have to worry about losing or forgetting your password.
This is the real proof of identity.

9.4 Mobile Wallet

The Mobile Wallet is an interface for mobile (iOS, Android) users that provides them with quick access to their balances and lets them transact with other users/merchants.

The Mobile Wallet manages private and public keys for the user, which are used to sign transactions locally.

It also has a built-in module for collecting biometric user data, such as voice and video, which can be used to bind a user with their identity and provide them with additional features of the platform, such as action-based emission.

The Mobile Wallet also includes an API for third-party developers so they can interact with the Wallet: access balances, send transactions.

9.5 Contracts on Ethereum blockchain

There are two contracts that are already deployed on the blockchain.
First one is Standard Token Contract (ERC20) that keeps track of user balances and allows them to transfer tokens between each other.
Second one is responsible for token emission.
However, we understand that with the decentralization proceedings we will be involved in the development of an ample web of contracts; follow our Github to stay keen on updates.

9.6 Sending a transaction with Mobile Wallet

1. Transaction is generated on the smartphone and then signed using local
private key.
2. Signed transaction data is submitted to Humaniq servers.
3. Transaction is relayed to the Ethereum blockchain to the Humaniq
Token Smart Contract.

9.7 Sending transactions without Mobile Wallet

1. If the user already has Humaniq tokens they might transact directly
using Token smart contract bypassing Humaniq servers.
2. After signing the transaction user might send it directly to Ethereum
blockchain.
3. This brings an advantage of control over the transaction publication
and propagation (because there might be a delay due to a high load
on the Humaniq servers).

9.8 Coins are integer

Any Humaniq balance cannot be fractional. It can only be integer.
We’re targeted at providing undereducated people with modern finance, and we don’t expect all of our users to be great at fraction calculus.
The integer amount of coins makes it easier for undereducated people to count their money.

10 Conclusions

The Humaniq project was launched to create a financial infrastructure for people who were previously isolated from it.
We are using the most advanced and mass technologies: the blockchain with the possibility to connect thirdparty projects, a mobile application, along with bio-identification.
Humaniq will also add to the science of cryptoeconomics, the well-being of developing countries, and can even benefit the European economy.

For cryptoeconomy:
• expanding the amount of cryptoeconomy users will result in a positive development in this industry
• original inherently friendly and open source architecture of Banking 4.0 will help start-ups to get instant access to customers around the world and obtain financial support from the Humaniq project
• bio-identification will allow testing reputation systems and personalized interaction programs, introducing this realm to charitable organisations, NGOs and United Nation services.

For developing countries:
• poverty level reduction
• remote work and economic growth: greater opportunities for savings will increase the lending capacity of the population; collection of customer financial data will reduce lending risks
• innovation and infrastructure: electronic finances will allow the creation of new business models and products
• reduction in class inequality: financial services can provide new opportunities for billions people living on less than $2.50 a day and bring them to the middle class, greatly improving their lives
• establishing gender equality: engaging the female population in the electronic finance system will raise incomes of health care and education systems; a barrier for women in financial account registration will dissolve, and women will have more control over their funds and business
• improving the quality of education through remote access and payment capabilities.

For the EU:
• improving the economic situation in third world countries will reduce the current immigration challenges faced by advanced economies, particularly in the European Union where the influx is creating huge strains on the social welfare systems and high costs associated with the problem.

Humaniq is not welfare or charity, we are more about empowering people to change their lives and pull themselves out of economic disparity by participating in a new digital economy that they can help build.

Notes

[†] alex@humaniq.co, fb.com/fork.alex, linkedin.com/in/alexfork

[1] It is worth noting that the use of hardware solutions, for example, a fingerprint scanner, allows signal counterfeiting at hardware level.

[2] We think that it is fair to issue coins stepwise depending on the everyday involvement of a user.
We wish to avoid the mistake of some altcoins, which made their rewards onetime payments and which suffered from users not having incentives to use the platform on a regular basis.

[3] The Pre-ICO has passed, and some conclusions may be already done.
Exactly 31824818 HMQ tokens were generated; thus, even before the start of the ICO, the inequality Vico > 31 · 106 holds, and, due to (4.2), kmax > 248000.

[4] Humaniq balances cannot be fractional.
You are invited to guess why, and then check your guess in the subsection 9.8.

[5] The price of cheapest smartphone able to perform mobile wallet functions and fitted with front-facing camera falls down every year and is now about $10-20.

[6] with respect to the BTC/ETH exchange rate at the moment of purchase

[7] To stress his personal responsibility for the pre-ICO, our founder Alex Fork decided to use the bitcoin wallet he uses since 2013.
To make accounting easier, right before the start all the bitcoins were drained away from there, making the balance zero.

[8] Fortunately, a frontal camera and a microphone are now built in all devices.

hmqnet'Exchange-value-unit (HMQevuCN)

Name::
* cpt.HMQevuCN,
* cpt.HMQ-token,
* cpt.hmqnet'Exchange-value-unit,

Generic::
* Ethereum-consensusNo-exchange-value-token,

hmqnet'Resource

AddressWpg::
* https://humaniq.co/,
* https://github.com/humaniq,
* {2017-04-18} Blockshow voices: https://blog.humaniq.co/blockshow-voices-7659e13d97e1,
* {2017-03-23} Humaniq Aims to Tackle Barriers to Economic Inclusion With Blockchain App: https://bitcoinmagazine.com/articles/humaniq-aims...barriers-economic-inclusion-blockchain-app/

bcnnet.Qtum

Cpt-created: {2017-03-23}

Description::
Smart-Contract Value-Transfer Protocols on a Distributed Mobile Application Platform
Blockchain-enabled smart contracts that employ proof-of-stake validation for transactions, promise significant performance advantages compared to proof-of-work solutions.
For broad industry adoption, other important requirements must be met in addition.
For example, stable backwards-compatible smart-contract systems must automate cross-organizational information-logistics orchestration with lite mobile wallets that support simple payment verification (SPV) techniques.
The currently leading smart-contract solution Ethereum, uses computationally expensive proof-of-work validation, is expected to hard-fork multiple times in the future and requires downloading the entire blockchain.
Consequently, Ethereum smart contracts have limited utility and lack formal semantics, which is a security issue.
This whitepaper fills the gap in the state of the art by presenting the Qtum smart-contract framework that aims for sociotechnical application suitability, the adoption of formalsemantics language expressiveness, and the provision of smart-contract template libraries for rapid best-practice industry deployment.
We discuss the Qtum utility advantages compared to the Ethereum alternative and present Qtum smart-contract future development plans for industrycases applications.
[https://qtum.org/uploads/files/cf6d69348ca50dd985b60425ccf282f3.pdf]

Generic::
* program-blockchain-network,

bcnnet.RSK

Cpt-created: {2017-03-19}

Description::
RSK is the first general purpose smart contract platform secured by the Bitcoin Network.
[https://faq.rsk.co/]
===
RSK is the first open-source smart contract platform with a 2-way peg to Bitcoin that also rewards the Bitcoin miners via merge-mining, allowing them to actively participate in the Smart Contract revolution. RSK goal is to add value and functionality to the Bitcoin ecosystem by enabling smart-contracts, near instant payments and higher-scalability.
[http://www.rsk.co/#about-rsk]

Name::
* cpt.bcnnet.rsk,
* cpt.rootstock-net,
* cpt.rsknet,

AddressWgp::
* {2017-05-15} Bitcoin Scalability Issue Takes New Turn As RSK Ready to Release Ginger: https://cointelegraph.com/,

bcnnet.Synereo (AMPnet)

Description::
Synereo’s Attention Economy
The Future of Content Creation, Publishing and Distribution
Synereo is developing tools which allow content creators to easily monetize original works without having to turn their channels into advertisment real estate, while granting their followers the opportunity to be rewarded for getting the word out.
[http://www.synereo.com/]
===
Blockchain 1.0 brought us Bitcoin, and it was good, but we wanted a foundation for the fully decentralized ecosystem we envisioned.
The Synereo team has built an entirely new, calculus-powered blockchain 2.0 framework - ready to build the decentralized economy of the future.
[https://www.synereo.com/]

Name::
* cpt.ampnet,
* cpt.bcnnet.synereo,
* cpt.synereo-network,

snrnet'Exchange-value-unit (AMPevu)

Description::
Synereo (AMP)
$0.094086 (-0.56%)
0.00007926 BTC (-1.69%)
Market Cap
$7,739,201
6,520 BTC
Volume (24h)
$139,818
117.79 BTC
Circulating Supply
82,256,324 AMP
Total Supply
949,291,063 AMP
[https://coinmarketcap.com/assets/synereo/] {2017-04-15}
===
Synereo AMP
Synereo is a "next generation" decentralized social network that incorporates blockchain technology to overcome problems associated with centralized social networks such as privacy, security and commodification of users' personal data.
[https://changelly.com/supported-currencies]

Name::
* cpt.AMPevu,
* cpt.mnyAMP,
* cpt.AMP-token,

AddressWpg::
* https://coinmarketcap.com/assets/synereo/

snrnet'Resource

AddressWpg::
* http://www.synereo.com/

bcnnet.Tezos (tzsnet)

Cpt-created: {2017-03-23}

Description::
WHAT IS TEZOS?
Tezos is a secure, future-proof smart contract system.

Because Tezos has a built-in consensus mechanism, its protocol can evolve, and incorporate new innovations over time, without the risk of hard forks splitting the market.

Tezos is its own blockchain, not a derivative of any other blockchain. We didn’t just fork Bitcoin or Ethereum and add a layer onto it. We built our own from the ground up.

Our smart contract language makes it easier to apply formal verification to any smart contract running on the Tezos blockchain. This allows developers to rule out weaknesses in code before uploading that code on the blockchain.

Tezos relies on a less onerous, less computationally intensive, and less power-consuming proof-of-stake consensus algorithm, where bonded stakeholders validate transactions.
[https://tezos.com/index.html]

Generic::
* program-blockchain-network,

tzsnet'Resource

AddressWpg::
* https://tezos.com/

Address:
Tezos
100 question mark way
Brooklyn, New York 11221

tzsnet.Evoluting

{time.2017.Q2}:
Tezos is currently scheduled for release in early Q2 2017
[https://tezos.com/index.html]

bcnnet.Wings (WINGSnet)

Description::
WINGS is a platform designed to solve the problem of a project’s early backing and accountability, by providing tools for backers to work together on providing funds and efficient decision making on business critical items.
WINGS puts emphasis on ease of use and efficient collaboration, and on encouraging careful consideration of available choices.
The effort put on this consideration defines whether the decision will result in reward, thus directly rewarding those who bring the most net benefit to the platform efficiency.
With higher efficiency, higher quality projects get more attention both from the backers and the public.
[https://wings.ai/docs/WINGS_Whitepaper_V1.1.2_en.pdf]
===
When will the Wings Platform be launched?
Avatar    Stas Oskin
Thursday at 17:37
Follow
WINGS public beta is estimated to be launched around Q1 2017. Users can, however, test the WINGS platform concept through our Alpha test platform, which currently provides the basic features of project creation and management, forecasting, milestone releases, and project funding.

Everything on the Alpha platform runs on testnet tokens that allow the community to test the concept without the need to send any real crypto-currencies. Click here to test the WINGS Alpha Platform
[https://wings.zendesk.com/hc/en-us/articles/208276389-When-will-the-Wings-Platform-be-launched-]
===
Does WINGS run on its blockchain?
Amadeira
January 22, 2017 00:10
WINGS will run on the RSK sidechain/drivechain which provides the same smart contract and DApp capabilities as the Ethereum Virtual Machine, while enabling projects to be funded with Bitcoin.
[https://wings.zendesk.com/hc/en-us/articles/115000058730-Does-WINGS-run-on-its-blockchain-]

Name::
* cpt.bcnnet.Wings,
* cpt.netWings,
* cpt.wingsnet,

wingsnet'Exchange-value-unit.Consensous (WINGSevuC)

Description::
When will the WINGS token start trading?
Amadeira
March 20, 2017 21:43
The WINGS tokens have not been created yet, therefore it is not possible to transfer, withdraw or trade the tokens at the moment. We are in contact with all major exchanges and will update once we have any news.

WINGS tokens are scheduled to be released around March 2017. At this time, the WINGS tokens will be created and allocated by the smart contract, which means that they can then be added to exchanges that wish to feature WINGS token trading.

It has also come to our attention that the exchange Liqui has launched an I.O.U market for the WINGS token (tokens there are not "real"). This means that the exchange has participated in the WINGS donation campaign and is currently trading it's own tokens that have not yet been created and allocated.
[https://wings.zendesk.com/hc/en-us/articles/115000058670-When-will-the-WINGS-token-start-trading-]

Name::
* cpt.WINGS-token,
* cpt.WINGSevuC,

wingsnet'Organization

DAO (wingsdao)

Description::
What is a DAO
Amadeira
January 21, 2017 15:12
DAO stands for Decentralized Autonomous Organization. At its most basic level, a DAO is an organization that relies on no form of central authority to operate. Instead, DAOs make decisions based on the votes made by all the members of the organization. This system is automatized on the blockchain through the issuance of cryptographic tokens, which are used to vote on certain decisions, projects or changes proposed to the organization.
These organizations usually come together by means of crowdfunding. The funds are then used to carry out the project that it was created to do or projects that are proposed to the organization.
[https://wings.zendesk.com/hc/en-us/articles/115000062610-What-is-a-DAO]

Name::
* cpt.dao.wings,
* cpt.wings'dao,

wingsdao'Managing

Description::
How are DAOs managed?
Amadeira
January 21, 2017 19:59
The tokens issued by DAOs allow members of the organization to vote on certain decisions, projects or changes proposed to the organization. This system is also used to factor in the power of each voter. Typically, this means that the more tokens a member has, the more his vote will weight, although other aspects may also come into play.

This system acts as an anti-sybil measure, ensuring that one user can not vote multiple times without having to purchase more tokens from other members of the community (usually through an exchange). Since these tokens have a real-live value and can only be attain through an exchange or crowdfunding campaign, token holders who have a large stake in the organization have a direct benefit to behave in the DAO’s best interest.
[https://wings.zendesk.com/hc/en-us/articles/115000062910-How-are-DAOs-managed-]

wingsnet'Resource

AddressWpg::
* https://wings.ai/
* {2017-01-26} https://blog.wings.ai/wings-roadmap-update-a2638904fe3c#.4gwyrvhec,

bcnnet.user.PUBLIC

Description::
Public blockchains, like Bitcoin or NEM, allow anyone to join and set up a node to share and receive data.
However, many real-world business and financial uses require that those who can participate in a blockchain be restricted; these are called permissioned blockchains and Mijin provides this powerful functionality.
[http://mijin.io/en/about-mijin]

Name::
* cpt.bcnnet.public,
* cpt.public-bcnnet,

bcnnet.user.PUBLIC.NO

Description::
Public blockchains, like Bitcoin or NEM, allow anyone to join and set up a node to share and receive data.
However, many real-world business and financial uses require that those who can participate in a blockchain be restricted; these are called permissioned blockchains and Mijin provides this powerful functionality.
[http://mijin.io/en/about-mijin]

Name::
* cpt.bcnnet.publicNo,
* cpt.publicNo-bcnnet,

bcnnet.publicNo.Mijin

Description::
Mijin is being built by the NEM development team, using their proven experience and technological prowess.
Working with other developers at Tech Bureau, the NEM team is making Mijin the fastest and most secure blockchain platform in existence.
Rather than trusting other projects that are copies of bitcoin or source code that others wrote, it is important to use reliable, professionally developed software that is made by a unified team.
Mijin is currently the only platform in existence that fulfills this.
[http://mijin.io/en/about-mijin]
===
Public blockchain networks will always have an issue with bandwidth (max. no. of transactions per second). This is because of technical limitations derived from the node network synchronization throughout the large network. Maintaining a chain of many nodes with variation in connectivity and geographical distance in sync simply requires time.
Thus, in the opinion of NEM, the future lies in permissioned chains based on technologies like NEM and anchor these to the public chain - which means to embed hashes of e.g. every tenth private chain block into the public chain. That way immutability and certain public auditability can be achieved using private chain technology with its benefits without compromising public chain advantages.
Mijin is NEM's private chain project. It is built and licensed by the Japanese company Tech Bureau Corp., NEM's strategic partner for permissioned-chain implementations. Mijin is currently in the process of being future proofed as a new 4-tier architecture design. Codenamed Catapult, it is being implemented and written in C++. The current end-to-end prototype has been independently tested by third parties at over 4000 tx/s.
[https://blog.nem.io/nem-mijin-blockchain-technology-briefing-january-2017/]
===
[http://wiki.nem.io/index.php/Mijin]

Name::
* cpt.bcnMijin,
* cpt.bcnnet.Mijin,
* cpt.mijinnet,
* cpt.netMijin,

bcnnet.EVOLUTING (bcnevg)

Name::
* cpt.bcnevn,
* cpt.bcnnet.evoluting,

{time.2017-04-19}:
=== iEx.ec ICO:
French distributed cloud computing network iEx.ec has closed its ICO in just three hours, having raised its target of $12 mln.
... iEx joins a host of startups in the crypto space and further afield to have closed hugely successful crowd sale schemes well ahead of schedule.
Recent examples include the Digital Liquid Venture Fund, which earlier this month reached its $10 mln target in six hours. Humaniq and Matchpool also feature among 2017’s high flyers.
[https://cointelegraph.com/news/iexec-closes-worlds-5th-largest-ico-with-12-mln-in-6-hours]

{time.2013}:
=== COLORED-COINS:
Blockchain assets and colored coins approaches emerged around 2013, when several protocols utilizing Bitcoin’s blockchain were implemented.
[idWaveswpr21]
=== ALTCOINS:
Alt coins continued to proliferate in 2011 and 2012, either based on bitcoin or on Litecoin.By 2013, there were 20 alt coins vying for position in the market. By the end of 2013, this number had exploded to 200, with 2013 quickly becoming the "year of the alt coins." The growth of alt coins continued in 2014, with more than 500 alt coins in existence at the time of writing. More than half the alt coins today are clones of Litecoin.
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch09.asciidoc#alt-coins]
=== PROOF-OF-STAKE
In 2013, we saw the invention of an alternative to proof of work, called proof of stake, which forms the basis of many modern alt coins.
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch09.asciidoc#consensus-innovation-peercoin-myriad-blackcoin-vericoin-nxt]

{time.2012-08}:
=== Peercoin
Peercoin was introduced in August 2012 and is the first alt coin to use a hybrid proof-of-work and proof-of-stake algorithm to issue new currency.
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch09.asciidoc#peercoin]

{time.2011-09}:
=== script-proof-of-work:
In September 2011, Tenebrix was launched. Tenebrix was the first cryptocurrency to implement an alternative proof-of-work algorithm, namely scrypt, an algorithm originally designed for password stretching (brute-force resistance). The stated goal of Tenebrix was to make a coin that was resistant to mining with GPUs and ASICs, by using a memory-intensive algorithm. Tenebrix did not succeed as a currency, but it was the basis for Litecoin, which has enjoyed great success and has spawned hundreds of clones.
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch09.asciidoc#alt-coins]

{time.2011-08}:
=== first altcoin:
Based on the date of announcement, the first alt coin that was a fork of bitcoin appeared in August 2011; it was called IXCoin. IXCoin modified a few of the bitcoin parameters, specifically accelerating the creation of currency by increasing the reward to 96 coins per block.
[https://github.com/bitcoinbook/bitcoinbook/blob/first_edition/ch09.asciidoc#alt-coins]

{time.2010}:
=== name-registration-system:
Namecoin - created in 2010, Namecoin is best described as a decentralized name registration database. In decentralized protocols like Tor, Bitcoin and BitMessage, there needs to be some way of identifying accounts so that other people can interact with them, but in all existing solutions the only kind of identifier available is a pseudorandom hash like 1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy. Ideally, one would like to be able to have an account with a name like "george". However, the problem is that if one person can create an account named "george" then someone else can use the same process to register "george" for themselves as well and impersonate them. The only solution is a first-to-file paradigm, where the first registerer succeeds and the second fails - a problem perfectly suited for the Bitcoin consensus protocol. Namecoin is the oldest, and most successful, implementation of a name registration system using such an idea.
[https://github.com/ethereum/wiki/wiki/White-Paper#alternative-blockchain-applications]

{time.2009}:
=== after bitcoin:
After 2009, however, once Bitcoin's decentralized consensus was developed a number of alternative applications rapidly began to emerge.
[https://github.com/ethereum/wiki/wiki/White-Paper#alternative-blockchain-applications]

{time.2009-01-03 18:15:05}
=== Block#0: Bitcoin genesis block.
=== Block#1: {Timestamp    2009-01-09 02:54:25}
The first block the-network added.
[https://blockchain.info/block-height/1]

{time.2008-10-31}:
=== Bitcoin: A Peer-to-Peer Electronic Cash System
Satoshi Nakamoto White-Paper.

{time.2005}:
===
In 2005, Nick Szabo came out with the concept of "secure property titles with owner authority", a document describing how "new advances in replicated database technology" will allow for a blockchain-based system for storing a registry of who owns what land, creating an elaborate framework including concepts such as homesteading, adverse possession and Georgian land tax. However, there was unfortunately no effective replicated database system available at the time, and so the protocol was never implemented in practice.
[https://github.com/ethereum/wiki/wiki/White-Paper#alternative-blockchain-applications]

bcnnet.HARDFORK (bcnhfk)

Description::
Protocol upgrades (formerly known as hard forks)
[http://docs.bitshares.eu/bitshares/user/you-should-know.html]
===
The basic difference between the two is that soft forks change the rules of a protocol by strictly reducing the set of transactions that is valid, so nodes following the old rules will still get on the new chain (provided that the majority of miners/validators implements the fork), whereas hard forks allow previously invalid transactions and blocks to become valid, so clients must upgrade their clients in order to stay on the hard-forked chain. There are also two sub-types of hard forks: strictly expanding hard forks, which strictly expand the set of transactions that is valid, and so effectively the old rules are a soft fork with respect to the new rules, and bilateral hard forks, where the two rulesets are incompatible both ways.
[http://vitalik.ca/general/2017/03/14/forks_and_markets.html]

Name::
* cpt.bcnhardfork,
* cpt.bcnnet.hardfork,
* cpt.hardbork-of-bcnnet,

bcnhardfork'Evaluation

Description::
The benefits commonly cited for the two are as follows.
- Hard forks allow the developers much more flexibility in making the protocol upgrade, as they do not have to take care to make sure that the new rules “fit into” the old rules
...
Aside from this, one major criticism often given for hard forks is that hard forks are “coercive”. The kind of coercion implied here is not physical force; rather, it’s coercion through network effect. That is, if the network changes rules from A to B, then even if you personally like A, if most other users like B and switch to B then you have to switch to B despite your personal disapproval of the change in order to be on the same network as everyone else.
Proponents of hard forks are often derided as trying to effect a “hostile take over” of a network, and “force” users to go along with them. Additionally, the risk of chain splits is often used to bill hard forks as “unsafe”.
[http://vitalik.ca/general/2017/03/14/forks_and_markets.html]

Name::
* cpt.bcnhardfork'evaluation,

bcnnet.SOFTFORK

Description::
The basic difference between the two is that soft forks change the rules of a protocol by strictly reducing the set of transactions that is valid, so nodes following the old rules will still get on the new chain (provided that the majority of miners/validators implements the fork), whereas hard forks allow previously invalid transactions and blocks to become valid, so clients must upgrade their clients in order to stay on the hard-forked chain.
[http://vitalik.ca/general/2017/03/14/forks_and_markets.html]

Name::
* cpt.bcnnet.softfork,
* cpt.bcnsoftfork,

bcnsoftfork'Evaluation

Description::
The benefits commonly cited for the two are as follows.
- Soft forks are more convenient for users, as users do not need to upgrade to stay on the chain
- Soft forks are less likely to lead to a chain split
- Soft forks only really require consent from miners/validators (as even if users still use the old rules, if the nodes making the chain use the new rules then only things valid under the new rules will get into the chain in any case); hard forks require opt-in consent from users
[http://vitalik.ca/general/2017/03/14/forks_and_markets.html]

Name::
* cpt.bcnsoftfork'evaluation,

Meta-Info

This page was visited times since {2017-05-21}

Page-path: synagonism.net / hitp / modelInfoWorld / blockchain-network (bcnnet)

SEARCH THE-PAGE::
This page uses 'locator-names', names that when you find them, you find the-LOCATION of the-concept they denote.
Type CTRL+F "cpt.words-of-concept's-name", to go to the-LOCATION of the-concept.
There-are about 1,000 explicit concepts, 2,000 explicit names and 40,000 lines of text in this hitp-document.

Description::
This is the-second major hitp-structured-concept I am-publishing.
The-first was 'Javascript'.
The-webpage is full of quotes about the-concepts I am-representing.
DO-NOT-USE my-definitions or your-definitions on the-same names in these quotes.
We must-use the-author's definitions.
My goal is to have-defined ALL the-names I am-using in my sentences.
I can-not-do this in my-website.
But I almost do it in my-notes, where I have-defined more than 100,000 concepts in more than 30 years of work.
[hmnSgm.2017-04-11]
===
The-usefulness of this-webpage is double because except the important blockchain-network structured-concept that contains, it is an-example of structured-concept creation.
Structured-concepts will solve the-problem of management of the enormous quantity of human-information.
[hmnSgm.2017-05-12]

Footer::
• author: Kaseluris.Nikos.1959
• email:
 imgMail
• twitter: @synagonism
===
• github-dev: https://github.com/synagonism/filMcsBcnnet/
• issues: https://github.com/synagonism/filMcsBcnnet/issues

Webpage-Versions::
• version.last.dynamic: filMcsBcnnet.html,
• version.0-1-0.2017-05-21.created: filMcsBcnnet.0-1-0.2017-05-21.html,

Support (link)

Disqus-comments (link)