블로그 1뉴스 개발자 엔터프라이즈 블록 체인 설명 이벤트 및 컨퍼런스 보도 자료뉴스 레터

뉴스 레터 구독.

이메일 주소

우리는 귀하의 개인 정보를 존중합니다

홈 블로그 엔터프라이즈 블록 체인

기업을위한 확장 합의 : IBFT 알고리즘 설명

Istanbul Byzantine Fault Tolerance (IBFT)가 프라이빗 이더 리움 네트워크에서 최종성을 개선하고 처리량을 증가시키는 방법 .by ConsenSys 2018 년 6 월 22 일 게시일 2018 년 6 월 22 일

이더 리움 히어로 ConsenSys

합의 알고리즘은 블록 체인의 핵심 혁신 중 하나이지만 가장 혼란스러운 것 중 하나입니다. Satoshi Nakamoto는 비트 코인 거래를 동시에 보호하고 검증하기위한 수단으로 구현 된 작업 증명 (PoW) 버전을 만들었습니다. 블록 체인 커뮤니티는 이러한 핵심 비전을 기반으로 PoS (Proof of Stake), PoA (Proof of Authority), PBFT (Practical Byzantine Fault Tolerant) 및 분산 된 합의를 구축하도록 설계된 많은 시스템, 블록 체인을 가치있게 만드는 단일 소스를 생성합니다..

IBFT (Istanbul Byzantine Fault Tolerant)는 이더 리움 네트워크에서 작업 증명의 대안 인 합의 메커니즘입니다. 다른 알고리즘과 마찬가지로 IBFT는 블록 체인에서 거래에 대해 합의 된 단일 주문을 보장하고 결제 최종성을 포함하여 기업에 추가 혜택을 제공합니다. IBFT는 Amis Technologies의 Geth에서 처음 구현, Quorum에 구현 된 직후.

IBFT 합의 메커니즘의 작동에 들어가기 전에 IBFT를 사용하려는시기와 이유를 언급 할 가치가 있습니다. 퍼블릭 블록 체인에서 짧은 대답은 아마도 그렇지 않을 것입니다. 하지만 컨소시엄이나 프라이빗 블록 체인의 경우 IBFT가 상당히 매력적으로 보이기 시작합니다..

PoW 알고리즘은 하드웨어와 전기 모두에서 비용이 많이 듭니다. 이 비용은 누군가가 네트워크를 쉽게 장악하는 것을 방지하기 위해 의도 된 것이므로 PoW는 누구나 (공격자 포함) 참여할 수있는 완전한 탈 중앙화 상황에 매우 적합합니다. 그러나 기업에서 사용하는 컨소시엄 / 프라이빗 체인의 노드는 본질적으로 퍼블릭 체인의 노드보다 더 신뢰할 수 있습니다. 따라서 PoW 합의 메커니즘은 지나치게 부담 스러울 수 있으며 다른 메커니즘은 분산 시스템을 실행하기에 “충분한”신뢰를 제공 할 수 있습니다..

마찬가지로 지분 증명은 허가 된 네트워크에서 가스 비용을 지불하는 것이 덜 중요하기 때문에 기업에게는 덜 관련성이있을 수 있습니다. 노드는 (필요한) 네트워크에서 통화를 유지할 필요가 없기 때문에 PoS는 외부 요구 사항을 도입합니다..

이러한 트레이드 오프를 고려할 때 PoA (Proof of Authority)는 네트워크의 노드가 라운드 로빈 또는 기타 임의 시스템을 사용하여 체인에 대한 새 블록을 생성 할 수있는 권한을 할당하는 시스템을 활용하여 가능한 최상의 솔루션으로 등장합니다..

IBFT는 PoA의 다양한 특징 중 하나이며 다음과 같은 이점을 제공합니다.

  • 즉각적인 블록 최종성. 주어진 체인 높이에서 제안 된 블록은 1 개뿐입니다. 따라서 단일 체인은 분기, 삼촌 블록 및 트랜잭션이 나중에 체인에서 한 번 “취소”될 수있는 위험을 제거합니다..
  • 블록 간 시간 단축. 블록을 구성하고 검증하는 데 필요한 노력이 크게 줄어들어 (특히 작업 증명과 관련하여) 체인의 처리량이 크게 증가합니다..
  • 높은 데이터 무결성 및 내결함성. IBFT는 제안 된 각 블록의 무결성을 보장하기 위해 검증 자 그룹을 사용합니다. 이러한 유효성 검사기 중 대다수 (~ 66 %)는 체인에 삽입하기 전에 블록에 서명해야하므로 블록 위조가 매우 어렵습니다. 그룹의 ‘리더십’도 시간이 지남에 따라 순환합니다 — 결함이있는 노드가 체인에 장기적인 영향을 미칠 수 없음.
  • 운영상의 유연성. 검증 자 그룹은 시간 내에 수정 될 수 있으므로 그룹에 완전 신뢰 노드 만 포함됩니다..

여기에서는 대부분 비 기술적 인 용어로 IBFT에 대한 개요를 제공했습니다. IBFT의 원래 제안 중 일부는 GitHub에서 EIP를 검토 할 수 있습니다.

