# ECCPoW: Error-Correction Code based Proof-of-Work for ASIC Resistance

^{1}

^{2}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Related Work

#### 2.1. Ethereum

#### 2.2. The X-11 Series

#### 2.3. CryptoNote

## 3. The Proposed Method

#### 3.1. ECCPoW Overview

#### 3.2. Create a Cryptographic Puzzle That Changes Every Block

#### 3.3. Crypto Puzzle Decoder That Changes Every Block

_{c}, and w

_{r}are fixed. Table 5 displays the probability that Condition 2 is satisfied when given a set S and part of the distribution of Hamming weights of the codes that can be generated when n = 256, m = 192, and w

_{c}, w

_{r}= 5 are given.

_{c}, and w

_{r}and the set S are given. The probability value p in Table 6 is the difficulty level of the cryptographic puzzle. The closer the probability value is to zero, the higher the difficulty of the cryptographic puzzle.

## 4. Experiment

#### 4.1. ECCPoW Operation Single/Multiple Node Experiment

#### 4.2. Block Generation Time

## 5. Evaluation

#### 5.1. Mining the Centralization Evaluation

#### 5.2. Security Evaluation

#### 5.3. Scalability Evaluation

#### 5.4. Comparison to Related Work

## 6. Conclusions

## Author Contributions

## Funding

## Conflicts of Interest

## References

- Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System; 2008; Available online: https://bitcoin.org/bitcoin.pdf (accessed on 9 June 2020).
- Nofer, M.; Gomber, P.; Hinz, O.; Schiereck, D. Blockchain. Bus. Inf. Syst. Eng.
**2017**, 59, 183–187. [Google Scholar] [CrossRef] - Saberi, S.; Kouhizadeh, M.; Sarkis, J.; Shen, L. Blockchain Technology and Its Relationships to Sustainable Supply Chain Management. Int. J. Prod. Res.
**2019**, 57, 2117–2135. [Google Scholar] [CrossRef][Green Version] - Qin, R.; Yuan, Y.; Wang, F.-Y. Research on the Selection Strategies of Blockchain Mining Pools. IEEE Trans. Comput. Soc. Syst.
**2018**, 5, 748–757. [Google Scholar] [CrossRef] - Liu, X.; Wang, W.; Niyato, D.; Zhao, N.; Wang, P. Evolutionary Game for Mining Pool Selection in Blockchain Networks. IEEE Wirel. Commun. Lett.
**2018**, 7, 760–763. [Google Scholar] [CrossRef][Green Version] - Karame, G.O.; Androulaki, E.; Capkun, S. Double-Spending Fast Payments in Bitcoin. In Proceedings of the 2012 ACM Conference on Computer and Communications Security, Raleigh, NC, USA, 16–18 October 2012; pp. 906–917. [Google Scholar] [CrossRef]
- Jang, J.; Lee, H.-N. Profitable Double-Spending Attacks. arXiv
**2019**. Available online: https://arxiv.org/abs/1903.01711 (accessed on 9 June 2020). - Antminer S19 Pro. Available online: https://support.bitmain.com/hc/en-us/articles/900000261726-S19-Pro-Specifications (accessed on 9 June 2020).
- Park, S.; Kim, H.; Lee, H.N. Introduction to Error-Correction Codes Proof-of-WorK. Mag. IEIE
**2019**, 5, 26–32. [Google Scholar] - Buterin, V. A Next-Generation Smart Contract and Decentralized Application Platform. White Pap. Available online: https://ethereum.org/whitepaper/ (accessed on 9 June 2020).
- Wood, G. Ethereum: A Secure Decentralised Generalised Sransaction Byzantium Version. Yellow Pap.
**2014**. Available online: https://ethereum.github.io/yellowpaper/paper.pdf (accessed on 9 June 2020). - Zhou, Q.; Huang, H.; Zheng, Z.; Bian, J. Solutions to Scalability of Blockchain: A Survey. IEEE Access
**2020**, 8, 16440–16455. [Google Scholar] [CrossRef] - Greg, C.; Andrea, L.; Michael, C.; IfDefElse. ProgPoW, a Programmatic Proof-of-Work. Ethereum—EIPs, No. 1057. 2018. Available online: https://eips.ethereum.org/EIPS/eip-1057 (accessed on 9 June 2020).
- Duffield, E.; Diaz, D. Dash: A PrivacyCentric Crypto-Currency. White Pap.
**2014**. Available online: https://docs.dash.org/en/stable/introduction/about.html#whitepaper (accessed on 9 June 2020). - Saberhagen, N.V. Cryptonote v2.0. White Pap.
**2013**. Available online: https://cryptonote.org/whitepaper.pdf (accessed on 9 June 2020). - RandomX. Available online: https://github.com/tevador/RandomX (accessed on 9 June 2020).
- Shao, S.; Hailes, P.; Wang, T.-Y.; Wu, J.-Y.; Maunder, R.G.; Al-Hashimi, B.M.; Hanzo, L. Survey of Turbo, LDPC, and Polar Decoder ASIC Implementations. IEEE Commun. Surv. Tutor.
**2019**, 21, 2309–2333. [Google Scholar] [CrossRef][Green Version] - Gallager, R. Low-Density Parity-Check Codes. IRE Trans. Inf. Theory
**1962**, 8, 21–28. [Google Scholar] [CrossRef][Green Version] - Bitcoin ECC LDPC. Available online: https://github.com/cryptoecc/bitcoin_ECC/blob/ecc-0.1/src/ldpc/LDPC.cpp (accessed on 9 June 2020).
- Ben-Haim, Y.; Litsyn, S. Upper Bounds on the Rate of LDPC Codes as a Function of Minimum Distance. IEEE Trans. Inf. Theory
**2006**, 52, 2092–2100. [Google Scholar] [CrossRef][Green Version] - Bitcoin Core 0.17 Version. Available online: https://github.com/bitcoin/bitcoin/tree/0.17 (accessed on 9 June 2020).
- Bitcoin ECC 0.1.2 Version. Available online: https://github.com/cryptoecc/bitcoin_ECC/tree/ecc-0.1.2 (accessed on 9 June 2020).

