이더리움(Ethereum) 도스(DoS) 공격 사례
나동빈
이더리움 도스(DoS) 공격
앞서 이더리움은 튜링 완전한 특징을 가진다고 했습니다. 당연히 튜링 완전하다는 점에서 무한 루프가 발생할 수 있을 것입니다. 하지만 이더리움에서는 수수료(Fee)가 존재하기 때문에 공격을 수행할 때마다 일정한 수수료를 공격자가 지불해야 합니다. 이는 결과적으로 채굴자들에게 더 많은 수수료를 지급하여 채굴자들을 유입시키는 역할을 수행합니다. 그래서 공격 덕분에 오히려 보안이 증가하는 것입니다. 이는 이더리움 블록체인의 선순환 구조를 형성합니다.
하지만 만약 이더리움의 수수료가 굉장히 저렴하다면 악의적인 목적을 가진 공격자는 도스(DoS) 공격을 수행할 수 있습니다. 실제로 2016년 말에는 이더리움 네트워크에 지속적인 도스 공격이 감행이 되었습니다. 그 결과 네트워크가 불안정해져 트랜잭션 속도가 느려지고, 채굴에 제약이 생기게 되었습니다. 대표적인 도스 공격 방식으로는 다음의 두 가지가 존재합니다.
· 무작위 계정(Account) 생성 공격
· 무작위 거래(Transaction) 수행 공격
이더리움은 기본적으로 가스(Gas)라고 불리는 수수료가 매우 저렴하다는 장점이 있는데 이를 역이용하여 의미가 없는 거래를 매우 많이 발생시켜 과부하를 주는 방식이 주로 사용되었습니다. 사실 이 문제의 궁극적인 원인은 수수료가 적절한 수준으로 설정이 되지 않았기 때문이며 이를 해결하기 위해서는 하드 포크(Hard Fork)가 필요했습니다.
따라서 현재까지는 이더리움에 대한 도스 공격의 대응책으로 하드포크를 많이 수행하였습니다. 하드포크의 과정에서는 수수료 비용을 조정하고, 빈 거래 및 계정에 대한 정보를 일괄 삭제하는 작업이 수행됩니다. 실제로 2,463,000번째 블록에서 하드포크를 수행하여 이더리움 블록체인을 개선한 이력이 있습니다. 이어서 2,675,000번째 블록에서도 하드포크를 수행했습니다.
이더리움은 작업 증명(Proof-of-Work) 방식에 근간하고 있으며 하나의 블록에 고작 200개 가량의 거래(Transaction) 정보를 담는다는 점에서 속도 측면에서 한계를 가지고 있습니다. 따라서 도스 공격에 매우 취약한 상태이며 실제로 거래량 폭증으로 인해 거래가 정상적으로 처리되지 않았던 사례가 많았습니다. 이러한 거래 속도 문제를 이더리움이 넘어야 할 산입니다.
컨설팅적 관점에서 이러한 문제의 해결 방안을 제시하자면 기존의 PoW 방식을 고수하지 않고 다른 합의 알고리즘을 부분적으로 채택하는 것이 효율적이라고 생각합니다. 따라서 PoS, DPoS 등의 방식을 적용하도록 하드포크를 수행하여 불필요한 컴퓨터 자원 낭비를 줄이고, 거래 속도를 향상시켜야 합니다. 실질적으로 채굴을 수행하는 노드가 적은 이오스(EOS) 블록체인 플랫폼 등을 벤치마킹할 필요가 있습니다. 물론 보안성을 유지할 수 있는 선에서 높은 거래 속도를 유지할 수 있는 선에서의 의사결정이 필요할 것이라고 생각합니다.
'블록체인' 카테고리의 다른 글
Truffle로 처음 시작하는 Solidity 개발 환경 구축 (0) | 2019.07.10 |
---|---|
이더리움(Ethereum) DAO 재귀 함수 해킹 사례 (1) | 2018.04.09 |
이더리움(Ethereum)의 개요 (0) | 2018.04.09 |