이 기사의 나머지 부분에서는 IBFT의 기술적 고려 사항을 살펴보고 EIP에서 발견되고 자체 연구를 통해 배운 많은 개념에 대해 논의 할 것입니다..

참고 : IBFT 코드는 go-ethereum pull request # 16385에서도 찾을 수 있습니다..

조작

IBFT 합의 메커니즘은 다음 구성 요소로 구성됩니다.

  1. PBFT 영감을받은 그룹 합의 모델.
  2. 검증 그룹에서 구성원을 추가 / 제거 할 수있는 프로세스.

IBFT는 기능의 모든 측면을 지원하기 위해 블록 헤더를 (미묘하게) 재 작업해야합니다..

그룹 합의 모델

개요

IBFT는 Ethereum 네트워크에서 작동하는 검증 노드 (Validators) 풀을 사용하여 제안 된 블록이 체인에 추가하기에 적합한 지 결정합니다..

Validator의 한 노드는 Proposer로 임의로 선택되며 블록 간격으로 블록을 구성하고 해당 블록을 그룹과 공유합니다. 과반수의 검증 인이 블록이 유효하다고 판단하면 블록 체인에 추가됩니다..

합의 라운드가 완료되면 검증자는 다음 블록 간격에서 후보 블록을 제공 할 책임이있는 새로운 제안자를 선택할 수 있습니다..

합의 메커니즘은 모든 Validator가 동일한 높이의 체인에 동일한 블록을 추가하도록하는 동기화 된 상태 머신입니다..

블록 삽입에 실패하면 제안자가 변경되고 프로세스가 새로 시작됩니다..

하나의 블록 만 상태 머신에 추가 할 수 있도록하기 위해 IBFT는 다수의 검증 인이 삽입에 동의하면 제안 된 블록을 변경하는 것을 방지합니다 (하지만 작업을 수행하지 않음).이 프로세스를 ‘블록 잠금’이라고합니다..

IBFT 합의 메커니즘은 검증 노드의 1/3 미만이 잘못 작동하는 경우 (손상되거나 코드 결함으로 인해) 시스템 안정성을 제공합니다. 즉 F 결함이있는 노드를 허용하려면 유효성 검사 그룹에 최소 3F + 1 개의 노드가 포함되어야합니다 (이보다 많으면 시스템 무결성이 증가하지 않음)..

참고 : 여기서 F는 시스템에서 허용하는 결함 노드의 수를 의미합니다..

상태 머신

IBFT 상태 머신

상태
  • 제안을 기다리는 중. Validator는 현재 제안자가 새로운 블록을 제공하기를 기다리고 있습니다. 검증자가 이번 라운드의 제안자 인 경우 제안 된 블록을 준비하고 사전 준비 메시지로 전송합니다..
  • 준비 중. (유효한) 제안 된 블록을 수신하고 검증 자 피어에게 알 렸습니다. 이제 검증 자 피어가 블록 수락을 알리기를 기다리고 있습니다..
  • 준비된. 검증 자 피어의 차단 승인을 받았으며 유사한 위치에 있기를 기다리고 있습니다. 이 단계에서 제안 된 블록은 ‘잠김’상태이며 삽입 시도가 수행 될 때까지 교체 할 수 없습니다..
  • 라운드 변경. 합의에 도달하거나 블록이 삽입에 실패하기 전에 라운드가 시간 초과되었습니다. 모든 검증 인이 다음 라운드 번호에 동의 할 때까지 기다립니다..
전환
  1. 제안 대기 → 준비 중. 제안자로부터 새 블록 (메시지 준비 메시지)을 수신 할 때 (즉, 제안 된 체인 삽입 지점과 마찬가지로 해당 블록이 내용에서 유효 함).
  2. 제안 대기 → 라운드 변경. 수신 된 제안이 주어진 규칙 세트에 따라 유효한 블록이 아닙니다 (예 : 잘못된 제안자, 잘못된 라운드 넘버링)..
  3. 준비 중 → 준비. 검증 자 피어로부터 2F + 1 알림 (메시지 준비) 수신시 제안 된 블록이 삽입에 적합 함을 나타냅니다..
  4. 준비 → 제안 대기 중. 검증 자 피어로부터 2F + 1 알림 (커밋 메시지)을 수신하면 블록을 체인에 추가 할 준비가되었음을 나타냅니다. 전환시 블록을 체인에 추가하는 프로세스가 수행됩니다 (성공)..
  5. 준비 → 라운드 변경. 준비에 따라->제안을 기다리는 중이지만 블록 삽입에 실패했습니다..
  6. 라운드 변경 → 제안 대기. 2F + 1의 검증 인이 사용할 다음 라운드 번호에 동의합니다..

참고 : “RoundChange”로의 모든 전환은 Validator가 “RoundChange”메시지를 유효성 검사기 피어에게 전송합니다..

블록 잠금

IBFT는 포크가 생성되지 않도록 요구합니다. 이를 위해 블록이 과반수에 의해 동의되면 (즉, 준비 상태로 진입 할 때) “잠김”상태가됩니다..

