Conversation
|
|
||
| ### Other Consensus Mechanisms | ||
|
|
||
| We have investiagated proof of work and a m-of-n signatures as a consensus mechanism with a central orderer to agree on correctness and order of data in the past. However, these are not the only possible consensus mechanisms. There are a multitude to choose from - with many resulting in the creation of new cryptocurrencies/blockchains or testnets. Some of the most popular, and the first ones we will focus on, are Proof of Stake and Delegated Proof of Stake / DBFT. |
There was a problem hiding this comment.
So far, We have investiagated we have reviewed proof of work and a m-of-n signatures as a the main example of a consensus mechanism. with a central orderer to agree on correctness and order of data in the past.
...
Some of the most popular, and the first ones we will focus on, are Proof of Stake and Delegated Proof of Stake / DBFT. We will focus on one of the more commonly used consensus mechanisms: Proof of Stake, Delegated Proof of Stake, and dBFT.
|
|
||
| ### Proof Of Stake | ||
|
|
||
| Proof of work offers effective security, as there is constant competition to mine the next block, creating an arms race of mining hardware to accumulate the most cryptocurrency. Each block is mined through some work function, meeting an acceptance condition that all parties can agree upon. Miners are each motivated out of self interest for a chance in getting the next block reward. This system is very effective, but also burns a tremendous amount of energy. A siginficant percentage of the world's energy consumption is now dedicated to mining Bitcoin. This computation is a functionally useless calculation - incrementing a nonce and hashing again. |
There was a problem hiding this comment.
Proof of work offers effective security, as there is constant competition to mine the next block , creating creates an arms race of mining hardware to accumulate the most cryptocurrency.
...
This computation is a functionally useless calculation - incrementing a nonce and hashing again.
Please clarify "functionally useless"
|
|
||
| Proof of work offers effective security, as there is constant competition to mine the next block, creating an arms race of mining hardware to accumulate the most cryptocurrency. Each block is mined through some work function, meeting an acceptance condition that all parties can agree upon. Miners are each motivated out of self interest for a chance in getting the next block reward. This system is very effective, but also burns a tremendous amount of energy. A siginficant percentage of the world's energy consumption is now dedicated to mining Bitcoin. This computation is a functionally useless calculation - incrementing a nonce and hashing again. | ||
|
|
||
| Proof of Stake offers a different solution. Instead of of competing for the right to create a new block through computational power, a staker puts up their own tokens for a chance to create a new block and earn its rewards. |
|
|
||
| ### Storage-Based Consensus | ||
|
|
||
| Instead of staking just currency, a miner can also calculate nonces/hashes based on available storage space in a system called "proof of capacity". This has greater complexity in hard drive space than CPU power, so it emphasizes hard drive space rather than CPU power. Another one is called "Proof of Spacetime", used by filecoin. This requires miners to proove that they have specific files stored by hash or storage space available, becoming a distributed type of document store. No newline at end of file |
There was a problem hiding this comment.
This requires miners to proove that they have specific files stored by hash or storage space available, becoming a distributed type of document store.
proove-> prove- What becomes a distributed document store?
- Needs parallel verb structure: x requires something, which causes y to become something. (Currently it says
x requires something, y becoming somethingwhich is a sentence fragment)
There was a problem hiding this comment.
Where's the section on dBFT?
|
|
||
| ### Ripple | ||
|
|
||
| In the Ripple blockchain, a set of transactions are all proposed for eventual candidacy in a block. Instead of taking turns signing off on blocks, all transactions are aggregated to a single pool, and those that receive 80% of votes are selected for a block. This system tolerates a 20% rate of bad actors occurring in the system and issuing byzantine faulty data. |
There was a problem hiding this comment.
This system tolerates a 20% rate of bad actors occurring in the system and issuing byzantine faulty data.
This system tolerates a 20% rate of bad actors in the system that issue byzantine faulty data. (?)
|
|
||
| ### Going Beyond Blocks | ||
|
|
||
| Instead of finding different ways to optimize how data is persisted in blocks, work functions, block sizes and block production rates, we can also look for room to optimize in how data is stored and validated. Instead of batching transactions into blocks and tracking the previous block in a linked list, we can add transactions asynchronously. Instead of validating all transactions previously in each block, a block can just validate a few that came before it. Eventually, as a transaction has been represented enough by the network, it can reach consensus. |
There was a problem hiding this comment.
...blocks, work functions, block sizes and block production rates...
-> Forgot the oxford comma here.
Eventually, as a transaction has been represented enough by the network, it can reach consensus.
-> Unnecessary comma here.
-> Eventually when a transaction has been represented enough number of times by the network, it can reach consensus.
|
|
||
| #### Graphs | ||
|
|
||
| A graph can be represented any number of ways, in an array, in binary formats, in databases or any number of representations. A graph will have: |
There was a problem hiding this comment.
A graph can be represented any number of ways, in an array, in binary formats, in databases or any number of representations.
-> A graph can be represented numerous ways: as an array, binary formats, databases, and more.
|
|
||
| We can use this structure to avoid validating all transactions in real time and waiting to accumulate them into blocks and distribute through the network. In IOTA, this is done by forcing each transaction to conform two previous transactions (detailed more [here](https://vxcompany.com/2018/05/23/iota-deepdive-1-consensus-on-the-tangle/)). In this structure, each transaction validates the existence of a previous transaction, and transactions afterwards further assert that the previous transaction exists. A transaction reaches a point of being fully consistent when it has enough references that have all validated it (both direct and indirect) to achieve a satisfactory degree of interaction for the application. | ||
|
|
||
| In it's current state, IOTA has a set of training wheels on through the form of an orderer. While all transactions could theoretically be validated asynchronously through the DAG structure (called "the tangle" in IOTA), it makes use of a Zookeeper instance to force order/consistency on the network. To avoid a single transaction to be submitted once with a few references older in the chain, then again with many references right after (effectively trying to double spend), the network is using a ordering service commonly employed by distributed databases. There are plans, however, to remove this in the future. |
There was a problem hiding this comment.
To avoid a single transaction to be submitted once with a few references older in the chain, then again with many references right after (effectively trying to double spend), the network is using a ordering service commonly employed by distributed databases.
-> To prevent transactions submitting with references linking those that are older in the chain with multiple other references (which causes double spend), the network utilizes the Zookeeper instance as an ordering service. (?)
|
|
||
| ### Masternodes | ||
|
|
||
| Dash and PivX don't necessarily have a distinctly different consensus mechanism from the others, however there are extra network effects in the form of masternodes. A masternode is often setup by paying in cryptocurrency and putting up a stake, and taking extra responsibilities in the network in accordance with that stake. The staked amount of tokens can be subject to forfeiture if the masternode fails to perform network duties in some instances. To compensate for this, the masternode is then eligible for some percentage of the block rewards. |
There was a problem hiding this comment.
Dash and PivX don't necessarily have a distinctly different consensus mechanism from the others, however there are extra network effects in the form of masternodes.
-> Dash and PivX don't necessarily have a distinctly different consensus mechanism from the others. However, there are extra network effects in the form of masternodes.
There was a problem hiding this comment.
A masternode is often setup by paying in cryptocurrency and putting up a stake, and taking extra responsibilities in the network in accordance with that stake.
-> A masternode is often setup by paying cryptocurrency and putting up a stake in order to take extra responsibilities in the network in accordance with said stake.
|
|
||
| Dash and PivX don't necessarily have a distinctly different consensus mechanism from the others, however there are extra network effects in the form of masternodes. A masternode is often setup by paying in cryptocurrency and putting up a stake, and taking extra responsibilities in the network in accordance with that stake. The staked amount of tokens can be subject to forfeiture if the masternode fails to perform network duties in some instances. To compensate for this, the masternode is then eligible for some percentage of the block rewards. | ||
|
|
||
| In Dash, a masternode is eligible for a percentage of the block rewards, if it performs some network duties around privacy and instant transactions. In "Instant Send", a transaction reaches consensus around 10 masternodes in lieu of the entire network. This allows for irreversible transactions faster than the normal confirmation time, allowing more rapid payment remittance (significantly less than bitcoin or regular dash). The other is Private Send, where transactions are mixed with each other, until it is difficult to find their source. No newline at end of file |
There was a problem hiding this comment.
In Dash, a masternode is eligible for a percentage of the block rewards, if it performs some network duties around privacy and instant transactions.
-> In Dash, a masternode is eligible for a percentage of the block rewards if it performs some network duties around privacy and instant transactions. (Remove second comma)
There was a problem hiding this comment.
This allows for irreversible transactions faster than the normal confirmation time, allowing more rapid payment remittance (significantly less than bitcoin or regular dash).
-> Says "allows" twice
There was a problem hiding this comment.
The other is Private Send, where transactions are mixed with each other, until it is difficult to find their source.
-> The other what?
-> The other {insert descriptor} is Private Send, where transactions are mixed with each other until it is difficult to find its original source. (Remove second comma)
No description provided.