PoW: Difference between revisions

Jump to navigation Jump to search
240 bytes removed ,  2 February
no edit summary
[checked revision][checked revision]
m (CryptoUser moved page Commoninfo:pow to PoW)
No edit summary
 
Line 1: Line 1:
{{#seo:
{{#seo:
                     |title= PoW
                     |title= PoW — Decimal Wiki
                     |titlemode= append  
                     |titlemode= append  
                     |keywords= PoW
                     |keywords= PoW, Proof-of-Work consensus protocol
                     |description= PoW
                     |description= PoW, Proof-of-Work consensus protocol
                     }}
                     }}
<div class="mikio-article-content">
'''Proof-of-Work''' (proof of work) is a [[consensus]] based on the necessity to perform long—term work (finding a solution to the problem) on the client side. The result of this work can be easily and quickly [[verification|verified]] by the [[server]].
<div class="mikio-tags">
 
 
</div>
<span id="pow"></span>
= PoW =
<div class="level1">
"'Proof-of-Work (proof of work)"' is a consensus based on the necessity to perform long—term work (finding a solution to the problem) on the client side. the result of this work can be easily and quickly verified by the server.
   
   
The peculiarity of the calculations used lies in the asymmetry of time spent: they are significant for finding a solution and still too small for verification.
The peculiarity of the calculations used lies in the asymmetry of time spent: they are significant for finding a solution and still too small for verification.
   
   
The purpose of Proof-of-Work is to verify that the required calculations were actually performed when creating a new block.
The purpose of Proof-of-Work is to verify that the required calculations were actually performed when creating a new [[block]].
   
   
</div>
== History ==
<span id="istorija"></span>
For the first time, the description of proof of work was given in the article entitled Pricing via ''Processing or Combatting Junk Mail'' of 1993.
= History =
<div class="level1">
For the first time, the description of proof of work was given in the article entitled "'Pricing via Processing or Combatting Junk Mail"' of 1993.
   
   
The authors proposed the following idea to combat spam: to access a shared resource, the user must calculate some complex function. The client-side process should be much more complicated than checking the result on the server side. According to the authors, complex calculations do not create obstacles for sending several letters from a user`s computer but the necessity for constant calculations still makes this very resource intensive.
The authors proposed the following idea to combat spam: to access a shared resource, the user must calculate some complex function. The client-side process should be much more complicated than checking the result on the server side. According to the authors, complex calculations do not create obstacles for sending several letters from a user`s computer but the necessity for constant calculations still makes this very resource intensive.
   
   
In 1997, Adam Beck launched the Hashcash project dedicated to spam protection.<br />
* '''In 1997''', [[wikipedia:Adam Beck|Adam Beck]] launched the ''Hashcash'' project dedicated to spam protection.
'''In 1999''', the term Proof-of-Work appeared. It was used in the article "Proofs of Work and Bread Pudding Protocols".<br />
* '''In 1999''', the term Proof-of-Work appeared. It was used in the article "Proofs of Work and Bread Pudding Protocols".
'''On August 16, 2004''', Hal Finney, in his letter on the cypherpunks forum, suggested using reusable proof of work to organize electronic currency. Soon Satoshi Nakamoto proposed the "bitcoin" cryptocurrency in which proof of work protocol is used to significantly complicate double spending.<br />
* '''On August 16, 2004''', [[wikipedia:Hal Finney|Hal Finney]], in his letter on the [[cypherpunk]]s forum, suggested using reusable proof of work to organize electronic currency. Soon [[wikipedia:Satoshi Nakamoto|Satoshi Nakamoto]] proposed the "[[bitcoin]]" [[cryptocurrency]] in which proof of work protocol is used to significantly complicate double spending.


== Operation principle ==
[[Mining]] of each block represents, in essence, a search for the function solution. The complexity of the task varies to control the frequency of finding blocks. The system is programmed in such a way that the average frequency of finding is one block in 10 minutes. Each block contains a [[hash]] of the previous block, forming a [[chain]].


</div>
It is impossible to change the block — you can only create a block at the same height, which will contain the hash of the previous block. To carry out such a process, it is necessary to do work on finding all the previous blocks. The high complexity of this process protects the block chain ([[blockchain]]) from unauthorized access and [[double-spending attacks]].
<span id="princip_raboty"></span>
= Operation principle =
   
   
<div class="level1">
== Vulnerabilities ==
'''For 11 years of the Bitcoin network's existence, no one has been able to break the system and take advantage of its vulnerabilities.'''
Mining of each block represents, in essence, a search for the function solution. The complexity of the task varies to control the frequency of finding blocks. The system is programmed in such a way that the average frequency of finding is one block in 10 minutes. Each block contains a hash of the previous block, forming a chain. It is impossible to change the block — you can only create a block at the same height, which will contain the hash of the previous block. To carry out such a process, it is necessary to do work on finding all the previous blocks. The high complexity of this process protects the block chain (blockchain) from unauthorized access and double-spending attacks.
 
