BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

건조 제품: 권리 및 합의에 관하여

以太坊爱好者
特邀专栏作者
이 기사는 약 12006자로, 전체를 읽는 데 약 18분이 소요됩니다
시스템의 리소스에만 의존하는 스테이크 증명은 처벌을 형성하기 위해 자체 시도의 역사에 의존해야 하기 때문에 분산 합의를 형성할 수 없습니다.
AI 요약
시스템의 리소스에만 의존하는 스테이크 증명은 처벌을 형성하기 위해 자체 시도의 역사에 의존해야 하기 때문에 분산 합의를 형성할 수 없습니다.

편집자 주: 이 기사의 출처는이더리움 애호가(ID: ethfans), 승인을 받아 Odaily에서 재인쇄했습니다.

이더리움 애호가(ID: ethfans)https://download.wpsoftware.net/bitcoin/old-pos.pdf일어나.

이더리움 애호가(ID: ethfans)

, 승인을 받아 Odaily에서 재인쇄했습니다.

참고: 이 문서는 2015년 3월에 대폭 수정되었습니다. 이전 버전은 다음에서 찾을 수 있습니다.

일어나.

1. 소개

2009년에 사토시 나카모토는 비트코인[Nak09]을 만들었습니다. 비트코인은 P2P 디지털 토큰 전송을 가능하게 하는 인터넷 통화 시스템입니다. 모든 사람이 토큰 소유권에 대해 합의할 수 있도록 하기 위해 Satoshi는 모든 네트워크 참여자가 복제하고 확인할 수 있는 공개 원장을 사용합니다. 단일 실패 지점을 방지하기 위해 원장은 동적 구성원 다자 서명(DMMS) [BCD+14] 메커니즘을 사용하여 인증됩니다. 즉, 전체 원장 기록이 각 "하트비트"에서 한 번 실행됩니다. 높은 계산 비용( 그러나 낮은 검증 비용).

전통적인 디지털 서명과 달리 DMMS에는 DMMS에 대한 "위조 가능성"이라는 개념이 없습니다. 각 DMMS는 생성하는 데 비용이 많이 들고(비트코인에서는 높은 전기 비용), 이 동작은 원장에 발행된 새로운 코인으로 보상받을 수 있습니다. 이러한 새로운 토큰이 유용하려면 다른 사람이 승인해야 하므로 참가자는 원장 자체를 생성하는 대신 "진정한 원장"을 집합적으로 확장하도록 장려됩니다1. (번역자 주: 여기서 "인정"이라는 단어의 원문은 "인식하다"입니다. 즉, 원래 의미에는 "사회적 합의"라는 힌트가 많지 않을 수 있으며 자체적으로 엄격한 기술적 의미를 가질 수 있습니다. 블록으로 승인하지 않으면 이 블록에서 발행한 통화를 승인하지 않습니다.)

비트코인의 DMMS는 계산 및 열역학적으로 비용이 많이 들기 때문에[Poe14a], 더 경제적이고 친환경적인 다른 대안이 제안되었습니다. 가장 일반적으로 제안되는 솔루션은 저비용 분산 합의 메커니즘인 PoS(Proof of Stake)입니다. Andrew Poelstra[Poe14b]가 2014년에 언급했듯이 PoS는 실현 가능하지 않지만 다양한 형태의 PoS 체계가 등장했습니다. 동시에 Poelstra의 주장은 설득력 있는 반례나 오류를 전혀 제시하지 않지만 다양한 포럼에서 종종 "거짓" 또는 "거짓"으로 주장됩니다. 또한 일부 사람들은 Poelstra의 논문이 모호하고 지루하게 작성되었다는 적절한 의견을 제시했습니다. 이 문서에는 여전히 많은 단점이 있음을 알 수 있습니다. Poelstra는 이전 작업에서 부정확성을 발견하지 못했지만 자신의 주장을 공식화할 기회를 잡을 준비가 되어 있습니다.

비트코인 합의에 대한 과학적 이해는 Poelstra가 그의 논문[MLJ14, BMC+15]을 작성한 이후 먼 길을 왔습니다.

이 기사는 비트코인이 해결하는 문제, PoS의 설계 근거, PoS와 같은 메커니즘이 비트코인의 신뢰 모델 내에서 분산 합의를 생성할 수 없는 이유를 밝히기 위해 Poelstra의 논문을 업데이트하는 것을 목표로 합니다.

참고 1: 모든 참가자가 "진정한 원장"을 볼 수 있도록 하려면 동기식 네트워크가 필요합니다. 모든 (유효한) 데이터는 특정 시간 λ 내에 모든 참가자에게 도달할 수 있으며 네트워크 하트비트 시간은 λ보다 훨씬 깁니다. 동기화된 네트워크가 없으면 분산 합의가 훨씬 더 어렵습니다. (자주 인용되는 결론 중 하나는 결정론적 알고리즘[FLP85]으로는 분산 합의가 불가능하다는 것입니다. 이 문제는 확률론적 알고리즘으로 쉽게 피할 수 있으므로 합의 시스템 설계의 어려움에 대한 논의가 많지 않습니다. 이 결론은 비동기 네트워크의 모든 분산된 합의 메커니즘에 대한 합의를 불가능하게 만들었다고 생각합니다. 이를 지적해 주신 Dominic Williams에게 감사드립니다.)

2. 분산 합의

