BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Echo: Casper FFG와 Casper CBC의 Yuliang Complex

星球君的朋友们
Odaily资深作者
이 기사는 약 5751자로, 전체를 읽는 데 약 9분이 소요됩니다
이 기사는 일련의 트윗을 사용하여 FFG 대 CBC에 대한 토론, 하이브리드 모델을 전체 PoS로 전환, 무작위성의 역할, 설계 고려 사항을 포함하여 Ethereum Casper 합의 계약의 연구 역사/텍스처/진행 상
AI 요약
이 기사는 일련의 트윗을 사용하여 FFG 대 CBC에 대한 토론, 하이브리드 모델을 전체 PoS로 전환, 무작위성의 역할, 설계 고려 사항을 포함하여 Ethereum Casper 합의 계약의 연구 역사/텍스처/진행 상

편집자 주: 이 기사의 출처는이더리움 애호가(ID: Ethfans)편집자 주: 이 기사의 출처는

이 기사는 2018년 8월 Casper 개발을 소개하는 Vitalik의 긴 트윗에서 Taipei Ethereum Meetup 커뮤니티의 Qiu Jun이 번역한 것입니다. 1년 후, Eth2.0의 포크 선택 규칙은 Vitalik이 이 긴 트윗에서 자신의 선호를 표현한 IMD Ghost가 아닌 LMD Ghost로 결정되었지만 기사에서 언급된 Casper의 진화 역사는 여전히 인사이트로 가득 차 있습니다.

머리말

보조 제목

머리말

다음 텍스트가 시작됩니다.

소개

소개

일련의 트윗을 사용하여 FFG 대 CBC 토론, 하이브리드 모델을 전체 PoS로 전환, 무작위성의 역할, 설계 고려 사항을 포함하여 Ethereum Casper 합의 계약의 연구 역사/라인/진행 상황을 설명하겠습니다. 합의 메커니즘 및 기타 문제.

보조 제목

위태로운 것은 없고 원격 공격

이더리움의 지분증명 연구는 2014년 1월 슬래셔 계약으로 시작되었습니다. Slasher 알고리즘이 그다지 이상적이지는 않지만 몇 가지 중요한 개념, 특히 "Nothing-at-Stake 문제(Nothing-at-Stake Problem)"를 해결하기 위한 페널티 사용을 소개합니다. 그러나 내가 사용한 페널티는 투표 보상을 취소하는 것만으로도 상당히 미미합니다. Vlad Zamfir는 2014년 중반에 합류했으며 검증인에게 스테이킹을 요구하는 방법을 신속하게 도입했습니다. 예치금은 보상보다 더 많은 금액이며 잘못된 행동을 하면 예치금을 빼앗길 수 있습니다(Vlad의 의역).

우리는 2014년 하반기 대부분을 공격자가 메인 체인에서 예치금을 인출하고 더 많은 서명을 가진 또 다른 공격 체인을 형성할 수 있는 "장거리 공격"을 해결하기 위해 노력했습니다. 공격 체인이 메인 체인이라고 생각합니다. 공격 체인과 메인 체인 포크의 시점이 상대적으로 현재 시간과 가깝다면 공격 체인은 문제를 일으키지 않을 것입니다. 검증자가 두 체인에서 동시에 두 개의 충돌하는 메시지에 서명하면 이 서명을 사용할 수 있기 때문입니다. 그러나 포크가 오래 전에 발생한 경우(따라서 원격 공격이라는 용어) 공격자는 몰수를 피하기 위해 보증금을 인출할 수 있습니다.

우리는 PoW 지지자들이 말하는 것과 거의 같은 이유로 장거리 공격이 불가피하다고 결론지었습니다. 그러나 우리는 그들의 결론을 받아들이지 않았습니다. 원격 공격을 해결하기 위해 두 가지 추가 보안 가정을 ​​도입할 수 있다는 사실을 발견했기 때문입니다.

