"페널티"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
− | '''페널티'''<!--패널티-->(Penalty)는 | + | '''페널티'''<!--패널티-->(Penalty)는 블록체인에서의 페널티는 |
== 개요 == | == 개요 == | ||
27번째 줄: | 27번째 줄: | ||
* '''텐더민트(Tendermint)''' | * '''텐더민트(Tendermint)''' | ||
: 페널티 부과를 통한 보안성, 빠른 트랜잭션 처리가 가능한 합의 알고리즘이다. 텐더 민트는 BFT와 지분증명 합의 알고리즘을 결합한 BFT-POS합의 알고리즘을 사용한다. BFT(Byzantine Fault Tolerance)합의 알고리즘의 가장 큰 특징은 블록을 확정하는데 전체 투표자 중에서 2/3 이상의 동의([[디지털서명]])가 필요하다. 그렇기 때문에 최대 3/1의 비정상 적인 노드의 경우에도 정상적인 합의 도출이 가능하며, 트랜잭션의 처리를 보장할 수 있다. 또한 검증자의 자산을 담보로 잡아두기 때문에 만일 검증자가 악의 작인 행위를 할 경우, 담보를 빼앗는 페널티(Penalty)를 부과함으로써 Nothing at Stake 문제를 해결한다. 추가로 플라즈마 내에서 네트워크 참여자 모두 특정 노드의 악의적인 행위에 대한 증거를 자율적으로 이더리움 블록체인에 제출하여 페널티를 부과 함으로써 보안성을 높인다고 한다.<ref>야옹메롱, 〈[http://a.to/195E1sG 오미세고(OmiseGo), 탈중앙화된 교환 / 결제 플랫폼]〉, 《네이버》, 2018-08-05 </ref> | : 페널티 부과를 통한 보안성, 빠른 트랜잭션 처리가 가능한 합의 알고리즘이다. 텐더 민트는 BFT와 지분증명 합의 알고리즘을 결합한 BFT-POS합의 알고리즘을 사용한다. BFT(Byzantine Fault Tolerance)합의 알고리즘의 가장 큰 특징은 블록을 확정하는데 전체 투표자 중에서 2/3 이상의 동의([[디지털서명]])가 필요하다. 그렇기 때문에 최대 3/1의 비정상 적인 노드의 경우에도 정상적인 합의 도출이 가능하며, 트랜잭션의 처리를 보장할 수 있다. 또한 검증자의 자산을 담보로 잡아두기 때문에 만일 검증자가 악의 작인 행위를 할 경우, 담보를 빼앗는 페널티(Penalty)를 부과함으로써 Nothing at Stake 문제를 해결한다. 추가로 플라즈마 내에서 네트워크 참여자 모두 특정 노드의 악의적인 행위에 대한 증거를 자율적으로 이더리움 블록체인에 제출하여 페널티를 부과 함으로써 보안성을 높인다고 한다.<ref>야옹메롱, 〈[http://a.to/195E1sG 오미세고(OmiseGo), 탈중앙화된 교환 / 결제 플랫폼]〉, 《네이버》, 2018-08-05 </ref> | ||
+ | |||
+ | * '''이중지불 감지와 페널티 부여''' | ||
+ | : 세타 토큰은 이중지불(double spending)을 감지하고, 이중지불로 인해 얻는 순이익이 항상 마이너스라는 것을 보장하기 위해 세타 네트워크의 검증 노드들은 모든 온체인 트랜잭션을 확인한다. 또한 악의적으로 이중지불을 시도했을 때, 그에 맞게 페널티(penalty)를 부여한다. | ||
== 사례 == | == 사례 == |
2019년 8월 26일 (월) 17:35 판
페널티(Penalty)는 블록체인에서의 페널티는
개요
특징
- 페널티부여 및 노드차단
- 특정 노드가 악의적인 목적이나 실수로 잘못된 메시지를 보내면 이를 받은 노드는 해당 노드에 페널티(penalty)를 부여한다. 이것은 특정 노드의 부정행위로부터(DoS 공격 등) 네트워크를 보호하려는 조치다. 페널티는 메시지의 중요도에 따라 차등 적용된다.
- 페널티 시스템
- 페널티 시스템(Penalty System)의 콘센서스(consensus)는 가장 긴 체인 + 딜레이 된 긴 체인이 너무 긴 경우 벌점을 주는 방식으로 리올그(reorg) 방지가 추가된 것이다. 51% 공격이 감행되는 경우, 체인은 롤백이 될 수 있고, 확인을 짧게 잡은 거래소의 경우 이중 출금 문제가 발생할 소지가 있다. 예를 들어 51% 공격에 의해서 100 블록이 로스트 되고, 공격자의 블록으로 대체되는 경우, 100 블록 이상을 확인 길이로 잡아버리면 이중지불(double spend)문제는 간단히 무위에 그쳐버린다. 특정 거래소의 확인이 100 블록이라면, 공격자는 51% 공격에 의해 100블록 이상을 몰래 캐어야 하는데, 200 확정이 된 이후에 출금을 하도록 하면 공격자는 헛고생 하는 셈이 되는 것이다. 다만, 채굴자들이 애써 캔 블록이 엉클이 되거나 고아(orphan)가 되는 것은 막을 수 없고, 채굴자 분들도 공격자때문에 손해를 보게 된다. 그러면 51% 공격은 예를 들어, 공격자가 51% 해시 공격에 의해서 이중지불을 발생시키려고 한다고 했을때에
- 현재 넷 해시로 100블록을 30분만에 캘 수 있다면 => 공격자는 최소 30분만에 혼자서 101블록을 캐야 한다.
- 이렇게 하려면 => 프라이버시(private) 상태에서 100여블록을 캐고, 프라이버시 상태이므로 해시 기여도를 쉽게 판독할 수 없다.
- 공격 대상의 블록체인보다 최소 1블록 이상 길어야 한다.
- 프라이버시 상태에서 재빠르게 공공의 상태로 전환시켜 체인 재편성(reorg)를 유발한다.
- 노드는 가장 긴 체인을 발견하고 체인이 재편성(reorganization, 줄여서 reorg) 되면서 이전의 100여 블록이 로스트 된다. => TX 기록도 블록체인에서 사라져 버리고, 여기서 이중지불 발생한다. 오펀 블록 비율이 높아진다. (갑자기 오펀 비율이 높아진다면 해시 공격이 감행중이라고 볼 수 있다.) 페널티 시스템은 이제 막 태어난 새로 제안된 블록체인 컨센서스이다. 이와 함께 소규모 퍼블릭 체인의 51% 공격 대처 방안이 개발되어 보완될 것으로 생각된다.
- Nothing-at-Stake : 기존 작업증명(PoW)에서는 검증자가 메인 체인 뿐 아니라 여러 체인에서 채굴을 할 경우 해시 파워를 분산 시켜야 하기 때문에, 메인 체인 내에서의 해시 파워가 줄어들어 경쟁력이 줄어든다. 하지만, PoS에서는 여러 체인에 기여를 하는것에 대한 아무런 페널티가 없는것을 뜻한다.
활용
- 암호경제학(cryptoeconomics)
- 암호경제학에 대한 이해가 필요 하다. 암호경제학이란 인센티브, 페널티, 응용암호학을 사용해서 새로운 시스템을 설계하고, 모든 참여자들에게 협력을 요청하며, 블록체인 시스템 전반을 지원하는 것을 말하며, 또한 사토시의 백서를 통해 다음과 같은 사실을 알 수 있다. 암호경제학은 비트코인을 채굴하는 채굴자들의 모집에 토큰 인센티브를 활용하고, 하드웨어나 전력등의 페널티를 통해 해커들의 해싱파워(hashing power, 채산성에 영향을 줌) 조작을 방지한다.[1]
- 오라클
- 지분 증명(PoS)이란 합의 알고리즘으로, 특정 블록체인에 해당하는 지분(Stake)을 보유한 노드에 새로운 블록을 생성할 수 있는 권한을 부여한다. 지분이 많을수록 블록을 생성할 수 있는 기회가 더 높은 확률로 주어진다. 과반수(51%) 이상의 지분이 동의한 블록이 더 빠르고 길게 다음 블록을 형성한다. 만약 둘 이상의 디앱(Dapp)의 일정 지분을 보유한 노드들로 하여금 외부 데이터를 블록체인에 보고하게 하고, 이에 대한 보상으로 토큰을 제공한다. 이때 보고된 데이터들 중에서 가장 많은 지분이 걸린 데이터를 참으로 인정하는 것이다. 나머지 노드가 보고한 데이터는 거짓으로 판정 된다. 그리고 블록체인 네트워크는 거짓 데이터를 보고한 노드에게서 토큰(지분)의 일부를 회수한다. 이렇게 걸러진 무결한 데이터는 스마트 컨트랙트를 이행하는데 필요한 추론의 근거로 사용된다. 즉, 보상과 패널티 구조를 세밀히 설계한다면 블록체인 네트워크만으로도 오라클 모델을 만들 수 있는 것이다.[2]
- 지분 증명(PoS)에 의한 오라클 모델을 조작하려면 공격자가 막대한 자금을 지불해서 디앱의 지분을 과반수 이상 사들여야 한다. 따라서 디앱을 공격하더라도 얻을 수 있는 기대 이익은 아주 적을 것이다. 만약 과반수 이상의 지분을 보유한 공격자가 데이터 조작에 성공하더라도, 스마트 컨트랙트가 제대로 작동하지 않는 한 디앱은 그 가치를 상실하게 된다. 따라서 디앱을 이탈하는 노드가 많아질 것이며 그럴수록 해당 디앱의 사용성은 근본적으로 무너질 것이다. 토큰의 가치가 하락하면 과반수 이상의 지분을 사들였던 공격자도 큰 금전적 손실을 입게 된다. 즉, 노드가 디앱의 가치를 훼손할 의향이 없고, 거짓 데이터 보고로 인한 패널티를 물지 않으려면, 사실에 근거한 데이터를 보고하고 리워드를 받는 편이 더 유리하다.[2]
- 텐더민트(Tendermint)
- 페널티 부과를 통한 보안성, 빠른 트랜잭션 처리가 가능한 합의 알고리즘이다. 텐더 민트는 BFT와 지분증명 합의 알고리즘을 결합한 BFT-POS합의 알고리즘을 사용한다. BFT(Byzantine Fault Tolerance)합의 알고리즘의 가장 큰 특징은 블록을 확정하는데 전체 투표자 중에서 2/3 이상의 동의(디지털서명)가 필요하다. 그렇기 때문에 최대 3/1의 비정상 적인 노드의 경우에도 정상적인 합의 도출이 가능하며, 트랜잭션의 처리를 보장할 수 있다. 또한 검증자의 자산을 담보로 잡아두기 때문에 만일 검증자가 악의 작인 행위를 할 경우, 담보를 빼앗는 페널티(Penalty)를 부과함으로써 Nothing at Stake 문제를 해결한다. 추가로 플라즈마 내에서 네트워크 참여자 모두 특정 노드의 악의적인 행위에 대한 증거를 자율적으로 이더리움 블록체인에 제출하여 페널티를 부과 함으로써 보안성을 높인다고 한다.[3]
- 이중지불 감지와 페널티 부여
- 세타 토큰은 이중지불(double spending)을 감지하고, 이중지불로 인해 얻는 순이익이 항상 마이너스라는 것을 보장하기 위해 세타 네트워크의 검증 노드들은 모든 온체인 트랜잭션을 확인한다. 또한 악의적으로 이중지불을 시도했을 때, 그에 맞게 페널티(penalty)를 부여한다.
사례
- 호라이즌 젠캐시(Horizon ZenCash)가 이중지불 공격을 당했고, 펄(Pirl) 이더리움 소스 포크 및 뮤지코인(Musicoin)도 이중지불 공격을 당했는데 이 문제를 해결하기 위해서 호라이즌에서는 페널티 시스템(Penalty System)을 고안했다. 펄에서는 이와 거의 동등한 방식을 구현하고 이를 펄가드로 부른다. 예를 들어서, 100 블록을 몰래 캐서 블록 재편성(reorg)을 일으켜 => 100블록이 증발하게 하려는 공격을 무위로 돌린다면, 특정개수 이상의 블록이 재편성(reorg)이 일어나는 것을 막으면 된다. 현재 비트코인이나 이더리움은 가장 긴 체인을 기준이 되도록 프로그래밍이 되어있는데, 여기에 가장 긴 체인을 따르되, 너무 낡은 블록이 재편성 일으키는 경우 벌점을 주어서 너무 낡은 블록이 재정렬에 편입되지 못하게 막는 것이다. 블록체인은 바로 이전 블록을 기준으로 연결이되어 있기때문에, 재편성이 일어나는 그 시점 블록의 해시를 블랙리스트로 등록시켜버리거나 하면 이어지는 블록들은 재편성에서 제외되어 버린다. 추가적으로 이러한 시도를 하는 노드를 블랙리스트로 올려서 노드간에 블랙리스토 노드 정보를 교환하도록 하는 추가 안전장치도 가능할 것이다. 펄 가드는 콘트랙트를 사용해서 블랙리스트 노드를 따로 관리하는 것으로 보인다. 펄에서 구현한 펄가드를 뮤지코인에 적용한 사례등의 소스코드를 살펴보고 이를 정리해서 ESN 뿐만아니라 다른 이더리움 소스기반 포크 코인에서도 쉽게 적용이 가능하도록 하고, 테스트를 수행하였다. 테스트넷상으로 아주 잘 작동하고, 좀 더 다양한 테스트 케이스를 만들어 테스트해보아야 하겠지만, 이 방식은 이미 호라이즌 / 펄 / 뮤지코인에서 적용하여 쓰고 있는 방식이므로 이미 어느정도 수준으로는 검증이 된 방식이라 할 수 있을 것이다.[4]
- 어거(Augur) 의 유저들은 미래 사건의 결과에 대해 코인을 걸고 베팅한다. 그리고 미래에 이벤트의 결과가 확정되면 예측에 걸었던 베팅금을 잃거나, 리워드와 함께 걸었던 베팅금을 돌려 받는다. 그럼 유저들의 베팅금을 배분하는 기준인 실제 이벤트의 결과를 보고하는 주체는 바로 평판토큰(REP)을 보유하고 있는 보고자(Reporter)들이다. 이들은 예측 시장에 생성된 베팅의 실제 결과를 입력할 수 있는 권한과 책임을 가지고 있다. 만약 어거 플랫폼에 00지역의 0000년도 00월 강수량은 000mm 이상이다. 라는 예측시장이 형성되면 보고자가 일정 기간 내에 00지역의 0000년도 00월의 실제 강수량은 000mm였다. 라는 데이터를 스마트 컨트랙트에 보고한다. 어거에 가짜 데이터를 보고한 보고자는 패널티로 토큰을 지불해야하며, 사실 데이터를 보고한 보고자는 REP 토큰과 예측시장에서 배팅되었던 금액의 일부를 수고료로 얻는다.[2]
각주
- ↑ IoTeX, 〈IoT용 블록체인〉, 《미디움》, 2018-06-29
- ↑ 2.0 2.1 2.2 ROA Invention LAB, 〈블록체인(On-Chain)과 외부 세계(Off-Chain)를 이어주는 가교 오라클(Oracle)〉, 《버티컬 플랫폼》, 2018-06-03
- ↑ 야옹메롱, 〈오미세고(OmiseGo), 탈중앙화된 교환 / 결제 플랫폼〉, 《네이버》, 2018-08-05
- ↑ ethminer, 〈51% 공격 대비를 위한 페널티 시스템 소개 및 구현/정리〉, 《땡글닷컴》, 2019-01-08
참고자료
- IoTeX, 〈IoT용 블록체인〉, 《미디움》, 2018-06-29
- ethminer, 〈51% 공격 대비를 위한 페널티 시스템 소개 및 구현/정리〉, 《땡글닷컴》, 2019-01-08
- ROA Invention LAB, 〈블록체인(On-Chain)과 외부 세계(Off-Chain)를 이어주는 가교 ‘오라클(Oracle)’〉, 《버티컬 플랫폼》, 2018-06-03
- 야옹메롱, 〈오미세고(OmiseGo), 탈중앙화된 교환 / 결제 플랫폼〉, 《네이버》, 2018-08-05