루프 장애 허용 편집하기

이동: 둘러보기, 검색

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

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
2번째 줄: 2번째 줄:
 
==개요==
 
==개요==
 
[[루프체인]](Loopchain)은 비잔틴 장애 허용을 지원하는 루프 장애 허용을 통해 분기가 없는 빠른 합의를 지원한다. 루프 장애 허용을 기반으로 신뢰 관계가 있는 복수의 [[노드]]를 하나의 그룹으로 묶어 좀 더 빠른 합의를 이루어 낼 수 있으며 이러한 그룹 및 노드에 투표권 수를 자유롭게 설정할 수 있어 다양한 합의 체계 구축이 가능하다. 비잔틴 장애 허용 계열 합의 알고리즘을 사용하는 루프 장애 허용 합의 알고리즘은 [[블록]]을 생성하고 전파하는 [[리더노드]]와 생성한 블록의 내용을 검증하여 블록의 유효성을 투표하는 [[검증노드]]로 구성된다.
 
[[루프체인]](Loopchain)은 비잔틴 장애 허용을 지원하는 루프 장애 허용을 통해 분기가 없는 빠른 합의를 지원한다. 루프 장애 허용을 기반으로 신뢰 관계가 있는 복수의 [[노드]]를 하나의 그룹으로 묶어 좀 더 빠른 합의를 이루어 낼 수 있으며 이러한 그룹 및 노드에 투표권 수를 자유롭게 설정할 수 있어 다양한 합의 체계 구축이 가능하다. 비잔틴 장애 허용 계열 합의 알고리즘을 사용하는 루프 장애 허용 합의 알고리즘은 [[블록]]을 생성하고 전파하는 [[리더노드]]와 생성한 블록의 내용을 검증하여 블록의 유효성을 투표하는 [[검증노드]]로 구성된다.
 
+
==메시지 데이터 구조==
==특징==
+
다른 블록체인처럼 현재 블록의 단방향 해시값을 저장하여 해당 블록이 위변조되었는지 감지할 수 있게 하였으며 이전 블록 해시 데이터를 통해 해시 연결성을 보장한다. 그 밖에 블록 높이(블록 순번), 블록 생성 시간, [[트랜잭션]] [[머클트리]]와 같은 기존 블록체인에 들어가는 데이터들이 포함된다. 구성하는 블록체인에 따라 블록체인 위에서 돌아가는 서비스의 상태를 저장하기 위한 [[머클 패트리샤 트리]] 혹은 [[IAVL+ 트리]] 등의 상태 머신 저장을 위한 자료구조를 추가할 수 있다. 루프 장애 허용을 구현한 블록체인의 블록은 일반적인 블록체인 [[네트워크]]에 포함되는 [[데이터]] 외에 이전 블록에 대한 투표 결과를 포함한다. LFT 합의 알고리즘은 각 검증노드가 투표 데이터를 다른 모든 노드에 전송하기 때문에 각 검증노드는 이 단계에서 정족수 이상의 투표를 받으면 각 검증노드가 해당 블록을 자신의 블록체인에 추가할 수 있다. 하지만 이때 네트워크의 정족수 이상의 투표를 받지 못하는 경우가 생길 수 있는데 이러한 노드의 이전 블록을 자신의 블록체인에 추가할 수 있게 하기 위해서 이후 블록에 이전 블록의 투표 데이터를 추가하여 전송한다. 또한, [[허가형 블록체인]]의 경우 해당 블록을 검증한 사람에 대한 증거가 블록체인에 남아있는 것이 중요하기 때문에 해당 블록에 대한 투표 증거를 남기는 역할도 하게 된다.
===데이터 구조===
+
==동작 방식==
블록체인 네트워크를 구성하는 리더 노드와 검증 노드는 메시지를 전송할 수 있다. 루프 장애 허용 합의 알고리즘을 사용하는 블록체인의 구조는 다른 블록체인처럼 현재 블록의 단방향 해시값을 저장하여 해당 블록이 위변조되었는지 감지할 수 있게 하였으며 이전 블록 해시 데이터를 통해 해시 연결성을 보장한다. 그 밖에 블록 높이(블록 순번), 블록 생성 시간, [[트랜잭션]] [[머클트리]]와 같은 기존 블록체인에 들어가는 데이터들이 포함된다. 구성하는 블록체인에 따라 블록체인 위에서 돌아가는 서비스의 상태를 저장하기 위한 [[머클 패트리샤 트리]] 혹은 [[IAVL+ 트리]] 등의 상태 머신 저장을 위한 자료구조를 추가할 수 있다. 루프 장애 허용을 구현한 블록체인의 블록은 일반적인 블록체인 [[네트워크]]에 포함되는 [[데이터]] 외에 이전 블록에 대한 투표 결과를 포함한다. LFT 합의 알고리즘은 각 검증노드가 투표 데이터를 다른 모든 노드에 전송하기 때문에 각 검증노드는 이 단계에서 정족수 이상의 투표를 받으면 각 검증노드가 해당 블록을 자신의 블록체인에 추가할 수 있다. 하지만 이때 네트워크의 정족수 이상의 투표를 받지 못하는 경우가 생길 수 있는데 이러한 노드의 이전 블록을 자신의 블록체인에 추가할 수 있게 하기 위해서 이후 블록에 이전 블록의 투표 데이터를 추가하여 전송한다. 또한, [[허가형 블록체인]]의 경우 해당 블록을 검증한 사람에 대한 증거가 블록체인에 남아있는 것이 중요하기 때문에 해당 블록에 대한 투표 증거를 남기는 역할도 하게 된다.
 
===동작 방식===
 
 
합의가 시작되면 검증노드들은 리더노드에 처리하기 원하는 트랜잭션을 전송한다. 리더노드는 수집한 [[트랜잭션]]을 이용하여 블록을 생성하고 자신의 서명과 함께 다른 모든 검증노드에 전송한다. 각 검증노드들은 블록을 받으면 현 리더가 블록을 생성했는지 확인하고, 블록의 높이와 이전 블록 해시가 올바른지 확인, 블록의 메시지가 올바른지 확인한다. 검증노드는 검증 결과에 따라 투표 메시지를 모든 노드들에게 보낸다. 각 노드가 정족수 이상의 투표를 받게 되면 해당 높이의 블록을 자신의 블록체인에 추가할 수 있다.
 
합의가 시작되면 검증노드들은 리더노드에 처리하기 원하는 트랜잭션을 전송한다. 리더노드는 수집한 [[트랜잭션]]을 이용하여 블록을 생성하고 자신의 서명과 함께 다른 모든 검증노드에 전송한다. 각 검증노드들은 블록을 받으면 현 리더가 블록을 생성했는지 확인하고, 블록의 높이와 이전 블록 해시가 올바른지 확인, 블록의 메시지가 올바른지 확인한다. 검증노드는 검증 결과에 따라 투표 메시지를 모든 노드들에게 보낸다. 각 노드가 정족수 이상의 투표를 받게 되면 해당 높이의 블록을 자신의 블록체인에 추가할 수 있다.
 
==활용==
 
==활용==

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

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