분산 합의 문제에 대한 비트코인의 솔루션을 논의하기 전에 먼저 문제의 본질을 이해해야 합니다. 분산 합의(비트코인 시스템에서 사용하는 용어)는 서로에 대한 신뢰가 부족한 당사자 간의 합의(즉, 글로벌 계약)입니다. 이러한 당사자는 익명이며 시스템이 구축되었을 때 반드시 존재하지는 않았습니다. Poelstra는 자신의 논문에서 다음과 같이 설명합니다.

암호화폐의 경우 거래의 시간적 순서, 즉 "특정 금액을 이체하기 위한 첫 번째 거래에 대한 합의"만으로 분산 합의를 이루면 충분하다. 이를 통해 전체 네트워크가 새로운 자금 소유자를 인식할 수 있습니다.

이러한 합의가 필요한 이유는 이중 지출을 방지하기 위해서입니다. 모든 분산형 디지털 통화 메커니즘에서 지불인이 동일한 자금을 두 명의 다른 사람에게 보내는 것이 가능하며 두 거래 모두 유효한 것으로 보입니다. 따라서 수취인은 충돌이 발생하지 않았는지 또는 충돌이 발생한 경우 네트워크가 거래를 올바른 버전으로 인식하는지 확인할 수 있어야 합니다. 트랜잭션 순서에 대한 분산 합의는 다음을 가능하게 합니다. 충돌이 발생하는 경우 모든 사람이 첫 번째 트랜잭션이 유효하고 나머지는 유효하지 않다는 데 동의합니다.

(권한 및 위조 방지와 같은 디지털 통화의 다른 문제는 비교적 쉽고 전통적인 암호화로 해결할 수 있습니다.)

요점은 분산 합의가 어려운 문제인 반면 일반 합의는 더 쉽고, 더 잘 연구되고, 신뢰할 수 있고 식별 가능한 서명자와 함께 수조 배 더 효율적이라는 점을 깨달아야 한다는 것입니다. 따라서 제한된 조건 하에서도 신뢰할 수 있는 당사자를 소개하는 암호화폐는 새로운 신뢰 모델이 합의에 도달하는 어려움을 줄이는 데 도움이 될 수 있는지 고려해야 합니다. 신뢰할 수 있는 당사자와의 보다 효율적인 합의 메커니즘에 관심이 있는 독자는 이를 살펴볼 수 있습니다.

3. 동적 멤버십 다자간 서명

Bitcoin의 원장은 공개적으로 사용 가능하며 Bitcoin 네트워크의 모든 참가자는 원장에서 각 트랜잭션의 유효성을 확인할 수 있습니다. 그러나 원장은 근본적으로 역사적 기록이기 때문에 암호로는 진위를 구별할 수 없고, 누군가는 원장을 증명해야 하며, 다른 사람들은 이 사람이 잘못된 역사에 서명하지 않을 것이라고 믿어야 합니다.

최초의 디지털 현금 시스템에는 익명이 아닌 한 사람이 모든 거래에 서명했습니다[Cha83]. 그러나 이것은 시스템에 단일 실패 지점 위험을 도입할 뿐만 아니라 서명자(및 해당 서명자를 권한 또는 강제로 강제할 수 있는 모든 사람)가 거래를 검열하거나 이중 지출을 시작할 수 있게 합니다. 블라인드 서명(자세한 내용은 [Cha83] 참조)을 사용하여 검열을 방지할 수 있지만 단일 실패 지점과 이중 지출을 방지할 수는 없습니다. 다자간 서명은 후자의 두 가지 문제를 해결할 수 있지만 모든 서명자가 동시에 강제되기 어렵고 모든 서명자가 모든 참여자에게 신뢰되어야 한다는 두 가지 요구 사항이 서로 충돌합니다. 비익명성은 또한 특정 공격자가 항상 시스템을 공격할 수 있음을 의미합니다.

Bitcoin의 솔루션은 고정되고 식별 가능한 서명자를 완전히 제거하는 것입니다. Bitcoin의 원장은 광부라고 하는 서명자 그룹에 의해 검증되며, 이들은 다른 참가자에게 자신의 신원을 공개하지 않으며 아마도 무료로 시스템에 들어가거나 나갈 수 있습니다. 광부는 "채굴"이라는 프로세스를 통해 서명을 생성합니다. 채굴하는 동안 그들은 연속적인 트랜잭션 데이터 블록에 대한 작업 증명 [Bac02]을 집합적으로 생성합니다.

  • 이 섹션에서는 마이닝이 작동하는 방식과 검증을 제공하는 방식에 대해 설명합니다.
  • 3.1 익명 세계에서의 인증
  • 암호 전자 서명 메커니즘의 작동 원리는 다음과 같습니다. 서명자는 "서명" 및 "확인" 키 쌍(s, v)을 생성하고 일부 공개 채널에 이름과 함께 v를 게시합니다. 서명자는 주어진 메시지 m에 따라 서명 σ를 생성할 수 있으며 누구나 σ의 유효성을 확인할 수 있습니다. 즉, 검증 알고리즘에 v, m, σ를 입력하면 서명이 유효하면 항상 1이 출력됩니다.

