"루프 장애 허용"의 두 판 사이의 차이
(→링크코인) |
|||
(같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
2번째 줄: | 2번째 줄: | ||
==개요== | ==개요== | ||
[[루프체인]](Loopchain)은 비잔틴 장애 허용을 지원하는 루프 장애 허용을 통해 분기가 없는 빠른 합의를 지원한다. 루프 장애 허용을 기반으로 신뢰 관계가 있는 복수의 [[노드]]를 하나의 그룹으로 묶어 좀 더 빠른 합의를 이루어 낼 수 있으며 이러한 그룹 및 노드에 투표권 수를 자유롭게 설정할 수 있어 다양한 합의 체계 구축이 가능하다. 비잔틴 장애 허용 계열 합의 알고리즘을 사용하는 루프 장애 허용 합의 알고리즘은 [[블록]]을 생성하고 전파하는 [[리더노드]]와 생성한 블록의 내용을 검증하여 블록의 유효성을 투표하는 [[검증노드]]로 구성된다. | [[루프체인]](Loopchain)은 비잔틴 장애 허용을 지원하는 루프 장애 허용을 통해 분기가 없는 빠른 합의를 지원한다. 루프 장애 허용을 기반으로 신뢰 관계가 있는 복수의 [[노드]]를 하나의 그룹으로 묶어 좀 더 빠른 합의를 이루어 낼 수 있으며 이러한 그룹 및 노드에 투표권 수를 자유롭게 설정할 수 있어 다양한 합의 체계 구축이 가능하다. 비잔틴 장애 허용 계열 합의 알고리즘을 사용하는 루프 장애 허용 합의 알고리즘은 [[블록]]을 생성하고 전파하는 [[리더노드]]와 생성한 블록의 내용을 검증하여 블록의 유효성을 투표하는 [[검증노드]]로 구성된다. | ||
− | == | + | |
− | 다른 블록체인처럼 현재 블록의 단방향 해시값을 저장하여 해당 블록이 위변조되었는지 감지할 수 있게 하였으며 이전 블록 해시 데이터를 통해 해시 연결성을 보장한다. 그 밖에 블록 높이(블록 순번), 블록 생성 시간, [[트랜잭션]] [[머클트리]]와 같은 기존 블록체인에 들어가는 데이터들이 포함된다. 구성하는 블록체인에 따라 블록체인 위에서 돌아가는 서비스의 상태를 저장하기 위한 [[머클 패트리샤 트리]] 혹은 [[IAVL+ 트리]] 등의 상태 머신 저장을 위한 자료구조를 추가할 수 있다. 루프 장애 허용을 구현한 블록체인의 블록은 일반적인 블록체인 [[네트워크]]에 포함되는 [[데이터]] 외에 이전 블록에 대한 투표 결과를 포함한다. LFT 합의 알고리즘은 각 검증노드가 투표 데이터를 다른 모든 노드에 전송하기 때문에 각 검증노드는 이 단계에서 정족수 이상의 투표를 받으면 각 검증노드가 해당 블록을 자신의 블록체인에 추가할 수 있다. 하지만 이때 네트워크의 정족수 이상의 투표를 받지 못하는 경우가 생길 수 있는데 이러한 노드의 이전 블록을 자신의 블록체인에 추가할 수 있게 하기 위해서 이후 블록에 이전 블록의 투표 데이터를 추가하여 전송한다. 또한, [[허가형 블록체인]]의 경우 해당 블록을 검증한 사람에 대한 증거가 블록체인에 남아있는 것이 중요하기 때문에 해당 블록에 대한 투표 증거를 남기는 역할도 하게 된다. | + | ==특징== |
− | ==동작 방식== | + | ===데이터 구조=== |
+ | 블록체인 네트워크를 구성하는 리더 노드와 검증 노드는 메시지를 전송할 수 있다. 루프 장애 허용 합의 알고리즘을 사용하는 블록체인의 구조는 다른 블록체인처럼 현재 블록의 단방향 해시값을 저장하여 해당 블록이 위변조되었는지 감지할 수 있게 하였으며 이전 블록 해시 데이터를 통해 해시 연결성을 보장한다. 그 밖에 블록 높이(블록 순번), 블록 생성 시간, [[트랜잭션]] [[머클트리]]와 같은 기존 블록체인에 들어가는 데이터들이 포함된다. 구성하는 블록체인에 따라 블록체인 위에서 돌아가는 서비스의 상태를 저장하기 위한 [[머클 패트리샤 트리]] 혹은 [[IAVL+ 트리]] 등의 상태 머신 저장을 위한 자료구조를 추가할 수 있다. 루프 장애 허용을 구현한 블록체인의 블록은 일반적인 블록체인 [[네트워크]]에 포함되는 [[데이터]] 외에 이전 블록에 대한 투표 결과를 포함한다. LFT 합의 알고리즘은 각 검증노드가 투표 데이터를 다른 모든 노드에 전송하기 때문에 각 검증노드는 이 단계에서 정족수 이상의 투표를 받으면 각 검증노드가 해당 블록을 자신의 블록체인에 추가할 수 있다. 하지만 이때 네트워크의 정족수 이상의 투표를 받지 못하는 경우가 생길 수 있는데 이러한 노드의 이전 블록을 자신의 블록체인에 추가할 수 있게 하기 위해서 이후 블록에 이전 블록의 투표 데이터를 추가하여 전송한다. 또한, [[허가형 블록체인]]의 경우 해당 블록을 검증한 사람에 대한 증거가 블록체인에 남아있는 것이 중요하기 때문에 해당 블록에 대한 투표 증거를 남기는 역할도 하게 된다. | ||
+ | ===동작 방식=== | ||
합의가 시작되면 검증노드들은 리더노드에 처리하기 원하는 트랜잭션을 전송한다. 리더노드는 수집한 [[트랜잭션]]을 이용하여 블록을 생성하고 자신의 서명과 함께 다른 모든 검증노드에 전송한다. 각 검증노드들은 블록을 받으면 현 리더가 블록을 생성했는지 확인하고, 블록의 높이와 이전 블록 해시가 올바른지 확인, 블록의 메시지가 올바른지 확인한다. 검증노드는 검증 결과에 따라 투표 메시지를 모든 노드들에게 보낸다. 각 노드가 정족수 이상의 투표를 받게 되면 해당 높이의 블록을 자신의 블록체인에 추가할 수 있다. | 합의가 시작되면 검증노드들은 리더노드에 처리하기 원하는 트랜잭션을 전송한다. 리더노드는 수집한 [[트랜잭션]]을 이용하여 블록을 생성하고 자신의 서명과 함께 다른 모든 검증노드에 전송한다. 각 검증노드들은 블록을 받으면 현 리더가 블록을 생성했는지 확인하고, 블록의 높이와 이전 블록 해시가 올바른지 확인, 블록의 메시지가 올바른지 확인한다. 검증노드는 검증 결과에 따라 투표 메시지를 모든 노드들에게 보낸다. 각 노드가 정족수 이상의 투표를 받게 되면 해당 높이의 블록을 자신의 블록체인에 추가할 수 있다. | ||
==활용== | ==활용== | ||
22번째 줄: | 24번째 줄: | ||
==같이 보기== | ==같이 보기== | ||
− | {{합의 알고리즘| | + | * [[합의 알고리즘]] |
+ | * [[비잔틴 장애 허용]] | ||
+ | * [[아이콘]] | ||
+ | * [[링크코인]] | ||
+ | {{합의 알고리즘|검토 필요}} |
2019년 10월 18일 (금) 17:07 기준 최신판
루프 장애 허용(LFT; Loop Fault Tolerance)은 향상된 비잔틴 장애 허용(Byzantine Fault Tolerance)의 32비트 기반 알고리즘으로, 기존 분산 환경에서의 장애 허용 방법으로 많이 사용되는 상태 머신 복제 알고리즘 중 하나인 Raft32 알고리즘을 비잔틴 노드의 공격에도 방어할 수 있고 블록체인 네트워크 특성에 최적화되도록 개선한 합의 알고리즘이다.[1]
개요[편집]
루프체인(Loopchain)은 비잔틴 장애 허용을 지원하는 루프 장애 허용을 통해 분기가 없는 빠른 합의를 지원한다. 루프 장애 허용을 기반으로 신뢰 관계가 있는 복수의 노드를 하나의 그룹으로 묶어 좀 더 빠른 합의를 이루어 낼 수 있으며 이러한 그룹 및 노드에 투표권 수를 자유롭게 설정할 수 있어 다양한 합의 체계 구축이 가능하다. 비잔틴 장애 허용 계열 합의 알고리즘을 사용하는 루프 장애 허용 합의 알고리즘은 블록을 생성하고 전파하는 리더노드와 생성한 블록의 내용을 검증하여 블록의 유효성을 투표하는 검증노드로 구성된다.
특징[편집]
데이터 구조[편집]
블록체인 네트워크를 구성하는 리더 노드와 검증 노드는 메시지를 전송할 수 있다. 루프 장애 허용 합의 알고리즘을 사용하는 블록체인의 구조는 다른 블록체인처럼 현재 블록의 단방향 해시값을 저장하여 해당 블록이 위변조되었는지 감지할 수 있게 하였으며 이전 블록 해시 데이터를 통해 해시 연결성을 보장한다. 그 밖에 블록 높이(블록 순번), 블록 생성 시간, 트랜잭션 머클트리와 같은 기존 블록체인에 들어가는 데이터들이 포함된다. 구성하는 블록체인에 따라 블록체인 위에서 돌아가는 서비스의 상태를 저장하기 위한 머클 패트리샤 트리 혹은 IAVL+ 트리 등의 상태 머신 저장을 위한 자료구조를 추가할 수 있다. 루프 장애 허용을 구현한 블록체인의 블록은 일반적인 블록체인 네트워크에 포함되는 데이터 외에 이전 블록에 대한 투표 결과를 포함한다. LFT 합의 알고리즘은 각 검증노드가 투표 데이터를 다른 모든 노드에 전송하기 때문에 각 검증노드는 이 단계에서 정족수 이상의 투표를 받으면 각 검증노드가 해당 블록을 자신의 블록체인에 추가할 수 있다. 하지만 이때 네트워크의 정족수 이상의 투표를 받지 못하는 경우가 생길 수 있는데 이러한 노드의 이전 블록을 자신의 블록체인에 추가할 수 있게 하기 위해서 이후 블록에 이전 블록의 투표 데이터를 추가하여 전송한다. 또한, 허가형 블록체인의 경우 해당 블록을 검증한 사람에 대한 증거가 블록체인에 남아있는 것이 중요하기 때문에 해당 블록에 대한 투표 증거를 남기는 역할도 하게 된다.
동작 방식[편집]
합의가 시작되면 검증노드들은 리더노드에 처리하기 원하는 트랜잭션을 전송한다. 리더노드는 수집한 트랜잭션을 이용하여 블록을 생성하고 자신의 서명과 함께 다른 모든 검증노드에 전송한다. 각 검증노드들은 블록을 받으면 현 리더가 블록을 생성했는지 확인하고, 블록의 높이와 이전 블록 해시가 올바른지 확인, 블록의 메시지가 올바른지 확인한다. 검증노드는 검증 결과에 따라 투표 메시지를 모든 노드들에게 보낸다. 각 노드가 정족수 이상의 투표를 받게 되면 해당 높이의 블록을 자신의 블록체인에 추가할 수 있다.
활용[편집]
아이콘[편집]
아이콘(ICON)은 서로 다른 블록체인을 연결하는 암호화폐이다. 한국의 이더리움이라고 불린다. ㈜아이콘루프(대표이사 김종협)가 기술 개발에 참여했다. 아이콘은 인터체인 알고리즘을 사용한 대표적인 암호화폐이다. 인터체인(interchain)을 사용하면 A라는 암호화폐로만 구매할 수 있는 제품이나 서비스를 인터체인으로 연결된 B라는 다른 암호화폐로도 구매할 수 있다. 인터체인에 속하는 유사한 암호화폐로 아이온(AION)이 있다. 아이콘의 화폐 단위는 ICX이다. 아이콘의 루프체인 기술은 루프 장애 허용 합의 알고리즘을 기반으로 스마트 계약 시스템을 지원한다. 아이콘에 대해 자세히 보기
링크코인[편집]
링크코인(Linkcoin)은 라인 생태계에서 사용할 수 있는 기축 암호화폐이다. 라인에서 제공되는 유형 또는 무형의 상품 및 서비스에 대해 비용을 지불하는 데 사용된다. 링크코인은 라인에서 개발하고 있는 사용자 보상 기반 콘텐츠 및 분산 애플리케이션 활동을 통해 인센티브로 지급받을 수 있다. 현재 미래 예측, 지식 공유, 상품 리뷰, 식당 리뷰, 여행지 리뷰 등 디앱 5종을 개발하고 있다. 라인 자회사 라인테크플러스가 운영하는 비트박스 거래소에 독점 상장했다. 링크코인은 합의 알고리즘으로 루트 장애 허용을 사용하고 있다.[2] 링크코인에 대해 자세히 보기
각주[편집]
- ↑ Matthew Minseok Kim, 〈ICON에 대해서 알아보자〉, 《미디엄》, 2018-01-27
- ↑ 비트플라이, 〈네이버 라인에서 만든 링크 코인(LINK) 정보〉, 《네이버 블로그》, 2018-09-20
참고자료[편집]
- Matthew Minseok Kim, 〈ICON에 대해서 알아보자〉, 《미디엄》, 2018-01-27
- theloop, 〈LFT:Byzantine Fault Tolerance를 지원하는 경량화된 고성능 합의 알고리즘〉, 《LFT 백서》, 2017-06-23
- jruit, 〈링크코인(LINK)에 대해 알아보자〉, 《스팀잇》, 2018-10-18
- 비트플라이, 〈네이버 라인에서 만든 링크 코인(LINK) 정보〉, 《네이버 블로그》, 2018-09-20