</div>
<span id="ujazvimosti"></span>
= Vulnerabilities =
<div class="level1">
"For 11 years of the Bitcoin network's existence, no one has been able to break the system and take advantage of its vulnerabilities."
</div>
<span id="ataka_51"></span>
=== 51% attack ===
=== 51% attack ===
In the early stages of its existence, Bitcoin, like many other cryptocurrencies, is vulnerable to a "51% attack". If more than a half of the computing power is concentrated in the hands of attacker, then he has the opportunity to confirm only his own blocks, while ignoring others, and this allows him to receive 100% of all bitcoins produced, as well as block any transactions. Alternatively, an attacker can rewrite the entire block generation history starting from a certain point in the past. As a result, he can catch up and overtake the current blockchain chain, making his version valid. As a result, the money stored in users' [[wallet]]s for a long period will disappear.
   
   
<div class="level3">
In the early stages of its existence, Bitcoin, like many other cryptocurrencies, is vulnerable to a "51% attack". If more than a half of the computing power is concentrated in the hands of attacker, then he has the opportunity to confirm only his own blocks, while ignoring others, and this allows him to receive 100% of all bitcoins produced, as well as block any transactions. Alternatively, an attacker can rewrite the entire block generation history starting from a certain point in the past. As a result, he can catch up and overtake the current blockchain chain, making his version valid. As a result, the money stored in users' wallets for a long period will disappear.
</div>
<span id="dvojnoe_rasxodovanie"></span>
=== Double spending ===
=== Double spending ===
Double spending is the repeated transfer of the same [[digital assets|assets]]. This attack is divided into several subtypes.
   
   
<div class="level3">
'''Race type attack'''. The attacker commits [[transaction]] X, paying for the purchase of goods, while transferring the same money to another account with transaction Y. If the seller did not wait for confirmation of the transaction and shipped the goods, then he took a big risk: there is a 50 percent chance that transaction Y can get into the true chain.
Double spending is the repeated transfer of the same assets. This attack is divided into several subtypes.
'''Race type attack''' The attacker commits transaction X, paying for the purchase of goods, while transferring the same money to another account with transaction Y. If the seller did not wait for confirmation of the transaction and shipped the goods, then he took a big risk: there is a 50 percent chance that transaction Y can get into the true chain.
   
   
'''Finney Attack''' The attacker is trying to find the block that contains his transaction Y. However, as soon as the block is detected, the attacker sends transaction X, after which he buys the goods. The seller waits for the confirmation of transaction X and ships the goods. If a block with transaction Y appears at this moment, then a fork situation is created in which miners must choose one of two blocks to continue the blockchain chain. When concentrating a large amount of computing resources in the hands of an attacker, he can significantly increase the probability of choosing a block with operation Y. Thus, a confirmed transaction is not guaranteed to be valid.
'''Finney Attack'''. The attacker is trying to find the block that contains his transaction Y. However, as soon as the block is detected, the attacker sends transaction X, after which he buys the goods. The seller waits for the confirmation of transaction X and ships the goods. If a block with transaction Y appears at this moment, then a fork situation is created in which miners must choose one of two blocks to continue the blockchain chain. When concentrating a large amount of computing resources in the hands of an attacker, he can significantly increase the probability of choosing a block with operation Y. Thus, a confirmed transaction is not guaranteed to be valid.
   
   
</div>
== Disadvantages of PoW ==
<span id="nedostatki_pow"></span>
Mining using PoW algorithms consumes an extremely large amount of electricity, as it requires a constant increase in computing power. Therefore, the PoW approach is not the best solution in terms of energy efficiency.
= Disadvantages of PoW =
   
   
<div class="level1">
'''In 2017, one transaction on the Bitcoin network required the same amount of energy that meets the needs of a family consisting of three people and living in a small one-story house for five and a half days.'''
Mining using PoW algorithms consumes an extremely large amount of electricity, as it requires a constant increase in computing power. Therefore, the PoW approach is not the best solution in terms of energy efficiency.<br />
'''In 2017, one transaction on the Bitcoin network required the same amount of energy that meets the needs of a family consisting of three people and living in a small one-story house for five and a half days.'''<br />
   
   
The results of calculating hash functions are not needed anywhere except in the network itself. Since the advent of technology, the community has been trying to come up with a way to direct all the computing resources of the network to solving some useful mathematical or industrial problem, but it has not been possible to implement it in its pure form.
The results of calculating hash functions are not needed anywhere except in the network itself. Since the advent of technology, the community has been trying to come up with a way to direct all the computing resources of the network to solving some useful mathematical or industrial problem, but it has not been possible to implement it in its pure form.
   
   
Attempts to get rid of the disadvantages of PoW have led to the emergence of PoS and numerous hybrid variants.
Attempts to get rid of the disadvantages of PoW have led to the emergence of PoS and numerous hybrid variants.
</div>
<div style="clear:both">


</div>
== See also ==
* [[PoS]]
* [[DPoS]]
   
   
</div>
[[Category:Commoninfo]]
[[Category:Commoninfo]]
[[Category:Consensus protocols]]

Navigation menu