GGmon

텐더민트는 무엇인가요? 알아보기! 본문

IT

텐더민트는 무엇인가요? 알아보기!

꿀몬z 2023. 4. 14. 21:00
728x90
반응형

시작

여러분이 알고 사랑하는 블록체인은 매우 견고한 구조를 가지고 있습니다. 개발자에게는 두 가지 옵션이 제공됩니다. 제한적인 환경 내에서 애플리케이션을 빌드하거나 코드를 포크하여 자체 체인을 만드십시오. 하지만 자신만의 체인을 만드는 것은 그리 쉬운 일이 아닙니다. 네트워크를 시작하고 어떤 합의 메커니즘을 사용할지 파악해야 합니다.

 

Tendermint는 모든 언어로 애플리케이션을 작성할 수 있는 블록체인을 시작하기 위한 오픈 소스 소프트웨어입니다. 더 나아가 다른 블록체인과 통신할 수 있습니다.

 

소개

암호화폐 또는 블록체인 네트워크를 생성하려면 데이터베이스를 초기화하는 것보다 훨씬 더 많은 노력이 필요합니다. 보안, 탈중앙화, 확장성 간의 균형과 인센티브의 섬세한 균형이 필요합니다.

당연히 가장 강력한 블록체인 생태계를 구축하려는 팀에서 다양한 접근 방식을 탐색했습니다.

 

텐더민트에 대해 알아야 할 사항

Tendermint의 대부분은 블록체인에 대해 조금 알고 있다면 친숙해 보일 것입니다. 자세히 알아보기 전에 몇 가지 주요 개념을 요약해 보겠습니다.

 

블록체인 아키텍처 이해

텐더민트는 일종의 블록체인 스택 입니다. 그런 다음 다시 Bitcoin Ethereum과 같은 것들도 있습니다. 블록체인 데이터베이스 자체에 관한 것이 아니라 노드P2P 네트워크 , 노드가 상호 작용하는 방식, 트랜잭션 및 스마트 계약으로 수행할 수 있는 재미있는 작업에 관한 것입니다. 여기서 목표는 다른 사람을 신뢰하지 않더라도 모든 사람이 상태 (예: 데이터베이스의 스냅샷)에 동의하도록 하는 것입니다.

 

코인에서 스냅샷(snapshot)은 특정 시점에 코인 지갑의 잔고를 기록하는 것을 의미합니다. 스냅샷을 통해 코인의 지갑 주소에 보유하고 있는 코인의 양을 기록하고, 이를 기반으로 코인의 보상이나 에어드랍을 지급할 수 있습니다.

 

스냅샷은 코인의 블록체인에 기록된 모든 거래 기록을 검색하여 지갑 주소의 잔고를 계산합니다. 이를 통해 코인 지갑 주소의 보유 코인의 양을 정확하게 파악할 수 있습니다. 이후, 이러한 스냅샷 정보를 기반으로 에어드랍이나 코인 보상이 지급됩니다.

 

스냅샷은 코인의 분산화와 사용자들의 참여를 유도하는 데에 많이 사용됩니다. 예를 들어, 코인의 공식적인 메인넷 출시 전에 특정 시점의 스냅샷을 찍어 지갑 주소별 보유 코인을 계산한 뒤, 이를 기준으로 에어드랍을 지급하는 경우가 있습니다. 또는 코인의 활동성을 높이기 위해 보상을 지급하는 경우, 스냅샷을 기준으로 지갑 주소의 보유 코인 양에 따라 보상을 분배하기도 합니다.

 

스냅샷은 코인의 지갑 주소에 대한 정보를 파악하고, 이를 기반으로 보상을 지급하는 데에 많이 활용되는 기술입니다. 그러나, 스냅샷을 활용한 보상 지급은 거래소에 보관된 코인에 대한 보상을 지급하지 않는 등의 한계가 있을 수 있습니다. 따라서, 코인의 보상 지급 및 에어드랍을 계획할 때, 이러한 한계를 고려하여 적절한 보상 지급 방식을 선택하는 것이 중요합니다.

 

