프랙티컬 비잔틴 장애 허용 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
2번째 줄: 2번째 줄:
  
 
==비잔틴 장군문제==
 
==비잔틴 장군문제==
[[PBFT]]를 이해하기 위해서는 [[비잔틴 장군 문제]]를 먼저 알아야 한다. 비잔틴 군대는 장군이라는 대표자들간 합의를 통해 전술을 최종 결정한다. 만약 같은 곳을 동시에 공격한다면 충분히 이길 수 있는 상황이지만, 일부가 공격을 하지 않으면 지는 상황에 있다. 따라서 장군들이 모두 동일한 시간에 공격한다고 합의를 해야 하는 상황인데 이들이 한곳에 모이기는 어렵다. 따라서 장군들간 전령을 통해 합의를 해야지만 이 과정에서 적국의 첩자가 메시지가 변경할 수도 있다. 따라서 이들 첩자들의 악의적 방해에도 합의가 제대로 될 방법이 필요하다. 블록체인과 비잔틴 장군 문제는 아주 밀접한 관련을 갖는다. [[블록체인]] [[네트워크]] 상에 새로운 블록들이 생성되는 과정에서 기존의 악의적인 공격으로 잘못된 [[블록]]이 생성될 수 있다. 이는 블록 안의 트랜잭션이 변경되어 재산적 피해로도 이어질 수 있다. 따라서 이를 막기 위한 합의 알고리즘이 필요하다. 간단하게 생각하면 모든 노드가 YES! 하면 되는거 아니야? 싶지만 그렇게 되면 악의적 공격이 하나라도 들어왔을 때 블록체인 네트워크는 마비된다. 따라서 어느 정도의 노드간 상태 비일치는 허용해주는 방법으로 [[합의 알고리즘]]이 만들어져야 한다.<ref name="PBFT 블로그">tyami 〈[http://tyami.net/221268715771 PBFT(Practical Byzantine Fault Tolerance) 공부해보자]〉, 《네이버 블로그》,  2018-05-05</ref>
+
[[PBFT]]를 이해하기 위해서는 [[비잔틴 장군 문제]]를 먼저 알아야 한다. 비잔틴 군대는 장군이라는 대표자들간 합의를 통해 전술을 최종 결정한다. 만약 같은 곳을 동시에 공격한다면 충분히 이길 수 있는 상황이지만, 일부가 공격을 하지 않으면 지는 상황에 있다. 따라서 장군들이 모두 동일한 시간에 공격한다고 합의를 해야 하는 상광인데 이들이 한곳에 모이기는 어렵다. 따라서 장군들간 전령을 통해 합의를 해야지만 이 과정에서 적국의 첩자가 메시지가 변경할 수도 있다. 따라서 이들 첩자들의 악의적 방해에도 합의가 제대로 될 방법이 필요하다. 블록체인과 비잔틴 장군 문제는 아주 밀접한 관련을 갖는다. [[블록체인]] [[네트워크]] 상에 새로운 블록들이 생성되는 과정에서 기존의 악의적인 공격으로 잘못된 [[블록]]이 생성될 수 있다. 이는 블록 안의 트랜잭션이 변경되어 재산적 피해로도 이어질 수 있다. 따라서 이를 막기 위한 합의 알고리즘이 필요하다. 간단하게 생각하면 모든 노드가 YES! 하면 되는거 아니야? 싶지만 그렇게 되면 악의적 공격이 하나라도 들어왔을 때 블록체인 네트워크는 마비된다. 따라서 어느 정도의 노드간 상태 비일치는 허용해주는 방법으로 [[합의 알고리즘]]이 만들어져야 한다.<ref name="PBFT 블로그">tyami 〈[http://tyami.net/221268715771 PBFT(Practical Byzantine Fault Tolerance) 공부해보자]〉, 《네이버 블로그》,  2018-05-05</ref>
  
 
==비잔틴 장애 허용==
 
==비잔틴 장애 허용==
8번째 줄: 8번째 줄:
  
 
==프랙티컬 비잔틴 장애 허용==
 
==프랙티컬 비잔틴 장애 허용==
PBFT는 1999년 제안되었다. PBFT는 PoW와 PoS의 단점인 파이널리티의 불확실성과 성능 문제를 해결한 것이다. [[블록체인]] 기반 기술에서 많이 채택되고 있는 상황이다. pBFT를 사용하는 코인은 [[질리카]], [[네오]], [[하이퍼레저]], [[R3]] 등에서 사용하는 [[합의 알고리즘]]으로서 Practical Byzantine Fault Tolerance (PBFT)는 프랙티컬 비잔틴 장애허용이라는 뜻이다. 프랙티컬 비잔틴 장애허용은 분산컴퓨팅의 한 이론으로 BFT를 속도와 실용적인 측면에서 개선한 형태다. 이 방식은 [[블록체인]] [[시스템]]에 있어서 약속된 행동을 하지 않고 고의로 잘못된 정보를 전달하는 [[비잔틴 노드]]가 존재할 수 있는 비동기 시스템일 때 모든 [[노드]]가 성공적인 합의를 이룰 수 있도록 개발된 증명 방식이라고 볼 수 있다. pBFT에 대해서 좀 더 자세히 알아보자면, pBFT는 네트워크의 모든 참여자를 미리 알고 있어야 한다. 먼저 참가자 1명이 리더가 되고 자신을 포함한 모든 참가자에게 요청을 보낸다. 그 요청에 대한 결과를 집계한 뒤 다수의 값을 사용해 블록을 확정한다. 부정한 노드 수를 n개라고 하면 노드수는 3n+1개여야 하며, 확정에는 n+1개 이상의 노드가 필요하다. pBFT는 [[비동기 네트워크]]에서 배신자 노드 f개 있을 때, 총 노드 갯수가 3f+1개 이상이면 해당 네트워크에서 이루어지는 합의는 신뢰할 수 있다는 것을 수학적으로 증명한 [[알고리즘]]이다. pBFT방식은 2/3 이상의 노드만 합의가 될 수 있게 개량한 버전이라고 볼 수 있다. pBFT는 2/3 이상의 노드가 합의하면 검증되기 때문에 속도가 향상된다고 볼 수 있으며 노드수가 적어져 보안에 유리하다는 점이 장점이라고 볼 수 있다.<ref>BCEX KOREA 〈[https://blog.naver.com/bcexkorea/221438799103 PBFT와 BFT란? ]〉, 《네이버 블로그》,  2019-01-11</ref>
+
PBFT는 1999년 제안되었다. pBFT는 PoW와 PoS의 단점인 파이널리티의 불확실성과 성능 문제를 해결한 것이다. [[블록체인]] 기반 기술에서 많이 채택되고 있는 상황이다. pBFT를 사용하는 코인은 [[질리카]], [[네오]], [[하이퍼레저]], [[R3]] 등에서 사용하는 [[합의 알고리즘]]으로서 pBFT는 Practical Byzantine Fault Tolerance (pBFT)는 프랙티컬 비잔틴 장애허용이라는 뜻이다. 프랙티컬 비잔틴 장애허용은 분산컴퓨팅의 한 이론으로 BFT를 속도와 실용적인 측면에서 개선한 형태다. 이 방식은 [[블록체인]] [[시스템]]에 있어서 약속된 행동을 하지 않고 고의로 잘못된 정보를 전달하는 [[비잔틴 노드]]가 존재할 수 있는 비동기 시스템일 때 모든 [[노드]]가 성공적인 합의를 이룰 수 있도록 개발된 증명 방식이라고 볼 수 있다. pBFT에 대해서 좀 더 자세히 알아보자면, pBFT는 네트워크의 모든 참여자를 미리 알고 있어야 한다. 먼저 참가자 1명이 리더가 되고 자신을 포함한 모든 참가자에게 요청을 보낸다. 그 요청에 대한 결과를 집계한 뒤 다수의 값을 사용해 블록을 확정한다. 부정한 노드 수를 n개라고 하면 노드수는 3n+1개여야 하며, 확정에는 n+1개 이상의 노드가 필요하다. pBFT는 [[비동기 네트워크]]에서 배신자 노드 f개 있을 때, 총 노드 갯수가 3f+1개 이상이면 해당 네트워크에서 이루어지는 합의는 신뢰할 수 있다는 것을 수학적으로 증명한 [[알고리즘]]이다. pBFT방식은 2/3 이상의 노드만 합의가 될 수 있게 개량한 버전이라고 볼 수 있다. pBFT는 2/3 이상의 노드가 합의하면 검증되기 때문에 속도가 향상된다고 볼 수 있으며 노드수가 적어져 보안에 유리하다는 점이 장점이라고 볼 수 있다.<ref>BCEX KOREA 〈[https://blog.naver.com/bcexkorea/221438799103 PBFT와 BFT란? ]〉, 《네이버 블로그》,  2019-01-11</ref>
  
 
==알고리즘==  
 
==알고리즘==  
29번째 줄: 29번째 줄:
 
* [[ICT]]
 
* [[ICT]]
  
{{합의 알고리즘|토막글}}
+
{{알고리즘|토막글}}
 +
 
 +
[[분류:합의 알고리즘]]

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)