보안상의 이유로 기존의 디지털 서명은 위조 방지 기능이 있어야 합니다. 즉, 제한된 컴퓨팅 성능을 가진 공격자가 서명을 위조할 가능성은 무시할 수 있습니다. 특히 "가짜"는 (공격자)가 다음 게임에서 이길 수 있음을 의미합니다.서명자는 인증 키 v를 공격자에게 넘깁니다.공격자는 메시지 m_i를 서명자에게 보내고 해당 메시지에 대한 유효한 서명 σ_i를 받습니다. 공격자는 이 작업을 여러 번 반복할 수 있습니다.공격자는 m에 기반한 유효한 서명 σ와 함께 새 메시지 m을 생성합니다.이 보안은 선택된 메시지 공격 하에서 실존적 위조 불가능성으로 알려져 있으며 암호화 문헌의 공통 표준입니다.[다중 서명 메커니즘에서 각 서명자는 확인 키를 가지고 있습니다. 서명자(또는 서명 키)의 "허용 가능한 하위 집합"에 의해 생성된 서명만 유효합니다. 보안을 정의할 때 위의 게임은 공격자가 "허용 가능한 하위 집합"을 형성하지 않는 키를 얻는 한 공격자가 서명 키를 요청(및 획득)할 수 있도록 수정되었습니다. ]

확인 알고리즘은 확인 키 v를 사용하여 서명을 확인하고 이러한 방식으로 서명자의 "신원"을 확인하는 것을 볼 수 있습니다. 누구나 키 쌍을 만들 수 있으므로 서명이 값을 가지려면 공개 레코드가 확인 키를 서명자의 실제 ID에 연결해야 합니다. 부정직한 행동(잘못된 기록에 서명)이 있는 경우 부정직한 당사자가 책임을 집니다.

이러한 관점에서 인증은 서명자가 익명이고 고정되지 않은 시스템에 적합하지 않습니다. 사실, 그러한 시스템에서 "인증"이 어떤 역할을 할 수 있는지는 명확하지 않습니다! 누군가 익명으로 서명을 생성할 수 있다면 정직한 서명과 부정직한 서명, 실제 역사와 가짜 역사를 구별하는 것이 불가능할 것입니다. 그런 다음 위의 보안 정의는 공격자가 자유롭게 서명자 집합에 가입하고 "서명을 위조"할 수 있기 때문에 의미를 잃습니다2.

  • 이 문제를 해결하기 위해 Bitcoin은 다른 보안 모델을 사용합니다. 이 모델에서 모든 참가자는 평등하지만 정직할 경제적 인센티브가 있습니다. 다음 섹션에서는 이 보안 모델을 소개합니다.

  • 참고 2: 섹션 4에서 살펴본 것처럼 암호화폐의 경우 익명의 당사자가 예금을 잠그고 누군가의 신원을 확인하지 않고 부정직한 행위자를 처벌하는 메커니즘을 가질 수 있습니다. 이것은 사실상 지분 증명입니다. 그러나 암호화폐는 합의와 불가분의 관계에 있기 때문에 "암호화폐라면"이라는 전제는 여기서 지분증명을 사용할 수 없게 하고, 그렇지 않으면 순환논리에 빠지게 됩니다. 다음 섹션에서 이 문제를 다룰 것입니다.
  • 3.2 DMMS의 보안 정의

DMMS에 관한 한 모든 당사자는 동등하며 불완전한 지식만을 가진 "적"을 두는 것으로 보안을 얻을 수 없습니다. 따라서 다음 세 부분을 사용하여 DMMS를 정의합니다. 이러한 부분은 기존 서명의 키 생성 알고리즘과 다릅니다.비용 함수 c를 사용하여 알고리즘의 실행을 추적하고 "비용" t ∈를 출력합니다. 여기서 는 일부 "비용 도메인"입니다. 두 알고리즘을 연속으로 실행하는 비용은 각각의 비용의 합이기 때문에 함수는 선형이어야 합니다.무작위화 알고리즘 AttemptSign은 메시지 m을 입력으로 사용하고 서명 σ를 사용합니다. 알고리즘은 모든 입력 메시지 m에 대해 비용이 1이어야 합니다.

결정적 알고리즘 Verify는 메시지 m, 서명 σ 및 목표 비용 T를 입력으로 사용하고 0 또는 1을 출력합니다.

Verify(m, T, AttempSign(m)) = 1이 그것에 속한 모든 T에 대해 1/T의 확률을 갖는 경우에만 DMMS가 정확하다고(정확하다고) 말하고 이 확률은 AtemptSign에 의해 결정됩니다. 보장된 다항식 알고리즘이 Verify(m, T, A (m)) = 1을 실현할 확률이 1−(1−1/T)t를 초과하지 않는 경우에만 이러한 DMMS는 안전한 ( 보안) (여기서 t는 알고리즘 A의 실행 비용입니다).즉, 안전한 DMMS는 AttemptSign을 반복적으로 실행하는 것보다 더 나은 서명 알고리즘이 없음을 의미합니다.보안 정의를 간략하게 설명합니다. 역동적인 멤버십 세트를 달성하기 위해 참여 비용을 너무 비싸게 만들 수 없으며 기존 서명자가 명백한 수단이나 경제적 요인을 통해 새로운 서명자를 제외하도록 허용할 수 없습니다. 이는 서명 프로세스가 "분할 가능"해야 하며 서명자 간의 통신을 요구하거나 장려하지 않아야 함을 의미합니다. 즉, 서명 알고리즘을 실행하는 데 두 배의 시간이 걸리면 동일한 두 개의 하드웨어에서 병렬로 실행하는 것보다 성공 확률이 높아야 합니다. 극단적으로 이것은 최고의 서명 알고리즘이 정의에 의해 파생되는 단일 기본 단계의 반복적이고 독립적인 실행으로 구성되어야 함을 의미합니다.

  • 3.3 DMMS로서의 마이닝 메커니즘
  • 비트코인 채굴은 해시 함수를 기반으로 하는 작업 증명 알고리즘인 해시캐시[Bac02]를 사용합니다. 이것은 무작위 오라클 모델을 사용하는 DMMS [BR93]입니다. 계산 모델로서 임의의 오라클은 해시 함수를 "난수 오라클"로 간주하는 모델 또는 진정한 임의 함수 3을 말하며 그 출력은 순전히 임의적이며 이 함수를 통해서만 계산할 수 있습니다.
  • 난수 오라클 모델의 사용이 많은 논란을 불러일으켰지만[Gre11] 보안을 보장하는 데 사용할 수 있다는 강력한 경험적 증거가 있습니다. 이하에서 H는 최대 256비트의 입력을 갖는 해시 함수를 의미하며 난수 오라클로 간주된다.