대부분의 경우 오늘날의 주요 블록체인은 이를 가능하게 하는 비밀 소스를 제시했습니다. 그러나 구성 요소가 상호 연결되고 상호 의존적임을 의미하는 소프트웨어 엔지니어링 개념인 모놀리식 아키텍처 에 의존하는 경우가 많습니다. 당신은 그것의 일부를 가져와서 다른 것에 연결할 수 없습니다.

 

유연성을 원하는 경우 모놀리식 아키텍처는 적합하지 않습니다. 반대 종류의 모델( 모듈형 아키텍처 포함 )에서는 파손에 대한 걱정 없이 개별 구성 요소를 조정할 수 있습니다. 모놀리식 구조에서는 단일 구성 요소를 업그레이드할 때 모든 구성 요소가 계속 호환되는지 확인해야 합니다. 

 

이제 이러한 차이점을 이해했으므로 Tendermint 프로토콜에 대해 좀 더 이야기할 수 있습니다.

 

비잔틴 내결함성(BFT)

Bitcoin의 큰 혁신은 Byzantine Generals의 문제라는 것을 해결했다는 것입니다. 문제에 대한 구체적인 내용은 다루지 않을 것입니다. 참가자가 분산된 환경에서 통신해야 하는 시나리오를 자세히 설명한다는 것만 알면 됩니다. 

 

이 참가자들은 다른 사람들이 거짓말을 하고 있는지 또는 그들 사이에 전송된 메시지가 수정되고 있는지 알지 못합니다. 참가자가 문제가 있는 경우에도 일련의 사실에 동의할 수 있는 경우 시스템에 비잔틴 내결함성 (BFT)이 있다고 합니다.

 

분명히 탈중앙화된 환경에서는 이것을 올바르게 하는 것이 중요합니다. 비잔틴 내결함성이 없는 암호화폐는 실제로 작동하지 않습니다. 목적을 무산시키는 일종의 중앙 집중식 당사자 조정이 필요합니다. 많은 디지털 통화와 마찬가지로 비트코인은 작업 증명 (PoW) 합의 알고리즘을 사용하여 이 문제를 해결합니다.

 

PoW는 Proof of Work(작업 증명)의 약어로, 블록체인 기술에서 새로운 블록을 생성하는 채굴 과정에서 사용되는 알고리즘입니다. PoW는 암호학적 해시 함수를 이용하여 새로운 블록을 찾는 데에 소요되는 작업양을 정의하고, 이를 수행하는 컴퓨팅 작업을 요구합니다.

 

PoW에서는 블록체인 네트워크에 참여하는 컴퓨터들이 블록체인 네트워크에 새로운 블록을 추가하기 위해 경쟁합니다. 이때, 참여 컴퓨터는 새로운 블록을 찾기 위해 높은 수준의 컴퓨팅 작업을 수행하며, 일정 난이도 이상의 작업을 수행한 컴퓨터가 먼저 새로운 블록을 발견하면, 해당 블록이 블록체인에 추가되고 보상으로 새로운 코인이 발행됩니다.

 

PoW는 이더리움과 비트코인 등의 대부분의 코인에서 사용되고 있으며, 채굴 과정에서의 컴퓨팅 작업을 요구하기 때문에 블록체인 네트워크의 보안성이 높아지는 장점이 있습니다. 그러나, 컴퓨팅 자원 소모가 크고, 컴퓨터들이 대량의 전기를 소비하기 때문에 환경문제가 발생할 수 있습니다. 또한, 채굴 난이도가 높아지면 컴퓨팅 자원의 낭비가 발생할 수 있으며, 채굴이 중앙집중화될 가능성도 있습니다. 이러한 이유로 최근에는 PoS(Proof of Stake)와 같은 다른 채굴 방식이 개발되고 있습니다.

