BlockChain/BlockChain Knowledge

합의 메커니즘

dev_swan 2023. 10. 31. 21:00

✏️ 합의 메커니즘

블록체인에서 합의란 네트워크 참여자들 간에 동의를 이끌어내어 블록의 생성과 트랜잭션의 유효성을 결정하는 과정을 말합니다. 합의 알고리즘은 네트워크 참여자들이 동일한 블록체인 상태를 유지하고 일관된 트랜잭션 기록을 만들기 위해 사용됩니다.

합의 메커니즘 - digitaltoday

🤨 블록체인에 합의 메커니즘 필요한 이유?

블록체인은 분산 시스템으로, 여러 참여자가 동시에 블록을 생성하고 네트워크에 기록합니다. 이 때, 모든 참여자가 동일한 블록과 트랜잭션을 받아들이고 동일한 블록체인 상태를 유지하는 것이 중요합니다.

 

1️⃣ 분산 네트워크의 신뢰성 확보

분산된 블록체인 네트워크에서는 신뢰할 수 있는 단일 기관이나 중앙 서버가 없기 때문에 모든 참여자들 간에 합의를 이끌어내야 합니다. 합의를 통해 참여자들은 동일한 블록체인 상태를 유지하고 모든 트랜잭션을 일관되게 처리할 수 있습니다.

 

2️⃣ 이중 지출 방지

합의 메커니즘을 통해 네트워크 참여자들은 트랜잭션의 유효성을 검증하고 이중 지출 방지할 수 있습니다. 합의를 통해 블록에 포함될 트랜잭션은 유효한 것으로 간주며되, 이를 통해 신뢰할 수 있는 거래 기록을 구축할 수 있습니다.

 

3️⃣ 보안 강화

합의 메커니즘은 네트워크의 보안성을 강화하는 역할을 합니다. 분산된 합의 알고리즘은 악의적인 공격자가 단일 노드를 조종하거나 조작하는 것을 어렵게 만듭니다.

 

❓ 합의 메커니즘 유형

🔴 PoW ( Proof of Work )

Proof of Work는 가장 잘 알려진 합의 메커니즘 중 하나입니다. PoW는 컴퓨팅 작업에 기반하여 블록의 유효성을 검증하고 추가하는 방식입니다. 네트워크 참여자들은 수학적 퍼즐을 해겨하는 과정을 통해 작업을 증명하고, 이를 통해 블록체인에 기여하게 됩니다. 가장 잘 알려진 PoW 기반 블록체인은 비트코인입니다.

 

🔴 PoS ( Proof of Stake )

Proof of Stake는 네트워크 참여자들이 자신이 소유한 암호화폐를 보증금으로 사용하여 블록을 검증하는 방식입니다. 보유한 암호화폐의 양에 비례하여 블록 생성의 권한과 보상을 받게 됩니다. PoS는 에너지 소비가 적고 확장성이 높은 메커니즘으로 알려져 있습니다.

 

🔴 DPoS ( Delegated Proof of Stake )

Delegated Proof of Stake는 PoS의 변형으로, 네트워크 참여자들이 블록 생성에 대한 대리인을 선출하여 대리인들이 차례로 블록을 생성하고 검증하는 방식입니다. 대리인은 네트워크의 보안과 효율성을 유지하며, 보상을 받게 됩니다. DPoS는 EOS 등 일부 블록체인에서 사용되는 메커니즘입니다.

 

🔴 PoA ( Proof of Authority )

Proof of Authority는 중앙 집중식 네트워크에서 사용되는 메커니즘으로, 신뢰할 수 있는 인증 기관 또는 권한 있는 참여자들에 의해 블록이 생성되고 검증됩니다. 참여자들은 네트워크 상의 신뢰성과 안정성을 담보하기 위해 권한을 가지고 있으며, 일반적으로 퍼블릭 블록체인보다는 프라이빗 블록체인에서 사용됩니다.

 

🔴 PoA ( Proof of Activity )

Proof of Activity는 PoW와 PoS를 결합한 메커니즘 형태로, 블록 생성에 앞서 PoW를 통해 일정한 작업 증명을 수행합니다. PoW로 생성된 블록은 PoS 시스템에 의해 검증되며, 검증된 블록은 블록체인에 추가됩니다. Proof of Activity의 장점은 PoW를 통해 블록 생성에 일정한 작업 양을 요구함으로써 네트워크의 안전성을 확보하고, PoS를 통해 블록을 검증하는데 참여자들은 보유한 암호화폐를 사용하여 PoW의 작업부하와 에너지 소비를 줄이면서도 분산화와 보안을 유지합니다.

 

🔴 PoB ( Proof of Burn )

Proof of Burn은 암호화폐를 소각하여 일종의 낭비를 증명하는 방식입니다. 소각된 암호화폐의 양에 비례하여 참여자들은 블록 생성 권한과 보상을 받게 됩니다. PoB는 네트워크 보안을 유지하면서 암호화폐의 희소성을 증가시키는 목적으로 사용될 수 있습니다.

 

🔴 PoC ( Proof of Capacity )

Proof of Capacity는 참여자들이 하드 디스크 공간을 사용하여 블록을 생성하는 방식입니다. 디스크 공간의 용량과 사용 가능한 자원에 비례하여 블록 생성 권한과 보상을 받습니다. PoC는 일부 블록체인에서 플로팅 플롯이라고도 알려져 있습니다.

더보기

📌 플로팅 플롯

