Ethereum Core Researcher인 Jon Choi의 Ethereum Casper 101을 저자의 허락을 받아 전문 번역하였습니다.
Jon Choi에 대한 정보는 다음의 링크를 참조해주세요!
전체 글 목록:
이더리움 캐스퍼 첫걸음 (1) by Jon Choi
이더리움 캐스퍼 첫걸음 (2) by Jon Choi
이더리움 캐스퍼 첫걸음 (용어정리) by Jon Choi (현재 보고 계신 글)
용어 정리
"이더리움 캐스퍼 첫걸음"에서 무척 많은 개념들을 다루었는데요, 앞으로도 수많은 크롬 탭을 띄워가면서 자료들을 찾아보시다 보면 자주 보는 용어들이 있을거에요. 여기서는 가장 필요하고 자주 등장하는 개념들을 간단히 정리해두었습니다. 도움이 되었으면 좋겠네요!
Proof of Stake (PoS) - 네트워크의 검증인이 예치한 금액에 기반하는 퍼블릭 블록체인의 합의 알고리즘.
캐스퍼 - 이더리움의 PoS 연구 프로젝트 이름.
완결성(finality) - 시스템에서 어떤 작업이 완료되면, 그 작업은 번복될 수 없음(Vitalik의 합의 완결성에 대한 논의). 배경: PoW는 확률적이고 암시적(명시적이지 않음)인 완결성을 가짐. 캐스퍼는 완결성을 명시적으로 강제하는 매커니즘을 설계하고자 함.
포크 선택 규칙(fork choice rule) - 포크 선택 규칙이란, 여러 블록들과 메시지들을 입력으로 받아서 어떤 체인이 "올바른"체인인지 클라이언트에게 출력되는 함수로, 클라이언트는 출력을 전달받아서 평가를 함. PoW에서 주로 사용되는 "가장 긴 체인이 올바른 체인이다"가 대표적인 포크 선택 규칙 중 하나.
삭감 조건(slashing conditions) - 네트워크의 규칙을 어긴 검증인을 지분을 삭감함으로써 처벌하는 규칙.
신원 위조 공격(sybil attack) - P2P 네트워크에서 신원을 위조함으로써 평판 시스템을 무효화시키는 공격.
신원 위조 공격을 막기 위한 3 E(3 E's of Sybil resistance) - 1. 진입 비용(entry cost) 2. 거주 비용(existence cost) 3. 탈퇴에 대한 페널티(exit penalty) (Dominic Williams가 만든 용어).
Nothing-at-stake 문제 - PoS 시스템에서 포크가 발생했을 경우, 검증인은 포크 된 체인 모두를 검증해버리면 손해보는 게 아무것도 없다는 문제가 존재함. PoS의 문제점으로 가장 잘 알려진 문제이자, 해결 가능한 문제로 여겨지고 있음. 예를 들면 삭감(Slasher) 등.
뇌물 공격(bribe attack) - 공격자가 프로토콜의 보안을 저해하기 위해 뇌물을 사용하여 검증인의 게임이론 프레임워크의 내시 균형을 변형시키는 것. (보다 자세한 내용은 캐스퍼의 역사 파트 2를 참조)
장거리 공격(long range attack) - 51% 공격과 같은 매커니즘(더 긴 체인을 만들어서 공격자가 원하는대로 장부를 수정하는 것)이지만, 여섯 블록 전부터 시작하는게 아니라 훨씬 이전(6만블록 전이라거나)부터 조작하는 것.
__DAG - "Directed Acyclic Graph(비순환 방향 그래프)". 순환하지 않는 유한한 방향성을 갖는 그래프. (ETH Stack Exchange)
GHOST - "Greedy Heaviest Observed Subtree". 보안과 탈중앙화 측면을 타협하는 대신 빠른 검증 시간을 우선 목표로 하는 체인 선택 규칙. (원본 논문, ETH GHOST)
동기성(synchronicity) - 메시지의 시각과 관련된 가정 (동기, 비동기, 부분동기)
생존성(liveness) - "가용성(availability)". 프로토콜을 따르는 노드들이 언젠가는(eventually) 값을 결정함. 네트워크의 상태가 값을 결정할 수 없는 상황과 반대의 경우 (예: 텐더민트에서 투표가 2/3 이상 모이지 않은 경우).
안전성(safety) - "정확성(correctness)". 프로토콜을 따르는 노드들이 동일한 값을 도출함. 직관적으로 설명하면, 서로 충돌하는 내용을 담은 두 개의 블록이 체인에 포함될 수 있는지 여부와 관련된 부분.
FLP 불가능 정리 - 비동기 상태(asynchronous)이면서 안전(safe)한 상태로 운영(live)되는 네트워크는 존재할 수 없다 (증명된 바 있음).
책임을 물을 수 있는 장애(accountable faults) - 특정 검증인 또는 검증인 집단에게 책임을 물을 수 있는 장애.
비잔티움 장애 / 비잔티움 행위(Byzantine faults / Byzantine behavior) - 서로 다른 관찰자에게 서로 다른 증상을 보이는 장애를 지칭. 프로토콜을 따르지 않는 행위.
비잔티움 실패(Byzantine failure) - 합의가 필요한 시스템에서 비잔티움 장애로 인해 시스템 서비스에 발생한 손실.
비잔티움 장애 허용 (Byzantine fault tolerance, BFT) - 시스템이 비잔티움 장애를 견딜 수 있는 능력. 비동기 네트워크에서는 1/3을 비잔티움 행위의 한계로 설정하고, 동기 네트워크에서는 1/2로 설정. (새로운 캐스퍼와 텐더민트를 비롯한 Paxos, PBFT를 포함하는 BFT 합의 알고리즘).
나카모토 합의(Nakamoto consensus) - PoW에 기반한 비트코인같은 방식의 합의 생성 방식. BFT에 기반한 PoS와 대비하여 체인 방식의 PoS를 나카모토 스타일(Nakamoto-style) 합의라고 부르기도 함.
텐더민트(Tendermint) - 일관성에 중점을 두는 PoS 구현 방식. 악의를 품은 행위자가 1/3 이하일 때는 포크가 발생하지 않지만, 검증인 투표에서 2/3 이상의 투표가 진행되지 않으면 체인이 정지하는 단점이 있음.
검증인(validator) - 블록체인의 체크포인트/블록을 검증함으로써 보상을 얻는 주체. PoW의 채굴자 = PoS의 검증인.
검증인 집단(validator set) - 특정 시점의 어떤 체인의 검증인의 집단.
체크포인트(checkpoint) - FFG에서, PoW체인(예: ethash에 기반한 이더리움) 위에 PoS 검증 매커니즘이 덧붙여져 있을 때, 일정한 간격(50블록)을 둔 블록.
에폭(epoch) - 검증인이 블록의 완결성에 대한 투표를 진행하는 간격(FFG에서는 50블록). PoW 채굴자는 블록을 채굴하고 PoS 검증인은 매 에폭마다 체크포인트를 검증.
변동하는 검증인 집단 - 시간이 흐름에 따라 블록체인의 검증인 집단이 변화할 수 있다는 개념. BFT스타일의 합의 알고리즘에서 이 부분을 해결하는 것이 매우 중요한 발전이었음. 텐더민트가 처음으로 해결 방법을 제시하였음. 캐스퍼 역시 이 부분에 대한 연구가 활발히 진행되는 중.
얼버무림(equivocation) - 검증인이 서로 충돌하는 두 메시지를 보내는 행위 (보다 정확한 정의는 이 발표자료의 28번 슬라이드를 참조)
덩클(dunkles) - 지배적인 블록("올바른" 체인에 생성된 블록)에 지배적이지 않은 블록("올바르지 않은" 체인에 생성된 블록)의 데이터를 포함시키는 매커니즘. 이 매커니즘을 통해 보다 나은 인센티브 매커니즘을 만들 수 있었으며, Nothing-at-stake 문제를 완화시키는데에 큰 도움이 되었음 (링크)
제안 매커니즘(proposal mechanism) - 집단에 속한 검증인이 블록을 타당성 증명 또는 완결 하자고 건의하기 위한 매커니즘.
타당성 증명(justification) - FFG를 예로 들면, 검증인의 2/3 이상이 새로운 체크포인트에 대해 체크포인트의 기록이 정확하다고 동의하는 것. 이는 체크포인트를 완결하기 위한 중간단계임.
완결(finalization) - FFG를 예로 들면, 검증인의 2/3 이상이 타당성이 증명 된 체크포인트에 대해 체크포인트의 기록이 정확하다고 동의하는 것. 이 단계까지 마치면 체크포인트에 완결성이 부여됨.
상태 전환 시스템(state transition system) - 특정 상태(예: 거래 내역 목록 또는 계좌 목록 등)와 그 상태의 시간에 따른 변화(전환)를 유지하는 시스템. 비트코인, 이더리움, 그 외 퍼블릭 블록체인들은 상태 전환 시스템으로 볼 수 있음.
프로토콜 효용 함수(protocol utility function) - "...프로토콜이 얼마나 잘 동작하는지를 확인할 수 있는 공식으로, 이상적으로는 블록체인 내에서 계산할 수 있어야 함. PoW체인의 경우, 생성된 모든 블록 중 메인 체인에 포함된 블록의 비율로 볼 수 있음. 캐스퍼에서는 프로토콜 효용이 0인 경우 가장 완벽하게 동작하고 있는 것으로 봄. 이는 모든 에폭이 완결되고 아무런 안전성과 관련된 오류가 발생하지 않은 상황으로, 완결되지 않은 에폭이 발생하면 약간의 페널티를 받고, 안전성과 관련된 오류가 발생하면 매우 큰 페널티를 받는다. 프로토콜 효용 함수를 제대로 정립할 수 있다면, 악의적 행위에 대한 페널티를 해당 행위로 인해 프로토콜 효용이 손실된 정도와 비슷하게 설정할 수 있을 것이다." (피해의 삼각형에서)
(역자 추가) 형식적 검증(formal verification) - 어떤 하드웨어나 소프트웨어 시스템이 의도된대로 동작하는지 여부를 형식 수법(formal method) 또는 수식을 통해 검증하는 것.
Dominic Williams tweeted @ 28 Sep 2015 - 02:57 UTC
Disclaimer: I am just a bot trying to be helpful.
wow....just amazing...hope that everybody like it....so thanks for sharing...good job
Thank you :)
용어정리가 아주 깔끔합니다 팔로우 및 보팅할게요~
감사합니다!
글 잘 읽었습니다. 제 블로그에 [작명법] 관련 소개글 있습니다. 방문해 주세요~
amazing
I will follow..thank you
Thank you for following!
용어 정리가 깔끔해서 이해하기 좋습니다.
잘 읽고 갑니다.
저도 잘 몰랐던게 많았는데 용어 정리 부분 보면서 도움이 많이 됐어요. 감사합니다 :)