블록체인의 세 가지 레이어

따라서 우리는 모놀리식/모듈식 아키텍처의 차이점을 알고 있으며 분산형 암호화폐 네트워크가 비잔틴 내결함성이 있어야 한다는 것을 알고 있습니다. 블록체인에서 일반적으로 볼 수 있는 계층인 애플리케이션 계층, 합의 계층 및 네트워킹 계층에 대해 언급해 보겠습니다.

 

합의 및 네트워킹 계층은 네트워크 노드가 서로 대화하고 일련의 사실에 동의하려고 하는 곳입니다. 응용 프로그램 계층은 스스로 작업을 수행할 수 있는 곳입니다. 이더리움의 분산 응용 프로그램 스마트 계약 또는 비트코인의 사용자 지정 트랜잭션을 생각해 보십시오.

 

텐더민트 코어

먼저 용어에 대한 빠른 설명입니다. 여기서는 기술에만 집중하기 때문에 "텐더민트"와 "텐더민트 코어"라는 용어를 같은 의미로 사용할 것입니다. 

 

그러나 Tendermint는 회사 이름(백서 원본을 작성한 개발자 Jae Kwon이 설립)이고 Tendermint Core는 회사가 실제로 작업하는 소프트웨어입니다. 보다 구체적으로, 소프트웨어에는 핵심 합의 엔진(Tendermint Core)과 애플리케이션 인터페이스(ABCI)라는 두 가지 주요 구성 요소가 있습니다.

 

Tendermint Core는 내결함성을 달성하는 시스템입니다. 본질적으로 모든 사람에게 동시에 동일한 상태를 보여주는 대규모 분산 컴퓨터입니다. 참가자의 3분의 2 이상이 정직하면 모든 것이 순조롭게 진행됩니다. 하지만 거의 모든 블록체인이 그렇습니다. 무엇이 그렇게 특별합니까?

 

첫째, 사용된 합의 메커니즘은 지분 증명 (PoS) 방식입니다. 각 기간 동안 유효성 검사기 세트에서 임의의 노드가 선택됩니다. 그런 다음 해당 노드는 다음 블록을 제안해야 합니다( 라운드 로빈 시스템 이라고 함 ). 다른 유효성 검사기가 만족하면 새 블록이 추가되고 체인이 업데이트됩니다. 확정성은 비트코인이나 이더리움과 달리 즉각적입니다. 거래가 유효한지 확인하기 위해 확인을 기다릴 필요가 없습니다.

라운드 로빈(Round Robin) 시스템은 컴퓨터 네트워크에서 여러 대의 컴퓨터가 요청을 처리하는 방식 중 하나입니다. 이 방식은 각 컴퓨터에게 일정한 순서대로 요청을 할당하여 처리하는 방식으로 동작합니다. 예를 들어, 3대의 컴퓨터가 있는 경우, 첫 번째 요청은 컴퓨터 1이 처리하고, 두 번째 요청은 컴퓨터 2가 처리하고, 세 번째 요청은 컴퓨터 3이 처리하는 식으로 순서대로 처리됩니다. 이 과정을 라운드 로빈 방식이라고 부릅니다.

 

라운드 로빈 시스템은 각 컴퓨터에게 공평하게 작업을 분배할 수 있으며, 각 컴퓨터의 작업 처리 시간이 비슷한 경우 효율적인 분배가 가능합니다. 그러나, 컴퓨터의 수가 많거나 작업 처리 시간이 크게 차이나는 경우, 일부 컴퓨터가 과부하가 발생하거나 일부 컴퓨터는 작업을 처리하지 못할 수 있습니다.

 

라운드 로빈 시스템은 주로 컴퓨터 네트워크에서 부하 분산 기능을 수행하는 로드 밸런서에서 사용됩니다. 로드 밸런서는 요청을 받으면, 이를 라운드 로빈 방식으로 여러 대의 서버에 전달하여 작업을 분산시키는 역할을 합니다. 이를 통해 네트워크의 성능을 개선하고, 서버의 부하를 분산하여 안정적인 서비스를 제공할 수 있습니다.

 