예치금과 벌칙의 사용을 설정한 다음에는 그것이 무엇인지 결정해야 합니다. 우리는 우리가 원하는 것이 "경제적 완결성"이라는 것을 알고 있으며 유효성 검사기는 다음 방법에 따라 블록에 서명합니다. 일단 블록이 완료되면 충돌하는 블록이 완료되려면 대부분의 유효성 검사기가 서명해야 합니다. 이전 메시지. 그러나 이러한 메시지의 경우 체인에서 감지하고 처벌할 수 있습니다.

Casper CBC

나는 악취가 나고 길고 주제에서 벗어난 "Bet Consensus" 기사를 썼습니다. 스테이킹 합의는 흥미로운 제안입니다. 유효성 검사기는 어떤 블록이 완료될 것인지에 대해 베팅을 하고 스테이크는 어떤 체인이 합의에 도달할지 결정합니다. PoW도 채굴이 스테이킹이기 때문에 이 속성을 가지고 있습니다. 올바른 체인에 베팅하면 보상을 받고 잘못된 체인에 베팅하면 채굴 비용을 잃게 됩니다. 그러나 PoS에서 우리는 더 높은 배당률을 가질 수 있습니다. 검증인의 배당률은 낮게 시작하지만, 검증인이 블록에 대한 서로의 신뢰도가 점차 증가하는 것을 확인함에 따라 모든 사람의 배당률은 병렬로 기하급수적으로 증가합니다.

보조 제목

동시에 Vlad는 메커니즘 설계에 대한 많은 연구를 시작했으며 특히 Casper가 과점에 더 저항하도록 만들었습니다. 우리는 또한 Tendermint와 같은 고전적인 BFT(Byzantine Fault Tolerance)에서 영감을 받은 합의 작업을 시작했습니다. Vlad는 고전적인 BFT가 설득력이 없다고 생각합니다(그는 특히 BFT의 엄격한 임계값을 싫어합니다. 예를 들어 PBFT 노드의 2/3는 정직한 노드여야 합니다). 이 방법은 BFT(Vlad의 원래 단어: 링크 1/링크 2/링크 3)를 재발명하려고 시도합니다.

완결성을 감지하기 위해 노드는 메시지에서 패턴을 찾습니다. 이러한 메시지는 다수의 유효성 검사기가 한 가지 방식으로 일부 블록 B에 안정적으로 투표했으며 B에서 벗어나면 다수의 유효성 검사기가 불법적으로 투표를 전환해야 함을 증명할 수 있습니다. 예를 들어, 모든 노드가 B에 투표했다면 모든 노드가 "B에 대한 모든 사람의 투표를 포함하는 블록"에 투표한 것입니다.

Casper FFG

결국 저는 접근 방식이 근본적으로 위험해 보였기 때문에 스테이킹 합의를 포기했습니다. 나는 또한 돌아가서 PBFT가 어떻게 작동하는지 이해하려고 노력했습니다. 시간이 좀 걸렸지만 몇 달 후에 알아 냈습니다.

보조 제목

마무리는 매우 중요한 개발입니다. 일단 블록이 마무리되면 네트워크가 아무리 늦어도 보안을 보장할 수 있으며(여러 블록 확인이 필요한 PoW와 달리) 역추적 블록은 1/3 이상의 검증자가 속여야 합니다. , 캔이 감지되고 보증금이 파괴됩니다. 결과적으로 소급 확정 비용은 수억 달러에 달할 수 있습니다. Casper CBC와 FFG는 서로 다른 방식으로 이 기능을 구현합니다.

FFG vs CBC

Casper CBC와 FFG는 둘 다 추상 오버레이이며 둘 다 기존 포크 선택 규칙 위에 구축되어야 합니다. 속어로 Casper CBC는 커버리지 레이어(상위 레이어)를 마무리하여 포크 선택 규칙(하위 레이어)에 적응하는 반면, Casper FFG는 최종 커버리지 레이어(상위 레이어)를 포크 선택 규칙(하위 레이어)에 적응시킵니다. ).

보조 제목

