블록체인 합의 알고리즘을 이해하기 위한 가이드
게시 됨: 2019-10-21블록체인은 더 높은 투명성, 보안 및 불변성을 제공하는 분산된 분산 네트워크입니다.
우리 모두 알고 있습니다 !!
그러나 어떻게 이 모든 것을 달성할 수 있는지 궁금하신가요?
중앙 집중식 권한이 없다면 누가 이 네트워크를 관리하고 모든 거래를 확인합니까?
흥미롭게 들립니다.
블록체인 합의 알고리즘 입니다. 이 포괄적인 가이드에서 이야기할 블록체인 개발 세계 의 핵심 부분 입니다 .
목차:
- 블록체인 합의 알고리즘의 정의
- 합의 메커니즘의 목적
- 시장에서 인기 있는 블록체인 합의 알고리즘
- 좋은 블록체인 합의 메커니즘의 속성
- 잘못된 합의 프로토콜에 의존하는 결과
- 자주 묻는 질문
- 결론
블록체인 합의 알고리즘이란?
블록체인 합의 알고리즘이 무엇인지에 대한 가장 간단한 대답은 블록체인 네트워크의 모든 피어가 분산 원장의 실시간 상태에 대한 수락 또는 합의를 각각 공유하는 절차라는 것입니다.
합의 메커니즘을 통해 블록체인 네트워크는 안정성을 확보하고 서로 다른 노드 간에 신뢰 수준을 구축하는 동시에 환경의 보안을 보장할 수 있습니다. 이것이 모든 블록체인 앱 개발 가이드 와 분산 원장 환경의 모든 dApp 프로젝트 의 중요한 부분 중 하나인 이유입니다 .
이러한 알고리즘은 다양한 목표를 기반으로 작동하며 이 중 몇 가지는 이 기사의 다음 섹션에서 다룰 것입니다.
블록체인 합의 메커니즘의 목표
1. 통합계약
합의 메커니즘 의 주요 목표 중 하나는 통일된 합의를 달성하는 것입니다.
권한에 대한 신뢰가 필요한 중앙 집중식 시스템과 달리 사용자는 서로에 대한 신뢰를 구축하지 않고도 탈중앙화 방식으로 운영할 수 있습니다. 분산형 블록체인 네트워크에 포함된 프로토콜은 프로세스에 관련된 데이터가 사실이고 정확하며 공공 원장의 상태가 최신 상태인지 확인합니다.
2. 경제 인센티브 조정
자체적으로 규제하는 무신뢰 시스템을 구축하는 경우 네트워크 참가자의 이해 관계를 조정하는 것이 필수입니다.
이러한 상황에서 합의 블록체인 프로토콜은 좋은 행동에 대해 보상을 제공하고 나쁜 행위자를 처벌 합니다 . 이런 식으로 경제적 인센티브 도 규제합니다.
3. 공정하고 공평한
합의 메커니즘을 통해 누구나 네트워크에 참여 하고 동일한 기본 사항 을 사용할 수 있습니다 . 이러한 방식으로 블록체인 시스템의 오픈 소스 및 탈중앙화 속성을 정당화합니다.
4. 이중 지출 방지
합의 메커니즘은 검증되고 유효한 공개 투명 원장에 해당 거래만 포함되도록 하는 특정 알고리즘을 기반으로 작동합니다. 이것은 이중 지출의 전통적인 문제, 즉 디지털 통화를 두 번 사용하는 문제를 해결합니다.
5. 내결함성
Consensus 방식의 또 다른 특징 은 블록체인이 내결함성, 일관성 및 신뢰성을 보장한다는 것입니다. 즉, 관리되는 시스템은 실패 및 위협이 발생하는 경우에도 무기한 작동합니다.
현재 생태계에는 수많은 블록체인 합의 알고리즘 이 있으며 더 많은 사람들이 시장에 진입하려고 합니다. 이것은 모든 블록체인 개발 회사 와 열정적인 기업가가 좋은 합의 프로토콜을 정의하는 요소와 가난한 프로토콜을 사용하는 것의 가능한 영향을 숙지하는 것을 필수적으로 만듭니다.
블록체인 합의 방법 의 기본을 다루 면서 주제에 대해 더 깊이 파고들어 대중적인 유형의 합의 메커니즘을 살펴보겠습니다.
시장에서 인기 있는 블록체인 합의 알고리즘
1. 작업 증명(PoW)
Satoshi Nakamoto 가 개발한 작업 증명은 블록체인 도메인에서 사용되는 가장 오래된 합의 메커니즘입니다. 참여 노드를 마이너라고 하는 마이닝이라고도 합니다.
이 메커니즘에서 광부는 포괄적인 계산 능력을 사용하여 복잡한 수학 퍼즐을 풀어야 합니다. GPU 마이닝, CPU 마이닝, ASIC 마이닝 및 FPGA 마이닝과 같은 다양한 형태의 마이닝 방법을 사용합니다. 그리고 가장 빨리 문제를 해결한 사람은 보상으로 블록을 받습니다.
그러나 그 과정이 그리 쉽지만은 않습니다. 퍼즐은 시행착오를 통해서만 풀 수 있습니다. 또한 퍼즐의 복잡성 수준은 블록이 채굴되는 속도에 따라 증가합니다. 따라서 난이도에 대처하기 위해서는 일정 시간 내에 새로운 블록을 생성하는 것이 필수가 됩니다.
작업 증명 메커니즘은 Bitcoin, Litecoin, ZCash, Primecoin, Monero 및 Vertcoin과 같은 여러 암호화폐에서 사용됩니다.
이 메커니즘에서 설명하는 비트코인 알고리즘은 nonce를 임의의 값으로 사용하여 해시 값의 출력을 변경합니다. 비트코인 합의 알고리즘에서 각 블록은 해시 값을 생성하기 위한 것이며 nonce는 해당 해시 값을 생성하는 데 사용되는 매개변수입니다.
구현 측면에서 작업 증명(PoW)은 금융 산업뿐만 아니라 의료, 거버넌스, 관리 등에 영향을 미쳤습니다. 실제로 보안 강화를 위해 주소를 통한 다중 채널 지불 및 다중 서명 거래의 기회를 제공했습니다.
2. 지분 증명(PoS)
지분 증명은 PoW 합의 프로토콜의 가장 기본적이고 환경 친화적인 대안입니다.
이 블록체인 방식에서 블록 생산자는 채굴자가 아니라 검증자처럼 행동합니다. 그들은 에너지를 절약하고 시간을 줄이는 블록을 만들 수 있는 기회를 얻습니다. 하지만 검증인이 되려면 일정 금액의 돈이나 지분을 투자해야 합니다.
또한 PoW의 경우와 달리 이 합의 모델에는 보상 시스템이 없기 때문에 이 알고리즘에서는 채굴자에게 거래 수수료를 받을 수 있는 특권이 제공됩니다.
이것은 전체적으로 Ethereum과 같은 브랜드가 Ethereum 2.0 업데이트 에서 PoW에서 PoS로 모델을 업그레이드하도록 권장했습니다 . 또한 Dash, Peercoin, Decred, Reddcoin 및 PivX와 같은 다양한 블록체인 생태계가 제대로 작동하도록 도왔습니다.
이제 PoS가 이전에 PoW와 관련된 다양한 문제를 해결했지만 시장에는 아직 해결되지 않은 많은 과제가 있었습니다. 이러한 문제를 완화하고 향상된 블록체인 환경을 제공하기 위해 여러 가지 PoS 변형이 존재했습니다.
지분 증명(PoS)의 두 가지 인기 있는 변형은 DPoS와 LPoS입니다.
- 위임 지분 증명(DPoS)
DPoS(Delegated Proof of Stake)의 경우 참여자가 코인을 스테이킹하고 특정 수의 대표에게 투표하여 더 많이 투자할수록 더 많은 가중치를 받습니다. 예: 사용자 A가 대리인을 위해 10개의 코인을 사용하고 사용자 B가 5개의 코인을 투자하는 경우 A의 투표는 B의 투표보다 더 많은 가중치를 받습니다.
대리인은 또한 거래 수수료 또는 일정량의 코인의 형태로 보상을 받습니다.
이러한 지분 가중 투표 메커니즘으로 인해 DPoS는 가장 빠른 블록체인 합의 모델 중 하나이며 디지털 민주주의로 매우 선호됩니다. 이 블록체인 합의 메커니즘의 실제 사용 사례 중 일부는 Steem, EOS 및 BitShares입니다.
- 임대 지분 증명(LPoS)
LPoS는 Waves 플랫폼 에서 작동하는 PoS 합의 메커니즘의 향상된 버전입니다 .
일정량의 암호화폐가 있는 각 노드가 다음 블록체인을 추가할 수 있는 일반적인 지분 증명 방식과 달리 사용자는 이 합의 알고리즘 블록체인에서 자신의 잔액을 전체 노드에 임대할 수 있습니다. 그리고 풀 노드에 더 많은 양을 임대하는 쪽이 다음 블록을 생성할 확률이 더 높습니다. 또한 임대인은 전체 노드에서 징수한 거래 수수료의 일정 비율로 보상을 받습니다.
이 PoS 변종은 공개 암호화폐 개발을 위한 효율적이고 안전한 옵션입니다.
3. 권한 증명
권한 증명은 네트워크에서 검증인의 신원이 위험에 처한 지분 증명의 수정된 버전입니다. 여기서 검증인의 신원을 확인하기 위해 신원은 검증인의 개인 식별 정보와 공식 문서 간의 유사성을 의미합니다. 이러한 검증인은 네트워크에 평판을 올려줍니다. 권한 증명에서 노드(검증자가 되는)는 새 블록을 생성할 수 있는 유일한 노드입니다. 신원이 위험에 처한 검증자는 블록체인 네트워크를 보호하고 보존하기 위해 인센티브를 받습니다. 이 증명에서 검증인의 수는 약 25명 이하로 상당히 적습니다.
4. 비잔틴 장애 허용(BFT)
비잔틴 장애 허용은 이름에서 알 수 있듯이 비잔틴 장애(비잔틴 장군 문제라고도 함)를 처리하는 데 사용됩니다. 그들은 의심스럽다.
이 비디오를 통해 비잔틴 장군 문제에 대해 자세히 알아보십시오.
Blockchain 분야에서 가장 중요한 BFT 합의 모델의 두 가지 변형은 PBFT와 DBFT입니다.
- 실용적인 비잔틴 장애 허용(PBFT)
PBFT는 메시지의 유효성에 대한 결정을 평가하는 계산을 수행하여 사용자가 자신에게 전달된 메시지를 확인할 수 있도록 함으로써 비잔틴 장군의 문제를 해결하는 경량 블록체인 알고리즘입니다.
그런 다음 당사자는 최종적으로 이에 대한 결정을 처리하는 다른 노드에 자신의 결정을 발표합니다. 이런 식으로 최종 결정은 다른 노드에서 검색된 결정에 의존합니다.
Stellar, Ripple 및 Hyperledger Fabric은 이 블록체인 합의 메커니즘의 일부 사용 사례입니다.
- 위임된 비잔틴 결함 허용(DBFT)
NEO에서 도입한 Delegated Byzantine Fault Tolerance 메커니즘은 DPoS 합의 모델과 유사합니다. 여기에서도 NEO 토큰 보유자는 대표자에게 투표할 기회를 얻습니다.
그러나 이것은 그들이 투자하는 통화의 양과 무관합니다. 기본 요구 사항, 즉 확인 된 신원, 올바른 장비 및 1,000 GAS 를 충족하는 사람은 대리인이 될 수 있습니다. 그런 다음 그 대표자 중 한 명이 무작위로 연사로 선택됩니다.
발표자는 검증을 기다리는 트랜잭션에서 새 블록을 생성합니다. 또한 그는 모든 거래를 감독하고 네트워크에 기록할 책임이 있는 투표 대리인에게 제안서를 보냅니다. 이 대표자들은 데이터의 정확성과 발표자의 정직성을 확인하기 위해 제안을 공유하고 분석할 자유가 있습니다. 그런 다음 대리인의 2/3가 유효성을 검사하면 블록이 블록체인에 추가됩니다.
이러한 유형의 블록체인 합의 프로토콜은 '중국의 이더리움'이라고도 하며 블록체인에서 자산을 디지털화하고 스마트 계약 을 제공하여 '스마트 경제'를 구축하는 데 유용한 리소스가 될 수 있습니다.
5. 직접 비순환 그래프(DAG)
Blockchain을 사용하는 모든 모바일 앱 개발 서비스 회사 가 익숙해야 하는 또 다른 기본적이면서도 주요 블록체인 합의 모델 은 DAG입니다.
이러한 유형의 블록체인 합의 프로토콜에서는 모든 노드 자체가 '채굴자'가 될 준비를 합니다. 이제 광부가 근절되고 거래가 사용자 스스로 검증되면 관련 수수료가 0으로 줄어듭니다. 가장 가까운 두 노드 간의 트랜잭션 유효성 검사가 더 쉬워져 전체 프로세스가 가볍고 빠르고 안전해집니다.
DAG 알고리즘의 가장 좋은 두 가지 예는 IOTA와 Hedera Hashgraph 입니다.
이것이 개발 환경의 주요 합의 모델이지만, 다음과 같은 다양한 블록체인 합의 메커니즘이 천천히 그리고 점차적으로 추진력을 얻기 시작했습니다.
6. 용량 증명(PoC)
용량 증명(PoC) 메커니즘에서 모든 복잡한 수학 퍼즐에 대한 솔루션은 하드 디스크와 같은 디지털 저장소에 축적됩니다. 사용자는 이러한 하드 디스크를 사용하여 블록을 생성할 수 있으며, 솔루션을 가장 빨리 평가하는 사람이 블록 생성에 대한 더 나은 기회를 얻을 수 있습니다.
이어지는 과정을 플로팅(Plotting)이라고 합니다. PoC 블록체인 합의 프로토콜에 의존하는 두 가지 암호화폐는 Burstcoin과 SpaceMint입니다.
7. 소각 증명(PoB)
에너지 소비 측면에서 PoW 및 PoS에 대한 대체 솔루션으로 간주되는 소각 증명(PoB) 합의 모델은 채굴자가 가상 암호 화폐 토큰을 '소각'하거나 '파손'하도록 하는 원칙에 따라 작동하며, 이는 추가로 작성 권한을 제공합니다. 동전에 비례하여 블록. 더 많은 코인을 태울수록 그들이 얻는 모든 코인에 대해 새 블록을 선택할 확률이 높아집니다.
하지만 코인을 소각하기 위해서는 블록 검증에 쓸 수 없는 주소로 보내야 한다.
이것은 분산 합의의 경우에 널리 사용됩니다. 그리고 이러한 합의 메커니즘의 가장 좋은 예는 슬림 코인입니다.
8. 신원 증명(PoI)
PoI(Proof of Identity)의 개념은 인증된 ID의 개념과 같습니다. 각 특정 트랜잭션에 첨부되는 사용자의 개인 키에 대한 암호화 확인 부분입니다. 식별된 각 사용자는 네트워크의 다른 사용자에게 표시할 수 있는 데이터 블록을 만들고 관리할 수 있습니다.
이 블록체인 합의 모델은 생성된 데이터의 신뢰성과 무결성을 보장합니다. 따라서 스마트시티 도입에 좋은 선택이다.
9. 활동 증명(PoA)
PoA는 기본적으로 PoW와 PoS 블록체인 합의 모델의 융합을 통해 설계된 하이브리드 접근 방식입니다.
PoA 메커니즘의 경우 채굴자들은 PoW와 마찬가지로 특수 하드웨어와 전기 에너지를 사용하여 암호화 퍼즐을 가장 빨리 풀기 위해 경쟁합니다. 그러나 그들이 만나는 블록에는 블록 승자의 신원 및 보상 거래에 대한 정보만 있습니다. 여기서 메커니즘이 PoS로 전환됩니다.
검증인(거래 검증을 위해 임명된 주주)은 블록의 정확성을 테스트하고 보장합니다. 블록이 여러 번 확인되면 유효성 검사기가 완전한 블록으로 활성화됩니다. 이것은 열린 트랜잭션이 프로세스이고 마침내 발견된 블록 컨테이너에 통합되었음을 확인합니다.
또한 블록 보상은 검증인이 공유할 수 있도록 분할됩니다.
이 메커니즘의 두 가지 실제 구현은 Espers 및 Decred 코인입니다.
10. 경과 시간 증명(PoET)
PoET는 CPU 아키텍처와 채굴 하드웨어의 양이 채굴자가 블록을 획득하는 시기와 빈도를 알고 있다는 사실을 고려하여 PoW 메커니즘과 관련된 암호화 퍼즐을 인수하려는 의도로 Intel에서 도입했습니다.
그것은 참가자의 더 많은 부분에 대한 확률을 공정하게 분배하고 확장한다는 아이디어를 기반으로 합니다. 따라서 모든 참여 노드는 다음 마이닝 프로세스에 참여하기 위해 특정 시간을 기다려야 합니다. 보류 시간이 가장 짧은 멤버에게 블록을 제안해야 합니다.
동시에 모든 노드는 자체 대기 시간을 갖고 그 후 절전 모드로 들어갑니다.
따라서 노드가 활성화되고 블록을 사용할 수 있게 되면 해당 노드는 '운이 좋은 승자'로 간주됩니다. 그런 다음 이 노드는 분산 속성을 유지하고 보상을 받으면서 정보를 네트워크 전체에 퍼뜨릴 수 있습니다.
11. 중요도 증명(PoI)
NEM 에서 도입한 PoI는 운영을 위한 주주 및 검증인의 역할을 고려하는 PoS 프로토콜의 변형입니다. 그러나 이것은 지분의 크기와 기회에 의해서만 영향을 받는 것은 아닙니다. 평판, 전반적인 균형 및 아니요와 같은 다양한 기타 요소. 특정 주소를 통해 이루어진 트랜잭션의 수도 여기에 역할을 합니다.
POI 합의 모델을 기반으로 하는 네트워크는 공격에 비용이 많이 들고 네트워크 보안에 기여한 사용자에게 보상합니다.
지금까지 공유된 정보는 다양한 블록체인 합의 프로토콜을 차별화하는 데 도움이 되었을 것입니다.
그러나 이를 단순화하기 위해 다음은 블록체인 합의 알고리즘 비교 표입니다.
이제 블록체인 합의를 좋은 것으로 만드는 요소를 결정하는 것부터 시작하겠습니다.
좋은 블록체인 합의 메커니즘의 속성
1. 안전
좋은 합의 메커니즘에서 모든 노드는 프로토콜 규칙에 따라 유효한 결과를 생성할 수 있습니다.
2. 포괄
좋은 합의 블록체인 메커니즘은 네트워크의 모든 특정 노드가 투표 프로세스에 참여하도록 합니다.
3. 참여
모든 노드가 블록체인의 데이터베이스 업데이트에 적극적으로 참여하고 기여하는 합의 메커니즘을 좋은 합의 모델이라고 합니다.
4. 평등주의
좋은 메커니즘의 또 다른 특성은 노드에서 받은 모든 투표에 동일한 가치와 가중치를 부여한다는 것입니다.
이를 염두에 두고 이러한 요소를 고려하지 않고 개발 프로세스에 좋지 않은 합의 모델을 도입할 때 어떤 일이 발생하는지 알아보겠습니다.
잘못된 합의 프로토콜 선택의 결과
1. 블록체인 포크
열악한 블록체인 합의 방법을 선택하면 체인의 취약성이 증가합니다. 블록체인 애호가와 개발자가 직면한 취약점 중 하나는 블록체인 포크입니다.
블록체인 포크는 평신도 언어로 단일 체인이 둘 이상으로 분기되는 상황입니다. 블록체인 포크와 그 유형에 대한 자세한 설명은 아래에 포함된 비디오에서 볼 수 있습니다.
블록체인 포크가 발생하면 애플리케이션이 예측할 수 없는 방식으로 작동하기 시작하여 앞서 두 개 이상의 분기 노드를 생성합니다.
2. 성능 저하
나쁜 합의 블록체인 메커니즘을 고려하면 노드가 오작동하거나 네트워크 파티션 이 발생 합니다. 이는 노드 간 메시지 교환 프로세스를 지연시키고 애플리케이션의 대기 시간을 증가시켜 궁극적으로 성능 수준을 낮춥니다.
3. 합의 실패
잘못된 합의 메커니즘을 비즈니스 모델에 통합하는 또 다른 효과는 합의 실패입니다. 이 상황에서 노드의 일부는 프로세스에 참여하지 못하므로 투표가 없으면 합의가 정확하고 원하는 결과를 제공하지 못합니다.
이제 블록체인 합의 방법의 기본 사항을 다루었으므로 주제에 대해 더 깊이 파고들어 대중적인 유형의 합의 메커니즘을 살펴보겠습니다.
블록체인 합의 알고리즘에 대해 자주 묻는 질문
Q. 블록체인에서 합의 프로토콜이란 무엇입니까?
합의 프로토콜은 블록체인 생태계 에서 두 개 이상의 노드가 상호 작용하고 정보를 교환하며 관련 프로세스를 수행하는 방법을 제어하는 일련의 규칙 또는 절차입니다 .
Q. 이더리움은 어떤 합의 모델을 사용합니까?
이전에 이더리움은 작업 증명(PoW) 합의 모델로 작업했습니다. 그러나 이제는 PoS(Proof of Stake) 블록체인 합의 알고리즘 으로 전환 되었습니다.
마지막 생각
결국 이러한 모든 구성 요소는 분산 네트워크에서 합의를 도출하는 유사한 목표를 가지고 있습니다. 그러나 목표를 공유한 후에도 이러한 메커니즘은 합의에 도달하는 방식이 다릅니다. 이상적인 합의는 아직 존재하지 않지만 이러한 프로토콜의 변화하는 요구 사항에 대해 합의 메커니즘이 장기적으로 어떻게 발전 및 조정되었는지 보는 것은 흥미롭고 감동적이며 획기적인 아이디어가 실현되는 것을 관찰하는 것은 의심할 여지 없이 흥미진진할 것입니다. .
블록체인 네트워크는 커밋되는 모든 단일 트랜잭션을 확인하는 합의 알고리즘 없이는 제대로 작동할 수 없으므로 비즈니스 네트워크의 필요성에 따라 현명하게 선택하는 것이 중요합니다.