컨센서스 비교 : Tendermint BFT 대 EOS dPoS - Cosmos Blog (2017.9.29일 cosmos blog글 번역)

in #coinkorea7 years ago (edited)

20171017_155443.png

컨센서스 비교 : Tendermint BFT 대 EOS dPoS - Cosmos Blog

blog.cosmos.network · Tendermint · 2017 년 9 월 29 일

이 글에서는 EOS와 Tendermint를 지원하는 다양한 컨센서스 시스템과 기본 기술에 대해 비교하고, 각각의 체인이 PoS (proof-of-stake)에 어떻게 접근하는지를 비교합니다.

기존의 분산 시스템에서는 방화벽, 정보보안팀 및 신뢰있는 하드웨어 기반을 단일 조직이 신뢰있게 운영하여 악의적인 행위자가 분산 데이터베이스의 일관성을 손상시킬 수 없도록 보장합니다. 블록체인 시스템은 많은 조직 간에 신뢰가 분산되는, 기존과는 다른 아키텍처를 요구하지만, 시스템에서 적대적인 행위자가 있음을 받아들여야 합니다. 블록체인 시스템의 설계는 보안 모델, 게임 이론, 컴퓨터 과학 및 제도적 평판 사이의 절충안입니다.

Bitcoin의 Nakamoto 컨센서스는 개방형 관리 보안 모델을 얻은 대신 기존의 BFT (비잔틴 오류-허용) 디자인에서 최종 분산 시스템의 최종적 보증을 포기합니다 (포크가 가능하다는 것을 의미). 이는 결국 대가를 치릅니다. 악의적인 공격자가 해시력의 50.1 %를 제어 할 수 있다면 시스템은 전혀 보장되지 않습니다. 25 %부터는, 이기적인 채굴로 인해 게임 이론 메커니즘이 불안정 해지며 확률론적 수렴이 불안정 해집니다. 이러한 각각의 공격들은, 블록 체인 접근 방식을 통해 인터넷을 확장시킬 수 있는, 라이트 클라이언트를 검증하는데 필요한 가정을 근본적으로 변경시킵니다.

코스모스 (Cosmos)와 EOS는 추가적인 절충안에 관한 연구입니다. 코스모스는 공식적인 비잔틴 오류 허용에 대한 엄격한 보장을 통해, 모호한 태도에 대한 강력한 처벌을 만들고, 전체적으로 블록 체인 (Blockchains)의 인터넷까지 확장하는 일련의 보장 단계를 구축합니다. EOS는 나카모토 (Nakamoto)의 컨센서스와 컴퓨터 과학 연구를 통해 가능하다 말하는 것, 그 둘 사이에 있는 어떠한 임의의 컨센서스를 위해 기관의 평판에 상당히 의존하게 됩니다.

좀 더 자세히 살펴 보겠습니다.

텐더민트

"Tendermint 오픈 소스 프로젝트는 Bitcoin 의 Proof-of-Work 합의 알고리즘 의 속도, 확장성 및 환경 문제를 해결하기 위해 2014 년에 탄생했습니다 .1988 년 MIT에서 개발되어 입증된 BFT 알고리즘 을 사용하고 개선함으로써 Tendermint 팀은 1 세대의 Proof of stake(POS) 암호화폐인 NXT와 bitshares 1.0이 겪었던 nothing at stake문제를 개념적으로 해결하는 첫 POS 암호화폐가 되었습니다."- Tendermint

텐더민트 코어 (Tendermint Core) 는 이중 지불 공격(double-spend attack)에 견딜 수 있는 비잔틴 오류 허용 (BFT) 컨센서스 엔진으로 네트워크 상의 1/3 (~33%) 비잔틴 행위자들이 공격하더라도 안전합니다. Tendermint Application Blockchain Interface (ABCI) 플랫폼은 블록체인 응용 프로그램 개발자를 위한 툴킷입니다. 모든 프로그래밍 언어와 호환되는 이 툴킷을 사용하면, 컨센서스 계층에서 낮은 수준의 조작조차 필요없이 비즈니스 논리만 실행하는 분산형 응용 프로그램에 대한 고급 개발이 가능합니다. Ethermint 와 같은 플랫폼은 Tendermint ABCI 플랫폼 위에 구축됩니다.