포크 선택 규칙에 대한 Vlad의 초기 선호도는 PoS용 GHOST의 수정된 버전인 "Latest Message-Driven GHOST(LMD GHOST)"였으며, 초기 선호도는 "Hybrid PoS(Hybrid PoS) 우선." PoW를 기본 포크 선택 규칙으로 사용합니다.

FFG의 원래 버전에서 PoW는 블록별로 체인을 실행하고 PoS는 블록을 완료하기 위해 뒤따릅니다. Casper CBC는 처음부터 전체 PoS입니다. 한편, Vlad와 저는 각각 합의 인센티브에 대해 이론을 세웠습니다.

여기에서 매우 중요한 차이점은 "고유하게 귀속되는 오류"입니다. 어떤 일이 잘못되어 처벌을 받을 때 누가 책임이 있는지 알 수 있고 "비고유하게 귀속되는 오류"는 여러 당사자 중 하나에 의해 오류가 발생할 수 있습니다. 고유하지 않은 오류의 전형적인 사례는 오프라인 대 차폐(검열)이며, 이는 "화자-청취자 오류 동등성"이라고도 합니다. 누구의 잘못인지 판단하는 것은 불가능합니다.

고유하게 기인한 오류(Casper FFG는 예치 조건을 인하함)를 처벌하는 것은 쉽지만 고유하지 않은 기인한 오류를 처벌하는 것은 어렵습니다. 소수의 노드가 오프라인 상태가 되었거나 대다수의 노드가 소수를 차단했기 때문에 블록 완료가 중지되었는지 알 수 없다면 어떻게 됩니까? 현재 이 문제에 대한 세 가지 해결책이 있습니다: 1. 양쪽에 약간의 벌칙 적용, 2. 양쪽에 심한 벌칙 적용(Vlad의 선호), 3. 체인을 둘로 나누고, 두 체인 중 한 쪽을 각각 처벌하고, 시장이 결정하도록 함 체인이 더 가치가 있습니다(내 선호도). 아니면 제가 쓴 이 글을 참고하셔도 됩니다.

2017년 11월 저는 "Quadratic Leak"로 인해 Casper FFG와 1/3 노드의 입금 조건을 삭감했습니다. 오프라인 문제에 대한 해결책은 종이로 작성되었습니다.

물론 51% 공격을 해결하기 위해 소셜 측면에 의존하는 것이 그다지 좋지 않다는 것을 잘 알고 있기 때문에 최소한 체인의 노드가 "합법적인 체인"과 "공격 체인"을 자동으로 감지할 수 있도록 하는 방법을 찾기 시작했습니다. 이것은 초기 아이디어입니다. 이것은 좋은 생각이지만 여전히 차선책입니다. 네트워크에 대기 시간이 없으면 노드 간 의심 점수 차이의 상한선만 보장할 수 있고 모든 노드가 완전히 동의하지는 않습니다.

위의 모든 문제가 PoS에만 국한된 것은 아니라는 점을 언급할 가치가 있습니다. 사실 PoW에서 사람들은 51% 공격을 막는 것이 불가능에 가깝고 51% 공격은 어떤 대가를 치르더라도 피해야 하는 종말이라고 생각하고 포기하는 경향이 있습니다. 그러나 이더리움의 경우와 마찬가지로 Vlad와 저는 "야심 찬"이라는 단어를 칭찬으로 착각하고 51% 공격을 완화하고 복구할 수 있는 다양한 방법을 계속 조사했습니다.

2018년 초, CBC에서 Vlad의 연구는 안전 증명의 진행을 포함하여 빠르게 발전하기 시작했습니다. — 2018년 3월까지의 연구 진행 상황을 따라잡기 위해 이 장대한 2시간 브리핑을 시청하십시오. 그동안 Casper FFG도 상당한 진전을 이뤘으며 이를 계약으로 구현하기로 결정하여 개발이 더 쉬워졌습니다. 2017년 12월 31일에 테스트넷의 Python 버전을 출시했습니다.

보조 제목

캐스퍼와 샤딩 개발 경로의 통합

