한국어
자유게시판

알고리즘 합의 프로토콜 심층 분석

title: 퀀텀아이콘껀텀 2019.08.21 20:58 조회 수 : 438

알고리즘 합의 프로토콜 심층 분석

Biquan-5d5cae70df031

* 면책 조항 :이 기사는 연구원의 개인적인 견해만을 나타내며 Qtum Quantum Chain Foundation의 입장에 대한 개요는 나타내지 않습니다 .

1.1 소개

Algorand는 그것이 "공개 체인 불가능 삼각형"을 뚫었다 고 말했다. 프로젝트 설립자는 MIT CSAIL 연구소의 Silvio Micali 교수 인 Turing Award 수상자이다. Algorand가 제안한 컨센서스 계약은이 프로젝트의 주요 내용으로, Algorand 컨센서스 프로토콜의 작동 원리를 분석하고 그 장점과 단점을 분석합니다.

1.2 Algorand 디자인의 원래 의도

Algorand가 해결하고자하는 핵심 문제는 낮은 대기 시간 (지연 시간)과 분산 네트워크의 높은 신뢰도 사이의 모순입니다 [1].

이 중 지연은 거래 시작부터 거래 확인까지의 시간을 말하며 신뢰는 발행 된 거래가 변경되지 않을 확률을 나타냅니다.

Bitcoin 네트워크에서 거래의 신뢰를 높이려면 사용자는 6 블록 확인 (약 1 시간) 확인 지연을 기다려야합니다 .6 미만의 확인 또는 0 확인과 같은 낮은 대기 시간을 선택한 경우 그것은 필연적으로 낮은 신뢰로 이어지고 "이중화"공격의 가능성을 증가시킬 것이다. 이중 꽃 문제는 대부분의 암호화 된 디지털 통화의 핵심 문제입니다. 비트 코인은 PoW 컨센서스를 사용하여 해결되지만 체인 자체는 여전히 포크 가능성이 있으며 긴 컨센서스 프로세스 및 확인 시간이 필요합니다.

동시에 Algorand는 Bitcoin의 PoW 마이닝 비용이 크고, 거래 확인 시간이 길고, 포크가 포크하기 쉽고, 네트워크가 중앙에 있으며 확장 성이 떨어지는 문제를 해결하려고합니다.

1.3 Algorand 란 무엇입니까?

공식 설명에 따르면, Algorand는 순수한 PoS 컨센서스가 허가없이 공개 된 체인 프로젝트로, 개선 된 비잔틴 컨센서스 프로토콜과 결합하여 빠른 거래 확인을 달성 할 수 있으며 거의 ​​포크없이 거래 수에 영향을 미치지 않고 사용자 수를 무한대로 확장 할 수 있습니다. 속도. 동시에 "확장, 보안, 분산", "공개 체인 불가능 삼각형"[2].

