검수요청.png검수요청.png

그라인딩 공격

위키원
Asadal (토론 | 기여)님의 2019년 8월 13일 (화) 21:18 판
이동: 둘러보기, 검색

그라인딩 공격(grinding attack)이란 랜덤 변수를 생성하여 슬롯리더(slot leader)를 선출하는 지분증명(PoS) 코인들에 대한 공격 방식이며, 스테이크 그라인딩 어택(stake grinding attack)이라고도 부른다.

소개

이론

슬롯리더를 선출하기 위한 랜덤 변수를 생성하기 위해 블록체인의 헤더와 전송 내역을 이용하기도 하는데, 이 경우 마지막 블록 생성자가 미리 랜덤 변수를 계산해볼 수 있게 된다. 간단하게는 본인에게 유리한 랜덤 변수를 얻을 때까지 전송 내역을 임의로 누락시키거나 포함시키는 것과, 미리 계산한 랜덤 변수로 예측한 스테이킹 코인을 사전 구매하는 등의 공격을 생각할 수 있다.[1]

공격 방식

  • 지분증명(PoS) 방식은 특정 기준에 부합할 경우 블록을 생성할 권한을 얻게 되는데, 특히 지분이 많을 수록 블록을 생성할 권한 얻을 수 있는 확률이 높아지게 된다.
  • 블록을 생성할 확률을 높이기 위해 변수를 미리 계산하여 블록을 생성할 확률을 얻을 때까지 전송내역을 누락시킨다.
  • 이후 예측한 근거를 통해 지분(코인)을 사전에 확보여 블록을 생성할 권한을 높이는 방법을 말한다.
  • 이를 방지하기 위해서는 코인토싱(Coin Tossing) 프로토콜을 사용하게 된다.[2]

우로보로스 프로토콜

지분증명 방식의 한계를 넘는 도전, 우로보로스(Ouroboros) 프로토콜

지분증명 방식은 작업증명(Porrf-of-Work) 방식과 달리 컴퓨팅 파워의 크기에 따라 더 많은 블록을 생성하여 보상을 얻는 방식이 아닌 보유 지분에 따라 이자처럼 암호화폐를 얻을 수 있는 방식이다. 지분증명 방식에는 하나의 취약점이 있는데 그것은 바로 그라인딩 공격(Grinding Attack)이라고 하는 해커의 공격 방식이다. 그라인딩 공격의 발생 요인은 지분증명 방식에서 블록을 생성하기 위해 추첨을 통해 랜덤 변수를 생성하는데 이를 조작이 가능한 상황을 만들 수 있다. 우로보로스 프로토콜은 그라인딩 어택을 막기 위해 설계되었다. 추첨을 통한 랜덤 변수 생성이 아닌, 모든 구성원이 랜덤 변수를 생성할 수 있도록 설계된 프로토콜이다. 다만, 혁신적인 암호화폐 플랫폼으로 설명하는 것에 비해서 아직은 메인넷(Mainnet)을 지원하지 않고 있으며 보여지는 결과물이 부족한 상황이다.[3]

각주

  1. keepit, 〈블록체인 상식사전〉, 《스팀잇》
  2. 장석만, 〈그라인딩 어택〉, 《Aha》, 2019-07-31
  3. 암호화폐 인사이트, 〈우로보로스 프로토콜〉, 《네이버 블로그》, 2018-06-14

참고자료

같이 보기


  검수요청.png검수요청.png 이 그라인딩 공격 문서는 보안에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.