Tendermint ABCI 위에 건설 된 또 다른 프로젝트는 "Internet of Blockchains"으로 디자인 된 Cosmos Network입니다. Cosmos는 Cosmos Hub라고하는 마스터 허브 체인을 통해 zone이라고하는 독립적 블록체인을 통해 암호화 자산을 신뢰가 필요없는(trustless) 방식으로 교환 할 수있는 상호 운용 가능한 다중 체인 네트워크를 구상합니다. Blockchain 개발자가 가능한 한 쉽게 만들 수 있도록 Cosmos에는 Cosmos-SDK라는 툴킷이 함께 제공되므로 개발자는 플러그 앤 플레이 모듈을 사용하여 사용자 정의 블록 체인을 쉽게 만들 수 있습니다.

EOS

EOS가 목표로 하는 시장은 소비자용으로 구축된 엔터프라이즈 분산 응용 프로그램 솔루션을 대상으로 합니다.
Ethereum과 마찬가지로 EOS는 오픈 소스 프로젝트이자, 소비자 중심의 분산 응용 프로그램을위한 스마트 컨트랙트를 가능케 하는 호스팅 플랫폼입니다. Ethereum과 비교했을 때, EOS는 분산화 정도는 조금 희생하였지만, 더 훌륭하고 확장 가능한 시스템을 제공합니다. Delegated-Proof-of-Stake (dPoS)라고하는이 합의 시스템은 높은 순위의 위임자(ranked delegates)로 알려진 일련의 마스터 노드에 의해 유효성이 검증된 컨소시엄 블록체인입니다. EOS는 분산된 글로벌 슈퍼 컴퓨터 역할을 하는 Ethereum virtual machine 과는 달리 "분산형 운영 체제"를 구축할 것이라 말합니다.

주요 기능 요약

20171017_155458.png

동기화 메커니즘인 블록체인은 모두가 인정하는 "지금(now)"이 없다는 문제를 해결해야 합니다. Tendermint는 모든 오류 허용 시스템과 마찬가지로 부분 동기화 네트워크(partially synchronous network)를 가정합니다.이것은 EOS와는 중요한 차이가 있습니다. EOS는 완전 동기화 형태에서만 오류-허용이 됩니다. EOS와 Tendermint는 모두 dPoS의 변형된 형태로 작동합니다. 그러나 각 프로토콜은 "위임(delegate)"을 매우 다르게 정의합니다 .

EOS dPoS (민주주의를 POS의 형태로 차용)

EOS는 "위임자(delegator)"를 민주적으로 선출 된 블록체인의 블록 유효성의 검증인으로 정의합니다. 이 용어는 "블록 검증인(block validators)"와 같은 의미입니다. 네트워크의 마스터 노드 역할을 하는 소수의 21 명의 "위임자" 가 있습니다.위임자의 "직무"는 체인을 연장하는 것 이외에도 트랜잭션에 서명하고 유효성을 검사하는 것이 있습니다.이 위임자들에게 EOS 토큰의 소유자(stakeholder)가 "office"에 투표를 합니다.다니엘 라리머 (Daniel Larimer)가 EOS에서 단 21 명을 선임하기로 결정한 이유는, 그 보다 더 많을 경우 EOS 소유자의 관심을 분산시킬 수 있는 요소가 더 많아지기 때문에 유권자들이 부실한 결정을 내릴 수 있기 때문입니다.

"믿을 만한 시스템을 위해서는 3분의 2의 지지가 필요합니다.원래 BitShares는 100명으로 시작되었습니다. 하지만 그 100명에 대해서 충분한 관리 감독이 이루어지지 않았는데, 이는 투표자들의 관심(대역폭, bandwidth)이 결정하기에 부족했기 때문입니다. 21명으로 줄이면 시스템 비용이 절감됩니다. 네트워크는 전체 노드를 실행하는 각 사람에게 비용을 지불해야합니다. "- Daniel Larimer.