비트코인의 DMMS는 다음과 같습니다.

비용 함수는 실행 중에 난수 오라클이 호출되는 횟수를 제공합니다.

AttemptSign은 메시지 m을 입력으로 사용하고 난수 σ ∈ {0,1}256을 출력합니다.

Verify는 서명 σ, 메시지 m 및 대상 T를 입력으로 사용합니다. H(m || σ) < 2256/T인 경우에만 1을 출력합니다.난수 오라클 모델에서 해시 함수를 반복적으로 실행하는 것보다 유효한 서명을 생성하는 더 좋은 방법이 없다는 것을 보는 것은 어렵지 않습니다.참고 3: 이 모델은 완전히 비현실적입니다. 예를 들어 512비트에서 256비트까지의 실제 임의 함수를 나타내려면 현재 알려진 표현 제한을 초과하는 평균 2512·256비트가 필요하기 때문입니다.

3.4 세계 시간 없음

  • 이전 섹션에서 우리는 해시 함수 호출 수를 비용 함수로 사용했는데, 이는 계산 수에 대략 비례하고 열 발산에 대략 비례합니다. 결국, 열 발산량은 이러한 서명을 생성하는 경제적 및 환경적 비용에 대략적으로 비례합니다.

분명한 질문은 "저렴한" 비용 함수를 사용할 수 있습니까? 특히 시계 시간을 직접 사용할 수 없는 이유는 무엇입니까? 합의 충돌을 해결하기 위해 트랜잭션을 연대순으로 직접 정렬하는 대신 블록체인을 생성하기 위해 DMMS를 사용하여 블록에 서명하는 이유는 무엇입니까?

  • 대답은 분산 시스템에 잘 정의된 클록 시간이 부족하다는 것입니다. 네트워크 대기 시간은 정보가 이동할 수 있는 속도를 제한합니다. 특수 상대성 이론에 따르면 서로 다른 관찰자는 거의 동시에 발생하는 사건의 연대순에 동의할 수 없습니다.

이것이 유일한 문제인 경우 각 거래 사이에 몇 초를 요청하십시오(충돌하는 거래 사이의 간격이 너무 짧으면 두 거래가 모두 거부됩니다. 그러나 각 거래 후 몇 초까지 기다리십시오. 관련된 모든 당사자는 이것이 발생하지 않습니다). 그러나 실제 상황은 다음 두 가지 이유로 훨씬 더 나쁩니다.