플로팅 플롯은 하드 드라이브의 일부 공간을 할당하여 생성되는 임시 파일입니다. 이 파일은 블록 생성에 필요한 계산 작업이 아닌, 저장 공간을 활용하여 생성됩니다. 플로팅 플롯은 미리 계산된 해시 퍼즐이 저장되어 있으며, 이를 통해 새로운 블록을 빠르게 생성할 수 있습니다.

 

플로팅 플롯을 생성하는 과정은 초기 설정 단계에서 이루어지며, 시스템의 하드 드라이브 공간을 활용합니다. 일반적으로 초기 설정에서는 플로팅 플롯을 생성하고 저장하는 데 시간이 소요되지만, 블록 생성 이후에는 계산 리소스를 거의 사용하지 않으므로 에너지 효율적이라고 알려져 있습니다.

 

📌 플로팅 플롯 생성 과정

 

1️⃣ 초기 설정

  • 플로팅 플롯을 생성하기 전에 초기 설정을 수행해야 합니다. 이 단계에서는 하드 드라이브의 일부 공간을 할당하고 해당 공간을 플로팅 플롯 생성에 사용할 것임을 지정합니다.

2️⃣ 플로팅 플롯 생성

  • 초기 설정이 완료되면 플로팅 플롯을 생성할 차례입니다. 이 단계에서는 주어진 저장 공간을 활용하여 플로팅 플롯 파일을 생성합니다. 플로팅 플롯은 사전 계산된 해시 퍼즐을 저장하고 있으며, 이를 통해 블록 생성에 기여할 수 있습니다.

3️⃣ 유효성 검사

  • 생성된 플로팅 플롯은 유효성 검사를 거쳐야 합니다. 이 단계에서는 플로팅 플롯의 내용을 확인하고, 해당 플롯이 블록 생성에 기여할 수 있는지 여부를 판단합니다. 유효성 검사는 블록체인 네트워크의 규칙에 따라 이루어지며, 플로팅 플롯의 내용과 일치하는지 확인됩니다.

4️⃣ 블록 생성 기여

  • 유효한 플로팅 플롯은 블록 생성에 기여할 수 있습니다. 이 단계에서는 플로팅 플롯이 새로운 블로의 생성 과정에 참여하게 됩니다. 기여된 플로팅 플롯은 네트워크에서 검증되고, 새로운 블록에 포함될 수 있습니다.

 

🔴 PoET ( Proof of Elapsed Time )

Proof of Elapsed Time은 랜덤한 대기 시간을 설정하는 시스템을 기반으로 합니다. 네트워크 참여자들은 일련의 랜덤한 대기 시간을 할당 받고, 그 중에서 가장 짧은 대기 시간을 가진 참여자가 블록을 생성할 권한을 얻습니다. 이러한 대기 시간은 참여자들 간에 평등하게 분배되며, 누구나 블록 생성에 참여할 기회를 가질 수 있습니다.

 

🔴 PoH ( Proof of History )

Proof of History는 블록체인 네트워크의 시간을 정확하게 기록하고 관리하는 역할을 합니다. 네트워크 참여자들은 일련의 시간 표식을 생성하여 블록에 첨부합니다. 이 시간 표식은 네트워크의 순서를 결정하는 역할을 수행하며, 다른 참여자들은 이를 검증하여 네트워크의 타임스탬프를 확인할 수 있습니다. Solana의 PoH는 공개 키 암호화를 사용하여 시간 표식을 생성하며, 이를 통해 높은 보안성을 제공합니다.

 

🔴 PoI ( Proof of Importance )

Proof of Importance는 참여자의 중요성을 측정하여 블록 생성 및 검증에 영향을 미치는 방식으로 동작합니다. 블록 생성에 참여하는 참여자들은 자신의 잔고에 자산을 예치하고, 신뢰성 있는 거래를 수행하며, 네트워크의 안정성과 보안을 높이는 데 기여합니다. 이러한 참여도에 따라 중요성 스코어가 결정되고, 이를 기반으로 블록 생성자와 검증자가 선정됩니다.

합의 메커니증 - crypto.com

🚫 시빌 공격 / 51% 공격

블록체인 합의 메커니즘과 시빌 공격은 서로 연관된 개념입니다. 합의 메커니즘은 블록체인 네트워크에서 참여자들 간의 합의를 도달하기 위한 규칙과 알고리즘을 의미합니다. 이는 블록 생성, 트랜잭션 검증, 네트워크 보안 등과 관련된 중요한 요소입니다.

 

시빌 공격은 합의 메커니즘의 보안성과 신뢰성을 악용하는 공격 형태로, 악의적인 개체가 다수의 가짜 신원을 생성하여 네트워크를 조작하려는 시도를 의미합니다. 시빌 공격자는 여러 개의 가짜 계정을 생성하고 네트워크 상에서 다수의 노드로 나타난 것처럼 위장함으로써 네트워크 상의 합의 과정을 왜곡하거나 조작할 수 있습니다.

 

따라서 합의 메커니즘이 시빌 공격에 얼마나 강력하게 대응하는지가 중요합니다. 합의 메커니즘이 시빌 공격을 어렵게 만드는 방법을 채택하여 네트워크 상의 참여자들의 신원을 확인하고 검증함으로써 시빌 공격의 위협을 줄일 수 있습니다. 예를 들어, 합의 메커니즘은 투표 기반의 합의를 사용하는 경우 신뢰할 수 있는 신원을 가진 참여자에게만 투표 권한을 부여하거나, 가상화폐를 소비하는 비용을 요구하여 시빌 공격자의 경제적 부담을 증가시킬 수 있습니다.

시빌 공격 - coincarp