Lecture
Proof of work (POW, PoW) is a principle for protecting network systems from abuse of services (for example, from DoS attacks or the organizing of spam mailings), based on requiring the client to perform some sufficiently lengthy piece of work (finding the solution to a problem), the result of which is easily and quickly verified on the server side (see one-way function). The main feature of the computations used lies in the asymmetry of the time cost — finding the solution takes significant time, while verification is very fast . Such schemes are also known as a client puzzle (client puzzle function), a computational puzzle (computational puzzle function), or a CPU pricing function.
This method of protection should not be confused with CAPTCHAs, which pose tasks that are easy for a human but difficult or altogether unsolvable for a computer. Proof of work is originally oriented toward finding a solution via a known algorithm within some finite time, but verifying the resulting solution requires a relatively small number of operations. POW technology has seen its widest adoption and development in cryptocurrency systems.
The requirement of proof of work was first put forward in the article “Pricing via Processing or Combatting Junk Mail” in 1993. The authors proposed the following idea: to access a shared resource, a user must compute some function that is quite complex and resource-intensive, yet solvable within an acceptable amount of time. Computing the function on the client side must be far harder than verifying the result on the server side. One of the mandatory requirements for the function is its non-amortizability — finding several solutions should take time proportional to their number. The authors assumed that such extra computations would not hinder the sending of a few ordinary letters from an average user's computer, but that the need for constant computation would make sending spam very resource-intensive. According to independent estimates, such systems in practice lead to a substantial restriction on the number of letters that can be sent per day from a single computer .
In 1997, Adam Back launched the Hashcash project, dedicated to spam protection. The task was formulated as follows: “Find a value x such that the hash SHA(x) contains N leading zero bits.”
In 1999 the term Proof-of-Work appeared — it was used in the article “Proofs of Work and Bread Pudding Protocols” (authors — Markus Jakobsson and Ari Juels) in the journal Communications and Multimedia Security .
On August 16, 2004, Hal Finney, in his letter on the cypherpunks forum, proposed using a reusable proof of work (Reusable-Proofs-of-Work, RPOW, RPoW) to set up an electronic currency .
Soon afterward, Satoshi Nakamoto proposed the Bitcoin cryptocurrency, in which proof of work is used to significantly complicate double-spending. It was proposed to find the hash of a block of information via the SHA-256 function by selecting parameters so that a given number of the result's leading bits would be zero. Later, other cryptocurrencies (for example, Litecoin) began using KDFs such as scrypt, bcrypt, PBKDF2 and others instead of SHA-256 .
One popular system, used in Hashcash , uses partial hash inversion to prove that work was done, as a goodwill token for sending an email . For example, the following header represents about 2 52 hash computations for sending a message

This is verified with a single computation, by checking that the SHA-1 hash of the stamp (without the header name, X-Hashcash: including the colon and any number of spaces following it up to the digit '1') begins with 52 binary zeros, that is, 13 hexadecimal zeros:
Whether PoW systems can really solve a specific denial-of-service problem, such as the spam problem, is a matter of debate; the system should make sending spam intrusively unproductive for the spammer, while also not hindering legitimate users from sending their messages. In other words, a genuine user should not run into any difficulty when sending email, but an email spammer would have to spend significant computing power to send many emails at once. Proof-of-Work systems are used as primitives by other, more complex cryptographic systems, such as Bitcoin, which uses a system similar to Hashcash.
There are two classes of proof-of-work protocols.


