|
|
A survey on EOSIO systems security: vulnerability, attack, and mitigation |
Ningyu HE1, Haoyu WANG2( ), Lei WU3, Xiapu LUO4, Yao GUO1( ), Xiangqun CHEN1 |
1. Key Laboratory of High Confidence Software Technologies (Peking University), Ministry of Education; School of Computer Science, Peking University, Beijing 100871, China 2. School of Cyber Science and Engineering, Huazhong University of Science and Technology, Wuhan 430074, China 3. School of Cyber Science and Technology, Zhejiang University, Hangzhou 310007, China 4. Department of Computing, The Hong Kong Polytechnic University, Hong Kong 999077, China |
|
|
Abstract EOSIO, as a representative of blockchain 3.0 platforms, immediately follows in the footsteps of Bitcoin and Ethereum. It has raised the largest ever initial coin offering, and its market capitalization has reached up to $14.3 billion. Innovatively, EOSIO brings adopts lots of new features, like the delegated proof of stake consensus algorithm and updatable smart contracts. Not only these features lead to a prosperity of the decentralized application ecosystem, but they also inevitably introduce loopholes. For example, EOSBet, a famous gambling DApp, was attacked twice within a single month and lost more than $1 million. To the best of our knowledge, little work has surveyed the EOSIO from a security researcher’s perspective. To fill this gap, we firstly abstract the complicated EOSIO ecosystem into components following hierarchical relationships, upon which we delve deeper for root causes of all existing vulnerabilities. We also systematically study possible attacks and mitigations against these vulnerabilities, and summarize several best practices for developers, EOSIO official, and security researchers to shed light on future directions.
|
Keywords
EOSIO
blockchain
smart contract
|
Corresponding Author(s):
Haoyu WANG,Yao GUO
|
Just Accepted Date: 12 April 2024
Issue Date: 10 July 2024
|
|
1 |
S Nakamoto . Bitcoin: a peer-to-peer decentralized cryptocurrency system. See bitcoin.org/en/ website, 2019
|
2 |
Bitcoin’s market cap. See coinmarketcap.com/currencies/bitcoin/ website, 2023
|
3 |
coindesk. TPS for blockchain platforms. See academy.binance.com/hu/glossary/transactions-per-second-tps# website, 2023
|
4 |
Unlimited size of blocks. See bitcoinsv.com website, 2023
|
5 |
Ethereum Layer-2 solution. See ethereum.org/en/layer-2/ website, 2023
|
6 |
Bitcoin transaction fee. See ycharts.com/indicators/bitcoin_average_transaction_fee website, 2023
|
7 |
Ethereum transaction fee. See etherscan.io/chart/avg-txfee-usd website, 2023
|
8 |
E, Heilman A, Kendler A, Zohar S Goldberg . Eclipse attacks on Bitcoin’s peer-to-peer network. In: Proceedings of the 24th USENIX Conference on Security Symposium. 2015, 129−144
|
9 |
Attack against Parity wallet. See blog.openzeppelin.com/on-the-parity-wallet-multisig-hack-405a8c12e8f7 website, 2023
|
10 |
EOSIO. EOSIO official site. See eos.io/ website, 2019
|
11 |
N, He R, Zhang H, Wang L, Wu X, Luo Y, Guo T, Yu X Jiang . EOSAFE: security analysis of EOSIO smart contracts. In: Proceedings of the 30th USENIX Security Symposium. 2021
|
12 |
J FRANKENFIELD . Definition of ICO. See investopedia.com/terms/i/initial-coin-offering-ico.asp website, 2019
|
13 |
K Rooney . ICO of EOSIO has raised up to 4 billion USD. See cnbc.com/2018/05/31/a-blockchain-start-up-just-raised-4-billion-without-a-live-product.html website, 2018
|
14 |
Peak of market cap of EOSIO. See coinmarketcap.com/currencies/eos/ website, 2023
|
15 |
The DPoS consensus. See en.bitcoinwiki.org/wiki/DPoS website, 2020
|
16 |
EOSIO network monitor. See eosnetworkmonitor.io/ website, 2020
|
17 |
WebAssembly Official Site. See webassembly.org/ website, 2019
|
18 |
RUSSO CRAIG . EOSIO surpasses Ethereum in transaction volume. See web.archive.org/web/20201109031452/ website, 2018
|
19 |
Aurora Tech. EOSBet official site. See eosbet.io/ website, 2020
|
20 |
EOS. EOSBet was attacked by Fake EOS vulnerability. See reddit.com/r/eos/comments/9fpcik/how_eosbet_attacked_by_aabbccddeefg/ website, 2018
|
21 |
PeckShield Inc. EOSBet was attacked by Fake Recipt. See web.archive.org/web/20211019032401/blog.peckshield.com/2018/10/26/eos/ website, 2018
|
22 |
Y Chen . Flaw in EOS VM. See web.archive.org/web/20230929130452/blogs.360.cn/post/eos-asset-multiplication-integer-overflow-vulnerability.html website, 2018
|
23 |
Inc PeckShield . Inline reflex. See web.archive.org/web/20210920113641/blog.peckshield.com/2018/12/18/inlineReflex/ website, 2018
|
24 |
Inc PeckShield . Blogs about blockchain security events. See web.archive.org/web/20210920115915/blog.peckshield.com/blog.html website, 2020
|
25 |
Zone SlowMist . Blockchain security events. See hacked.slowmist.io/en/ website, 2020
|
26 |
C Michel . Blog site of EOSIO technology. See cmichel.io/categories/EOS website, 2021
|
27 |
EOSIO. EOSIO whitepaper. See github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md#free-usage website, 2018
|
28 |
C Michel . Limitation of time of executing transaction. See cmichel.io/deferred-transactions-on-eos/ website, 2018
|
29 |
Walker Greg . Transaction fee of Bitcoin. See learnmeabitcoin.com/technical/transaction-fee website, 2016
|
30 |
Coen Emanuel . Transaction fee of Ethereum. See cryptotesters.com/blog/ethereum-gas website, 2020
|
31 |
ewasm. Official site of ewasm. See github.com/ewasm/design website, 2020
|
32 |
Forum: Bitcoin Gambling. See forum.bitcoingambling.io/ website, 2020
|
33 |
Forum: Reddit EOS section. See reddit.com/r/eos/ website, 2020
|
34 |
BCSEC. EOSIO asset overflow attack against eosfo.io. See //medium.com/@xyzkwang334/anonymous-team-behind-the-eos-werewolf-killing-imeos-and-its-strong-backing-helloeos-657e34a56365 website, 2018
|
35 |
Regehr J. Signed multiplication is undefined in c++. See blog.regehr.org/archives/213 website, 2010
|
36 |
Official patch for asset overflow vulnerability. See github.com/EOSIO/eos/commit/b7b34e5b794e323cdc306ca2764973e1ee0d168f website, 2018
|
37 |
L, Quan L, Wu H Wang . EVulHunter: detecting fake transfer vulnerabilities for EOSIO’s smart contracts at webassembly-level. 2019, arXiv preprint arXiv: 1906.10362
|
38 |
Y, Huang B, Jiang W K Chan . EOSFuzzer: fuzzing EOSIO smart contracts for vulnerability detection. In: Proceedings of the 12th Asia-Pacific Symposium on Internetware. 2020
|
39 |
Y, Huang H, Wang L, Wu G, Tyson X, Luo R, Zhang X, Liu G, Huang X Jiang . Understanding (Mis) behavior on the EOSIO blockchain. In: Proceedings of the ACM on Measurement and Analysis of Computing Systems. 2020, 1−28
|
40 |
SlowMist. Random number vulnerability. See medium.com/@slowmist/details-of-a-new-type-random-number-attack-on-eos-ede0211d9cc2 website, 2019
|
41 |
PeckShield. Random number vulnerability. See medium.com/@peckshield/defeating-eos-gambling-games-the-tech-behind-random-number-loophole-cf701c616dc0 website, 2018
|
42 |
Q Le . EOSDice attacked due to random number. See medium.com/leclevietnam/hacking-in-eos-contracts-and-how-to-prevent-it-b8663c8bffa6 website, 2018
|
43 |
D Larimer . An ideal prng prototype in eosio. See eosio.stackexchange.com/questions/41/how-can-i-generate-random-numbers-inside-a-smart-contract#answer-215 website, 2019
|
44 |
Titan EOS . DelphiOracle in EOSIO. See github.com/eostitan/delphioracle website, 2020
|
45 |
LiquidHarmony. LiquidOracles in EOSIO. See medium.com/the-liquidapps-blog/using-liquidoracles-on-eos-wax-telos-liquidapps-dapp-network-developer-walkthroughs-e810087e58e2 website, 2020
|
46 |
AlgoTrader, an oracle, in EOSIO. See eosio.algotrader.com/home website, 2021
|
47 |
Y, Chinen N, Yanai J P, Cruz S Okamura . RA: hunting for re-entrancy attacks in ethereum smart contracts via static analysis. In: Proceedings of 2020 IEEE International Conference on Blockchain (Blockchain). 2020, 327−336
|
48 |
M, Rodler W, Li G O, Karame L Davi . Sereum: protecting existing smart contracts against re-entrancy attacks. 2018, arXiv preprint arXiv: 1812.05934
|
49 |
C Michel . EOSIO re-entrancy attack. See cmichel.io/eos-vault-sx-hack/ website, 2021
|
50 |
SlowMist. Hard fail attack in EOSIO. See slowmist.medium.com/hard-fail-status-attack-for-eos-7cfa73ae7d4b website, 2019
|
51 |
SlowMist. Roll Back Attack about blacklist in EOSIO. See medium.com/@slowmist/roll-back-attack-about-blacklist-in-eos-adf53edd8d69 website, 2019
|
52 |
SlowMist. Rollback attack for betdiceadmin. See github.com/slowmist/eos-smart-contract-security-best-practices/blob/master/README_EN.md#random-number-practice website, 2019
|
53 |
Inc PeckShield . Transaction congestion attack in EOSIO. See web.archive.org/web/20210920120718/https://blog.peckshield.com/2019/01/15/eos_CVE-2019-6199/ website, 2019
|
54 |
EIDOS official site. See enumivo.org/ website, 2020
|
55 |
REX official site. See eosauthority.com/rex website, 2020
|
56 |
D, Perez J, Xu B Livshits . Revisiting transactional statistics of high-scalability blockchains. In: Proceedings of the ACM Internet Measurement Conference. 2020, 535−550
|
57 |
Inc PeckShield . CPU hijacking attack in EOSIO. See peckshield.medium.com/eidos-airdrop-stifles-the-liveness-of-eosio-network-acbb8fb5ebb4 website, 2019
|
58 |
Sotnichek M. RAM hijacking attack in EOSIO. See apriorit.com/dev-blog/576-eos-ram-exploit website, 2018
|
59 |
Consensus upgrade against CPU resources. See github.com/EOSIO/eos/issues/6332 website, 2018
|
60 |
SlowMist. memo attack in EOSIO. See hacked.slowmist.io/?c=EOS&page=2 website, 2019
|
61 |
EOSIO.SG. Private key compormising in EOSIO. See medium.com/@eosiosg/announcement-regarding-recent-exploit-event-efe8a1ad5d90 website, 2018
|
62 |
Definition of social engineering. See webroot.com/us/en/resources/tips-articles/what-is-social-engineering website, 2021
|
63 |
bloks.io. The victim of the asset overflow attack. See eosflare.io/account/zyixjmpxrrpr website, 2021
|
64 |
eosflare. Transaction records of the victim. See eosflare.io/account/zyixjmpxrrpr website, 2018
|
65 |
EOSIO. Source code of reference block. See github.com/EOSIO/eos/blob/26a4d285d0be1052d962149e431eb81500782991/programs/cleos/main.cpp#L409 website, 2021
|
66 |
Radar DApp . Daily volume of gambling DApp EOSDice. See dappradar.com/eos/gambling/eosdice website, 2018
|
67 |
Michel C. Attack against EOSPlay. See cmichel.io/what-really-happened-with-the-eos-play-hack/ website, 2019
|
68 |
Inc PeckShield . Financial loss of the random number attack against EOSPlay. See web.archive.org/web/20210423161849/https://blog.peckshield.com/2019/09/16/EOSPlay/ website, 2019
|
69 |
Official site of Vaults.sx. See eosx.io/defi/vaults website, 2021
|
70 |
AAVE. Defination of flash loan. See aave.com/flash-loans/ website, 2021
|
71 |
C Michel . The re-entrancy attack against Vaults.sx. See cmichel.io/eos-vault-sx-hack/ website, 2021
|
72 |
Transaction instance of permission-less injection attack. See eos.eosq.eosnation.io/tx/ad143e3da45f7661eb4540b51d23dc6bfaa64b1de6989297f3b4e2170e17ff08 website, 2021
|
73 |
Official patch for inline reflex. See github.com/EOSIO/eos/releases/tag/v1.5.1 website, 2018
|
74 |
eosfo.io requires players’ eosio.code permission. See cloud.tencent.com/developer/news/285297 website, 2018
|
75 |
CHINABTCNEWS. Fake deposit in Ethereum. See news.8btc.com/slowmist-3619-eth-based-tokens-are-affected-by-fake-deposit-vulnerability website, 2018
|
76 |
O YUSUFF . Fake deposit in Ripple. See newslogical.com/remitano-halts-bitcoin-ethereum-trading-indefinitely-over-fake-ripples-xrp-deposits/ website, 2019
|
77 |
SlowMist. Fake deposit attack in EOSIO. See slowmist.medium.com/details-and-solutions-for-false-top-up-attack-hard-fail-status-attack-on-eos-676b899d27b6 website, 2019
|
78 |
Mailicious rollback attack example in EOSIO. See web.archive.org/web/20230222105606 website, 2019
|
79 |
Example of transaction congestion. See eosq.app/block/02344b09116e94221737ae411c4ecd37f9da2778e0612a6d5f956edba9a12061 website, 2020
|
80 |
V Hatze . The severe result caused by EIDOS project. See dailycoin.com/2021-is-not-the-year-for-eos/ website, 2021
|
81 |
CoinGecko. Tradable EIDOS token in exchanges. See coingecko.com/en/coins/eidos website, 2021
|
82 |
Labs Titan . Historical price of CPU resource. See labs.eostitan.com/#/cpu-quota/?period=2019&mode=linear website, 2021
|
83 |
Inc PeckShield . Decrease of daily user resulted from EIDOS project. See web.archive.org/web/20210920105634/ website, 2019
|
84 |
RAM hijacking attack is reported by official. See bitcoinexchangeguide.com/breaking-eos-potential-eosio-ram-exploit-hack-vulnerability-solution-issued-but-large-exchanges-still-at-risk/ website, 2018
|
85 |
MrToph. Example of paying for user’s CPU. See github.com/MrToph/eos-pay-for-user-cpu-example website, 2019
|
86 |
GO EOS . Gambling DApps are extremely popular in EOSIO. See eosgo.io/blog/eos-shift-from-gambling-to-gaming-dapps website, 2019
|
87 |
C Staff . Re-entrancy attack in Ethereum targeting at TheDAO. See gemini.com/cryptopedia/the-dao-hack-makerdao website, 2021
|
88 |
D, Wang B, Jiang W K Chan . WANA: symbolic execution of wasm bytecode for cross-platform smart contract vulnerability detection. 2020, arXiv preprint arXiv: 2007.15510
|
89 |
S, Lee D, Kim D, Kim S, Son Y Kim . Who spent my EOS? On the (in) security of resource management of EOS.IO. In: Proceedings of the 13th USENIX Conference on Offensive Technologies. 2019
|
90 |
Z H, Yan W, Qian Z, Yang W, Zeng X, Yang A Li . TFFV: translator from EOS smart contracts to formal verification language. In: Proceedings of the 6th International Conference on Artificial Intelligence and Security. 2020, 652−663
|
91 |
I, Ashraf X, Ma B, Jiang W K Chan . GasFuzzer: fuzzing ethereum smart contract binaries to expose gas-oriented exception security vulnerabilities. IEEE Access, 2020, 8: 99552–99564
|
92 |
B, Jiang Y, Liu W K Chan . ContractFuzzer: Fuzzing smart contracts for vulnerability detection. In: Proceedings of the 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE). 2018, 259−269
|
93 |
Y, Zhao J, Liu Q, Han W, Zheng J Wu . Exploring EOSIO via graph characterization. In: Proceedings of the 2nd International Conference on Blockchain and Trustworthy Systems. 2020
|
94 |
W, Zheng Z, Zheng H N, Dai X, Chen P Zheng . XBlock-EOS: extracting and exploring blockchain data from EOSIO. Information Processing & Management, 2021, 58( 3): 102477
|
95 |
EOS Cafe Block. Potential impact of REX on EOSIO’s resource system. See medium.com/@eoscafeblock/what-rex-means-for-token-holders-238375dea397 website, 2018
|
96 |
EOSIO. Bug bounty program of EOSIO. See eos.io/security-vulnerabilities/ website, 2021
|
97 |
D, Lehmann J, Kinder M Pradel . Everything old is new again: binary security of webassembly. In: Proceedings of the 29th USENIX Security Symposium. 2020, 217−234
|
98 |
A, Hilbig D, Lehmann M Pradel . An empirical study of real-world webassembly binaries: security, languages, use cases. In: Proceedings of the Web Conference 2021. 2021, 2696−2708
|
99 |
Q, Stiévenart Roover C De . Compositional information flow analysis for WebAssembly programs. In: Proceedings of the 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM). 2020, 13−24
|
100 |
D, Perez B Livshits . Smart contract vulnerabilities: vulnerable does not imply exploited. In: Proceedings of the 30th USENIX Security Symposium. 2021
|
101 |
X, Li P, Jiang T, Chen X, Luo Q Wen . A survey on the security of blockchain systems. Future Generation Computer Systems, 2020, 107: 841–853
|
102 |
Z, Zheng S, Xie H N, Dai X, Chen H Wang . Blockchain challenges and opportunities: a survey. International Journal of Web and Grid Services, 2018, 14( 4): 352–375
|
103 |
N, Atzei M, Bartoletti T Cimoli . A survey of attacks on ethereum smart contracts (Sok). In: Proceedings of the 6th International Conference on Principles of Security and Trust, Held as Part of the European Joint Conferences on Theory and Practice of Software. 2017, 164−186
|
104 |
P, Praitheeshan L, Pan J, Yu J, Liu R Doss . Security analysis methods on ethereum smart contract vulnerabilities: a survey. 2019, arXiv preprint arXiv: 1908.08605
|
105 |
H, Chen M, Pendleton L, Njilla S Xu . A survey on ethereum systems security: vulnerabilities, attacks, and defenses. ACM Computing Surveys, 2021, 53( 3): 67
|
106 |
A, Wahab W Mehmood . Survey of consensus protocols. 2018, arXiv preprint arXiv: 1810.03357
|
107 |
Z, Zheng S, Xie H N, Dai W, Chen X, Chen J, Weng M Imran . An overview on smart contracts: challenges, advances and platforms. Future Generation Computer Systems, 2020, 105: 475–491
|
108 |
G T, Nguyen K Kim . A survey about consensus algorithms used in blockchain. Journal of Information Processing Systems, 2018, 14( 1): 101–128
|
109 |
H N, Dai Z, Zheng Y Zhang . Blockchain for internet of things: a survey. IEEE Internet of Things Journal, 2019, 6( 5): 8076–8094
|
110 |
J, Al-Jaroodi N Mohamed . Blockchain in industries: a survey. IEEE Access, 2019, 7: 36500–36515
|
111 |
Francesco Maesa D, Di P Mori . Blockchain 3. 0 applications survey. Journal of Parallel and Distributed Computing, 2020, 138: 99–114
|
112 |
X, Wang X, Zha W, Ni R P, Liu Y J, Guo X, Niu K Zheng . Survey on blockchain for internet of things. Computer Communications, 2019, 136: 10–29
|
113 |
D, Berdik S, Otoum N, Schmidt D, Porter Y Jararweh . A survey on blockchain for information systems management and security. Information Processing & Management, 2021, 58( 1): 102397
|
114 |
T, Huynh-The T R, Gadekallu W, Wang G, Yenduri P, Ranaweera Q V, Pham Costa D B, da M Liyanage . Blockchain for the metaverse: a review. Future Generation Computer Systems, 2023, 143: 401–419
|
115 |
K, Gai J, Guo L, Zhu S Yu . Blockchain meets cloud computing: a survey. IEEE Communications Surveys & Tutorials, 2020, 22( 3): 2009–2030
|
116 |
Q, Zhou H, Huang Z, Zheng J Bian . Solutions to scalability of blockchain: a survey. IEEE Access, 2020, 8: 16440–16455
|
117 |
A A, Monrat O, Schelén K Andersson . A survey of blockchain from the perspectives of applications, challenges, and opportunities. IEEE Access, 2019, 7: 117134–117151
|
118 |
Q, Feng D, He S, Zeadally M K, Khan N Kumar . A survey on privacy protection in blockchain system. Journal of Network and Computer Applications, 2019, 126: 45–58
|
119 |
P, Tasatanattakool C Techapanupreeda . Blockchain: Challenges and applications. In: Proceedings of 2018 International Conference on Information Networking (ICOIN). 2018, 473−475
|
120 |
D, Lee D H Lee . Push and pull: Manipulating a production schedule and maximizing rewards on the EOSIO blockchain. In: Proceedings of the 3rd ACM Workshop on Blockchains, Cryptocurrencies and Contracts. 2019, 11−21
|
121 |
W, Song W, Zhang L, Zhai L, Liu J, Wang S, Huang B Li . EOS.IO blockchain data analysis. The Journal of Supercomputing. 2022, 1−32
|
122 |
W, Zheng B, Liu H N, Dai Z, Jiang Z, Zheng M Imran . Unravelling token ecosystem of EOSIO blockchain. 2022, arXiv preprint arXiv: 2202.11201
|
123 |
J Á, Fernández-Carrasco X, Echeberria-Barrio D, Paredes-García F, Zola R Orduna-Urrutia . ChronoEOS 2. 0: device fingerprinting and EOSIO blockchain technology for on-running forensic analysis in an IoT environment. Smart Cities, 2023, 6( 2): 897–912
|
124 |
J A, Fernandez-Carrasco T, Egues-Arregui F, Zola R Orduna-Urrutia . ChronoEOS: configuration control system based on EOSIO blockchain for on-running forensic analysis. In: Prieto J, Benítez Martínez F L, Ferretti S, Arroyo Guardeño D, Tomás Nevado-Batalla P, eds. Blockchain and Applications, 4th International Congress. Cham: Springer, 2023, 37−47
|
125 |
I, Mokdad N M Hewahi . Empirical evaluation of blockchain smart contracts. In: Khan M A, Quasim M T, Algarni F, Alharthi A, eds. Decentralised Internet of Things: A Blockchain Perspective. Cham: Springer, 2020, 45−71
|
126 |
J, Shen J, Zhou Y, Xie S, Yu Q Xuan . Identity inference on blockchain using graph neural network. In: Proceedings of the 3rd International Conference on Blockchain and Trustworthy Systems. 2021, 3−17
|
127 |
N, He W, Su Z, Yu X, Liu F, Zhao H, Wang X, Luo G, Tyson L, Wu Y Guo . Understanding the evolution of blockchain ecosystems: a longitudinal measurement study of bitcoin, ethereum, and EOSIO. 2021, arXiv preprint arXiv: 2110.07534
|
128 |
J, Liu W, Zheng D, Lu J, Wu Z Zheng . Understanding the decentralization of DPoS: perspectives from data-driven analysis on EOSIO. 2022, arXiv preprint arXiv: 2201.06187
|
129 |
Salve A, De A, Lisi P, Mori L Ricci . Measuring EOS.IO DApp resource allocation and costs through a benchmark application. In: Proceedings of the 4th International Conference on Blockchain Technology and Applications. 2021, 24−30
|
130 |
L T, Li M Zhang . Poster: EOSDFA: Data flow analysis of EOSIO smart contracts. In: Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security. 2022, 3391−3393
|
131 |
W, Chen Z, Sun H, Wang X, Luo H, Cai L Wu . WASAI: uncovering vulnerabilities in Wasm smart contracts. In: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis. 2022, 703−715
|
132 |
M U Rahman . Scalable role-based access control using the EOS blockchain. 2020, arXiv preprint arXiv: 2007.02163
|
|
Viewed |
|
|
|
Full text
|
|
|
|
|
Abstract
|
|
|
|
|
Cited |
|
|
|
|
|
Shared |
|
|
|
|
|
Discussed |
|
|
|
|