Vitalik Buterin은 EOS를 컨소시엄 체인이라 말합니다. "그들이 개인적으로 full node를 실행해보지 않는 이상, Merkle 증명 및 기타 보호장치를 통해 일반 사용자가 시스템 실행의 모든 ​​부분을 감사(audit)하는 것이 불가능하게 됩니다."Merkle 증명과 같은 클라이언트 측에 내장된(built-in) 유효성 검사 메커니즘이 내장되어 있지 않는 한, Byzanthine (또는 그냥 무시할 만한) 위임자를 감사할 때 사용자가 풀노드를 돌려야 한다면 싱크 문제는 (coordination problem) 해결되기 어려울 뿐더라 실용적이지도 않습니다.

내장된(built-in) 메커니즘이 없다면, 여분의 프로토콜 수단에 대한 많은 의존이 필요하며 심지어 합의(consensus)에 문제를 일으킬 수 있습니다. EOS dPoS는 결국 EOS의 이해관계자들이 정확하게 위임자의 능력을 파악하고 (희망적으로) 그들의 위임자를 고용하거나 해고하는데 있어 건강한 결정을 내린다는 데에 (즉, 민주주의에) 의존합니다. 또한, 코스모스 (Cosmos)에서와 같이, 중요한 프로토콜의 변경은 거버넌스(governance)를 통해 이루어집니다.

EOS 사용자는 코인을 사용한 투표를 통해 분산화하는데, 더 많은 EOS토큰을 소유한 사람은 더 많은 투표권을 가집니다. EOS 토큰은 기업 및 기업이 그들의 분산 응용 프로그램 (dApp)을 실행하기 위하여 거래 수수료 대신 스테이킹 수단으로 사용할 수 있습니다. 이러한 요금을 대체하는 구조는 유용성에 대한 추가적인 문제를 제기하지만 이 내용은 현재의 게시물의 범위를 벗어납니다.

마지막 비가역 블록 (Last Irreversible Block, LIB)

Daniel Larimer의 Steemit 게시물에 따르면 LIB는 "선출된 블록 생성자의 3분의 2 이상이 확인한 블록입니다. 어떤 노드도 LIB의 위에서 자동적으로 포크를 만들 수 없습니다."
이 LIB의 세부 사항을 보면 이론적으로는 네트워크가 멎을 수 있는 극단적인 경우가 존재합니다.

코스모스 합의 (consensus)

Cosmos 또한 "Delegated" PoS 합의 메커니즘을 사용합니다. 그러나, "위임자"라는 용어는 코스모스의 맥락에서는 다르게 사용됩니다 . EOS와 달리, "검증인"은 트랜잭션의 유효성을 확인하고 새로운 블록을 블록체인에 적용합니다. 검증인은 블록체인을 연장하기 위해 투표를 하는데에 암호화 서명을 하고 이를 공표함으로써 합의 프로토콜에 참여합니다. "위임자"는 일부의 토큰(코스모스 허브의 ATOM 토큰처럼)을 위탁하는 사람이며, 이를 통해 검증인(validator)에게 투표권을 부여하며, 블록 보상의 일부를 나누어 받게 됩니다.

검증인이 되기 위해 그리고 투표권을 얻기 위해서는, 미리 정해진 분량의 토큰을 묶어두어야 합니다. 이 묶이는 토큰은 자체적으로 펀딩을 할 수도 있고, 다른 토큰 보유자들로 부터 당신에게 "위임"하도록 함으로써 구할 수도 있습니다. 위임자들은 그들의 토큰(ATOM)을 그들이 선택한 검증인에게 위탁하여 넣어둡니다. 검증인이 프로토콜에 명시된대로 행동하는지 여부에 따라 이 위임한 토큰에 손실이 있을 수 있습니다.

