User Tools

Site Tools


dido:public:ra:xapend:xapend.k_consensus:02_mechanism:pow

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:public:ra:xapend:xapend.k_consensus:02_mechanism:pow [2021/07/16 18:55]
nick
dido:public:ra:xapend:xapend.k_consensus:02_mechanism:pow [2021/08/17 13:46] (current)
murphy
Line 1: Line 1:
 ====== Proof of Work (PoW) ====== ====== Proof of Work (PoW) ======
-[[dido:​public:​ra:​xapend:​xapend.k_consensus:​02_mechanism | Return to Consensus Mechanism ]]+[[dido:​public:​ra:​xapend:​xapend.k_consensus:​02_mechanism:​start ​| Return to Consensus Mechanism ]]
  
-Developed ​by Satoshi NakamotoProof of Work is the oldest consensus mechanism used in the Blockchain domainIt is also known as mining where the participating nodes are called miners.+The definition is provided ​by Frankenfiels(( 
 +Jake Frankenfield, 
 +Investopedia,​ 
 +__Proof ​of Work (PoW)__, 
 +19 March 2021, 
 +Accessed: 18 July 2021, 
 +[[https://​www.investopedia.com/​terms/​p/​proof-work.asp]] 
 +)):
  
-In this mechanism, the miners have to solve complex mathematical puzzles using comprehensive computation powerThey use different forms of mining methods, such as GPU mining, CPU mining, ASIC mining, and FPGA miningAnd the one that solves ​the problem at the earliest gets a block as a reward+//​**[[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​proof_of_work|Proof ​of Work (PoW)]]** describes a system that requires a not-insignificant but feasible amount of effort in order to deter frivolous or malicious uses of computing power, such as sending spam emails or launching denial of service attacksThe concept was subsequently adapted to securing digital money by Hal Finney in 2004 through ​the idea of "​reusable proof of work" using the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​sha_256|SHA-256]] hashing algorithm.//
  
-However, the process is not that easy. A puzzle can be solved only via the trial and error method. Additionally,​ the level of complexity of the puzzle increases with the speed at which blocks are mined. So, it becomes mandatory for one to create a new block within a certain time frame to cope up with the difficulty level.[[dido:​public:​ra:​xapend:​xapend.k_consensus:​09_ref:​bhardwaj]] 
  
 +//Following its introduction in 2009, [[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​bitcoin|Bitcoin]] became the first widely adopted [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​application|application]] of Finney'​s PoW idea (Finney was also the recipient of the first bitcoin transaction). Proof of work forms the basis of many other cryptocurrencies as well, allowing for secure, decentralized consensus.//​
 +
 +//This explanation will focus on proof of work as it functions in the bitcoin network. Bitcoin is a digital currency that is underpinned by a kind of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​distributed_ledgers|distributed ledger]] known as a "​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​blockchain|blockchain]]."​ This [[dido:​public:​ra:​xapend:​xapend.a_glossary:​l:​ledger|ledger]] contains a record of all bitcoin transactions,​ arranged in sequential "​blocks,"​ so that no user is allowed to spend any of their holdings twice. In order to prevent tampering, the ledger is public, or "​distributed";​ an altered version would quickly be rejected by other users.//
 +
 +
 +//The way that users detect tampering in practice is through hashes, long strings of numbers that serve as proof of work. Put a given set of data through a hash function (bitcoin uses SHA-256), and it will only ever generate one hash. Due to the "​avalanche effect,"​ however, even a tiny change to any portion of the original data will result in a totally unrecognizable hash. Whatever the size of the original data set, the hash generated by a given function will be the same length. The hash is a one-way function: it cannot be used to obtain the original data, only to check that the data that generated the hash matches the original data.//
 +
 +//​Generating just any hash for a set of bitcoin transactions would be trivial for a modern computer, so in order to turn the process into "​work,"​ the bitcoin network sets a certain level of "​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​difficulty|difficulty]]."​ This setting is adjusted so that a new block is "​mined"​ – added to the blockchain by generating a valid hash – approximately every 10 minutes. Setting difficulty is accomplished by establishing a "​target"​ for the hash: the lower the target, the smaller the set of valid hashes, and the harder it is to generate one. In practice, this means a hash that starts with a very long string of zeros.//
  
 /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
dido/public/ra/xapend/xapend.k_consensus/02_mechanism/pow.1626476152.txt.gz · Last modified: 2021/07/16 18:55 by nick