간단한 비잔틴 장애 허용 편집하기

이동: 둘러보기, 검색

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

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
'''간단한 비잔틴 장애 허용'''(SBFT; Simplified Byzantine Fault Tolerance)이란 더 나은 확장성과 최상의 대기 시간을 위해 [[프랙티컬 비잔틴 장애 허용]](PBFT)을 기반<ref> Ittai Abraham, 〈[https://ittaiab.github.io/2019-06-23-what-is-the-difference-between/?utm_campaign=Cosmology&utm_medium=email&utm_source=Revue%20newsletter What is the difference between PBFT, Tendermint, SBFT and HotStuff ?]〉, 《개인블로그》, 2019-06-23</ref>으로 하는 [[비잔틴 장애 허용]](BFT) [[시스템]]으로 확장성과 분산성의 과제를 해결하는 새로운 비잔틴 내결함성 [[알고리즘]]을 구현한다. 20개 미만의 복제본을 중심으로 중앙집중화된 경우에만 잘 수행되었던 많은 이전 BFT 시스템과 달리, SBFT는 분산에 최적화되어 있으며, 100개 이상의 활성 복제본을 쉽게 처리할 수 있다. SBFT는 [[이더리움]](ethereum)의 [[EVM]] 바이트 코드를 기반으로 한 스마트 계약 실행 환경을 제공한다.
+
'''간단한 비잔틴 장애 허용'''(SBFT; Simplified Byzantine Fault Tolerance)이란 더 나은 확장성과 최상의 대기 시간을 위해 프랙티컬 비잔틴 장애 허용(PBFT)을 기반으로 하는 비잔틴 장애 허용(BFT) 시스템으로 확장성과 분산성의 과제를 해결하는 새로운 비잔틴 내결함성 알고리즘을 구현한다. 20개 미만의 복제본을 중심으로 중앙집중화된 경우에만 잘 수행되었던 많은 이전 BFT 시스템과 달리, SBFT는 분산에 최적화되어 있으며, 100개 이상의 활성 복제본을 쉽게 처리할 수 있다. SBFT는 이더리움(ethereum)의 EVM 바이트 코드를 기반으로 한 스마트 계약 실행 환경을 제공한다.
  
 
==개요==
 
==개요==
간단한 비잔틴 장애 허용은 이전의 많은 실용적인 알고리즘의 기술을 활용한다. 이것은 공통 모드에서의 선형 복잡성을 가지고 있으며 클라이언트 확인을 위해 단 하나의 메시지만 필요로 하는 실용적인 알고리즘이다.<ref>Yevhen Leonchyk, 〈[https://github.com/LabMazurokCom/Blockchain/wiki/SBFT SBFT]〉, 《깃허브》, 2018-05-31</ref> SBFT 합의에서 결함 있는 [[노드]] 수에 따라 특정 수의 노드가 [[블록]]을 수용해야 한다. 이러한 시스템은 최소한 (2f+1) 노드는 비즈니스 [[네트워크]]의 새 블록을 수용해야 한다. 여기서 f는 결함 있는 노드의 수이다. 이러한 의미에서 결함이 있는 것은 악성 노드일 수 있고, 작동하지 않는 노드일 수도 있다. 장점으로는 작업 증명보다 더 빠르며, 더 나은 확장성을 가지고 있다는 것이고, 단점으로는 중앙집권화의 경향이 강하다는 것이다.
+
간단한 비잔틴 장애 허용은 이전의 많은 실용적인 알고리즘의 기술을 활용한다. 이것은 공통 모드에서의 선형 복잡성을 가지고 있으며 클라이언트 확인을 위해 단 하나의 메시지만 필요로 하는 실용적인 알고리즘이다. SBFT 합의에서 결함 있는 노드 수에 따라 특정 수의 노드가 블록을 수용해야 한다. 이러한 시스템은 최소한 (2f+1) 노드는 비즈니스 네트워크의 새 블록을 수용해야 한다. 여기서 f는 결함 있는 노드의 수이다. 이러한 의미에서 결함이 있는 것은 악성 노드일 수 있고, 작동하지 않는 노드일 수도 있다. 장점으로는 작업 증명보다 더 빠르며, 더 나은 확장성을 가지고 있다는 것이고, 단점으로는 중앙집권화의 경향이 강하다는 것이다.  
  
 
==특징==
 
==특징==
8번째 줄: 8번째 줄:
  
 
*비동기 모드에서의 안전 : 주어진 시퀀스 번호에 대해 의사결정 블록을 실행하는 2개의 복제본이 동일한 의사결정 블록을 실행한다.
 
*비동기 모드에서의 안전 : 주어진 시퀀스 번호에 대해 의사결정 블록을 실행하는 2개의 복제본이 동일한 의사결정 블록을 실행한다.
*동기식 모드의 내성 : [[클라이언트]] 요청이 응답을 반환한다는 것을 의미한다.
+
*동기식 모드의 내성 : 클라이언트 요청이 응답을 반환한다는 것을 의미한다.
 
*공통 모드의 선형성 : 우리가 블록의 운영 횟수를 n으로 가정하고 또한 클라이언트 수를 n으로 가정하는 추상적 모델에서 연산을 커밋하기 위한 상각 비용은 일정한 크기의 메시지의 수라는 것을 의미한다.
 
*공통 모드의 선형성 : 우리가 블록의 운영 횟수를 n으로 가정하고 또한 클라이언트 수를 n으로 가정하는 추상적 모델에서 연산을 커밋하기 위한 상각 비용은 일정한 크기의 메시지의 수라는 것을 의미한다.
  
 
==기술==
 
==기술==
 
*'''일회용 주소''' : 사용자가 지갑에 있는 일부 자산을 받고 싶을 때마다 일회성 사용 주소가 할당된다. 모든 주소는 서로 다르기 때문에 다른 사용자가 트랜잭션을 가로챌 수 없다.
 
*'''일회용 주소''' : 사용자가 지갑에 있는 일부 자산을 받고 싶을 때마다 일회성 사용 주소가 할당된다. 모든 주소는 서로 다르기 때문에 다른 사용자가 트랜잭션을 가로챌 수 없다.
*'''제로 지식 증명'''(Zero Knowledge Proof) : [[제로 지식 증명]]은 거래의 모든 구성요소를 감추는 데 사용된다. 그러나 전체 네트워크는 여전히 무결성을 검증할 수 있다. 이것은 한 당사자가 다른 당사자에게 진위를 증명하는 제로 지식 증명의 도움으로 이루어진다. 이러한 방식으로 수신자와 발신자만이 거래의 구성 요소를 볼 수 있다.
+
*'''제로 지식 증명'''(Zero Knowledge Proof) : 제로 지식 증명은 거래의 모든 구성요소를 감추는 데 사용된다. 그러나 전체 네트워크는 여전히 무결성을 검증할 수 있다. 이것은 한 당사자가 다른 당사자에게 진위를 증명하는 제로 지식 증명의 도움으로 이루어진다. 이러한 방식으로 수신자와 발신자만이 거래의 구성 요소를 볼 수 있다.
 
*'''메타 데이터 암호화''' : 전환의 메타 데이터도 암호화해 추가 보안을 확보한다. 네트워크는 진위를 검증하기 위해 키를 사용할 수 있게 할 것이다. 하지만, 더 나은 보호를 위해 키는 2~3일마다 변경된다. 또한 모두 분리되어 데이터 네트워크에 다른 부분에 보관된다. 따라서 하나가 해킹되면 다른 키를 사용하여 더 고유한 키를 생성할 수 있다.   
 
*'''메타 데이터 암호화''' : 전환의 메타 데이터도 암호화해 추가 보안을 확보한다. 네트워크는 진위를 검증하기 위해 키를 사용할 수 있게 할 것이다. 하지만, 더 나은 보호를 위해 키는 2~3일마다 변경된다. 또한 모두 분리되어 데이터 네트워크에 다른 부분에 보관된다. 따라서 하나가 해킹되면 다른 키를 사용하여 더 고유한 키를 생성할 수 있다.   
  
23번째 줄: 23번째 줄:
 
#마지막으로 거래가 시작된다.
 
#마지막으로 거래가 시작된다.
  
이 시스템의 또 다른 기능은 여러 단계에서 도움을 주는 계정 관리자이다. 주요 목표는 모든 자산을 안전하게 저장하는 것이다. 계정 관리자는 모든 거래 데이터를 저장한다. 관리자는 다양한 유형의 사용자를 위해 모든 종류의 다국적 자산을 포함할 수 있다. 또한 계정 관리자를 이용하여 스마트 연락처를 구성할 수 있으며, 특정 요건이 충족되면 자금을 해제할 수 있다.<ref>  SAMMANTICS, 〈[http://sammantics.com/blog/2016/7/27/chain-1 Chain: Simplified Byzantine Fault Tolerance (SBFT)]〉, 《개인블로그》, 2016-08-16
+
이 시스템의 또 다른 기능은 여러 단계에서 도움을 주는 계정 관리자이다. 주요 목표는 모든 자산을 안전하게 저장하는 것이다. 계정 관리자는 모든 거래 데이터를 저장한다. 관리자는 다양한 유형의 사용자를 위해 모든 종류의 다국적 자산을 포함할 수 있다. 또한 계정 관리자를 이용하여 스마트 연락처를 구성할 수 있으며, 특정 요건이 충족되면 자금을 해제할 수 있다.
</ref>
 
 
 
==작동 원리==
 
블록 생성기는 한 번에 모든 트랜잭션을 수집하고 새로운 유형의 블록으로 함께 일괄 처리한 후 유효성을 검사한다. 간단히 말해서, 블록은 모든 트랜잭션을 수집하고 그에 따라 다른 블록으로 일괄처리한 다음 마지막으로 모든 트랜잭션을 함께 검증한다. 생성기는 모든 노드가 따르는 모든 규칙을 적용하여 모든 트랜잭션을 검증한다. 그 후, 블록 서명자는 이를 검증하고 고유한 서명을 추가한다. 그렇기 때문에 블록 및 키 중 하나라도 놓치면 거부된다.
 
  
 
==방법==
 
==방법==
34번째 줄: 30번째 줄:
 
*올바른 보기 변경 프로토콜을 사용하여 낙관론을 도출한다. SBFT는 모든 복제본이 결함이 없고 동기적일 때 실행에서 더 빠른 합의 경로를 허용한다.
 
*올바른 보기 변경 프로토콜을 사용하여 낙관론을 도출한다. SBFT는 모든 복제본이 결함이 없고 동기적일 때 실행에서 더 빠른 합의 경로를 허용한다.
 
*SBFT는 최신 암호화 기술을 활용한다. SBFT는 2048비트 RSA 서명에 버금가는 보안 기능을 갖춘 BLS(Boneh-Lynn-Shacham) 서명을 사용하지만 길이는 33바이트에 불과하다.
 
*SBFT는 최신 암호화 기술을 활용한다. SBFT는 2048비트 RSA 서명에 버금가는 보안 기능을 갖춘 BLS(Boneh-Lynn-Shacham) 서명을 사용하지만 길이는 33바이트에 불과하다.
 
==시스템 모델==
 
공격자가 f 비잔틴 노드까지 제어할 수 있고 네트워크의 어떤 메시지도 제한된 양만큼 지연시킬 수 있는 표준 비동기 BFT 시스템 모델을 가정한다. 적들이 f 비잔틴 노드까지 제어할 수 있을 때 시스템이 동기 모드라고 말하지만, 어떤 두 개의 비고장 노드들 사이의 메시지는 경계된 지연을 가지고 있다. 마지막으로, 우리는 시스템이 공통 모드라고 말한다. 적들이 충돌하거나 느리게 동작할 수 있는 c 노드들을 제어할 수 있을 때, 그리고 결함이 없는 두 노드 사이의 메시지는 경계된 지연을 가진다.
 
  
 
==확장성 평가==
 
==확장성 평가==
SBFT는 초당 70개 이상의 [[트랜잭션]] 속도로 실제 EVM 계약의 작업 부하를 200개 이상의 복제본으로 복제하고 최대 f = 64개의 악성 복제본을 견딜 수 있다. 실험에서 SBFT는 초당 50개 이상의 트랜잭션에서 실제 EVM 트랜잭션을 실행하면서 100개가 넘는 복제본에 의해 복제되고 최대 f = 32 악성 복제본을 견딜 수 있었다. 단일 지역에서 실행 중일 때 f = 64 오류를 견딜 수 있고 약 200개의 복제본을 사용하는 SBFT 배포는 20분 이내에 이러한 100만 트랜잭션을 완료하거나 초당 약 833개의 트랜잭션을 완료한다.
+
SBFT는 초당 70개 이상의 트랜잭션 속도로 실제 EVM 계약의 작업 부하를 200개 이상의 복제본으로 복제하고 최대 f = 64개의 악성 복제본을 견딜 수 있다. 실험에서 SBFT는 초당 50개 이상의 트랜잭션에서 실제 EVM 트랜잭션을 실행하면서 100개가 넘는 복제본에 의해 복제되고 최대 f = 32 악성 복제본을 견딜 수 있었다. 단일 지역에서 실행 중일 때 f = 64 오류를 견딜 수 있고 약 200개의 복제본을 사용하는 SBFT 배포는 20분 이내에 이러한 100만 트랜잭션을 완료하거나 초당 약 833개의 트랜잭션을 완료한다.
  
 
{{각주}}
 
{{각주}}
45번째 줄: 38번째 줄:
 
==참고자료==
 
==참고자료==
 
* 〈[https://research.vmware.com/publications/sbft-a-scalable-decentralized-trust-infrastructure-for-blockchains SBFT: a Scalable Decentralized Trust Infrastructure for Blockchains]〉, 《VMware Research》, 2018-04
 
* 〈[https://research.vmware.com/publications/sbft-a-scalable-decentralized-trust-infrastructure-for-blockchains SBFT: a Scalable Decentralized Trust Infrastructure for Blockchains]〉, 《VMware Research》, 2018-04
* Ittai Abraham, 〈[https://ittaiab.github.io/2019-06-23-what-is-the-difference-between/?utm_campaign=Cosmology&utm_medium=email&utm_source=Revue%20newsletter What is the difference between PBFT, Tendermint, SBFT and HotStuff ?]〉, 《개인블로그》, 2019-06-23
+
* Ittai Abraham, 〈[https://ittaiab.github.io/2019-06-23-what-is-the-difference-between/?utm_campaign=Cosmology&utm_medium=email&utm_source=Revue%20newsletter What is the difference between PBFT, Tendermint, SBFT and HotStuff ?]〉, 《깃허브》, 2019-06-23
 
* Yevhen Leonchyk, 〈[https://github.com/LabMazurokCom/Blockchain/wiki/SBFT SBFT]〉, 《깃허브》, 2018-05-31
 
* Yevhen Leonchyk, 〈[https://github.com/LabMazurokCom/Blockchain/wiki/SBFT SBFT]〉, 《깃허브》, 2018-05-31
 
*  HASIB ANWAR, 〈[https://101blockchains.com/consensus-algorithms-blockchain/ Consensus Algorithms: The Root Of The Blockchain Technology]〉, 《101 Blockchains》, 2018-08-25
 
*  HASIB ANWAR, 〈[https://101blockchains.com/consensus-algorithms-blockchain/ Consensus Algorithms: The Root Of The Blockchain Technology]〉, 《101 Blockchains》, 2018-08-25

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

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