라운드(round)라고 부르는, 블록 유효성을 검사하는 간격 동안 검증인 집단 (validator set)은 다음 블록에 커밋(commit)하는데 동의하는 트랜잭션에 서명하는 검증인들의 집합으로 정의합니다. 이 검증인 집단은 동적이며 검증인이 합의 과정에 참가하거나 합의 과정에서 벗어남에 따라 변경됩니다. 최소한 4 명의 검증인이 필요하지만 Tendermint가 실행하는 합의 프로토콜에 있어 검증인의 상한선은 없습니다. 코스모스 허브에는 100 개가 있지만 시간이 지나면 미리 정한 일정에 따라 자동으로 300 명의 검증인으로 증가합니다. 이 매개 변수는 거버넌스를 통해서도 변경 될 수 있습니다.

즉각적 블록 확정성 (Instant block finality)

모든 블록은 확정적입니다. 검증인의 수에 따라 Tendermint의 블록 확정성은 1 초 안에 달성 할 수 있습니다. 일반적으로 블록 확정성에는 약 3 초가 필요합니다.

Nothing-at-stake 문제

Nothing-at-stake 문제는 PoS 합의 시스템에서 유의하여야 합니다. 왜냐하면 미해결 상태로 두는 행위는 비잔틴 행위자가 비용이나 벌금 또는 어떠한 특정 결과도 없이 네트워크를 차지할 수 있기 때문입니다.

Tendermint의 담보 트랜잭션 (bonded transaction)

텐더 민트 (Tendermint)는 보증금에 기반한 담보 보증금 (bond deposits)을 이용하여 Nothing-at-stake 문제를 해결합니다. 이러한 담보 보증금의 잠금을 해제하려면, 먼저 사용자가 잠금을 해제해야 하며, 이후 일정 시간동안 조금씩 풀리게 됩니다. 보증 해제 기간(unbonding period)은 2 ~ 3 개월이 소요될 것으로 예상됩니다.

이는 모든 라이트 클라이언트를 가능케 합니다. 휴대번화와 사용자가 동시에 블록체인과 일정한 속도로 동기화가 되어 있지 않더라도 검증인 집단이 어떻게 곧 변화할지를 알 수 있습니다. 이 보증 해제 기간이 없이는, 라이트 클라이언트는 블록체인에서 이전 검증인 집단이 무엇을 한 것 처럼 보이게 하지만, 실제로는 이미 그 검증인 집단이 그들의 토큰을 팔고 사라져버리는 공격에 취약하게 됩니다.

EOS의 담보물 (Collateral)

EOS에는 해당 프로토콜 고유의 재정적 패널티가 없습니다. 대신에, "담보물(collateral)"로써, 높은 순위의 위임자들은 (ranked delegators) 그들이 잘못한 사항에 대해 유죄일 경우 평판을 잃게 되고, 비잔틴 행위자로서 받을 수 있는 강력한 재정적 인센티브가 사라지게 됩니다. DPoS는 위임자의 자격을 잃는 것과 그 높은 순위로 올라설 때까지 지불한 매몰 비용을 합산한 기회비용이 그들이 이중지불 공격을 함으로써 얻게되는 이익보다 큰 것으로 가정합니다. 눈에 띄게 잘 정의된 프로토콜 자체의 페널티가 없다면 EOS 네트워크는 Nothing-at-stake에 취약한 상태가됩니다.

포크 책임성 (fork accountability)

PoS 프로토콜의 포크는 검증인 집단의 1/3 이상의 검증인들이 충돌한 상태에서만 가능합니다.악의적인 포크의 위험을 막기 위해 프로토콜 내 보호는 어느정도 이루어져야합니다.

Tendermint

Tendermint의 포크 (fork) 책임성은 체인에서 악의적인 포크를 일으킨 사람을 식별하여 해당 검증인를 확보합니다. 유죄 판결을 받은 사람들은 담보 보증금에서 무거운 벌금을 몰수당하게 됩니다. 상당한 양의 벌금을 부과하는데, 문제가 된 상황 동안 네트워크에 스테이킹 된 모든 코인의 1/3이 몰수 됩니다. 하드 포크가 일어나는 경우, 책임 당사자는 "난도질을 당합니다. (slashed)"