이것은이 블록을 체인에 추가하려는 시도가 시도 될 때까지 다른 블록이 삽입을 위해 고려되지 않음을 의미합니다. 따라서 블록이 성공적으로 삽입되거나 (이번 또는 후속 라운드에서 충분한 커밋 메시지가 수신되면) 블록이 삽입에 실패하고 삭제되고 현재 체인 높이에서 새 블록이 제안됩니다..

검증 그룹 멤버십

검증 그룹의 구성원은 투표 메커니즘을 통해 시간이 지남에 따라 변경 될 수 있습니다. 회원은 과반수 (Floor (N / 2) + 1) 투표를 통해 추가 또는 제거 될 수 있습니다. 각 투표는 블록 헤더에 캡처됩니다..

네트워크의 각 노드 (비 검증 노드 포함)는 각 검증 자에 대한 투표 집계를 추적하여 현재 검증자를 결정하고 채굴 된 블록의 서명이 예상 그룹에 속하는지 확인합니다..

각 투표가 블록 헤더에 포함되어 있으므로 주어진 라운드의 제안자 만 투표를 할 수 있습니다. 따라서 노드를 적시에 추가 / 제거하려면 제안자 역할을 정기적으로 업데이트하는 것이 중요합니다..

노드가 과반수 투표에 도달하면 즉시 검증 자 그룹에 가입 / 탈퇴합니다..

IBFT는 아직 과반수에 도달하지 않은 모든 투표가 제거되어 투표 집계가 다시 시작되는 지점을 정의하는 투표 시대를 인식합니다. 이는 투표를 집계 할 때 검증 인이 가장 최근 에포크에서만 시작하면됨을 의미합니다. 기본적으로 Voting Epoch는 30,000 블록마다 발생합니다..

투표는 상태 변경을 정의합니다 (즉, 후보자가 투표를 받고 검증자가 투표를하게 됨), 주어진 노드에 대해 투표하지 않는 것은 검증자가 노드가 상태를 변경하는 것을 원하지 않음을 의미합니다 (현상 유지를 위해 명시적인 투표가 필요하지 않음)..

블록 헤더 리팩터링

Ethereum에서 IBFT를 지원하려면 블록 헤더를 여러 번 변경해야합니다. 이러한 변경 사항은 다음과 같습니다.

  • beneficiary : 투표가 진행중인 노드를 식별합니다..
  • nonce : 투표 “방향”을 지정합니다. — AUTH 또는 DROP.
  • mixHash : 고정 된 매직 넘버,이 블록이 IBFT 검증 됨으로 식별 됨.
  • ommersHash : IBFT에서 작동 할 때 ommer 블록이 없기 때문에 빈 세트의 해시 여야합니다..
  • 타임 스탬프 : 최소한 상위 블록의 타임 스탬프 + 블록 간격이어야합니다..
  • 난이도 : 0x0000000000000001로 채워야합니다..
  • extraData : 검증 자 주소 목록, ProposerSeal (제안자 식별), CommittingSeals (이 블록에 대해 ‘커밋’을보고 한 검증 자 목록)을 포함한 IBFT 특정 데이터 포함.

각 유효성 검사기의 CommittingSeals 목록이 (잠재적으로) 다르기 때문에 블록 해시에이 정보가 포함되지 않는 것이 중요합니다. 즉, 두 블록이 서로 다른 CommittingSeals 필드를 가지고 있어도 동일한 정보를 나타냅니다 (즉, 트랜잭션 등이 동일 함)..

결론

마지막으로, IBFT는 PoW에 필요한 인프라를 줄이는 즉각적인 트랜잭션 최종성을 제공하는 비잔틴 내결함성 솔루션입니다..

이더 리움 메인 넷 (훨씬 더 광범위하고 알려지지 않은 참여 행위자들과 함께)에서는 사용되지 않을 것 같지만, 검증 자 풀이 신뢰할 수 있고 책임을지는 프라이빗 체인에서 사용될 때 상당한 이점을 제공합니다. 고정 된 케이던스와 예측 가능한 트랜잭션 처리 속도로 체인에 이상적인 솔루션을 제공합니다..

이 기사에서 살펴본 프로세스는 IBFT를 사용하는 네트워크가 비잔틴 노드에 대해 내성이 있으며 해당 노드가 네트워크에서 제어권을 행사하는 것으로 보일 경우 복구 될 수 있다는 확신을줍니다..

최신 이더 리움 뉴스, 엔터프라이즈 솔루션, 개발자 리소스 등을 보려면 뉴스 레터를 구독하십시오.블록 체인 비즈니스 네트워크에 대한 완전한 가이드안내서

블록 체인 비즈니스 네트워크에 대한 완전한 가이드

토큰 화 소개웨비나

토큰 화 소개

금융 디지털 자산 및 DeFi의 미래웨비나

금융의 미래 : 디지털 자산 및 DeFi

엔터프라이즈 이더 리움이란?웨비나

엔터프라이즈 이더 리움이란??

중앙 은행과 화폐의 미래백지

중앙 은행과 화폐의 미래

상품 무역 금융을위한 Komgo 블록 체인케이스 스터드

Komgo : 상품 무역 금융을위한 블록 체인

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me