저자 | 비탈릭 부테린
저자 | 비탈릭 부테린
대부분의 블록체인 응용 프로그램의 가장 가치 있는 속성 중 하나는 무신뢰성입니다. 즉, 특정 참여자가 미래에 관련된 이해 관계가 변경되더라도 특정 방식으로 행동하도록 의존하지 않고 의도한 방식으로 기능을 계속 유지할 수 있는 응용 프로그램의 능력입니다. 예기치 않게 작동합니다. 블록체인 응용 프로그램은 완전히 신뢰할 수 없는 것은 아니지만 일부 응용 프로그램은 다른 응용 프로그램보다 더 신뢰할 수 없습니다. 신뢰 최소화라는 목표를 향해 나아가려면 먼저 신뢰 수준을 식별할 수 있어야 합니다.
첫째, "신뢰"에 대한 간단한 정의는 다음과 같습니다. 신뢰는 다른 사람의 행동에 대해 가정하는 것입니다. 발병 전에는 길을 걸을 때 누가 갑자기 찔리지 않도록 일부러 2미터 거리를 두지 않았습니다. 법률 시스템의 관리자는 이러한 행동을 제한할 강력한 동기가 있습니다. 다른 사람이 작성한 코드를 실행하면 (자신의 양심에 따라든, 명성을 유지하려는 금전적 이익을 위해든) 그들이 정직하게 작성했다고 믿거나 적어도 그것을 확인하기 위해 충분한 사람들이 존재합니다. 취약점. 자신의 식량을 재배하지 않는 것은 또 다른 형태의 신뢰입니다. 충분한 사람들이 이익을 위해 재배하여 귀하에게 판매할 것이라고 믿는 것입니다. 다양한 크기의 그룹을 신뢰할 수 있으며 다양한 유형의 신뢰가 있습니다.
블록체인을 분석하기 위해 신뢰를 다음 차원으로 분해하려고 합니다.
얼마나 많은 사람들이 당신의 기대에 따라 행동해야 합니까?
총인원은 몇 명입니까?
사람들에게 필요한 동기는 무엇입니까? 그들은 이타주의자여야 합니까, 아니면 용병이어야 합니까? 협업을 피해야 합니까?
이러한 가정을 위반하면 시스템에 얼마나 나쁜 영향을 미치게 될까요?
지금은 처음 두 가지 사항에 초점을 맞추겠습니다. 다음은 다이어그램입니다.
녹색이 어두울수록 모델이 더 건강합니다. 이러한 범주를 자세히 분석해 보겠습니다.
1/1: 전체 시스템에 한 명의 참가자만 있습니다. 이 액터가 예상대로 작동하면 시스템이 제대로 작동합니다. 이것은 전통적인 "중앙 집중화" 모델이며 우리가 능가하고자 하는 모델이기도 합니다.
N of N: "디스토피아" 세계. 시스템의 모든 참가자는 시스템이 제대로 작동하기 위해 예상대로 행동해야 하며, 그 중 하나라도 실패하면 구제책이 없습니다.
N/2 of N: 이것은 블록체인이 작동하는 방식입니다. 대다수의 채굴자(또는 PoS 검증자)가 정직하면 블록체인이 제대로 작동합니다. N의 값이 클수록 N/2의 가치가 높아집니다. 소수의 채굴자/검증자만이 제어하는 블록체인보다 광범위하게 분산된 채굴자/검증자 네트워크가 더 합리적입니다. 그래도 51% 공격의 가능성 때문에 이 수준의 보안으로 한 단계 더 나아가고자 합니다.
1 of N: 액터가 많고 그 중 적어도 한 명이 예상대로 작동하면 시스템이 제대로 작동합니다. 사기 증명을 기반으로 하는 모든 시스템은 신뢰 설정과 마찬가지로 이 범주에 속하지만 이 경우 N의 값은 일반적으로 작습니다. 우리는 N의 값이 가능한 한 커지길 원합니다!
Few of N: 소수의 고정된 액터가 예상대로 작동하는 한 시스템은 제대로 작동합니다. 데이터 가용성 확인이 그 중 하나입니다.
0/N: 시스템이 제대로 작동하기 위해 외부 액터에 의존할 필요가 없습니다. 블록을 직접 검증하는 것이 이 범주에 속합니다.
"0 of N" 이외의 모델은 어느 정도 "신뢰"가 있지만, 이 모델에는 큰 차이가 있습니다! 특정 개인(또는 조직)이 예상대로 행동할 것이라고 믿는 것은 개인이 예상대로 행동할 것이라고 믿는 것과는 완전히 다른 상황입니다. "1 of N"은 "N/2 of N"에서 "1 of 1"보다 "0 of N"과 더 유사합니다. 두 모델 모두 단일 플레이어에 의존하기 때문에 "1 of N" 모델이 "1 of 1" 모델과 유사하다고 생각할 수 있지만 실제로 두 모델은 상당히 다릅니다. "1 of N" 시스템에서 참가자가 갑자기 사라지거나 어두워지면 다른 참가자를 변경할 수 있지만 "1 of 1" 시스템에서는 다른 선택의 여지가 없습니다.
특히, 실행하는 소프트웨어조차도 코드에 버그가 있는지 누군가 확인할 수 있도록 정확성을 위해 종종 "N의 소수" 신뢰 모델에 의존한다는 점에 유의하십시오. 이것을 알고 애플리케이션의 나머지 부분을 "N 중 1" 모델에서 "N 중 0" 모델로 전환하는 것은 집에 보안 문을 설치하고 창문을 열어 둔 것과 같습니다.
또 다른 중요한 차이점은 신뢰 가정이 깨지면 시스템에 얼마나 많은 손상이 가해지는가입니다. 블록체인에서 가장 일반적인 두 가지 유형의 실패는 활성 실패와 안전 실패입니다. 활성 실패는 일시적으로 작업을 수행할 수 없음을 의미합니다(예: 코인 인출, 트랜잭션을 블록으로 압축, 체인에서 데이터 읽기). 보안 실패는 시스템이 방지하려는 상황입니다(예: 유효하지 않은 블록이 블록체인에 추가됨).
다음은 일부 블록체인 레이어 2 프로토콜에서 채택한 신뢰 모델 목록입니다. 저는 레이어 2 시스템 자체의 참여자 집합을 지칭하기 위해 "small N"을 사용하고 블록체인 하단에 있는 참여자를 지칭하기 위해 "big N"을 사용합니다. 내 가정은 계층 2 커뮤니티가 항상 기본 블록체인보다 작을 것이라는 것입니다. 또한 저는 특히 장기간 동안 토큰을 올릴 수 없는 상황을 언급하기 위해 "활성 실패"라는 용어를 사용합니다. 시스템을 사용할 수 없지만 거의 즉시 자금을 인출할 수 있는 것은 활성 실패로 간주되지 않습니다.
"채널" 체계(상태 채널, 라이트닝 네트워크 등을 포함한 채널): 활성을 보장하기 위해 "1/1" 신뢰 모델을 사용합니다(상대방이 자금을 일시적으로 동결할 수 있지만 자금을 여러 채널에 분산시킬 수 있음) 위험 감소 ), 보안을 위해 "빅 N의 N/2" 모델을 사용합니다(51% 공격에서 자금 손실 가능성).
Plasma(중앙 집중식 운영자): 활성을 보장하기 위해 "1 of 1" 신뢰 모델을 사용합니다(운영자는 자금을 일시적으로 동결할 수 있음). 보안을 보장하기 위해 "N/2 of big N" 모델(51% 공격에서 프로세스에서 자금 손실 가능성 있음) ).
Plasma(DPOS와 같은 반분산형 운영자): 활성을 보장하기 위해 "N/2 of small N" 신뢰 모델을 사용하고 보안을 보장하기 위해 "N/2 of big N" 모델을 사용합니다.
낙관적 롤업: 활동성을 위해 "1/1" 또는 "N/2 of small N" 신뢰 모델을 사용하고(운영자 유형에 따라 다름) 보안을 위해 "N/2 of big N" 모델을 사용합니다.
ZK 롤업: "1 of small N" 신뢰 모델을 사용하여 활성 보장 롤업 시스템의 모든 전체 노드의 도움으로 자신) 보안 실패의 위험이 없습니다.
ZK 롤업(가벼운 철회 강화): 활성 실패 위험 및 보안 실패 위험이 없습니다.
마지막으로 "동기 부여"에 대한 질문이 있습니다. 매우 이타적이거나 약간 이타적이거나 참가자가 기대를 따르도록 충분히 합리적이라고 신뢰하는 참가자가 필요합니까? 기본적으로 "사기 증명"은 참여자가 약간 이타적이어야 하지만 그 정도는 계산 복잡성에 따라 다르며(자세한 내용은 "검증인의 딜레마" 참조) 프로세스를 개선하여 더 많은 이유를 만들 수 있는 방법이 많이 있습니다.
서비스 비용을 지불하는 메커니즘을 추가하면 다른 사람들이 ZK 롤업에서 철회하도록 돕는 것이 합리적이므로 롤업에서 철회할 수 없는 것에 대해 걱정할 필요가 거의 없습니다. 동시에 커뮤니티가 51% 공격(매우 긴 트랜잭션 기록 롤백 또는 너무 오랫동안 블록 검토)에서 블록체인을 수락하지 않는 데 동의하면 다른 시스템에 대한 위험을 완화할 수 있습니다.
결론: 누군가 시스템이 "신뢰 메커니즘에 의존"한다고 말한다면 우리는 그 진상을 파악할 수 있습니다! "1/1" 모델, "1/N" 모델 또는 "N/2/N" 모델을 의미합니까? 시스템은 참여자가 이타적이거나 합리적이어야 합니까? 그것이 이타주의라면 참가자에게 드는 비용은 얼마입니까? 가정을 위반한 경우 자금을 돌려받기까지 얼마나 기다려야 합니까? 몇 시간? 몇 일? 아니면 영원히 얼어붙은 것인가? 이러한 질문을 알면 시스템을 채택할지 여부에 대해 매우 다른 답변을 얻을 수 있습니다.