검증인의 1/3에 해당하는 악의적 행위자로 인해 일어난 하드포크에서 회복하기 위해, Stakeholder coordination off-chain은 제안 내용을 재조직하고 악의적 행위자가 같은 높이의 마이너리티 체인 (minority set)을 선택했다는 것에 (즉, 일부러 하드포크를 악의적으로 유도했다는 것에) 동의할 때 stakeholder coordination은 블록체인을 포킹할 수 있는 권한을 가지게 됩니다.

EOS (TaPos)

EOS는 포크를 조금 다르게 처리합니다. Transactions-as-Proof-of-Stake 또는 TaPoS라는 개념을 사용합니다. 모든 트랜잭션에는 최근 블록 헤더의 해시가 있어야 합니다. 해시는 두 가지 작업을 수행합니다. 해시가 없는 포크의 트랜잭션은 포크가 위조된 것으로 가정하기에 리플레이 공격을 방지하며, 네트워크에 특정 사용자와 사용자의 스테이킹된 토큰이 특정 체인에 있음을 알립니다.

TaPoS는 불행히도 EOS 네트워크가 복구할 수 있는 공격인 장거리 (long-range) 공격만을 막을 수 있습니다. 그러나 중요한 것은 단기간의 블록 최종성(block finality)을 무시하기 때문에 예를 들어 전체 트랜잭션이 완전히 확인되지 않았을 때는 네트워크가 분리될 수 있는 취약점이 존재합니다. 위임자가 확인하지 못한 유효한 트랜잭션은 해당하는 해쉬를 가지지 못하게 되며, 결국 곧 고아 (orphaned) 트랜잭션이 됩니다.

CAP 정리

'브루어의 정리 (Brewer 's Theorem)'라고도 불리는 CAP 정리는 분산 시스템에서는 다음의 3 가지 중 2 가지 이상을 동시에 만족시킬 수 없다고 말합니다. 일관성, 가용성, 및 분리 허용 입니다.

DDoS에 직면하면, Tendermint는 멈춥니다. EOS는 계속 실행되지만 계속 포크가 되면서 비일관적인 상태가 발생하고 결국 이 상황을 공격자가 악용할 수 있습니다. Tendermint는 가용성 보다 일관성을 우선시합니다. EOS에서는 그 반대인 것이 사실입니다. (즉, EOS는 일관성 보다 가용성을 우선시한다는 뜻.)

마치며

비잔틴 오류 허용은 개방적이고 무분별하고 분산된 시스템을 유지하는 데 필요하기 때문에 네트워크가 검열에 견딜 수 있도록 보장하는 것이 중요합니다. 분산된 프로토콜과 각각의 블록체인은 일시적으로 DDoS를 처리 할 수 ​​있다고 하더라도, state agent가 데이터를 조작할 수 없을 정도로는 안전해야합니다. State agent (또는 악의적인 행위자)가 공개 시스템에 대한 액세스를 금지하기로 결정한 경우, 우리는 신뢰할 수 있는 보안을 원하지, 손이 많이 가는 기술은 원하지 않습니다.

아무도 라이브 네트워크를 해킹하지 못했다는 주장은 '해킹을 당하지 않는다 (hack-proof)'고 말하는 것과는 다릅니다. 이것이 네트워크가 안전하다고 주장하려면, 네트워크가 안전한지 확인하기 위해 수학적 증명을 사용하는 것이 중요한 이유입니다. 시가총액 최상위 암호화폐들로 흘러들어가는 자금의 양이 엄청나다는 점을 생각해 봤을 때, 공격자는 분명 극단적인 경우의 취약점까지 악용하여 공격할 것이 틀림 없습니다. dPoS (Democracy-as-Proof-of-Stake) 에서 나타날 수 있는 0.0001 %의 극단적 경우조차도 해킹을 막을 수 있다는 것을 증명할 수는 없습니다.