(참고 :“공개 체인 불가능 삼각형”의 정확성과 특정 정의는 더 논란의 여지가 있습니다 [7]. Algorand : 확장 성은 더 큰 사용자 규모에서도 더 높은 처리량을 달성 할 수 있음을 의미합니다 [8], 보안은 악의적 인 공격에 대처할 수있는 능력을 말하며 [9] 분권화는 네트워크가 완전히 개방되고 노드에 대한 임계 값이없는 것을 말합니다 [10].

  • 확장 성 : Algorand는 검증 가능한 임의 함수 (VRF)를 통해 블록의 생산자와 검증자를 무작위로 선택합니다 학습자가 선택되면 생산자 나 검증자는 간단히 자신의 신분을 증명하기 위해 짧은 메시지를 방송합니다. 생성 된 각 새 블록에 대해 네트워크에서 교환해야하는 메시지는 사용자 수가 증가해도 변경되지 않으므로 사용자 크기가 증가하더라도 시스템은 더 높은 TPS (초당 처리 된 트랜잭션 수)를 유지할 수 있습니다. 알고리즘의 TPS는 비트 코인의 TPS입니다.

  • 보안 : 위의 VRF는 임의로 생산자와 검증자를 선택하는 데 사용되며 선택된 프로세스는 노드에 의해 완전히 완료되므로 Algorand 네트워크의 공격자는 다음 블록 생산자와 검증자를 미리 알 수 없으므로 공격을 완료 할 수 없습니다. 구체적으로, 생산자와 검증 자의 신원은 그들이 선택한 인증 정보를 확인하고 해당 인증 정보를 브로드 캐스트 할 때만 공개됩니다. 현재 공격자가 다양한 공격을 즉시 수행하더라도 새로운 블록의 올바른 수정을 막을 수는 없습니다. 네트워크에서 메시지가 확산되었습니다.

  • 탈 중앙화 : Algorand의 각 블록 생산자 및 검증자는 임의로 선택되며 네트워크에 참여하기위한 임계 값이 없으므로 완전히 탈 중앙화됩니다.

Algorand 합의 프로토콜은 아래에 자세히 설명되어 있습니다.

알고리즘 프로토콜 세부 사항

거의 모든 퍼블릭 체인 프로젝트에 대한 블록 생성 및 합의 프로세스는 두 단계로 추상화 할 수 있습니다.

  1. 새로운 블록을 생성하려면 블록 생산자를 선택하십시오

  2. 다른 노드는 새로운 블록에 대한 합의에 도달

위의 단계가 반복되어 결국 "변조 할 수없는"블록 체인을 형성합니다.

전체 합의 프로세스는 단순하지만 실제 구현에서는 몇 가지 주요 문제를 해결해야합니다.

  • 블록 생산자를 선택하고 공정성과 예측 불가능 성을 보장하는 방법은 무엇입니까?

  • 새로운 블록에 대한 합의에 도달하는 방법?

  • 스플릿 엔드를 피하는 방법?

  • 보안을 향상시키는 방법?

  • 더 큰 사용자로 확장하는 방법?

Bitcoin은 해시 함수의 임의성을 사용하여 공정성을 보장하고 PoW (Workload Proof)를 사용하여 합의에 도달하며 동시에 전력 공격에 어느 정도 저항합니다. 그러나 Bitcoin은 여전히 ​​컴퓨팅 리소스 소비, 확인 시간이 길고 포크가 쉽고 확장 성이 떨어지는 위의 문제에 직면 해 있습니다. Qtum으로 대표되는 PoS (Pure Proof of Entitlement) 합의 메커니즘을 사용하는 프로젝트도 해시 함수를 사용하며 많은 컴퓨팅 리소스를 소비하지 않지만 여전히 포크, 보안 및 확장 성 문제가 있습니다.

Algorand는 위의 5 가지 문제를 해결하기위한 새로운 합의 메커니즘을 제안했습니다.

2.1 기본 지식

Algorand Consensus Agreement를 공식적으로 도입하기 전에이 기사는 독자가 다음 명사의 의미를 기본적으로 이해하고 있다고 가정합니다.

  • 해시 기능

  • 공개 / 개인 키

  • 디지털 서명

  • 거래

  • 차단

  • 예약

  • 컨센서스

  • 비잔틴 계약 (BA)

  • 정직한 노드

  • 공격 노드

  • P2P 통신

독자가 위의 개념을 이해하지 못하는 경우 관련 키워드를 검색하여 자세히 알아보고 다음을 읽으십시오.

2.2 Algorand의 기본 프로세스

Algorand 프로토콜은 시간 순서에 따라 다른 라운드로 나눌 수 있으며 각 라운드는 컨센서스에 도달하여 새로운 블록을 생성합니다. 일반적인 일반적인 프로세스는 다음과 같습니다.

  1. 각 합의 라운드가 시작될 때 잠재적 인 리더가 무작위로 선택되고 각각 새로운 블록을 생성하며 새로운 블록이 서명되고 방송됩니다.

  2. 검증 그룹을 무작위로 선택하여 리더 브로드 캐스트의 새 블록을 확인하고 합의에 도달 한 후 새 블록을 브로드 캐스트하고 다음 라운드에 들어갑니다.

Algorand 합의 프로토콜의 세부 사항은 아래에 자세히 설명되어 있으며이 섹션은 주로 [4]를 참조합니다.

2.3 Algorand의 무작위성 보장 : 검증 가능한 임의 함수

Algorand는 VRF를 사용하여 블록 생산자와 검증자를 선택하여 모든 합의 참가자가 무작위로 공정하게 선택되도록합니다. VRF (Verifiable Random Function)는 Micali 교수가 제안한 의사 난수 (pseudo-random) 기능으로, 일반 난수 기능과 같이 다른 입력 (엄밀히 말하면 "의사 난수")에 대해 무작위로 출력됩니다. ). 호출자가 임의 출력이 실제로 호출자에 의해 생성되었다는 증거를 제공 할 수 있다는 점에서 고유합니다.

VRF는 다양한 방법으로 구현 될 수 있으며 Micali et al.은 원래 논문에서보다 복잡한 구현을 제공합니다 [3]. Algorand는 해시 함수 및 디지털 서명 기능을 사용하여보다 간단한 VRF 구현을 제공합니다. 특정 구현은 호출자 i가 디지털 서명 및 해시 함수를 통해 입력 m을 고정 길이 출력 H [SIGi (m)], 즉 m-> H [SIGi (m)]에 매핑하는 것입니다.

