본문 바로가기

[코인상식] 합의 알고리즘 (1) - 알아두면 쓸모있는 중요한 코인상식 (7)

2023.12.10. 오후 12:42

안녕하세요, Yonsei_dent 입니다:)

알트코인과 관련된 두가지 시리즈를 진행 중입니다.

<알트코인 백과사전> 시리즈를 통해 알트코인 자산 별로 심도있게 다루어보는 시간을 가지는 중이구요.

<알아두면 쓸모있는 중요한 코인상식> 시리즈를 통해 에서 알트코인과 관련된 기초적인 개념을 다루는 중입니다.

이번주 또한 새로운 코인 상식에 관해 알아보는 시간을 가질 예정이며, 이것이 더 나아가 여러 블록체인 프로젝트들의 비교, 분석의 기본 배경 지식이 될 수 있게, 자세히 알아보는 시간을 가져보도록 하겠습니다.

최근에 다루고 있는 <알트코인 백과사전>을 확인하다 보면 항상 다루는 개념이 바로 합의 알고리즘입니다.

그만큼 블록체인의 원리를 이해하는데 있어서 가장 기초적이면서 동시에 가장 중요하다고 볼 수 있는데요.

오늘은 바로 블록체인 합의 알고리즘; Blockchain Consensus Algorithm 에 관하여 알아보겠습니다.

📒 Index

1. 합의 알고리즘 (Consensus Algorithm) 이란

2. 합의 알고리즘이 왜 필요할까?

3. 합의 알고리즘의 종류 (PoW와 PoS에 관하여)

(워낙의 합의 알고리즘의 종류가 많아 이번에는 대표적인 PoW와 PoS에 관하여 알아볼 것이며, 다음번에 그 이외의 다양한 합의 알고리즘에 관해 한번 더 다룰 예정입니다.)

1. 합의 알고리즘(Consensus Algorithm) 이란

A consensus algorithm is responsible for maintaining the integrity of the blockchain by ensuring that no single node or group of nodes can manipulate the network.

합의 알고리즘은 블록체인의 무결성을 유지하기 위해 단일 노드 또는 노드 그룹이 네트워크를 조작할 수 없도록 하는 역할을 담당합니다.

1980년대와 1990년대에 컴퓨터와 네트워크가 인기를 얻기 시작할 때, 여러 사용자가 저장한 정보에 접근할 수 있도록 공유 데이터베이스가 생성되었습니다.

대부분은 여러 사용자가 다른 스테이션에서 접근하는 중앙 집중형 데이터베이스를 가졌습니다. 이 구성은 사용자 권한을 부여하고 데이터의 무결성(Integrity)을 유지하는 관리자가 있는 중앙집중형 네트워크로 진화했습니다.

기존의 중앙 집중형 데이터베이스에서 더욱 발전하여 탈중앙화된 네트워크인 블록체인 개념이 나오기 시작합니다.

블록체인은 분산된 탈중앙화된 네트워크로, 불변성, 개인 정보 보호, 보안 및 투명성을 제공합니다. 거래를 검증하고 확인할 중앙 관리 기관이 없지만 블록체인의 모든 거래는 완전히 안전하고 검증된 것으로 간주됩니다.

이는 어떤 블록체인 네트워크에도 필수적인 합의 알고리즘의 존재 덕분에 가능합니다.

합의 알고리즘은 블록체인 네트워크의 모든 개개인(peer)이 분산원장(distributed ledger)의 현재 상태에 대한 공통된 합의에 도달할 수 있도록 하는 절차입니다.

(분산원장 : 중앙집중식이 아닌 여러 공유네트워크에 데이터를 분산하여 거래기록 등의 기록 및 관리를 네트워크 참여자들에 의해 공유되고 동시에 업데이트 되는 기술)

쉽게 말해, 시스템이 분산화 되어 있을 때 시스템 간의 특정 데이터에 대한 동일한 값을 유지하기 위해 고안된 개념입니다.

이렇게 함으로써 합의 알고리즘은 블록체인 네트워크에서 신뢰성을 달성하고 분산 환경에서 알려지지 않은 피어(네트워크 참여자)들 간의 신뢰를 구축합니다. 본질적으로 합의 프로토콜은 블록체인에 추가되는 각 새로운 블록이 모든 노드에서 합의된 유일한(one and only) 버전임을 보장하며, 모든 노드가 동일한 하나의 체인을 가질 수 있도록 특정 메커니즘에 의하여 블록이 생성 및 연결되게 합니다. 블록체인 합의 프로토콜은 합의, 협업, 협력, 모든 노드에 대한 동등한 권리, 그리고 각 노드의 의무적 참여와 같은 명확한 목표로 이루어져 있습니다.