불행히도 FFG의 개발 속도가 느려졌습니다. 계약으로 FFG를 구현하면 몇 가지 작업이 더 쉬워지지만 EVM에서 EWASM으로, 그리고 단일 체인 Casper에서 샤드된 Casper로 이전하는 것이 더 어려워집니다. 또한 팀의 R&D 업무는 "메인체인 캐스퍼"와 "샤드체인 캐스퍼"로 나누어져 있는데, 이 두 팀 사이에 불필요한 중복 작업이 많이 발생한 것으로 짐작할 수 있습니다.

2018년 6월 우리는 계약으로 구현되는 Casper FFG를 포기하고 독립 체인으로 작동하는 Casper를 추구하기로 결정했습니다. 이러한 설계는 샤딩을 더 쉽게 할 것입니다.

전체 PoS로 전환하면서 PoS의 포크 선택 규칙에 대해 더 진지하게 생각하기 시작했습니다. Casper FFG와 CBC 모두 블록을 완성하기 위해 각 "Epoch"에서 모든 검증 노드가 투표해야 합니다. 즉, 매초 수만 개의 서명이 각 검증 노드로 전송됩니다. BLS 서명 집계는 계산 비용을 실현 가능하게 만듭니다. 그러나 이러한 추가 서명을 사용하여 체인을 보다 안정적으로 만들고 몇 초 안에 "100 확인"에 해당하는 보안을 달성하려고 합니다. 내 초기 생각은 다음과 같습니다(링크 1/링크 2).

그러나 이러한 모든 포크 선택 방법에는 단점이 있습니다. 모두 검증 노드를 "증명자"와 "제안자"로 나누고 블록 생성을 담당하는 이러한 블록 생산자가 큰 권한을 갖습니다. 이것은 그다지 좋지 않습니다. 주로 블록 노드를 공정하게 선택하기 위해 매우 안전한 온체인 난수 생성기가 필요하고 온체인 난수 생성기가 어렵고 RANDAO와 같은 일부 간단한 방법은 더 그리고 더 많은 질문. Justin Drake와 저는 이 문제를 해결하기 위해 착수했습니다. Justin은 결정적이고 검증 가능한 출력이 있는 함수인 VDF를 사용하지만 작동하는 데 병렬화할 수 없는 시퀀스 시간이 많이 필요하여 초기 변조가 불가능하고 Vlad는 GHOST를 사용하여 타협을 가르칩니다. 블록 생산자에 대한 의존도를 크게 줄이기 위한 포크 선택 규칙을 기반으로 악의적인 블록 생산자가 90% 이상이고 정직한 증인 노드가 50% 이상일 때 체인이 방해받지 않고 성장할 수 있습니다. Vlad는 행복하지만 지나치게 행복하지는 않습니다. 그는 LMD GHOST를 선호하고 IMD GHOST를 선호합니다.

비슷한 시기에 저는 Casper FFG를 "파이프라인"하여 최종화 시간을 2.5 에포크에서 이론상 최적인 2 에포크로 줄이는 방법을 생각해내려고 했습니다. RPJ 포크 선택 규칙(나중에 IMD GHOST로 개명)이 FFG와 잘 작동하는 것이 기쁩니다. 또한 매우 중요한 "안정성"이 있습니다. 포크 선택은 향후 포크 선택에 대한 좋은 예측입니다. 이것은 명백해 보이지만 이 속성이 없는 포크 규칙을 만드는 것은 매우 쉽습니다. 최근 개발은 다음과 같습니다. LMD GHOST는 기술적 세부 사항으로 인해 2라운드에서 25%의 내결함성을 가질 수 있지만 IMD GHOST는 여전히 완전한 33%의 내결함성을 가질 수 있습니다(현재 문서가 없음). (번역: 번역이 완료되면 Ethereum 2.0은 LMD GHOST를 사용함)

FFG와 CBC 간의 주요 트레이드오프는 CBC가 더 나은 이론적 속성을 가지고 있는 반면 FFG는 구현하기 더 쉽다는 것입니다. 동시에 VDF도 많은 발전을 이루었습니다.

ETH
Odaily 공식 커뮤니티에 가입하세요