**Figure 1.**Condition 2 for determining the error-correction codes proof-of-work (ECCPoW) crypto puzzle resolution.

Variables | Definition |
---|---|

n | Number of columns in H |

m | Number of rows in H |

w_{c} | Number of 1s in each column |

w_{r} | Number of 1s in each row |

Generated Matrix H n = 24 m = 16 w _{c} = 3 w_{r} = 4 | |

Previous hash value | 0x00000000000000000000000000000001 |

Generated Matrix H n = 24 m = 16 w _{c} = 3 w_{r} = 4 | |

Previous hash value | 0x00000000000000000000000000000002 |

Condition 1 | (Original method) If the result of the decoder is code and has a specific Hamming weight, the problem is solved. |

Condition 2 | (Existing proof of work) If the result of rehashing the result of the decoder is less than a specific value, the problem is solved. |

**Table 4.**Probability of finding a code according to the variables of the low-density parity-check matrix.

w_{c} = 4, w_{r} = 5 | p_{1}Upper Bounds | p_{1}Lower Bounds |
---|---|---|

n = 80, k = 12 | 6.32 × 10^{−5} | 2.12 × 10^{−8} |

n = 120, k = 24 | 1.65 × 10^{−8} | 1.49 × 10^{−13} |

n = 160, k = 32 | 4.06 × 10^{−10} | 1.34 × 10^{−17} |

Hamming Weight | Probability | Element of the Set S | Probability that Condition 2 is Satisfied |
---|---|---|---|

98 | ≈5 × 10^{−5} | 98 | ≈5 × 10^{−5} |

… | … | … | … |

128 | ≈9.7 × 10^{−2} | 98, 100, …, 126 | ≈4 × 10^{−1} |

128 | ≈1 × 10^{−1} | 98, 100, …, 126, 128 | ≈5 × 10^{−1} |

Lv. | n | w_{c} | w_{r} | Set S | p |
---|---|---|---|---|---|

1 | 32 | 3 | 4 | {10, 12, …, 20, 22} | ≈3.07 × 10^{−5} |

2 | 32 | 3 | 4 | {10, 12, …, 14, 16} | ≈2.02 × 10^{−5} |

… | |||||

379 | 128 | 3 | 4 | {34, 94} | ≈5.12 × 10^{−23} |

380 | 128 | 3 | 4 | {34} | ≈2.60 × 10^{−23} |

No | Role | CPU | Memory (GB) | HDD/SSD (GB) | Volume |
---|---|---|---|---|---|