따라서 합의 알고리즘은 블록체인 네트워크의 노드들이 네트워크의 공유된 상태에 동의할 수 있게 하는 규칙이나 프로토콜의 집합입니다. 이들은 네트워크의 모든 노드가 거래의 유효성과 블록체인에 추가되는 순서에 대해 합의에 도달하도록 보장하는 데 사용됩니다.

최종적으로, 이상적인 그룹의 합의 알고리즘은 모든 노드가 하나의 체인을 가질 수 있도록, 블록을 생성 및 연결되게 하며, 전체 네트워크에 도움이 될 수 있는 공통된 합의를 찾는 것을 목표로 합니다.

2. 합의 알고리즘이 왜 필요할까?

모든 노드가 동일한 데이터베이스 사본을 유지하는 것이 중요하며, 그렇지 않으면 빠르게 충돌하는 정보가 생겨 암호화폐 네트워크의 전체 목적을 저해할 수 있습니다.

합의 알고리즘은 탈중앙화된 블록체인 기술이 유지되는데 중요한 역할을 합니다.

🔴 합의 알고리즘의 특징 및 필요한 이유

1️⃣ 보안 제공

악의적인 행위자가 네트워크를 제어하는 것을 방지하여 유효한 거래와 원활한 네트워크 운영을 보장함으로써 보안을 제공합니다.

2️⃣ 분산화 달성

모든 노드가 거래의 유효성에 대해 합의에 도달하도록 하여 중앙집중화를 방지함으로써 분산화를 달성합니다.

3️⃣ 투명성 촉진

모든 거래를 블록체인에 표시함으로써 부정 행위를 추적하고 예방하기 쉽도록 하여 투명성을 촉진합니다.

4️⃣ 효율성 향상

노드가 신속하게 거래 유효성에 동의하고 새로운 블록을 적시에 블록체인에 추가할 수 있도록 함으로써 효율성을 향상시킵니다.

5️⃣ 보상 제공

블록을 추가하려는 사용자(검증자)는 일종의 가치(Stake, 보상)를 제공해야 합니다. 이는 검증자가 부정행위를 하는 것을 방지하기 위해 제시해야 하는 어떤 가치입니다. 부정행위를 하면 그들은 자신의 가치를 잃게 됩니다.

(보상은 보통 프로토콜의 네이티브 암호화폐로 구성되며, 다른 사용자가 지불한 수수료, 신규 생성된 암호화폐 단위, 또는 둘 다로 이루어집니다.)

6️⃣ 이중지불 문제의 해결

현실세계에서는 중앙화된 기관(은행)이 계좌를 관리하기 때문에 이중지불이 불가능하지만, 온라인 네트워크에서는 동시에 진행을 하면 충분히 이중지불이 가능해집니다. 하지만 합의 알고리즘으로 인해 이중지불이 거부됩니다. 만약 이중지불이 되었다고 할 지라도, 모든 노드들이 동일한 내용의 분산원장을 공유하기 때문에 특정시점에서 충돌이 발생할 것이고, 그 때 두 거래 중 하나는 거부됩니다.

즉, 분산화된 노드들은 트랜잭션 유효성 합의가 필요하며 이를 합의 알고리즘이 제공합니다.

❓ 만약, 중앙집중화된 것처럼, 하나의 노드에기만 블록 생성 권한을 주면, 이중 거래 등을 막을 수 있지 않을까 생각할 수 있는데,

이는 블록체인의 핵심인 ❗️특정 노드에 의존하지 않고 ❗️신뢰를 제공하는 것에 어긋나며,❗️ 탈중앙화를 탈피하고 다시 중앙집중화로 회귀하는 꼴이 될 것입니다.

그렇게 되면 중앙집중화의 “단일 실패 지점(Single Point of Failure)”을 가질 수 있게 될 것입니다.

(단일 실패 지점 : 기존 중앙집중화된 기관인 은행을 예로 들면, 거래하는 은행 서버가 점검 중이거나, 정상적으로 동작하지 않거나, 기록이 사라지게 되면 사용자의 재산을 모두 잃어버릴 수 있고, 불편감이 생길 수 있습니다.)

이제 다양한 합의 알고리즘과 그 작동 방식에 대해 알아보겠습니다.

프리미엄 구독자 전용 콘텐츠입니다.

치과아저씨의 투자 스케일링 구독으로 더 많은 콘텐츠를 만나보세요!

많이 본 콘텐츠

전일 00시~24시까지 집계한 결과입니다.