적대적인 환경에서는 "네트워크 대기 시간"을 제한할 수 없습니다. 공격자는 서비스 거부 조치를 사용하여 임의로 시스템 속도를 늦추거나 네트워크를 물리적으로 분할할 수 있습니다.상대성 관점에서 이것은 대기 시간이 얼마나 오래 설정되어 있더라도 참여자가 네트워크의 다른 참여자와 공간적으로 분리되지 않도록 보장할 방법이 없음을 의미합니다.네트워크를 처음 사용하거나 최근에 오프라인이 된 사용자는 기록 데이터에 액세스해야 합니다. 그러나 사실 이후에 거래가 발생한 순서를 확인할 방법이 없기 때문에 거래가 충돌하는 경우 사용자는 자신이 받은 거래가 먼저 발생했다는 보장을 할 수 없습니다.3.5 DMMS의 합의이제 DMMS를 이해하고 비트코인의 해시캐시가 보안 알고리즘인 이유를 설명했으므로 DMMS를 통해 분산 합의를 달성하는 방법에 대해 생각해 보겠습니다.우리의 주장은 DMMS를 통해 분산 합의를 달성하는 것이 가능하다는 것입니다.먼저 (a) 한 번에 많은 메시지에 대한 서명을 만들 수 없는 일종의 희소한 리소스와 (b) 비용 함수(단조 함수)를 통해 서명을 만드는 데 걸리는 평균 시간을 측정해야 합니다. (분산되기 위해서는 비트코인 ​​시스템에서와 같이 이 희소한 자원을 영원히 소비해야 할 수도 있으므로 채굴의 한계 비용이 자본 비용을 지배할 수 있습니다. Poelstra는 이 견해[Poe14a]를 지지하지만 John Tromp는 [ Tro14].)비트코인을 예로 들면 비용 함수는 "해시 함수가 호출된 횟수"로 정의됩니다. 우리는 이 함수가 실제로 서명을 계산하는 데 소비되는 에너지를 측정하고 Landauer 한계[Lan61]에 의해 정당화된다고 주장합니다. 물리적 관점에서 소위 에너지는 되돌릴 수 없는 비트 연산에 의해 소비되는 최소 열입니다. sha256 계산과 관련된 되돌릴 수 없는 비트 작업의 수를 세어 비트코인 ​​DMMS를 생성하는 데 필요한 에너지 양에 대한 하한선을 설정할 수 있습니다(적어도 원칙적으로).블랙홀을 생성하지 않는 한(즉, 서명을 허용하지 않거나 실제로 사용 가능한 형태로 추출되는 모든 정보). 물론 실생활에서 비트코인 ​​채굴기는 블랙홀 한계 근처에서 작동하지 않으며 걸리는 시간은 채굴 하드웨어의 속도에 따라 다릅니다. 마이닝 하드웨어가 향상되고 동시에 온라인에 있는 하드웨어 수가 증가함에 따라 DMMS를 생성하는 데 필요한 시간이 줄어듭니다. 비트코인에서는 이에 따라 목표 비용을 조정하여 각 서명을 생성하는 데 필요한 시간을 약 10분4으로 유지합니다.참고 4: 3.4에 언급된 세계 시간이 없는 경우 독자는 시간을 정확하게 조정하는 방법을 궁금해할 수 있습니다. 실제로 타임스탬프는 채굴자에 의해 블록에 삽입되며 채굴자가 타임스탬프를 위조하는 것을 막을 방법이 실제로 없습니다. 비트코인은 잘못된 타임스탬프로 인해 발생하는 목표와의 사소한 편차에 내성이 있으며 목표(번역자 주: 난이도)가 너무 빨리 변경되는 것을 금지합니다. 따라서 목표에서 큰 편차를 만드는 것은 비용이 많이 들고 비협조적인 채굴자에 의해 좌절될 수 있습니다. 자세한 내용은 [Poe14c, 섹션 6.3]을 참조하십시오.그렇다면 비용 함수를 통해 희소 자원을 측정하는 안전한 DMMS를 사용하여 어떻게 합의 기록을 얻을 수 있을까요? 첫째, 우리는 네트워크가 동기식이라고 가정하므로 (대다수) 참여자가 특정 시간 λ 내에 유효한 모든 데이터를 사용할 수 있습니다. 우리는 거래 내역을 일련의 블록으로 분할합니다. 여기서 각 블록에는 일련의 거래와 이전 블록에 대한 암호화 약정이 포함됩니다5. 모든 유효한 블록에는 블록을 생성하는 데 λ보다 훨씬 오래 걸리는 대상이 있는 DMMS가 있어야 합니다(동일한 합의 기록에서 작업하는 채굴자는 어떤 블록이 최신인지 알고 블록 생성자는 많은 것을 갖지 않도록) 최신 블록을 먼저 아는 것이 유리함). 명확하게 말하면 각 DMMS의 목표 비용은 채굴자가 아닌 시스템 규칙에 의해 정의됩니다.참고 5: 커미션(commitment)은 특정 비밀 데이터에서 계산되는 암호 객체이지만 데이터가 유출되지 않으므로 이후 데이터를 수정할 수 없습니다. 충돌 방지 해시 함수가 그 예입니다. 데이터 x가 주어지면 먼저 H(x)(H는 해시 함수)를 게시한 다음 나중에 x를 게시할 수 있습니다. 검증자는 공개 값을 사용하여 H(x)를 계산하여 이 값이 원래 값과 동일한지 확인할 수 있습니다.네트워크 참가자는 먼저 동일한 제네시스 블록(시스템에 하드코딩됨)으로 시작하는 모든 유효한 블록 분기를 고려하여 작업합니다. (각 블록에는 이전 블록의 커밋이 포함되어 있으므로 결과는 제네시스 블록을 기반으로 하는 방향성 비순환 그래프이며 이러한 블록 분기는 그래프의 경로입니다.) 그런 다음 DMMS의 목표 비용 합계를 계산하면 각 블록 가지의 무게. 가장 무거운 블록 분기는 "진정한" 히스토리로 간주됩니다.블록을 생성할 때 광부는 자신의 희망에 따라 트랜잭션을 선택하고 다른 트랜잭션의 수수료와 네트워크에서 정의한 보조금을 분배하기 위해 특별한 "보상 트랜잭션"을 추가합니다. 최신 블록 커밋을 확인한 다음 DMMS를 계산합니다. 다른 광부가 블록을 생성하고 게시하는 경우 광부는 이에 따라 "실제 기록 최신 블록"을 업데이트하고 이 변경 사항을 수용하기 위해 자체 블록의 커밋을 변경합니다. DMMS를 계산한 후 완성된 블록을 네트워크에 게시합니다.우리는 이것이 합의 역사로 이어진다고 주장합니다. 즉, 전체 네트워크가 정확히 어떤 블록이 실제 역사의 일부인지(그리고 어떤 블록이 아닌지)에 대해 점진적으로 합의에 도달하고 불일치는 최근 역사에서만 발생한다는 것을 의미합니다. 구체적인 논의는 Miller와 La Viola Jr. [MLJ14]에서 찾을 수 있습니다(이 기사에서 에너지 소비 DMMS의 정도를 측정할 수 있으며 해당 기사의 표현은 "적당히 어려운 퍼즐"입니다). 덜 형식적인 주장.네트워크가 동기식이기 때문에 블록 전송 시간이 블록 생성 시간보다 훨씬 짧기 때문에 모든 참가자가 가장 무거운 역사를 빠르게 깨달을 수 있습니다.