하지만 더 있습니다! Tendermint Core의 아키텍처는 모듈식이며 애플리케이션 계층은 합의 및 네트워킹 계층과 분리되어 있습니다. 평이한 영어로, 이는 자신의 애플리케이션 계층을 스택에 연결할 수 있음을 의미합니다. 성가신 인센티브나 합의 알고리즘에 대해 걱정할 필요가 없습니다. 

 

아마도 이것은 최종 사용자에게 그다지 흥분되지 않을 것입니다. 그러나 개발자의 경우 기존 프레임워크를 활용할 수 있다는 것은 전체 네트워크를 부트스트래핑하지 않고도 애플리케이션 구축에 바로 뛰어들 수 있음을 의미합니다. 블록체인의 데이터는 통합 레이어로 연결되어 개발자가 모든 언어로 소프트웨어를 작성할 수 있습니다.

 

애플리케이션 블록체인 인터페이스 또는 간단히 ABCI라고 불리는 것에서 마법이 일어납니다. 이것을 Raspberry Pi 컴퓨터에 있는 GPIO 핀과 같이 생각하십시오. LED에서 식물을 위한 정교한 스프링클러 시스템에 이르기까지 모든 종류의 타사 구성 요소를 이러한 구성 요소에 연결할 수 있습니다. 비슷한 방식으로 ABCI는 블록체인과 그 위에서 실행되는 애플리케이션 사이의 경계를 정의합니다.

 

Tendermint Core의 장점은 무엇인가요?

애플리케이션 인터페이스와 합의 메커니즘의 분리는 다양한 분산형 애플리케이션이 모든 프로그래밍 언어를 비즈니스 로직에 통합할 수 있는 더 큰 유연성을 허용합니다.

 

무엇을 할 수 있는지에 대한 가시적인 예를 보려면 Ethermint 만 보면 됩니다. 이더리움 코드베이스를 취하고 작업 증명 메커니즘을 제거하고 Tendermint 위에 이더리움 가상 머신을 결합한 프로젝트입니다.

 

이로 인해 몇 가지 흥미로운 일이 가능해졌습니다. 첫 번째는 Ethereum 개발자가 스마트 계약을 새 엔진으로 쉽게 이식하거나 Solidity 언어로 새 계약을 작성할 수 있다는 것입니다. 이더리움 기능을 제공하는 것 외에도 Ethermint는 Ethereum 2.0 에서 캐스퍼 구현이 어떤 모습일지 엿볼 수 있는 이더리움 지분 증명처럼 작동합니다.

 

블록체인 상호 운용성

"블록체인 인터넷"의 약속은 많은 사람들을 Tendermint 기반 프로토콜로 끌어들이는 것입니다. 상호 운용성은 수백 개의 개별 블록체인이 상호 호환된다는 것을 의미하므로 암호화폐 공간에 오랫동안 기다려온 추가 사항입니다.

 

현재 누구나 애플리케이션별 퍼블릭 또는 프라이빗 블록체인을 만들 수 있는 오픈 소스 프레임워크인 Cosmos SDK에 많은 작업이 투입되었습니다. 그런 다음 이러한 블록체인은 다른 사람과 통신할 수 있는 Cosmos Hub라는 것을 통해 더 넓은 Cosmos 네트워크에 연결할 수 있습니다.

 

Cosmos SDK는 블록체인 애플리케이션을 구축하는 데 사용되는 프레임워크입니다. 이 프레임워크는 Go 언어로 작성되어 있으며, Tendermint 블록체인 엔진을 기반으로 동작합니다.

 