1 | Monitoring PC | Intel i7-8700 3.20 GHz | 16 | SSD 256 | 1 |

2 | Seed Instance | AWS m5.xlarge vCPU 2 | 8 | HDD 20 | 6 |

3 | Mining Instance | AWS m5.xlarge vCPU 2 | 8 | HDD 20 | 40 |

Evaluation Features | Unit of Measurement | Evaluation Standards | Evaluation Goal |
---|---|---|---|

Mining centralization | Distribution of mining success rate | 40% (Estimate) (Bitcoin, Oct.–Dec. 2018) | 40% |

Security | Security of Bitcoin contrast | 100% (Bitcoin) | 100% |

Scalability | Scalability of Bitcoin contrast | 100% (Bitcoin) | 100% |

Number of Mining Nodes | Number of Mining Success | Number of Mining Nodes | Number of Mining Success |
---|---|---|---|

1 | 4 | 11 | 7 |

2 | 9 | 12 | 4 |

3 | 3 | 13 | 12 |

4 | 4 | 14 | 5 |

5 | 6 | 15 | 11 |

6 | 4 | 16 | 2 |

7 | 6 | 17 | 7 |

8 | 6 | 18 | 6 |

9 | 5 | 19 | 10 |

10 | 5 | 20 | 8 |

Total Number of Mining Successes | Average Mining Successes | Square of the Average Number | Dispersion of the Average Number | Distribution of Mining Successes |
---|---|---|---|---|

124 | 6.2 | 38.44 | 6.76 | 92.21944 |

Number | Height | Block Generation Time (Seconds) | Number of Transactions |
---|---|---|---|

1 | 91 | 719 | 672 |

2 | 92 | 19 | 22 |

3 | 93 | 94 | 88 |

4 | 94 | 144 | 141 |

5 | 95 | 275 | 263 |

6 | 96 | 40 | 40 |

7 | 97 | 313 | 296 |

8 | 98 | 6 | 11 |

9 | 99 | 574 | 534 |

10 | 100 | 146 | 137 |

Total | 2330 | 2204 | |

TPS | 0.945922747 TPS |

Number | Height | Block Generation Time (Seconds) | Number of Transactions |
---|---|---|---|

1 | 91 | 151 | 140 |

2 | 92 | 192 | 182 |

3 | 93 | 369 | 351 |

4 | 94 | 361 | 331 |

5 | 95 | 156 | 151 |

6 | 96 | 214 | 205 |

7 | 97 | 124 | 120 |

8 | 98 | 267 | 250 |

9 | 99 | 585 | 548 |

10 | 100 | 514 | 480 |

Total | 2933 | 2758 | |

TPS | 0.940334129 TPS |

Comparison Features | Proposed Method | Memory Approach | Hash Function Overlay | Periodic Hash Function Replacement |
---|---|---|---|---|

Applied cryptocurrency | - | Ethereum, Bytecoin | X-11 series | Monero (2019.9, RandomX), Ethereum (2020.7 applying scheduled, ProgPoW) |

Characteristic | Change hash function every block | Force memory access | Overlapping multiple hash functions | Hard fork manually or automatically with a hash function |

Algorithm | ECCPoW | Ethash, ProgPoW, CryptoNight | Blake, Bmw, Groetl, etc. | RandomX, ProgPoW |

ASIC appearance | - | Yes | Yes | Unknown |

ASIC resistance induction method | Use of ASIC resistance by connecting the LDPC decoder and hash function | Induce cache miss when creating blocks (using a DAG, etc.) | Overlapping the difficulty of known hash functions | Hard fork every six months (formerly Monero). Convert the hash function for a period using the key-block concept (currently Monero) |

© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Jung, H.; Lee, H.-N. ECCPoW: Error-Correction Code based Proof-of-Work for ASIC Resistance. *Symmetry* **2020**, *12*, 988.
https://doi.org/10.3390/sym12060988

**AMA Style**

Jung H, Lee H-N. ECCPoW: Error-Correction Code based Proof-of-Work for ASIC Resistance. *Symmetry*. 2020; 12(6):988.
https://doi.org/10.3390/sym12060988

**Chicago/Turabian Style**

Jung, Hyunjun, and Heung-No Lee. 2020. "ECCPoW: Error-Correction Code based Proof-of-Work for ASIC Resistance" *Symmetry* 12, no. 6: 988.
https://doi.org/10.3390/sym12060988