우리는 또한 네트워크에 참여하는 대부분의 사람들이 실제 역사를 확장하는 DMMS를 생산하는 데 참여할 것이라고 믿습니다. Vitalik Buterin[But15]은 우아하고 올바른 이유를 제안합니다. "보상 거래"는 해당 블록이 실제 역사에 속하는 경우에만 허용되기 때문에 각 채굴자에 대해 Nash 균형은 절대적인 Most of 6을 따르는 것입니다.

참고 6: 또한 같은 기사에서 Buterin은 다음과 같이 말했습니다. 그가 의미하는 바가 무엇인지 명확하지 않으며, 어디에서도 한 시스템 외부에서 리소스를 소비하는 것 외에는 합의를 도출할 수 있는 방법이 없다는 기사의 주장을 반박하지 않습니다.

"실제 이력"을 변경하기 위해서는 공격자가 더 큰 가중치(즉, 목표 비용이 더 큰)를 가진 또 다른 이력을 생성해야 합니다(이러한 대체 이력 버전은 현재 이력의 가장 최근 상단에서 생성되는 것으로 정의할 수 있습니다. N 블록) )의 포크. 그는 실제 역사를 확장하고 있는 광부 그룹보다 자원이 적습니다. 광부 그룹이 대다수이기 때문입니다. 따라서 그가 네트워크에서 이길 수 있는 확률은 1보다 작습니다(어떤 주어진 시간 동안 네트워크에서 실제 히스토리를 확장하려는 시도 횟수가 자신의 대체 히스토리를 확장하려는 시도 횟수보다 많기 때문입니다). 그리고 자신의 역사가 실제 역사를 능가하기 때문에 그는 N번 이상 승리해야 합니다. 1회 당첨 확률이 P < 1이면 N회 당첨 확률은 PN이며, N이 충분히 크면 무시할 수 있을 정도로 작습니다.

(여기서의 주장은 공격자가 지속적으로 이겨야 한다는 점만 고려하고 블록 생성의 난이도가 조정될 것이라는 점을 고려하지 않기 때문에 매우 약합니다. 난이도 조정은 공격자가 이전 블록을 더 빠르게 재생산할 수 있도록 합니다. 네트워크보다 새로운 블록이 더 빠릅니다. 나는 여기서 아무 근거도 없이 이것이 심각한 문제가 아니라 지루한 문제라고 단언합니다.)

3.6 DMMS 없는 합의

분산 합의 메커니즘을 생성하기 위해 DMMS를 사용해야 합니까? 지금까지 이것은 열린 문제입니다. 내 추측은 "아니오"입니다. 보다 구체적으로 비트코인 ​​프로토콜을 변경하여 미래 블록을 더 낮은 난이도[BDC+14, 섹션 6.1]로 마이닝하는 채굴자에게 "쿠폰"을 보상하도록 변경하는 것은 합의를 깨뜨리지 않을 것 같지만 모델은 명백히 위의 DMMS 정의를 충족하지 않습니다.

4. 지분 증명

비트코인의 합의 메커니즘을 기반으로 가장 인기 있는 대안인 Proof of Stake를 분석해 보겠습니다. PoS에 대한 설명은 [Poe14b]를 참조하십시오.

현대 암호학을 통해 '정보' 자체가 물리적으로 실재하고 가치 있는 것'이라는 개념이 철학과 강의실에서 비즈니스의 실제 세계로 이동했습니다. 우리 모두는 보안 통신이 뒷받침하는 경제 활동에 대해 잘 알고 있습니다. 협상, 계약, 거래, 청구서 및 주문은 모두 위조나 가로채기에 대한 두려움 없이 공용 인터넷으로 보낼 수 있습니다. 또한 기밀 데이터가 손실되거나 도난당할 경우 재정적인 결과가 초래된다는 사실도 모두 알고 있습니다. 2009년 1월 암호화폐[Nak09]의 등장으로 가치 있는 정보의 개념이 더욱 구체화되었습니다. 사기와 도난을 방지하기 위해 암호화(물리적 보안 시설 없음)만 사용하여 개방형 통신 매체에서 대체 가능한 가치 저장소를 보유하고 교환할 수 있습니다. "이 암호화 키는 $10,000의 가치가 있습니다. 노출되면 이만큼의 돈을 잃을 것이기 때문입니다. 20달러는 다른 사람에게 보내고 나머지는 본인이 가져가세요.” 이러한 배경 지식을 통해 스테이크 증명은 실제로 이해하기 쉽습니다. 지분 증명은 암호화된 소유권 증명입니다. 암호화폐에서 지분 증명은 통화의 소유권을 증명할 수 있을 뿐만 아니라 돈이 일부 특성을 충족한다는 것을 증명할 수도 있습니다(예: 돈이 잠겨 있고 특정 조건이 충족될 때까지 사용할 수 없음). 특히 희소하고 실험적인 암호화폐에 자금이 잠겨 있다는 것을 증명하는 것은 프로젝트의 성공에 진지한 관심을 가지고 있다는 증거로 볼 수 있습니다. 사용자는 고정된 권리와 이익을 제공함으로써 프로젝트의 지속적인 존재(및 지속 가능한 개발)에 대한 관심을 증명할 수 있습니다.