Protocols with known solutions tend to have slightly lower variance than unbounded probabilistic protocols, because the variance of a rectangular distribution is lower than the variance of a Poisson distribution (with the same mean). [ additional explanation needed ] A common method of reducing variance is to use several independent subtasks, since the average of several samples will have lower variance.
There are also fixed-cost functions, such as the time-lock puzzle.
Moreover, the underlying functions used by these schemes can be:
Finally, some PoW systems offer fast computations that allow participants who know a secret, usually a private key, to generate cheap PoWs. The reason is that mailing-list holders can create stamps for each recipient without incurring large costs. Whether such a feature is desirable depends on the use case.
A list of the most common functions used in proof-of-work systems:
Experts continue to debate whether POW protection is sufficiently effective against DoS attacks and spam[17][18].
In its early days, Bitcoin, like many other cryptocurrencies, is vulnerable to a “51% attack”: if an attacker controls more than half of all the computing power on the network, they gain the ability to confirm only their own blocks while ignoring everyone else's, letting them obtain 100% of all bitcoins produced, as well as block any transactions. Alternatively, the attacker can rewrite the entire history of block generation starting from some point in the past. As a result, they can catch up with and overtake the current blockchain, making their own version the valid one. As a consequence, money held in users' wallets over a long period of time would disappear.[12]
Double-spending (a double spend) — the repeated transfer of one and the same assets. This attack breaks down into several subtypes.
In selfish mining (English: selfish mining), the attacker's goal is to control the network while holding computing resources whose total power is less than 50%. This is achieved by the attacker claiming that their pool is more profitable to mine in than other pools, which attracts outside miners. The attacker publishes blocks in such a way that the computing resources of other miners and pools are wasted. The rough course of the algorithm is as follows:
In almost every outcome, honest miners end up worse off, which forces them to join the criminal pool.[21]
Opponents of the POW approach, besides a number of potential security problems, point to the following drawbacks:
Attempts to get rid of POW's shortcomings led to the emergence of POS and numerous hybrid variants.
Examples of hybrid schemes combining the ideas of POS and POW can be found in many cryptocurrencies. In them the blockchain consists of blocks of both types, which makes rewriting transaction history a difficult task, since POW blocks serve as checkpoints, given the total difficulty of the work across the whole chain. Usually, in such algorithms, POW blocks serve as indicators of real work performed, which gives sellers an extra guarantee of reliability when dealing with transactions. POW blocks can be used for currency issuance, while POS blocks can be regarded as potential income from a deposit.[25]
A prototype algorithm not yet implemented, in which coin holders join the overall process only after some work has been done by POW participants, which reduces the chances of a 51% attack, since a majority holder will not be able to unilaterally control the creation of new blocks.[26]
How the algorithm works:
Money is sent to an address that is the hash of a random number; funds at that address are guaranteed to be unspendable, since the probability of finding the keys to it tends to zero. In return, the miner receives a permanent chance of finding a PoB block and receiving a reward for it. Mining in this case is arranged so that the chances of success depend on the number of coins burned. By analogy, burning is like a non-refundable POS deposit, or an investment in virtual hardware for POW mining. From an economic standpoint, this algorithm is better suited to the later stages of a cryptocurrency's development, once most of the money supply has already been generated.[27]
The Proof of Capacity algorithm (or Proofs of Space) works as follows: mining requires allocating a substantial amount of memory on the computer, after which a large number of large data blocks are created by repeatedly hashing a public key together with random numbers. From the last header of each data block an index is obtained, after which a small piece of the block at that index is selected, a chunk (Chunk). The more memory that is allocated, the more chunks are obtained. The condition that must hold is that the hash of the chunk and the last header must be less than the target. In this way, every megabyte of memory acts as the equivalent of a lottery ticket and increases the chance of success when mining.[28]
The Proof of Research algorithm was developed within the GridCoin project in order to direct the computing power of PoW networks toward solving scientific problems on the BOINC platform. Proof of Research simultaneously uses Proof of Work to reward participants for the computations they perform, and Proof of Stake to encourage long-term participation in the project[29].
POW-based systems are extremely resource-intensive.
|
Cryptocurrencies
|
|
|---|---|
| SHA-2-based PoW |
|
| Scrypt-based PoW |
|
| CryptoNote-based PoW |
|
| Other PoW algorithms |
|
| PoS algorithms |
|
| Other technologies |
|
Comments