"우로보로스 비잔틴 장애 허용"의 두 판 사이의 차이
(→구현 언어) |
|||
5번째 줄: | 5번째 줄: | ||
==구현 언어== | ==구현 언어== | ||
− | *'''하스켈''' : | + | *'''하스켈''' : 순수하고 단순한 함수형 프로그래밍 언어로 함수형 프로그래밍 분야의 학자들이 부작용의 해악에 대한 아이디어를 집어넣어 설계해 20년 이상 개발해왔다. 하스켈은 함수형 프로그래밍의 이상에 대한 순수한 표현 중 하나로 I/O 채널을 다루는 데 있어 신중한 메커니즘을 갖추고 있으며, 또한 불가피한 부작용도 갖고 있다. 그러나 그 부분을 제외한 나머지 부분은 완벽하게 기능한다. 커뮤니티는 매울 활발하여 십여 개의 하스켈 변형 버전이 나와 있다. 그 중에서는 독립형도 있고 자바 도는 파이썬과 같은 주류 프로젝트와 통합되는 형태도 있다. 대부분의 이름은 하스켈 연구가 활발하게 이루어지는 스코틀랜드 또는 하스켈에서 구현되는 아이디어의 지적 뿌리라고 할 수 철학자/논리학자와 관련된다. 데이터 구조가 복잡하고 많은 형식이 사용된다면 하스켈을 통해 효율적인 작업이 가능할 것이다. |
*'''러스트''' : | *'''러스트''' : | ||
{{각주}} | {{각주}} |
2019년 9월 4일 (수) 13:22 판
우로보로스 비잔틴 장애 허용(OBFT; Ouroboros Byzantine Fault Tolerance)이란 간단한 결정론적 블록체인 기반 프로토콜로, 서버는 그들에게 이용 가능한 가장 긴 체인을 확장하는 거래의 블록을 분산시키는 미리 결정된 라운드 로빈(round-robin) 방식으로 돌아가게 된다. 서버는 거래의 결과로 클라이언트에 즉시 응답할 수 있으므로 거래의 결과를 얻을 수 있다.
개요
카르다노가 가지고 있는 기존 지분 증명 프로토콜의 한계, 그 중에서도 특히 Grinding Attack을 막기 위해 설계된 지분증명(Pos) 기반 합의 프로토콜로 우로보로스(Ouroboros)가 있는데, 이 기존의 우로보로스의 디자인에서 영감을 얻은 새로운 BFT 원장 합의 프로토콜이다. 2018년 11월에 발표된 페이퍼가 존재하며, 프로그래밍 언어 하스켈(Haskell) 과 러스트(Rust) 구현이 있다. 우로보로스 BFT를 사용하면 Shelley로의 구현 및 배포 시간을 단축할 수 있다고한다. 또한 우로보로스 비잔틴 장애 허용은 Byron이 사용하는 우로보로스 클래식과 우로보로스 제네시스 사이의 브리지(연결 다리) 역할을 한다.
구현 언어
- 하스켈 : 순수하고 단순한 함수형 프로그래밍 언어로 함수형 프로그래밍 분야의 학자들이 부작용의 해악에 대한 아이디어를 집어넣어 설계해 20년 이상 개발해왔다. 하스켈은 함수형 프로그래밍의 이상에 대한 순수한 표현 중 하나로 I/O 채널을 다루는 데 있어 신중한 메커니즘을 갖추고 있으며, 또한 불가피한 부작용도 갖고 있다. 그러나 그 부분을 제외한 나머지 부분은 완벽하게 기능한다. 커뮤니티는 매울 활발하여 십여 개의 하스켈 변형 버전이 나와 있다. 그 중에서는 독립형도 있고 자바 도는 파이썬과 같은 주류 프로젝트와 통합되는 형태도 있다. 대부분의 이름은 하스켈 연구가 활발하게 이루어지는 스코틀랜드 또는 하스켈에서 구현되는 아이디어의 지적 뿌리라고 할 수 철학자/논리학자와 관련된다. 데이터 구조가 복잡하고 많은 형식이 사용된다면 하스켈을 통해 효율적인 작업이 가능할 것이다.
- 러스트 :
각주
참고자료
- [하마] 이승현, 〈BFT 간략 정리 : PBFT , SimpleBFT, SBFT , BFT-SMaRt〉, 《티스토리》, 2019-03-05
- Alexander Russell, Aggelos Kiayias, 〈BOuroboros-BFT:A Simple Byzantine Fault Tolerant Consensus Protocol〉, 《iohk》, 2018-10