즉, 스테이크 증명은 Landauer 한계와 같은 물리적 이론이 아닌 암호화 증명을 사용하여 특정 계산이 엄청나게 비싸다는 것을 증명할 수 있다는 개념입니다.

4.1 지분 증명 대 DMMS

암호화폐의 역사에 대한 합의를 생성하기 위해 "순수한 지분 증명"을 사용하는 것은 비용 함수가 동전 자체의 수를 측정하는 DMMS와 같은 서명 체계7를 생성할 수 있다는 것을 전제로 합니다. 이것은 원칙적으로 간단하게 들리며 [Poe14b]를 다시 인용합니다.

충분히 표현 가능한 원장에서 통화 보유자는 암호로 확인 가능한 "지분"을 임대하기 위해 일정 기간 동안 통화를 잠글 수 있습니다. 합의 이력을 발전시켜야 할 때 각 이해 관계자는 이러한 콘텐츠에 작업 증명을 첨부하는 대신 확장된 콘텐츠(블록)에 서명합니다. 실용적인 편의를 위해 일반적으로 말해서 블록이 생성될 때마다 이해 관계자의 작은 부분이 무작위로 선택되어 블록 생성을 책임지고 블록의 유효성을 얻기 위해 대부분의 소규모 팀만 필요합니다. 동의합니다. 이렇게 선택된 지분 보유자는 보상을 받고 일정 기간 동안 원하는 경우 지분을 잠금 해제할 수 있습니다. 여기서 아이디어는 기록을 제어하는 ​​데 드는 경제적 비용을 엄청나게 높게 만드는 대신 이해 관계자가 모든 블록에 동의할 인센티브를 갖는다는 것입니다. 그들은 서로 결탁할 수 있고 전체 시스템을 무너뜨리고 싶지 않습니다(예: 충돌하는 역사에 서명하면 그렇게 될 수 있음) (c) 그들은 많은 피해를 줄 수 있는 자본이 제한되어 있습니다. 위와 같은 이유로 무작위로 선택된 다음 이해 관계자 그룹은 신뢰할 수 있다고 생각되는 기록에 대해서만 블록을 생성하도록 선택할 수 있습니다.

참고 7: 지분 증명 체계는 항상 프로세스가 없도록 설계되지 않았으므로(즉, 이전에 무엇을 했는지에 관계없이 다음 시도의 성공률에 영향을 미치지 않음) 진행이 필요하지 않습니다. 그들 모두는 적절하거나 안전한 DMMS가 될 수 있습니다. 그러나 기본 신조는 여전히 "역사를 매우 비싸게 만들고 올바른 역사에 참여하는 사람들에게 보상"이므로 계속해서 비용의 렌즈를 통해 살펴봅니다.

이 문서에는 약간 복잡한 내용이 있습니다. 실제 지분 증명 시스템에서는 종종 한 명의 서명자 승인만 필요하고 대부분의 승인은 필요하지 않습니다.

여기서 문제는 (통화로) 고정된 지분의 양을 측정하는 비용 함수를 적절하게 정의하려면 통화의 합의 기록이 필요하다는 것입니다. "이러한 코인이 함께 잠겨 있는 특정 역사가 있습니다"라는 지점에 도달할 수만 있다면 최종 DMMS가 잘 정의될 수 있지만 비용 함수는 더 이상 희소성의 척도가 아니며 이 백서의 섹션 3.5 결론도 성립하지 않습니다.

물론 여러 기록에 서명한 이해 관계자에게 불이익을 줌으로써 희소성이 형성될 수 있습니다. 예를 들어, 시스템이 Schnorr 또는 ECDSA 서명 체계를 사용하고 이해 관계자가 서명할 때 특정 nonce만 선택할 수 있는 경우 두 메시지에 서명하기 위해 여러 기록 쌍에 서명하려는 경우 동일한(키, nonce)를 사용해야 합니다. 다른 사람들은 개인 키를 기하학적으로 해결합니다. 그러나 이러한 설계는 여전히 이해 관계자가 블록을 "연삭"(지속적으로 다른 블록 시도)하고 다음 블록에서 계속해서 블록 생산자가 될 수 있도록 허용하는 블록 8만 게시하는 것을 막을 수 없습니다. 블록체인. 이것은 "스테이크 그라인딩" 공격의 예입니다. 아래에서 볼 수 있듯이 에퀴티 그라인딩은 보다 일반적인 문제의 특수한 경우에 불과합니다.

일반적으로 일회성 서명 체계는 이해 관계자가 충돌하는 이력을 게시하는 것을 방지하지만(공격자가 자신이 야기한 혼란에서 더 많은 것을 얻을 수 있는 것보다 잃을 동전을 더 중요하게 생각한다면) 일단 성적 서명은 이해 관계자가 비밀리에 상충되는 역사를 만들고 있습니다.

참고 8: 난수는 모두가 동의해야 하는 유일한 객체이기 때문에 블록체인 자체에서 결정해야 합니다. 따라서 PoS 채굴자는 스테이크 그라인딩으로 시스템을 비틀 수 있습니다. 여러 블록 또는 장기 블록을 사용하여 난수를 결정하는 것으로는 이 문제가 해결되지 않으며 어느 쪽이든 누군가가 이를 조작할 수 있습니다.

4.2 비용이 들지 않는 시뮬레이션

