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