모든 입력 m의 경우, 다른 호출자 i에 의해 생성 된 디지털 서명 SIGi (m)은 고유하며, 다른 입력의 경우 해시 함수 H의 출력은 임의이므로 위의 매핑은 VRF의 "랜덤 성"요구 사항을 준수합니다. 동시에 i의 디지털 서명 SIGi (m)은 공개 키로 인증 할 수 있으므로 VRF "확인 가능"기능도 준수하며 SIGi (m)은 VRF에서 언급 된 "증거"입니다.

이 기능은 아래에 설명 된대로 모든 노드에서 합의 참가자를 임의로 선택하는 데 특히 적합합니다.

2.3.1 각 블록 생산자 (리더)를 무작위로 선택

각 합의 라운드가 시작될 때 각 노드는 다음 VRF를 통해 잠재적 인 리더임을 독립적으로 확인할 수 있습니다.

.H [SIG (r, 1, Q (r-1))] <= 1 / SIZE (PK (rk))

여기서 H는 해시 연산입니다 .SIG는 서명 연산입니다 .r은 현재 라운드입니다 .Q (r-1)은 r-1 라운드의 시드입니다 (다음 2.6에 설명 됨); SIZE (PK (rk) rk 라운드에서 필요한 모든 공개 키의 수입니까 (rk? k가 역 추적 요소 인 이유는 섹션 2.6에서도 설명 됨) 공식이 시작됩니다. 해시 결과가 소수점 이하 자릿수로 변환되므로 결과는 다음과 같습니다. [0,1)의 값입니다.

노드는 위의 서명의 해시 값이 자체 개인 키로 요구 사항을 충족하는지 여부를 계산하여 후보 리더에 속하는지 여부를 알고 프로세스의 다른 노드와 정보를 교환 할 필요가 없습니다. 해시 함수 출력의 임의성으로 인해 요구 사항을 충족하는 후보 노드가 임의로 선택되었다고 간주 할 수 있습니다. 후보 노드는 새로운 블록을 생성하고 전체 네트워크에 서명을 제공하여 그 신원을 확인할 수있다. 후보 리더가 여러 명인 경우 해시 값이 가장 작은 리더가 후속 컨센서스에서 현재 라운드의 최종 리더가됩니다. 리더가 생성 한 블록 Br에는이 라운드의 모든 거래와 위에서 언급 한 증명 정보가 포함되어 있으며 이는 검증 팀 구성원이 확인합니다.

2.3.2 각 라운드의 각 단계에 대한 검증 그룹을 무작위로 선택

검증 그룹 구성원의 선택은 위의 프로세스와 유사하며 각 라운드 및 모든 단계에서 모든 노드가 검증 그룹 구성원에 속하는지 여부를 독립적으로 확인할 수 있습니다.

.H [SIG (r, s, Q (r-1))] <= n / SIZE (PK (rk))

s가 라운드의 다른 단계 인 경우, Algorand는 각 라운드의 각 단계마다 보안을 강화하기 위해 서로 다른 검증 그룹을 가지고 있습니다 .n은 예상되는 검증 그룹 멤버 수이며 수동으로 설정할 수 있습니다. 다른 매개 변수는 의미하지 않습니다 다시 반복하십시오.

후보 리더와 마찬가지로, 검증 그룹 구성원의 각 단계는 무작위로 선택되며, 신원을 확인한 후, 검증 노드는 합의 검증 프로세스에 참여하기 시작하고 서명을 공개하여 신원을 증명할 수 있습니다.

2.3.3 지분 증명 (PoS) 메커니즘 소개

전술 한 랜덤 선택 프로세스는 토큰 보유자의 가중치를 고려하지 않으며, 악의적 인 노드는 큰 확률로 다수의 유효한 개인 키를 생성함으로써 블록의 생산자 및 검증자가 될 수있다. Algorand는 발표 된 구현 제안에서 HMM (Hoest Honor Majority of Money)이라는 조건부 가설을 도입했으며, 기본 아이디어는 위의 무작위 선택 프로세스에서 가중치로 토큰 보유 (Stake)를 도입하는 PoS 컨센서스 메커니즘에서 파생되었습니다. 보유 수가 많은 노드가 선택 될 확률이 높고 토큰 보유자가 네트워크의 보안을 보호하는 경향이 있습니다. 구체적으로는 다음과 같이 표현할 수 있습니다.

.H [SIG (r, 1, Q (r-1))] <= (a (i, r) / M) * (1 / SIZE (PK (rk)))

여기서 a (i, r) / M은 총 토큰 수 M으로 노드가 보유한 코인 수의 가중치입니다. 나머지 프로세스는 이전 설명과 일치했습니다.

2.4 Algorand가 새로운 블록에 동의하는 방법 : 개선 된 비잔틴 계약 BA *

Algorand의 검증자가 새로운 블록에 대한 합의에 도달 한 프로세스는 실제로 Algorand가 BA *라고하는 개선 된 비잔틴 계약이었습니다.

BA *는 개선 된 이진 비잔틴 계약 (BBA)과 등급별 합의 (프로토콜 GC)의 조합입니다 [5].

2.4.1 이진 비잔틴 프로토콜 BBA 개선 *

Algorand가 도입 한 BBA *는 개선 된 이진 비잔틴 프로토콜입니다 (이른바 이진, 즉 0 또는 1 합의 만 달성 할 수 있음). 정직한 노드가 2/3를 초과하면 BBA *가 빠르게 합의에 도달 할 수 있습니다. 특정 프로세스는 3 단계주기이며주기의 각 단계는 합의에 도달 할 확률이 1/3입니다.

노드간에 P2P 통신이 필요합니다. 선택한 검증 노드에 악성 노드가 없다고 가정하고 검증 그룹의 총 노드 수는 n> = 3t + 1이며, 즉 악성 노드가 1/3을 초과하지 않습니다. 프로토콜 프로세스는 다음과 같습니다.

Biquan-5d5caf9c4aef5

위 계약에서 각 기호의 구체적인 의미는 [4]를 참조하십시오. 모든 검증 노드 i는 초기 값 bi (bi = 0 또는 1)를 가지며, 각 검증 노드는 초기 값을 프로토콜 시작시 다른 검증 노드로 보냅니다.

프로토콜의 첫 번째 단계 (1 단계)는 0 프로세스로 돌아 가기입니다.

  • 검증 노드 i에 의해 수신 된 0의 수가 총 검증 노드 수의 2/3를 초과하면, 출력 합의 결과는 0이고, 합의는 종료되며 모든 후속 단계는 실행되지 않습니다.

  • 검증 노드 i가 총 검증 노드 수의 2/3를 초과하는 총 1을 수신하면 검증 노드는 자체 bi를 1로 설정합니다.

  • 수신 된 0 또는 1이 2/3를 초과하지 않으면 검증 노드는 자체 bi를 0으로 설정합니다.

  • 첫 번째 단계는 각 bi를 다른 노드로 다시 보내는 노드를 종료합니다.

두 번째 단계 (2 단계)는 1 프로세스로 돌아가는 것입니다.

  • 검증 노드 i에 의해 수신 된 총 1의 수가 검증 노드의 총 수의 2/3를 초과하면, 출력 합의 결과는 1이됩니다. 합의가 종료되고 모든 후속 단계가 실행되지 않습니다.

  • 검증 노드 i가 총 검증 된 노드 수의 2/3를 초과하는 총 0을 수신하면, 검증 노드는 자체 bi를 0으로 설정합니다.

  • 수신 된 0 또는 1이 2/3를 초과하지 않으면 검증 노드는 자체 bi를 1로 설정합니다.

  • 제 2 단계는 각각의 bi를 다른 노드로 다시 보내는 노드를 종료한다.

세 번째 단계 (3 단계)는 초기 값을 재설정하는 프로세스입니다.

  • 검증 노드 i가 총 검증 노드 수의 2/3를 초과하는 총 0을 수신하는 경우 bi = 0으로 설정하십시오.

  • 검증 노드 i가 총 검증 노드 수의 2/3를 초과하는 총 1을 수신하는 경우 bi = 1로 설정하십시오.

  • 수신 된 0 또는 1이 2/3를 초과하지 않으면, 각 검증 노드는 현재 라운드의이 단계와 관련된 메시지에 서명하고 서명을 해시합니다. Bi는 이러한 해시 중 가장 작은 해시의 최하위 비트로 설정됩니다 (여전히 0 또는 1).

  • 그런 다음 합의에 도달 할 때까지 첫 번째 단계로 돌아갑니다.

Algorand에서 BBA *의 결과는 블록 수락 여부에 대한 합의이며, 합의 결과는 수락 (0) 또는 거부 (1)입니다.

2.4.2 계층 적 합의 프로토콜 GC

위의 BBA *는 이진 경우에만 적용 할 수 있으며 임의의 값에 대한 합의에 도달해야하는 경우 임의의 값 문제를 이진 문제로 변환하기 위해 계층 적 합의 프로토콜을 도입해야합니다.

Biquan-5d5cafab97d78

Algorand에서 사용하는 GC는 두 단계로 나뉩니다 (위의 그림은 Algorand 백서 [4]에 있습니다. 나머지 텍스트에 해당하기 위해 두 단계는 2 단계와 3 단계로 명명됩니다). 프로토콜의 시작 부분에서 각 검증 노드 i는 초기 값 vi (Algorand에서 후보 새 블록의 해시) :

제 1 단계 (단계 2)에서, 모든 검증 노드는 그들 각각의 vi를 다른 모든 검증 노드에 전송한다;

두 번째 단계 (3 단계)는 특정 값의 x에 대해, 노드가 다른 검증 노드에 의해 x 값이 전송 된 총 횟수를받는 경우에만 (여러 번 동일한 노드에 의해 전송 된 x 값을 한 번만 수신) 총계를 초과하는 경우 노드 수의 2/3를 확인할 때이 노드는 x 값을 다른 노드로 보냅니다.

GC 후에 각 노드는 출력 규칙에 따라 값 쌍 (vi, gi)을 출력합니다.

  • 수신 된 x의 총 수가 검증 된 총 노드 수의 2/3를 초과하는 경우 vi = x, gi = 2로 설정하십시오.

  • 수신 된 x의 총 수가 검증 된 총 노드 수의 1/3을 초과하면 vi = x, gi = 1로 설정하십시오.

  • 그렇지 않으면 vi = 비어 있음, gi = 0으로 설정하십시오.

간단히 말해서, 계층 적 합의의 역할은 가능한 많은 후보 새로운 블록에서 가장 잘 알려진 후보 블록을 선택하고 마지막으로 위의 BBA를 통해 합의에 도달하는 것입니다.

2.4.3 BA * = GC + BBA *

개선 된 비잔틴 프로토콜 BA *는 위의 GC와 BBA *를 결합하여 먼저 임의의 값 문제 (여러 블록에서 한 후보 선택)를 이진 문제 (새 블록 수신 또는 거부?)로 변환 한 다음 BBA *를 사용합니다. 빠른 이진 비잔틴 합의 달성, 어떤 가치에서든 합의에 신속하게 도달 할 수 있으며 합의 과정은 다음과 같습니다 [4] :

Biquan-5d5cafb300b58

BA *의 첫 번째 단계와 두 번째 단계의 모든 검증 노드 i는 2.4.2에서 계층 적 합의 GC를 수행하며, 각각 새로운 블록에 대한 값 쌍 (vi, gi)을 얻습니다. 여기서 vi는 검증 노드 i에 의해 고려되는 후보 영역입니다. 해시 차단 (비어있을 수 있음), gi = 0 또는 1 또는 2

세 번째 단계에서 모든 검증 노드는 각각의 (vi, gi)에 따라 BBA *의 초기 값을 설정합니다 gi = 2 인 경우 초기 값은 0으로 설정됩니다. gi = 0 또는 1 인 경우 초기 값은 1로 설정됩니다. . 그런 다음 2.4.1의 BBA * 합의 프로세스로 진행하십시오.

  • 합의 결과가 0이면 최종 출력은 vi입니다 (빈 블록이 아님).

  • 합의 결과가 1이면 최종 출력이 비어 있습니다 (즉, 새 블록이 비어 있음)

두 경우 모두 BA *는 검증 노드에서 컨센서스에 도달하여 새 블록과 블록을 포함하는 트랜잭션 (비어있을 수 있음)을 확인할 수 있습니다.

2.5 알고리즘 블록 체인 포크 가능성

Algorand는 실제로 고전적인 비잔틴 컨센서스 BA *의 업그레이드 버전을 사용하는데, 비트 코인으로 대표되는 나카 모토 컨센서스와 가장 큰 차이점은 분기 가능성입니다. 후자는 완전히 분산되어 있기 때문에 노드는 완전히 통신 할 수 없으므로 일부 노드 사이에서만 합의에 도달 할 수 있으며 분기가 발생하기 쉽습니다.

Algorand는 최대 허용 오차 확률 F를 설정하여 포크의 확률을 조정할 수 있습니다. Algorand가 제공하는 두 가지 구현에서 분기 확률은 각각 10 ^ -12와 10 ^ -18이지만 이론적으로는 분기가 가능합니다. 독자에게 직관적 인 개념을 제공하기 위해 Algorand가 초당 블록을 생성한다고 가정하면 10 ^ -18의 확률은 빅뱅 시간부터 현재까지 가능한 분기 만 발생할 수 있으며 확률이 매우 낮다는 것을 의미합니다.

포크가 발생하더라도 Algorand는 여전히 포크에서 복구 할 수 있습니다.

  • Algorand는 Nakamoto 컨센서스에서 가장 긴 체인 규칙을 따릅니다.

  • 가장 긴 체인이 여러 개인 경우 비어 있지 않은 블록이 포함 된 가장 긴 체인을 선택하십시오.

  • 여전히 동일한 경우 블록 해시 값에 따라 정렬 할 수 있습니다.

2.6 Algorand는 어떻게 안전을 보장합니까?

위에서 언급 한 합의 알고리즘은 이상적인 조건에서 분산 환경에서 더 빠른 비잔틴 합의를 실현할 수 있으며 디지털 서명 및 VRF 자체의 보안은 시스템 보안을위한 기본 보안을 제공합니다. 또한 Algorand는 보안을 강화하기 위해 다음과 같은 메커니즘을 도입했습니다.

시드 Q (r)

Algorand의 무작위성은 주로 VRF에 의해 보장되며 리더와 검증 그룹은 각 라운드에서 무작위로 선택됩니다. 보다 간단한 아이디어는 이전 블록 B (r-1)을 랜덤 함수의 입력으로 사용하는 것입니다. 그러나이 방법은 악의적 인 노드에 특정 이점을 제공합니다. 블록은 블록에 포함 된 트랜잭션과 밀접한 관련이 있기 때문에 악의적 인 노드는 블록에 포함 된 트랜잭션 세트를 조정하여 여러 출력을 얻을 수 있으며 가장 유리한 것을 선택할 수 있습니다. 트랜잭션 세트는 새로운 블록을 생성하여 다음 라운드에서 리더 또는 검증 그룹이 될 가능성을 높입니다.

이 문제를 해결하기 위해 Algorand는 트랜잭션 세트 자체와 독립적 인 무작위로 지속적으로 업데이트되는 시드 매개 변수 Q (r)을 도입하여 악의적 인 노드가 트랜잭션 세트를 조정하여 이익을 얻을 수 없습니다.

블록이 비어 있지 않으면 Q (r) = H (SIG (Q (r-1), r) (SIG는 현재 리더의 서명 임)

블록이 비어 있으면 Q (r) = H (Q (r-1), r)

Q (r)는 매 라운드마다 바뀌며 거래 자체와 무관하다는 것을 알 수 있습니다. Q (r-1)이 랜덤 일 때 Q (r)도 랜덤임을 알 수있다. 따라서 악의적 인 노드는 트랜잭션 세트를 변경하여 다음 시드 생성에 영향을 줄 수 없습니다. 그 중에서도 Q (1)의 정의는 관련 문헌에서 찾을 수 없습니다.

역 추적 계수 k

seed 매개 변수는 악의적 인 노드가 리더를 예측할 가능성을 줄여 주지만 여러 개의 잠재적 인 리더가있는 악의적 인 노드는 여전히 일반 노드보다 다음 블록의 리더가 될 가능성이 높지만이 확률은 블록과 함께 증가합니다. 점점 작아지고 있습니다. 따라서 Algorand는 역 추적 계수 k를 도입합니다. r 번째 라운드의 후보 그룹은 rk 라운드에 이미 존재하는 후보 그룹에서만 선택되며 악의적 인 노드가 rk 라운드에서 r 번째 라운드의 후보 그룹에 영향을 줄 가능성은 매우 낮습니다.

일회성 공개 키

이전 섹션에서 언급했듯이 프로토콜 수준의 Algorand 포크는 이론적으로 만 발생할 수 있습니다. 실제로 악의적 인 노드가 다른 노드를 보유 할 수있는 경우에도 검증 그룹이 노출되는 즉시 노드가 새 블록을 다시 서명하도록하여 포크가 짧아 질 수 있습니다. Algorand는 이러한 가능성을 없애기 위해 일회성 공개 키 메커니즘을 도입했습니다.

구체적인 원칙은 모든 노드가 충분한 일회성 공개 키를 생성하고 Algorand 네트워크에 가입 할 때 (즉, 첫 번째 트랜잭션이 발생할 때) 공개 키를 생성한다는 것입니다. 이 공개 키는 이후의 모든 라운드에서 서명을 확인하는 데 사용되며 각 공개 키는 한 번만 사용되며 사용되면 폐기됩니다. 일회성 공개 키 생성 프로세스에는 일정 시간이 걸리지 만 Algorand의 일반적인 구현에서 각 새 노드는 다음 10 ^ 6 라운드에 대한 모든 공개 키 (약 180MB의 데이터)를 생성하는 데 약 1 시간이 걸립니다. 이렇게하면 노드 조인의 임계 값이 증가하지만 위에서 언급 한 포크 공격을 근본적으로 제거 할 수 있습니다. 서명이 완료되면 공개 키가 손상되고 악의적 인 노드에 의해 하이재킹 된 경우에도 포크를 생성하기 위해 다시 서명 할 수 없습니다.

2.7 Algorand의 확장 성

Bitcoin, Ethereum 및 Qtum과 같은 현재의 분산 블록 체인의 경우 확장 성의 주요 병목 현상은 체인의 모든 계산을 전체 네트워크에서 확인해야하며 전체 네트워크의 합의에 도달하는 데 특정 시간이 걸린다는 것입니다. Algorand는 PoS + VRF 메커니즘을 사용하여 블록 생산자와 검증자를 무작위로 선택합니다. 네트워크의 노드 수에 관계없이 각 라운드는 몇 개의 노드에서만 확인하면되므로 합의 속도가 크게 향상되고 확장 성이 향상됩니다. 동시에 Algorand는 개선 된 비잔틴 컨센서스 BA *를 채택하여 컨센서스 노드 간의 통신량을 줄임으로써 컨센서스 속도를 더욱 향상 시켰습니다.

이전에 Algorand는 성능 테스트 데이터를 공개했으며 그 결과 1000 EC2 서버 (AWS 가상 클라우드 서버)와 500,000 명의 사용자 시나리오에서 Algorand 네트워크는 1 분까지 시간을 확인했으며 처리량은 비트 코인 네트워크의 125 배에 달하는 것으로 나타났습니다. (비트 코인은 약 7 TPS) 노드 수가 증가함에 따라 처리량이 크게 감소하지 않습니다 [1].

 Algorand의 장단점

위의 분석을 통해 Algorand는 기본적으로 섹션 2의 시작 부분에서 제기 된 일련의 문제를 해결했습니다.

  • PoS 및 검증 가능한 임의 함수 (VRF)를 통한 생산자 및 검증 자 선택 차단

  • 개선 된 비잔틴 컨센서스 BA *를 통한 새로 생성 된 블록에 대한 컨센서스

  • 특정 매개 변수 설계를 통해 분기 확률을 매우 낮은 값으로 수학적으로 줄입니다.

  • 보안 강화를 위해 시드 매개 변수, 역 추적 계수 및 일회성 공개 키를 도입합니다

  • 각 라운드에서 부분 검증 만 수행되며, 노드 간의 통신량을 줄임으로써 시스템의 처리량이 더욱 향상되어 확장 성이 향상됩니다.

Algorand는 확장 성, 보안 및 분산화 측면에서 균형이 잘 잡힌다고해서 이것이 "불가능한 삼각형"이라는 것을 깨뜨린 것은 아닙니다.

확장 성 : 본질적으로 모든 트랜잭션은 더 적은 검증 노드로 검증됩니다. 네트워크에 더 많은 노드가 있으면 성능 만 크게 저하되지 않으며 실제로 확장 할 수 없습니다. 또한 각 검증 노드 간의 통신은 네트워크 상태에 따라 달라지며 네트워크의 불안정성은 합의 시간을 길게하여 TPS에 영향을 미칩니다. 관계자는 Algorand가 Permissinoed 환경에서 더 나은 성능을 보일 것이라고 말했다 [4]. 아마도 Permissionless 환경의 노드 환경에 너무 많은 불확실성이 있기 때문에 확장성에 어느 정도 영향을 줄 수 있기 때문일 것입니다.

보안 : Algorand는 본질적으로 비잔틴 합의를 사용하고 악의적 인 노드는 1/3을 초과 할 수 없으며 악의적 인 노드의 수가 1⁄2 미만인 경우 Bitcoin은 보안을 보장 할 수 있습니다.

탈 중앙화 : Algorand는 PoS 컨센서스 및 VRF를 사용하여 블록 생산자와 검증자를 결정합니다 .PoS 프로세스에서 토큰이 더 많은 노드가 선택 될 가능성이 높으며 특정 중앙 집중화로 스태킹 보상이 대가족에 집중됩니다. 추세는 VRF 선택 메커니즘의 도입으로 일부 노드에서만 체인 계산을 검증 할 수 있으며, 이는 네트워크 전체 검증의 분산 시스템을 박탈합니다.

또한 Algorand의 주요 네트워크가 막 출시되었습니다 [6]. 이전의 모든 결과는 이상적인 환경에있는 데이터이며 일부 코드는 오픈 소스가 아니며 가상 시스템 관련 설계는 아직 언급되지 않았지만 구현 복잡성, 안정성 및 실제 성능 아직 테스트 할 시간입니다.

요약

Algorand는 혁신적인 합의 계약을 통해 설계되었으며 높은 확장 성, 우수한 보안 및 어느 정도의 탈 중앙화를 달성했으며 모든 결론에는 엄격한 수학적 증거가 있으며 이는보다 혁신적이고 엄격한 합의입니다. 이 메커니즘은 현재 특정 진입 장벽이있는 분산 된 고 처리량 암호화 디지털 통화 프로젝트에 더 적합합니다.

참고 문헌

[1] https://algorandcom.cdn.prismic.io/algorandcom%2Fa26acb80-b80c-46ff-a1ab-a8121f74f3a3_p51-gilad.pdf

[2] https://www.algorand.com/what-we-do/technology/core-blockchain-innovation

[3] S. Micali, M. Rabin 및 S. Vadhan. 검증 가능한 임의 함수 40 번째 컴퓨터 과학 기초 (FOCS), 뉴욕, 1999 년 10 월. 

[4] https://algorandcom.cdn.prismic.io/algorandcom%2Fece77f38-75b3-44de-bc7f-805f0e53a8d9_theoretical.pdf

[5] https://algorandcom.cdn.prismic.io/algorandcom%2F218ddd09-8d6f-42f7-9db9-5cfbc0aedbe5_algorand_agreement.pdf

[6] https://www.algorand.com/resources/blog/the-borderless-economy-is-here

[7] https://www.odaily.com/post/5134308

[8] https://www.algorand.com/what-we-do/technology/scalability/

[9] https://www.algorand.com/what-we-do/technology/security/

[10] https://www.algorand.com/what-we-do/technology/permissionless-blockchain/

 

https://www.jinse.com/blockchain/444326.html

번호 제목 글쓴이 날짜 조회 수
공지 큐바오(큐백x)Qrc20 코인 출금방법 [133] title: 퀀텀아이콘슈퍼스테이커 2021.02.24 1502
공지 [Q-helper] 퀀텀 코어의 수량이 맞지 않게 표시되는 오류 해결 방법 [1] title: 퀀텀아이콘슈퍼스테이커 2021.01.24 1101
공지 연이자 약5% 슈퍼스테이커 운영중입니다 수수료3%(0.5개당0.015개) [11] title: 퀀텀아이콘슈퍼스테이커 2020.12.15 4158
공지 글쓰기 레벨 안내입니다. [59] QTUM 2019.07.09 2215
11897 코인만드시는분 계신가요? 퀀텀이는 2022.01.11 277
11896 퀀텀 스테이킹 관련하여, [15] 라파네나인 2021.12.24 819
11895 대단하다.. [3] 퀀텀간디 2021.12.17 560
11894 바비리 - 진정한 버블장 상승장의 신호 : 멤풀 [2] title: 스텔라쿵 캐리커쳐 #1타이어 2021.12.05 608
11893 바비리의 12월 뷰 [1] title: 스텔라쿵 캐리커쳐 #1타이어 2021.12.03 375
11892 퀀텀지갑 V0.20.4 버전이 나왔네요~!! [51] title: 퀀텀아이콘빵먹는곰돌이 2021.11.28 634
11891 언젠가는 가겠죠! 미리 2021.11.16 428
11890 패트릭의 에어드랍 드립.. [1] title: 스텔라쿵 캐리커쳐 #1타이어 2021.11.15 854
11889 퀀텀 리브랜딩이 그냥 해본소리인지 알았는데.. [6] title: 스텔라쿵 캐리커쳐 #1타이어 2021.11.06 1714
11888 퀀텀 한번 더 갈려나... [5] 쭈꾸미왕자 2021.11.02 895
11887 글로벌 기업들이 보고 있는 NFT시장 업로듸 2021.10.25 450
11886 이번달은 채굴이 좀 저조하네요 Ronaldo 2021.10.24 599
11885 예전에 퀀텀으로 재미 좀 봤었죠 오정k이사님 2021.10.22 356
11884 큐바오 로그인 [3] title: 큐바오아이콘시월이 2021.10.11 360
11883 과거에 쓴 질문 글들 삭제하고 싶은데 삭제 버튼이 없어요 [2] 미치 2021.09.22 335
11882 스테이킹 수량 관련 문의 [2] title: 스텔라쿵 캐리커쳐 #1예림파더 2021.09.06 550
11881 또 가격이 점점 오르는군요 ㅋㅋㅋ [2] Ronaldo 2021.09.06 743
11880 NFT로 거듭나는 뉴스기사들 [1] 업로듸 2021.08.29 431
11879 ㅋㅋㅋ 1.5는 버텨주네요~ [2] Ronaldo 2021.08.28 411
11878 조언을 구합니다 [1] 아이존 2021.08.24 398

포인트랭킹

순위 닉네임 포인트
1위 title: 스텔라쿵 캐리커쳐 #1타이어 6707295점
2위 title: 퀀텀아이콘빵먹는곰돌이 5917694점
3위 슈퍼비트 5830450점
4위 지금감사 5818100점
5위 불꽃 5537700점
6위 title: 스텔라쿵 캐리커쳐 #1미스릴 5533896점
7위 title: 퀀텀아이콘봄이 4928100점
8위 밀키웨이 3047950점
9위 빵상 2975800점
10위 대바기 2728250점