궁극적으로 문제는 스테이크 서명에 대해 결합된 코인이 해당 코인이 속한 블록체인 내에서만 존재한다는 것입니다. 즉, 특정 그룹이 저렴하게 블록체인을 만들 수 있는 한 그러한 그룹은 여러 개의 블록체인을 만들고 자신의 이익에 더 유리한 것을 선택할 것입니다.

모두가 싸게 역사를 만들 수 있다면 시스템은 무너질 것입니다. Locked Equity의 핵심은 통화를 오랫동안 보유할 의사가 있는 사람들에게만 "저렴한 생성 이력"을 제공하는 것이며, 이러한 사람들에게 시스템은 공격이 불가능할 정도로 의미가 있다고 가정할 수 있습니다. 그것. 그것. 그러나 글로벌 시간이 없기 때문에(네트워크를 처음 접하는 사람들에게는 글로벌 히스토리가 없기 때문에) "최근에" 코인을 보유하기 시작한 사람과 "항상" 코인을 보유한 사람을 구별할 방법이 없습니다. 지분 증명 시스템의 경우 기록의 어느 시점에서든 통화를 전송하고 자산을 잠금 및 잠금 해제하고 블록에 서명할 수 있는 일련의 서명 키가 있습니다. 현실 세계의 특정 순간, 시스템이 새로운 블록을 생성하는 이 순간, 일부 키가 소유권에 해당한다고 가정할 수 있습니다. 그러나 실제 시간은 계속 흐르고 이 블록은 정적인 것이 될 것이며 이와 관련된 모든 서명 키도 정적인 것이 될 것입니다.

다시 한 번 말씀드리지만, 실시간으로 블록체인은 점점 더 길어지고, 권리는 해제되고, 코인은 다른 제품과 서비스로 교환되며, 이러한 키는 오용되더라도 보유자의 가치를 잃게 됩니다. 그리고 무의미해집니다. 그러나 불변 블록체인의 경우 블록 키의 의미는 절대 변경될 수 없습니다.

지분 증명 시스템에서는 키의 일부가 미래를 결정하기 때문에 문제가 발생합니다. 누가 이러한 키를 얻을 수 있든 상관없이(사용자가 직접 통화를 청산했거나 개인 키를 함께 구입했거나 개인 키를 가져간 사람일 수 있습니다. 사용자는 개인 키를 오랫동안 보관하는 데 능숙하지 않습니다. 특히 다시는 사용하지 않을 것이라고 생각하는 개인 키를 가진 사람들!), 네트워크를 분기하거나 대체 기록을 생성할 수 있는 능력이 있습니다.

요점은 지분 보유자가 많은 양의 펀드(시장 가치가 높음)를 잠그고 계약을 준수하지 않으면 모든 자금을 잃게 되더라도 사용자가 지분을 잠금 해제하면 이러한 억제력이 사라지고, 잠금 해제는 조만간(시스템 외부에서 보든 시스템 내부에서 보든) 올 것이며, 현재(이 블록) 언제(어떤 블록) 권리와 이익이 잠금 해제됩니다. 따라서 시스템에서 내부적으로 정의한 값을 잠그면 무료 기록 또는 "비용이 없는 시뮬레이션"을 방지할 수 없습니다.

4.3 "장거리" 공격 대 "단거리" 공격

지분 보유자가 오랜 시간 동안 지분을 묶고 서명자를 선택할 때 무작위성을 생성하기 위해 오래 전의 블록(블록 단위)을 사용하도록 요구하는 경우 위의 공격자가 오랜 시간 동안 기록을 다시 작성하도록 만들 수 있습니다. 이것은 종종 "단거리 공격으로부터 보호한다"고 말합니다.

분명히 이것은 여전히 ​​제로 비용 시뮬레이션 문제를 해결하지 못합니다. 결국 히스토리 생성 자체가 쉬운 한 히스토리 브랜치를 생성하는 것은 얼마나 오래 걸리든 쉽습니다. 그러나 지지자들은 종종 정직한 서명자들에 의해 생성된 역사가 있고, 이 체인에 축적된 블록의 수는 현실 세계에서 더 긴 시간에 해당하며, 이 역사의 모든 수정은 참여자들과 관련이 있을 것이라고 종종 말합니다. 갈등. 따라서 사람들은 그것이 공격임을 감지하고 인식하고 거부할 수 있습니다.

소프트웨어가 여기에서 규칙을 올바르게 구현하면 괜찮지만 Bitcoin과 같은 시스템에서 사용하는 신뢰 모델을 변경합니다. 네트워크를 처음 사용하는 사람들은 여러 역사에 직면하고 더 이상 어느 것이 사실인지 스스로 말할 수 없습니다. 그들은 네트워크의 기존 참여자(친구, 가족, 잘 알려진 대기업, 공개 웹사이트 등일 수 있음)에게 질문해야 합니다. .) 어떤 역사가 사실인지. 이것은 분산 합의 메커니즘이 아닙니다! 이것은 또 다른 형태의 합의 메커니즘으로, 항상 온라인 상태인 동료 사이에서 탈중앙화로 형성될 수 있지만, 신규 사용자와 오랫동안 오프라인 상태였던 사용자는 누군가를 신뢰해야 합니다. 이 모델은 당연히 법적 압력, "신뢰할 수 있는" 엔터티에 대한 공격 및 사이버 공격에 매우 취약합니다.

4.4 기타 고려 사항

[Poe14b]를 다시 인용하면:

ETH
开发者
Odaily 공식 커뮤니티에 가입하세요