우리는 분산 시스템 보안 분석 도구인 Jepsen.io를 통해 Tendermint Core를 감사(audit)했으며 그 결과는 Tendermint BFT가 명시된 보증 내용을 위반하지 않음을 객관적으로 입증합니다. https://jepsen.io/analyses/tendermint-0-10-2 .

마지막으로 웹 3.0 공간을 더욱 발전시키는 프로토콜을 만드는 연구원들로서, 우리는 현재 PoS의 약점을 인정합니다.

PoS의 약점 :

• 유권자의 무관심 : 투표에 의지하는 것은 컨센서스 문제를 유발합니다.역사적으로, 거버넌스를 위해 수동 투표 메커니즘을 채택한 분산된 기관은 모두 10 % 미만의 참여율을 보였습니다. [참조 : DAO carbonvote, EIP186 carbonvote , DAO 제안 표 , 2014 년 Bitshares dPoS 표]

• 투표 집중화에 대한 편견 : Buterin은 공유지의 비극('지하자원, 초원, 공기, 호수에 있는 고기와 같이 공동체의 모두가 사용해야 할 자원은 사적이익을 주장하는 시장의 기능에 맡겨 두면 이를 당세대에서 남용하여 자원이 고갈될 위험이 있다'는 내용)으로 인해 게임 이론이 붕괴 된 것으로 간주합니다. " 각 유권자는 결과에 영향을 미칠 수있는 기회가 적기 때문에 투표에 대한 인센티브가 사회적 최적 인센티브보다 수천배 낮습니다. 즉, 모든 사람이 코인을 거래소에 넣어두게 되는 경우, 과연 그 코인을 넣어둔 거래소가 어떻게 투표를 하는지 사용자들이 신경을 제대로 쓰지않는 일들이 벌어질 수 있습니다.

• 인센티브 편차 : 네트워크에서 코인 보유자와 사용자는 서로 다른 그룹입니다. 코인 보유자는 코인 가격을 높이는데 집중하고, 때로는 많은 양을 보유한 사람이 실제 시스템의 사용자들이 안전하게 사용할 수 있는지를 고려하지 않고 불안정한 가격상승을 유발할 수 있습니다.

Zaki Manian 의 새로운 도입부와 함께 9/30에 업데이트 됨
기술 검토를 해주신 Tendermint 연구원 Sunny Aggarwal, Adrian Brink 및 Ethan Frey에게 감사드립니다.
Chjango Unchained이 쓴 기사 .

  • 좋은 글이기에 공유해 보고자 번역해 보았습니다.
    저는 둘 중 어떠한 것이 더 우월한 지를 논하고자 이 게시물을 올린 것이 아님을 미리 말씀드립니다.
Sort:  

Cheer Up!

  • from Clean STEEM activity supporter

well i didnt much understand it, but eos all the way

https://blog.cosmos.network/consensus-compare-tendermint-bft-vs-eos-dpos-46c5bca7204b
This post is just a translated version of the blog above.
If you want to read in English, plz visit the link :)

좋은 글 번역 감사합니다. 이해하기 위해 몇 번 더 읽어봐야겠습니다. ^^

좀 어렵게 번역이 되었으려나요. 좀더 쉽게 풀어내지 못하여 죄송합니다. ㅜㅠ 읽어주셔서 감사합니다. :)

코스모스와 EOS를 이해하는데 도움이 되는 글입니다. @bramd 님의 글을 링크로 실었습니다. 감사합니다. https://steemit.com/kr-eos/@krexchange/21-eos

조금 어려운 내용이지만 몇번 더 읽어보도록 하겠습니다^^

이 어려운 걸 어찌 다 알까요...

Congratulations @bramd! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

어렵지만 잘 보았습니다
방문해 주셔서 감사합니다
일요일 아침 .

Coin Marketplace

STEEM 0.24
TRX 0.24
JST 0.038
BTC 95135.46
ETH 3281.35
USDT 1.00
SBD 3.37