"그라인딩 공격"의 두 판 사이의 차이
39.7.28.11 (토론) (태그: 모바일 편집, 모바일 웹 편집) |
|||
(사용자 2명의 중간 판 3개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''그라인딩 | + | '''그라인딩 공격'''(grinding attack)이란 랜덤 변수를 생성하여 [[슬롯리더]](slot leader)를 선출하는 [[지분증명]](PoS) 코인들에 대한 공격 방식이며, '''스테이크 그라인딩 어택'''(stake grinding attack)이라고도 부른다. |
== 소개 == | == 소개 == | ||
=== 이론 === | === 이론 === | ||
− | + | [[슬롯리더]]를 선출하기 위한 랜덤 변수를 생성하기 위해 [[블록체인]]의 헤더와 전송 내역을 이용하기도 하는데, 이 경우 마지막 블록 생성자가 미리 랜덤 변수를 계산해볼 수 있게 된다. 간단하게는 본인에게 유리한 랜덤 변수를 얻을 때까지 전송 내역을 임의로 누락시키거나 포함시키는 것과, 미리 계산한 랜덤 변수로 예측한 스테이킹 코인을 사전 구매하는 등의 공격을 생각할 수 있다.<ref>keepit, 〈[https://steemit.com/coinkorea/@keepit/1mc2k-keep-t 블록체인 상식사전]〉, 《스팀잇》</ref> | |
+ | |||
=== 공격 방식 === | === 공격 방식 === | ||
− | * [[ | + | * [[지분증명]](PoS) 방식은 특정 기준에 부합할 경우 블록을 생성할 권한을 얻게 되는데, 특히 지분이 많을 수록 블록을 생성할 권한 얻을 수 있는 확률이 높아지게 된다. |
* 블록을 생성할 확률을 높이기 위해 변수를 미리 계산하여 블록을 생성할 확률을 얻을 때까지 전송내역을 누락시킨다. | * 블록을 생성할 확률을 높이기 위해 변수를 미리 계산하여 블록을 생성할 확률을 얻을 때까지 전송내역을 누락시킨다. | ||
* 이후 예측한 근거를 통해 지분(코인)을 사전에 확보여 블록을 생성할 권한을 높이는 방법을 말한다. | * 이후 예측한 근거를 통해 지분(코인)을 사전에 확보여 블록을 생성할 권한을 높이는 방법을 말한다. | ||
− | * 이를 방지하기 위해서는 [[코인토싱]](Coin Tossing) 프로토콜을 사용하게 된다. <ref> 장석만,〈[https://www.a-ha.io/questions/4df914300533ae328359759b5d656a4d 그라인딩 어택]〉, 《Aha》, 2019-07-31 </ref> | + | * 이를 방지하기 위해서는 [[코인토싱]](Coin Tossing) 프로토콜을 사용하게 된다.<ref> 장석만, 〈[https://www.a-ha.io/questions/4df914300533ae328359759b5d656a4d 그라인딩 어택]〉, 《Aha》, 2019-07-31</ref> |
== 우로보로스 프로토콜 == | == 우로보로스 프로토콜 == | ||
− | + | '''[[지분증명]] 방식의 한계를 넘는 도전, [[우로보로스]](Ouroboros) 프로토콜''' | |
+ | |||
+ | 지분증명 방식은 [[작업증명]](Proof-of-Work) 방식과 달리 컴퓨팅 파워의 크기에 따라 더 많은 블록을 생성하여 보상을 얻는 방식이 아닌 보유 지분에 따라 이자처럼 [[암호화폐]]를 얻을 수 있는 방식이다. 지분증명 방식에는 하나의 취약점이 있는데 그것은 바로 '''그라인딩 공격'''(Grinding Attack)이라고 하는 해커의 공격 방식이다. 그라인딩 공격의 발생 요인은 지분증명 방식에서 블록을 생성하기 위해 추첨을 통해 랜덤 변수를 생성하는데 이를 조작이 가능한 상황을 만들 수 있다. 우로보로스 프로토콜은 그라인딩 어택을 막기 위해 설계되었다. 추첨을 통한 랜덤 변수 생성이 아닌, 모든 구성원이 랜덤 변수를 생성할 수 있도록 설계된 프로토콜이다. 다만, 혁신적인 암호화폐 플랫폼으로 설명하는 것에 비해서 아직은 [[메인넷]](Mainnet)을 지원하지 않고 있으며 보이는 결과물이 부족한 상황이다.<ref>암호화폐 인사이트, 〈[https://blog.naver.com/blockentlab/221298591746 우로보로스 프로토콜]〉, 《네이버 블로그》, 2018-06-14 </ref> | ||
{{각주}} | {{각주}} | ||
== 참고자료 == | == 참고자료 == | ||
− | * | + | * 〈[https://post.naver.com/viewer/postView.nhn?volumeNo=17082343&memberNo=41067537 블록체인 상식사전]〉, 《네이버 블로그》, 2018-11-12 |
== 같이 보기 == | == 같이 보기 == | ||
− | * [[ | + | * [[지분증명]] |
− | * [[ | + | * [[슬롯리더]] |
− | |||
* [[프로토콜]] | * [[프로토콜]] | ||
* [[우로보로스]] | * [[우로보로스]] | ||
− | {{보안| | + | {{보안|검토 필요}} |
2021년 10월 22일 (금) 12:51 기준 최신판
그라인딩 공격(grinding attack)이란 랜덤 변수를 생성하여 슬롯리더(slot leader)를 선출하는 지분증명(PoS) 코인들에 대한 공격 방식이며, 스테이크 그라인딩 어택(stake grinding attack)이라고도 부른다.
소개[편집]
이론[편집]
슬롯리더를 선출하기 위한 랜덤 변수를 생성하기 위해 블록체인의 헤더와 전송 내역을 이용하기도 하는데, 이 경우 마지막 블록 생성자가 미리 랜덤 변수를 계산해볼 수 있게 된다. 간단하게는 본인에게 유리한 랜덤 변수를 얻을 때까지 전송 내역을 임의로 누락시키거나 포함시키는 것과, 미리 계산한 랜덤 변수로 예측한 스테이킹 코인을 사전 구매하는 등의 공격을 생각할 수 있다.[1]
공격 방식[편집]
- 지분증명(PoS) 방식은 특정 기준에 부합할 경우 블록을 생성할 권한을 얻게 되는데, 특히 지분이 많을 수록 블록을 생성할 권한 얻을 수 있는 확률이 높아지게 된다.
- 블록을 생성할 확률을 높이기 위해 변수를 미리 계산하여 블록을 생성할 확률을 얻을 때까지 전송내역을 누락시킨다.
- 이후 예측한 근거를 통해 지분(코인)을 사전에 확보여 블록을 생성할 권한을 높이는 방법을 말한다.
- 이를 방지하기 위해서는 코인토싱(Coin Tossing) 프로토콜을 사용하게 된다.[2]
우로보로스 프로토콜[편집]
지분증명 방식의 한계를 넘는 도전, 우로보로스(Ouroboros) 프로토콜
지분증명 방식은 작업증명(Proof-of-Work) 방식과 달리 컴퓨팅 파워의 크기에 따라 더 많은 블록을 생성하여 보상을 얻는 방식이 아닌 보유 지분에 따라 이자처럼 암호화폐를 얻을 수 있는 방식이다. 지분증명 방식에는 하나의 취약점이 있는데 그것은 바로 그라인딩 공격(Grinding Attack)이라고 하는 해커의 공격 방식이다. 그라인딩 공격의 발생 요인은 지분증명 방식에서 블록을 생성하기 위해 추첨을 통해 랜덤 변수를 생성하는데 이를 조작이 가능한 상황을 만들 수 있다. 우로보로스 프로토콜은 그라인딩 어택을 막기 위해 설계되었다. 추첨을 통한 랜덤 변수 생성이 아닌, 모든 구성원이 랜덤 변수를 생성할 수 있도록 설계된 프로토콜이다. 다만, 혁신적인 암호화폐 플랫폼으로 설명하는 것에 비해서 아직은 메인넷(Mainnet)을 지원하지 않고 있으며 보이는 결과물이 부족한 상황이다.[3]
각주[편집]
참고자료[편집]
- 〈블록체인 상식사전〉, 《네이버 블로그》, 2018-11-12
같이 보기[편집]