Tendermint은 PoS (Proof-of-Stake) 합의 메커니즘으로 신뢰할 수 있는 비잔틴 용납형 합의 알고리즘으로, Cosmos를 위해 개발되었습니다. 최초의 소프트웨어는 2014년에 개발되었으며, Tendermint Inc.에 의해 개발되었습니다.
Tendermint는 두 가지 핵심 기술 요소로 구성되어 있습니다: Tendermint Core 합의 엔진과 응용 프로그램 블록체인 인터페이스 (ABCI).
Tendermint Core는 Cosmos를 위한 기본 합의 엔진입니다. 이것은 분산 네트워크의 모든 기계에 동일한 순서로 동일한 트랜잭션이 기록되도록 보장합니다. 간단히 말하면 Tendermint Core는 여러 기계에 정보를 복제하여 데이터 일관성을 보장합니다. Tendermint Core의 지원을 받으면 Cosmos 네트워크의 모든 올바르게 실행되는 기계는 정확히 동일한 트랜잭션 로그를 얻고 동일한 트랜잭션 상태를 계산할 수 있습니다.
이 메커니즘은 네트워크 노드 중 최대 1/3까지 다양한 유형의 장애를 보일 경우에도 블록체인 네트워크가 제대로 작동할 수 있도록 하여 Cosmos의 보안을 보장합니다. 추가로, Tendermint Core에는 잠금 메커니즘이 있습니다. 검증자가 네트워크 보안을 성공적으로 침해하거나 시도하면 Tendermint가 그들을 식별하고 잠금 처리합니다. 이는 네트워크가 보안 사고 이후 책임 있는 당사자를 빠르게 추적하고 오류의 원인을 판단하는 데 도움이 됩니다.
성능 면에서 Tendermint Core는 Cosmos에 상당한 이점을 제공합니다. Tendermint는 빠른 트랜잭션 확인 속도를 제공하여 거래에 대한 거의 즉각적인 최종성을 달성합니다. 이에 지원을 받으면 Cosmos는 1-2초 안에 블록 최종성을 달성하며, 이론적으로 최대 초당 거래 수 (TPS)는 최대 10,000까지 도달할 수 있습니다.
하지만 Tendermint의 설계는 제한 사항이 없는 경우 네트워크 속도를 저하시킬 수 있다는 한계가 있습니다. 예를 들어, Cosmos Hub는 네트워크의 검증 노드 수에 제한을 가하고 있습니다. Cosmos Hub에서는 누구나 네트워크에서 검증자가 될 수 있는 것이 아닙니다. Staked $ATOM 토큰 가치별로 상위 100위까지 랭크된 노드만이 검증자가 될 수 있습니다. 이러한 설계는 성능을 보장하기 위해 네트워크의 분권화 수준을 어느 정도 희생하고 있습니다.
Tendermint Core 합의 엔진 외에도 Tendermint는 어플리케이션과의 연결을 위한 범용 어플리케이션 인터페이스인 어플리케이션 블록체인 인터페이스 (ABCI)를 포함하고 있습니다. ABCI는 합의 엔진과 응용 프로그램 사이의 다리 역할을 합니다. Tendermint BFT는 ABCI를 통해 응용 프로그램에 연결할 수 있습니다.
ABCI는 어떤 프로그래밍 언어로든 트랜잭션을 처리할 수 있게 해줍니다. 다른 블록체인 솔루션과는 달리 사전 패키징되어 있지 않으며, 프로그래머가 ABCI를 통해 자신의 언어로 어플리케이션을 개발할 수 있습니다.
kaged, 내장된 스크립팅 언어, ABCI는 개발자가 원하는 어떤 프로그래밍 언어와 개발 환경을 사용할 수 있도록 합니다. 간단히 말하자면, ABCI는 번역기처럼 작동합니다. 이는 어떤 언어든 공통 언어로 번역할 수 있으며, 응용 프로그램과 합의 엔진 간의 통신 (트랜잭션 정보 전송)을 용이하게합니다.