PBFT(Practical Byzantine Fault Tolerance)는 내결함성(fault tolerance)을 위해 분산 시스템에서 사용되는 합의 알고리즘이다.
이는 고장이나 오류가 발생한 경우에도 시스템이 계속 작동할 수 있다는 것을 의미한다..
네트워크의 일부 노드가 시스템을 중단시키기 위해 악의적으로 동작하거나 "비잔틴" 상황을 처리하도록 설계되었다.
PBFT는 네트워크의 각 노드가 시스템 상태의 복제본을 유지하도록 하고, 각 노드가 서로 통신하여 시스템의 현재 상태에 대한 합의를 도출하도록 함으로써 작동한다.
PBFT 알고리즘의 기본 흐름은 다음과 같다
1. 클라이언트는 기본 노드로 알려진 요청을 전송하여 블록체인에 새 트랜잭션을 추가하는 등의 작업을 수행한다.
2. 기본은 복제본으로 알려진 다른 모든 노드에 요청을 알린다.
3. 각 복제본은 요청을 확인하고 요청에 동의할지 여부를 나타내는 메시지(사전 준비 메시지)를 기본값으로 발송한다.
4. 복제본의 3분의 2 이상이 동의할 경우, 기본값은 모든 복제본에 준비 메시지를 발송한다.
5. 그런 다음 각 복제본은 요청에 커밋되었음을 나타내는 커밋 메시지를 기본으로 발송한다.
6. 그런 다음 기본 서버는 요청이 처리되었음을 나타내는 응답을 클라이언트에 보낸다.
PBFT의 장점 중 하나는 기본 노드가 초당 많은 수의 요청을 처리할 수 있기 때문에 비교적 빠르고 효율적인 합의를 가능하다는 것이다.
또한, PBFT는 악의적인 노드를 처리하도록 설계되었기 때문에 높은 수준의 보안 및 내결함성을 제공할 수 있다.
그러나 단점 중 하나는 시스템이 기본 노드에 크게 의존하기 때문에 일부 다른 합의 알고리즘보다 덜 분산될 수 있다는 것이다.
'Technology > 블록체인 용어' 카테고리의 다른 글
검열 저항(Censorship Resistance)란 무엇인가? (0) | 2023.01.27 |
---|---|
비잔틴 장군 문제(Byzantine Generals Problem)란 무엇인가? (0) | 2023.01.27 |
프라이빗 블록체인(Private Blockchain)이란 무엇인가? (0) | 2023.01.27 |
퍼블릭 블록체인(Public Blockchain)이란 무엇인가? (0) | 2023.01.27 |
온체인 데이터(On-Chain Data)란 무엇인가? (0) | 2023.01.27 |