Cosmos SDK를 사용하면 블록체인 개발자들은 자신만의 블록체인 애플리케이션을 쉽게 구축할 수 있습니다. Cosmos SDK는 모듈화된 설계를 통해 다양한 블록체인 애플리케이션을 개발할 수 있도록 지원하며, 필요한 모듈만 선택하여 사용할 수 있습니다. 또한, Cosmos SDK는 스마트컨트랙트와 같은 다양한 기능을 제공하여 블록체인 애플리케이션의 개발과 배포를 쉽게 할 수 있도록 도와줍니다.

 

Cosmos SDK의 핵심 구성 요소는 Tendermint 블록체인 엔진, SDK 모듈, ABCI 애플리케이션 인터페이스, CLI 도구 등이 있습니다. Tendermint는 분산원장 및 콘센서스 엔진으로 사용되며, SDK 모듈은 개발자들이 블록체인 애플리케이션을 구성하는 데 사용됩니다. ABCI 인터페이스는 애플리케이션 블록체인 인터페이스를 제공하며, CLI 도구는 개발자들이 블록체인 애플리케이션을 구성하고 관리하는 데 사용됩니다.

 

Cosmos SDK는 다양한 블록체인 애플리케이션을 개발할 수 있는 강력한 프레임워크입니다. 이를 사용하면 개발자들은 빠르게 블록체인 애플리케이션을 구축하고, 다양한 기능과 서비스를 제공할 수 있습니다.

 

BNB 스마트체인(BSC), KAVA, Band Protocol, IRISnet 등 수많은 인기 프로젝트가 Cosmos SDK로 구축되었습니다.

  1. BNB 스마트체인(BSC): BNB 스마트체인은 Binance가 개발한 블록체인 네트워크입니다. 이 네트워크는 이더리움 가상머신(EVM)과 호환되어 있으며, 이더리움과 동일한 개발 도구와 스마트 컨트랙트를 사용할 수 있습니다. BSC는 빠른 거래 처리 속도와 낮은 수수료로 인해 인기가 높아졌으며, DeFi(분산형 금융) 생태계에서도 활발하게 사용되고 있습니다.

  2. KAVA: KAVA는 금융 DeFi 분야에서 사용되는 블록체인 프로토콜입니다. KAVA는 대출, 예금 및 신용 파생 상품 등을 제공하며, Cosmos SDK를 기반으로 구축되어 있습니다. 이는 블록체인 개발자들이 빠르고 쉽게 커스터마이즈 가능한 블록체인 애플리케이션을 구축할 수 있도록 해줍니다.

  3. Band Protocol: Band Protocol은 오라클 기술을 기반으로 하는 크로스 체인 데이터 플랫폼입니다. 이 프로토콜은 블록체인 애플리케이션에 필요한 실시간 데이터를 제공하여 안전하고 투명한 스마트 컨트랙트 실행을 가능하게 합니다. Band Protocol은 Cosmos SDK를 기반으로 구축되어 있으며, 이더리움 및 다른 블록체인과의 연동성도 제공합니다.

  4. IRISnet: IRISnet은 비즈니스 블록체인 생태계를 구축하기 위한 다목적 블록체인 플랫폼입니다. 이 프로토콜은 Cosmos SDK를 기반으로 구축되어 있으며, 블록체인 기술을 기업급 애플리케이션에서 적용할 수 있도록 다양한 도구와 기능을 제공합니다. IRISnet은 블록체인 간 상호운용성을 위한 다리 역할을 하며, 다른 블록체인과의 연동성도 제공합니다.

마무리 생각

블록체인 엔진으로서 Tendermint는 개발자에서 최종 사용자에 이르기까지 암호 화폐 영역의 수많은 이해 관계자의 관심을 끌었습니다.

 

소프트웨어가 계속해서 관심을 끌면 블록체인 인터넷의 중추 역할을 할 수 있습니다. 우리가 본 것처럼 이 비전을 실현하기 위해 Cosmos SDK와 함께 소수의 프로젝트가 이미 시작되었습니다.

728x90
반응형
LIST
Comments