

편집자 주: 이 기사의 출처는탄소 사슬 가치편집자 주: 이 기사의 출처는
탄소 사슬 가치
(ID: cc-value), 발표자: Conflux Research Director Yang Guang, 텍스트 대조 및 교정: Cinderella, Tang Han, 승인 하에 출판.
이 분야에 대한 저의 연구와 통찰력을 여기에서 여러분과 공유할 수 있는 기회를 갖게 되어 매우 기쁩니다.
먼저 Conflux 팀에 대한 간략한 소개를 드리겠습니다. 우리 팀의 핵심은 Yao 클래스의 몇 명의 동급생과 후배이며 Yao Qizhi 씨를 수석 과학자 및 컨설턴트로 모시게 된 것을 영광으로 생각합니다. 우리가 블록체인 산업에 투자하는 이유는 내가 가장 잘 알고 있는 이 업계를 장악하고 있는 암호학 및 게임 이론에 매우 중요하고 의미 있는 새로운 문제가 많이 있기 때문입니다. 이미 학계에서 가장 최첨단 연구 방향입니다. 이러한 문제는 엔지니어 혼자 해결할 수 없으며 더 많은 학계의 참여가 필요하며 모두가 협력하여 전체 블록체인 산업의 발전을 촉진할 수 있습니다.
보조 제목
01 Sybil 공격 및 블록체인 합의 프로토콜
오늘은 PoW와 PoS의 비교에 대해 이야기하겠습니다. 먼저 가장 일반적인 블록체인 합의 프로토콜을 검토해 보겠습니다. 모든 사람이 트랜잭션을 블록으로 패키징하고 해시 참조를 통해 블록을 체인에 연결하고 공유 원장을 얻습니다. 하지만 이런 방식으로 원장을 직접 사용하는 것은 분명히 안전하지 않습니다. 왜냐하면 나쁜 사람들도 원장을 만든 다음 두 개의 원장을 동시에 여러분 앞에 놓을 수 있기 때문입니다. one should we believe?가 질문을 했습니다.
물론 중앙 집중식이라면이 문제는 해결하기 매우 쉽습니다. 저는 Alipay를 사용하고 Alipay는 제 계좌에 얼마나 많은 돈이 있는지, 그 금액이 얼마인지 말합니다. 사실과 다르면 다른 의견이 있으면 그를 고소하기 위해 법정에 갈 수 있습니다. 하지만 탈중앙화라면 이 문제는 말하기 어렵다. 탈중앙화의 경우 누구나 그런 확정적인 제도를 가지고 있는 것이 아니라 공정한 원장을 갖기 위해서는 다른 수단을 통해 합의에 도달해야 합니다. 그렇다면 탈중앙화된 환경에서 합의는 어떻게 이뤄져야 할까요? 생각하기 쉬운 방법은 우리가 투표하고 모두가 함께 투표하고 원장에 투표한 다음 모두가 그것을 믿는 것입니다.
그러나 우리는 투표에 대해 이야기하고 있기 때문에 투표의 공정성에 대한 질문이 있습니다. 투표권을 어떻게 분배합니까? 예를 들어 오늘 다같이 투표를 하는데 내 손에는 백표가 있고 여기 앉아 계신 여러분 각자도 한표씩 가지고 계세요 이건 투표라고 하지 않습니다 저는 백표를 가지고 있습니다 기본적으로 제가 투표하고 싶은 말을 합니다 에 대한, 그리고 그 결과는 그것이 무엇인지입니다. 우리가 정말로 합의에 도달하고 싶다면 이렇게 특히 불공평한 방식으로 투표하는 것은 불가능합니다. 따라서 의결권 분배는 합의 프로토콜의 핵심이자 가장 중요한 부분 중 하나입니다. 오프라인 투표권 분배 문제는 실제로 상대적으로 해결하기 쉽습니다. 우리는 단순히 한 사람, 한 표를 가지고 있습니다. 누구나 신분증을 가지고 투표할 때 등록만 하면 됩니다. 하지만 온라인에서는 1인 1표를 달성하기가 매우 어렵습니다.
Sybil 공격이 무엇인지 간단히 설명하자면 공격자가 저렴한 비용으로 많은 계정을 만든 다음 이러한 계정을 제어하여 함께 행동하여 다른 사람이 많은 사람이 있는 것처럼 보이게 할 수 있다는 의미입니다. 예를 들어 포럼에는 여론을 이끄는 트롤이 있고, 예를 들어 영화 등급 웹 사이트에는 댓글과 점수를 검토하기 위해 특별히 조직하는 사람들이 있습니다. 이런 해군 조끼 공격에 대한 계정이 많다면 최종 투표 결과는 사실이 아닙니다. 이런 식으로 특정인이 많은 표를 행사할 수 있으며, 최종 투표 결과는 전적으로 이 사람에 의해 통제됩니다. 전통적인 인터넷 환경에서는 각 계정의 등록 비용을 높이는 등 Sybil 공격에 대처할 수 있는 여러 가지 방법이 있습니다. 인터넷에서 계정을 등록하려고 할 때 인증번호를 입력해야 하는 경우가 많은데 컴퓨터에서 구현하는 것이 더 번거롭기 때문입니다. 사람이 하면 간단하지만 가끔 휴대폰 번호를 바인딩하거나 IP 주소를 감지해야 하는 경우가 있는데, 이는 Sybil 공격에 저항하는 비교적 일반적인 방법입니다. 그러나 탈중앙화된 환경에서는 위의 방법들이 사용하기 쉽지 않습니다. 탈중앙화 환경에서는 누가 인증 코드를 게시하고 인증 코드가 올바르게 입력되었는지 판단할 수 있기 때문입니다. 그럼 휴대폰 인증은 누가 할까요? 아이피 주소를 사용한다고 해도 사실 굉장히 불공평한 방법입니다. 모든 사람이 고정 IP 주소를 동등하게 사용하는 것은 아니라는 사실을 알고 있기 때문입니다.
따라서 블록체인에서 실제로 사용하는 가장 일반적인 솔루션은 작업 증명(PoW), 지분 증명(PoS) 및 대리 지분 증명(DPoS)입니다. 당신이 얼마나 많은 공간을 가지고 있는지 또는 얼마나 많은 돈을 태웠는지 증명하는 것과 같은 다른 증명 방법과 다른 방법이 있지만 가장 일반적인 방법은 PoW 및 PoS입니다. 여기서 저는 또한 PoW, PoS 또는 기타 PoX에 관계없이 약간 강조하고 싶습니다. 이들은 Sybil 공격 방지 메커니즘이며 합의 알고리즘(프로토콜)의 중요한 부분이지만 합의 알고리즘과 동등하지는 않습니다.
보조 제목
02 작업 증명
다음으로 모두에게 친숙한 워크로드 증명에 대해 이야기하겠습니다.
작업 증명의 기본 아이디어는 컴퓨팅 파워가 블록 생성 권한을 결정한다는 것입니다. PoW 계산 문제를 해결할 수 있으면 블록을 생성할 수 있습니다. 대략적으로 요약하면 하나의 CPU에 대한 하나의 투표 또는 하나의 GPU 또는 하나의 마이닝 머신에 대한 하나의 투표로 이해할 수 있습니다. 그 이점은 시스템이 무허가라는 사실에서 시작됩니다. 참가자는 계산 능력을 갖춘 기계가 있고 이론에 참여할 수 있고 기계가 필요하지 않은 한 누구의 허가도 필요하지 않습니다. 블록의 해시를 수동으로 계산하고 제 시간에 업로드할 수 있다면 다른 사람들은 그것이 합법적인 블록임을 인식할 것입니다. 또 다른 하나는 PoW 투표 자체의 비용이 상대적으로 높기 때문에 CPU, GPU 또는 채굴기 사용 여부에 관계없이 기계 비용과 전기 비용을 실질적으로 지출해야 합니다. 아까 말씀드렸던 인증코드와 같은 내용인데, 사실 형태가 좀 비슷하죠? 몇 가지 인증 코드가 있습니다. 읽은 후 사람들은 여전히 내부의 숫자 또는 문자가 무엇인지 식별하는 데 약간의 시간을 할애해야 입력하고 인증을 통과할 수 있습니다. 작업 증명의 가장 큰 장점 중 하나는 투표와 투표권이 구속된다는 것입니다. 일단 투표가 성공하면 투표자 자신도 투표 내용을 수정할 수 없습니다.
작업증명의 일반적인 논리에 따르면 투표 시 먼저 블록을 패키징한 후 이 블록에 대한 작업증명을 해야 합니다. 현재 패키징된 블록은 수정할 방법이 없습니다. 예를 들어 내 마이닝 머신은 하루에 많은 투표를 할 수 있지만 전날의 컴퓨팅 파워를 새로운 블록에 집중하고 싶다면 불가능합니다. 자신의 블록도 생산한 블록에 대해 남의 블록을 롤백할 때와 같은 컴퓨팅 파워를 지불해야 한다. 이것은 PoW의 특히 좋은 기능입니다.
물론 PoW 메커니즘을 기반으로 한 합의 알고리즘에도 몇 가지 단점이 있습니다. 우선, 단점은 지연이 상대적으로 높다는 것입니다. 트랜잭션을 블록으로 묶은 후 이 블록이 즉시 유효한 후보 블록이 되지 않기 때문에 이 블록을 호출하려면 작업 증명이 하나 이상 완료되어야 합니다. 후보 블록 . 여기서 작업 증명 시간은 특별히 짧게 설정할 수 없으며, 왜 너무 짧아서는 안 되는지 나중에 설명하겠습니다. 따라서 적어도 블록이 패키징된 시점부터 블록의 작업 증명이 완료되기까지의 기간 동안에는 거래를 확인할 수 없습니다. 따라서 비트코인이 6개의 블록이 확정되기를 기다리지 않고 1개의 블록을 보면 확정하더라도 거래를 확정하는 데 평균 10분이 걸린다. PoW 메커니즘에 대한 또 다른 비판점은 많은 에너지를 소비하고 환경 친화적이지 않다는 것입니다. 이 점에 대해서는 작업 증명의 에너지 소비가 필요한지 여부는 의견의 문제라고 생각하며 유보 할 수 있습니다. 하지만 우리는 작업 증명에 대해 이야기하고 있기 때문에 이 워크로드를 저장할 방법이 없습니다. 저장하면 다른 이름으로 불릴 것입니다.
PoW 기반 합의의 주요 문제를 해결하는 방법을 살펴보겠습니다.
첫 번째는 확인 속도가 느리다는 것입니다. 비트코인을 예로 들면 블록 하나를 생성하는 데 평균 10분이 걸리고 확인하는 데 또 다른 6개의 블록이 걸리며 평균 1시간이 걸립니다. 두 번째는 상대적으로 낮은 처리량입니다.비트코인이 이 점에서 몇 년 동안 비판을 받아 왔다는 것은 누구나 알고 있습니다. 세 번째 요점은 높은 에너지 소비가 환경 친화적이지 않다는 것입니다. 하지만 세 번째 포인트는 우리가 PoW를 사용하기를 원하기 때문에 이 에너지 소비가 불가피하므로 이 문제를 해결하고 싶지 않다는 것입니다.
처음 두 가지 문제는 느린 확인 속도와 낮은 처리량입니다. 사실 이 두 가지 문제는 PoW 문제의 목표 난이도를 낮추고 블록 생성 속도를 높이는 매우 간단한 해결책을 가지고 있는 것 같습니다. Litecoin은 실제로 그렇게 합니다. 목표 난이도를 비트코인의 10분에서 2.5분으로 낮춘 뒤 비트코인보다 4배 빠른 속도로 블록을 생성했다. 처리량을 향상시키는 또 다른 방법은 블록 용량을 늘리는 것입니다. 직관적으로 동일한 블록 생산 속도에서 블록이 클수록 처리량이 커집니다.
Bitcoin의 느린 확인 속도와 낮은 저장 용량 문제를 해결하는 것이 그렇게 간단합니까? 당연히 아니지. 정말 그렇게 간단했다면 비트코인은 10분 안에 1M으로 설정되지 않았을 것입니다. 방금 언급한 방법으로 문제를 해결할 수 없는 이유는 무엇입니까? 우리가 블록을 더 빨리 생성하면 블록체인이 매우 자주 분기되기 때문에 특히 블록 생성 속도가 브로드캐스트 속도를 초과하면 포크 상황이 특히 심각해집니다.
PoW 문제의 난이도를 낮추고 블록 생성 속도를 높인 다음 블록 용량을 늘리면 실제로 특정 네트워크 조건에서 방송 속도가 확실히 감소합니다. 블록이 클수록 브로드캐스트 속도가 느려지기 때문입니다. 그런 다음 블록 생성 속도는 빠르지만 브로드캐스트 속도가 느리다고 말하면 다른 사람으로부터 새 블록을 받기 전에 블록을 직접 채굴할 수 있으며 포크가 발생합니다. 그런 다음 격차가 상대적으로 크면 포크가 많이 생길 것입니다.
포크가 너무 많으면 뭐가 문제인가요? 가장 큰 단점은 보안이 약화된다는 것입니다. 비트코인에서는 악당이 공격하는 데 컴퓨팅 성능의 51%가 필요하다고 종종 말합니다. 전제는 좋은 사람들이 하나의 메인 체인에 집중되어 있다는 것입니다. 이 경우 선인의 49%가 집중하고 악인의 51%가 공격할 수 있다. 하지만 그렇게 빈번한 포크가 실제로 발생한다면, 예를 들어 포크 A에는 컴퓨팅 파워의 30%, 포크 B에는 컴퓨팅 파워의 40%가 있습니다. 이때 나쁜 놈들은 포크 B를 롤백하고 포크 A로 변경하려고 합니다. 많이 필요하지 않고 컴퓨팅 파워의 11%만 필요합니다. 세계에서 가장 정직한 컴퓨팅 파워를 가진 두 포크의 차이보다 약간 더 크면 공격자는 이 두 상위 포크에서 가장 긴 체인을 앞뒤로 점프하게 만들 수 있습니다. 그래서 비트코인의 매개변수를 정말 간단하고 무례하게 바꾸면 결국 보안이 확실히 떨어지게 됩니다.
그러나 PoW가 이러한 보안 감소에 대해 비난받을 수 있다고 생각하지 않습니다. PoW는 여기서 안티 시빌 공격 메커니즘일 뿐이며 난이도를 조정할 수 있습니다. 여기서 보안 감소의 주범은 PoW 대신 "가장 긴 체인"에 의해 수행되어야 합니다. 포크가 훨씬 덜 안전한 이유는 무엇입니까? 사실 비트코인이 가장 긴 체인 합의를 채택하기 때문입니다. 가장 긴 체인 메커니즘에서 포크가 있으면 정직한 컴퓨팅 파워가 포크를 따를 가능성이 높습니다. 즉, 정직한 사람들이 포크에 투표하여 나쁜 사람들이 최종 결과를 조작하기 더 쉽습니다.
그런 다음 다음 질문: PoW를 기반으로 하는 가장 긴 체인 합의가 포크되는 이유는 무엇입니까? 모두가 좋은 사람이면 포크가 없다는 뜻인가요?
이것도 사실이 아닙니다. 그래프의 각 선을 사용하여 노드를 나타내고 오른쪽 화살표는 시간을 나타냅니다. 이 노드가 블록을 생성할 때 블록을 브로드캐스트해야 하는데 브로드캐스팅에는 시간이 걸리므로 "이벤트 라이트 콘"이 형성됩니다. 블록을 생성한 노드에서 멀어질수록 브로드캐스트된 블록을 수신하는 데 더 오래 걸리며 방금 생성된 새 블록을 보려면 나중에 기다려야 합니다. 즉, 이 노란색 영역과 이후에 있는 다른 노드만 자신이 생성한 블록을 볼 수 있습니다. 라이트 콘이 있기 때문에 라이트 콘 외부에 해당 영역이 있으며 그림에서 녹색 부분입니다. 노드가 조명 원뿔 외부 영역에 있는 경우 아직 브로드캐스트되지 않았기 때문에 블록이 방금 생성되었음을 알 수 없습니다. 즉, 네트워크에서 생성되는 다음 블록이 뒤에 있는 노란색 부분에 있으면 당연히 안전합니다. 이때 모든 노드가 최신 블록을 본 다음 블록을 생성할 때 뒤를 따를 것이기 때문입니다. 포크 없음 - 모두가 좋은 경우.
하지만 블록 생성 속도가 상대적으로 빠르고 초록불 원뿔 밖의 영역에 블록을 생성하면 필연적으로 포크가 생기고 결국에는 고아 블록이 생기겠죠? 이 두 블록이 서로를 참조하는 것은 불가능하기 때문입니다. 따라서 간단한 추정을 위해 고아 블록 비율은 예상 블록 간격의 총 영역으로 나눈 라이트 원뿔 외부 영역과 대략 같습니다. 블록 생성 이벤트는 예상 블록 간격 내에서 동일한 확률로 무작위로 발생하기 때문입니다. 반면에 녹색 조명 원뿔 외부 영역의 비율이 작을수록 고아가 될 가능성이 낮습니다.
하지만 실제로는 꼭 4개의 노드만 있는 것이 아니라 많은 노드가 있을 것이고 더 많은 노드가 있으면 자연스럽게 방송 시간이 길어질 것입니다. 브로드캐스팅 시간이 길수록 조명 원뿔 외부의 영역이 더 커지고 블록 생성 간격도 길어져 고아 블록이 상대적으로 작은 범위 내에서 제어될 수 있습니다. 사실 고아 블록 자체도 보안에 영향을 미치기 때문에 예를 들어 고아 블록 비율이 20%인 경우 공격을 완료하는 데 51%가 아닌 41%의 컴퓨팅 성능만 필요합니다. 따라서 보안을 강화하고 고아 블록을 줄이기 위해서는 블록 간격을 늘려야 합니다. 예를 들어 비트코인은 10분으로 설정되어 있습니다. 물론 이 10분을 완전히 변경할 수는 없지만 변경 후에는 보안에 약간의 영향을 미칠 것입니다.
블록 간격이 길어지면 전체 시스템의 효율성이 감소하고 특히 처리량이 크게 영향을 받습니다. 여기에서 전체 시스템의 대역폭을 살펴보겠습니다.실제로 세 부분으로 나눌 수 있습니다: 대역폭의 일부(파란색 부분)는 모든 사람이 결국 전송 중에 합의에 추가하게 되는 트랜잭션이고, 또 다른 부분은 대역폭(빨간색 부분)은 모든 사람이 전송하는 트랜잭션입니다. 전체 프로토콜의 오버헤드를 포함하여 합의에 참여하지 않는 일부 데이터, 일부는 최종적으로 합의에 추가되지 않은 유효하지 않은 블록 및 트랜잭션일 수 있습니다. 마지막 부분 (흰색)은 사용되지 않고 낭비된 대역폭입니다. 안티 시빌 공격 메커니즘으로 PoW를 사용하고 최종 합의를 계산하기 위해 가장 긴 체인 프로토콜을 사용하면 실제로 대역폭 사용률이 매우 낮습니다.
비트코인을 예로 들면 600초에 1MB의 유효 블록을 생성하고 600초에 1MB의 유효 블록을 생성할 것으로 예상합니다.이 블록을 여러 번 확장하더라도 전체 네트워크의 600초를 효과적으로 사용할 수 있습니다. .저장되는 정보의 양이 20MB 미만일 수 있습니까? 그러나 이제 네트워크의 평균 속도는 이미 600초에 몇 GB입니다. 따라서 전체 네트워크 대역폭의 활용률은 약 1%에 불과하며 낭비는 여전히 매우 심각합니다. 조밀한 블록 기술을 사용하는 것과 같이 방송 속도를 높이는 기술을 사용하면 녹색 조명 원뿔 외부 영역의 시간이 단축됩니다. 이러한 방식으로 블록 간격을 비례적으로 단축하고 이전과 동일한 보안을 유지하면서 대역폭 활용도를 높일 수 있습니다. 그러나 이러한 개선에도 불구하고 가장 긴 체인을 사용하고 고아 블록 비율을 제어하는 한 대역폭 사용률은 여전히 그다지 높지 않습니다. 일반적으로 퍼블릭 체인 네트워크에는 수천 또는 수만 개의 노드가 있을 수 있으며, 브로드캐스트하려면 평균 10개 이상의 전달이 필요할 수 있습니다. 예를 들어 블록을 생성한 노드에서 시작하여 다음 노드로 전송하고 이 노드가 블록을 수신하고 확인하여 다음 노드로 전송하는 등 10번의 포워딩이 필요하다고 가정하면 이 과정을 반복해야 합니다. 열 번. 이러한 10개의 포워딩의 전체 프로세스 내에서 고아 블록 비율을 줄이려면 전체 네트워크의 다른 노드가 이 기간 동안 두 번째 블록을 생성하지 않거나 두 번째 블록 조각을 생성할 확률이 매우 낮을 필요가 있습니다. . 즉, 오랜 시간 동안 모두가 실제로 한 블록만 방송하고 있습니다. 첫 번째 사람이 두 번째 사람에게 전달하고 두 번째 사람이 세 번째 사람에게 전달하면 첫 번째 사람이 유휴 상태가 되는 거죠? 따라서 최종 대역폭 활용도는 당연히 높지 않습니다. 이전에 비해 일정한 배 향상이 있을 수 있지만 전체 대역폭을 다 사용할 수 있는 것과는 거리가 멀고 이미 1/10을 사용할 수 있는 것은 매우 좋은 것으로 간주됩니다.
이 경우 분기를 피하고 싶다면 불가피한 대역폭이 만족스럽지 않을 것이고, 대역폭이 만족스럽지 않으면 TPS가 그렇게 높을 수 없습니다. 함께 동기화할 데이터가 너무 많기 때문에 그 안에 넣을 수 있는 트랜잭션의 상한선이 있습니다. 트랜잭션 크기가 동일하게 유지되는 경우(트랜잭션 크기를 줄이면 TPS도 향상될 수 있지만 다른 모든 블록체인도 동일한 기술, 상대적인 단점은 동일하게 유지됨).
사실 지금 당장 해결해야 할 문제는 포크가 발생한 후에 정직한 컴퓨팅 파워가 집중되지 않아 보안이 약화된다는 것입니다. 하지만 이 솔루션이 분기 가능성을 줄이는 솔루션이 하나뿐이라는 의미는 아닙니다. 예를 들어 DAG 기반 방향성 비순환 그래프를 사용하여 해결할 수도 있습니다.
Ethereum이 분기를 선택하면 가장 긴 체인이 아니라 GHOST 프로토콜을 사용합니다. 사실 이더리움은 약간 수정된 버전을 사용하는데, 이 프로토콜의 핵심 아이디어는 포크를 만났을 때 가장 긴 서브체인 대신 가장 무거운 서브트리가 있는 분기를 선택하는 것입니다. 이 경우 포크가 있든 없든, 포크가 몇 개 있든 보안의 문제는 큰 문제가 아니다. 포크의 정직한 채굴자조차도 여전히 이전 선택의 보안에 기여할 것이기 때문입니다. 예를 들어, 광부는 나중 블록에서 포크하지만 광부는 여전히 포크 이전 어딘가에서 분기를 선택하는 방법에 대한 보안에 기여합니다. 선택해야 하는 분기의 하위 트리에 가중치를 부여합니다.
Conflux는 일부 반복되는 트랜잭션이 있을 것이지만 전체 대역폭을 완전히 활용하기 때문에 이러한 전제 하에서 유효 대역폭 활용률이 GHOST보다 훨씬 높기 때문에 전체 시스템의 처리량을 향상시킬 수 있습니다. . 이에 비해 비트코인의 총 대역폭 활용도는 매우 낮기 때문에(~1%) 프로토콜 오버헤드를 줄이더라도 Conflux와의 처리량 차이는 여전히 매우 분명합니다.
이것은 PoW에 대한 몇 가지 간단한 소개입니다. 다음은 Proof of Stake를 살펴보겠습니다.
보조 제목
03 지분증명(PoS)
형평성 증명의 기본 아이디어는 코인을 보유하고 있을 때(때때로 사람들은 이 지분이라고도 함) 부기할 권리가 있고 투표할 권리가 있다는 것입니다. 귀하의 투표권은 보유하고 있는 코인의 수에 정비례합니다. 즉, 코인 1개, 투표권 1개입니다. 간단히 말해 돈이 많을수록 투표권이 커집니다.
PoS 프로토콜의 기본 프레임워크는 모든 참가자의 통화 보유에 따라 패키징 권한과 의결권을 할당하는 것입니다. PoS 시스템에서는 패키징과 투표가 분리되어 있고 분리될 수도 있습니다. PoW 시스템에서는 이 두 가지가 실제로 같은 것입니다. 패키징 권한이 할당되면 패키징 권한을 가진 사람이 후보 블록을 생성할 수 있습니다. 이 블록에는 처리할 트랜잭션이 포함되어 있으며 자체 서명이 있습니다. 후보 블록은 합의에 추가된다는 의미가 아니라 후보 블록이 방송된 후 투표권이 있는 사람들이 투표를 해야 합니다.
투표 형식은 투표된 블록에 서명하는 것일 수 있습니다. 투표 후 더 많은 표를 얻은 후 후보 블록이 최종적으로 합의에 추가되고 유효한 블록이 됩니다. 물론 우리는 다양한 방식으로 투표 프로세스를 구현할 수 있으며 더 일반적인 방법은 소수가 다수에 복종하는 합의 알고리즘을 사용하는 것입니다. 이제 우리는 얼마나 많은 사람들이 투표할 자격이 있고 얼마나 많은 투표가 있는지 알고 있기 때문에 이 합의 알고리즘으로 1/2 이상 또는 2/3 이상과 같은 다수를 쉽게 계산할 수 있습니다. 이것은 PoW와 매우 다릅니다. PoW 시스템에서는 전체 네트워크가 얼마나 많은 컴퓨팅 성능을 가지고 있는지 알지 못하고 일반적으로 정확하지 않은 추정치에만 의존할 수 있기 때문입니다. 따라서 PoW 시스템에서는 어떤 것이 다수인지 판단하기 위해 특정 임계값을 사용하는 것이 불가능합니다.
탈중앙화 메커니즘에서 우리는 패키징을 담당하는 사람과 투표를 담당하는 사람을 선출해야 합니다. 때로는 효율성을 위해 모든 사람이 먼저 상대적으로 작은 위원회를 선출한 다음 투표를 담당합니다. Proxy Proof of Stake의 DPoS 메커니즘이 아닌 경우 이러한 위원회는 일반적으로 공정성을 위해 무작위로 선택되고 자주 순환됩니다.
PoS 시스템에서 일부 참가자가 PoS 합의 프로토콜을 위반한 것으로 감지되면 처벌받을 수 있습니다. 예를 들어, 어떤 사람들은 한 표로 많은 블록에 투표하거나, 투표권이 있지만 투표를 거부하는 등 시스템의 보안에 영향을 미치는 이러한 행위는 처벌될 수 있습니다.
Proof of Stake의 장점을 다시 살펴보겠습니다.
첫 번째 이점: 광부와 코인 보유자의 인센티브는 동일합니다. 모든 PoS 채굴자는 코인을 보유해야 하며, 이는 코인을 보유하지 않고 기계에 의존하여 채굴하는 전체 생태 환경에서의 역할을 줄입니다. PoW 커뮤니티에서는 부자, 개발자, 채굴자의 이해관계가 완전히 일치하지 않는 상황이 종종 발생하며, 그로 인해 다툼이 발생하게 되어 결국 많은 일이 이루어지기 어렵습니다. PoS에서는 적어도 채굴자와 자본가의 이해 관계가 더 일관되고 갈등과 차이가 어느 정도 줄어들 것입니다.
두 번째 장점: PoS의 지연을 매우 낮출 수 있고 확인이 매우 빠를 수 있습니다. PoS 시스템에서는 트랜잭션을 받은 직후에 트랜잭션을 패키징할 수 있으며 패키징 후 브로드캐스트할 수 있습니다.PoW 문제를 한 번 이상 기다려야 하는 PoW와 달리 이 시간을 기다릴 필요가 없습니다. 실제로 PoS 합의 지연은 주로 네트워크와 투표자 수에 의해 제한됩니다. 더 많은 사람에게 투표할수록 더 오래 기다려야 하기 때문입니다.
세 번째 장점: PoS는 작업 증명이 필요하지 않기 때문에 더 환경 친화적입니다. 투표는 실제로 서명이며 기껏해야 몇 가지 간단한 계산이 수행되며 PoW 문제를 해결하는 것보다 훨씬 쉽습니다.
그러나 그 단점도 위의 것과 관련이 있으며 PoW 시스템의 일부 장점이 손실됩니다.
첫째, PoS 시스템은 비허가형 PoW 시스템보다 익명성과 권한이 약간 적습니다. 사람으로서 PoS 시스템에 가입하고 싶고 투표하려면 먼저 코인을 보유해야 합니다. 이 통화를 다른 방법으로 얻는 것은 불가능합니다. 이미 통화를 가지고 있는 사람들과 거래를 해야 합니다. 그들이 나에게 통화를 제공한 후에 나는 권리가 있습니다. 이것은 PoW와 달리 기계를 시스템에 연결하기만 하면 직접 코인을 채굴할 수 있습니다.
둘째, 투표 비용 자체가 매우 낮고 유효한 투표를 생성하는 데 서명만 있으면 됩니다. 이 경우 보안에 몇 가지 문제가 있습니다. 예를 들어, PoS 시스템의 일반적인 무해한 공격 문제입니다.
또한 의결권을 재사용하여 양도할 수 있는데 이는 좋지 않습니다. 내 개인키를 다른 사람에게 팔면 이전에 내가 던진 투표, 역사상 각 분기가 한 선택, 이때 내 개인키를 받은 사람이 다시 투표할 수 있습니다. 이전 의결권을 재사용하는 기능은 몇 가지 보안 문제를 제기합니다. 나중에 장거리 공격에 대해 자세히 설명하겠습니다.
투표 메커니즘으로 인해 발생하는 몇 가지 문제도 있습니다. 방금 우리는 PoS 합의의 장점이 빠르게 확인할 수 있고 포크할 수 없다는 점이라고 말했지만, 이 논포크의 전제는 대부분의 노드가 정직하다는 가정이 필요하다는 것입니다. 노드의 2/3 이상이 정직하다고 여기에서 언급됩니다.사실 엄밀히 말하면 코인과 의결권의 2/3 이상이 정직한 사람의 손에 있고 나쁜 사람은 적게 가지고 있어야 합니다. 의결권의 1/3 이상. ——이렇게 해서 2/3 이상의 득표를 한 블록에 대해 다른 블록에 투표할 수 있는 나쁜 사람들이 있더라도 서명하지 않은 나머지 좋은 사람들과 합류하게 되고, 그들 모두 2/3를 초과하지 않습니다. 이런 식으로 충분한 노드 서명이 있고 전체 시스템의 대부분의 노드가 정직한 한 시스템은 전혀 포크하지 않고 매우 빠르게 수행할 수 있으며 모든 사람이 신속하게 확인할 수 있습니다. 예를 들어 EOS는 이제 빠른 블록 생성과 빠른 확인을 달성합니다.
그러나 PoS 합의에는 몇 가지 새로운 문제도 있습니다.
첫 번째는 의사소통 복잡성이 투표자 수와 관련이 있으며 일반적으로 2차 관계라는 것입니다. 투표하는 사람이 많을수록 의사 소통이 복잡해지고 모든 사람이 기다려야 하는 시간이 길어집니다. 마치 우리가 한 사람, 한 표로 미국 대통령을 선출하고 싶다면 전체 투표 과정이 매우 복잡하고 매우 느린 반면, 문제를 결정하기 위해 정치국에서 투표하는 것은 사람이 적기 때문에 훨씬 더 빠릅니다.
또한 PoS 합의의 더 본질적인 문제가 있습니다. 즉, 투표권 결정 시간이 후보 블록 생성보다 빠릅니다. 이 블록이 있기 전에 누가 투표권이 있고 누가 투표권이 없는지 알고 있습니다. 의결권이 결정되는 방식 때문에 투표에 대한 실제 결정과 이 권리를 행사하는 행위는 별개이며 하나로 묶이지 않습니다. 내가 투표권을 얻었을 때, 아무도 내가 누구에게 투표해야 하는지 말해 줄 수 없었습니다. 따라서 투표권을 얻은 후에는 마음대로 투표할 수 있으며 투표 행위로 인해 투표권이 있는지 여부가 결정되지 않습니다. 하지만 이렇게 하면 투표권의 사용이 더 유연해지고, 더 큰 전략 공간을 선택할 수 있다는 의미이기도 하며, 전체 게임이 더 복잡해집니다. 일반적으로 큰 정책 공간은 공격자가 작업할 수 있는 더 많은 공간을 남겨두기 때문에 보안에 좋지 않습니다. 정직한 사람은 보통 규칙만 따르고 매번 조치를 취하기로 결정하지만 공격자가 큰 운영 공간을 가지고 있으면 많은 일을 할 수 있고 보안을 확보하기가 더 어려워집니다. 결과적으로 PoS 시스템에는 무해한 공격과 장거리 공격과 같은 더 많은 공격 방법이 있을 것입니다.
그렇다면 PoS 시스템에서는 PoW 시스템처럼 먼저 블록을 생성한 다음 투표권을 결정할 수 없는 이유는 무엇입니까? 모든 사람이 의결권에 대해 합의를 이루도록 해야 하기 때문입니다. 유권자가 어떤 후보 블록에 투표하든 상관없이 누가 투표할 자격이 있는지 알아야 합니다. 그렇지 않으면 PoW와 유사한 상황으로 변질될 수 있습니다. 이것을 PoS 시스템에서 스테이크 그라인딩이라고 합니다. 즉, 매번 새로운 블록을 많이 생성하려고 시도한 다음 이 블록에서 가장 유익한 브로드캐스트를 선택합니다. 이 블록은 향후 투표권을 결정합니다. 블록이 먼저 생성되고 투표권이 나중에 결정되는 것이 사실이라면 포크가 여러 개의 분기로 분할되고 각 분기 블록 뒤에는 친척 및 친구 그룹과 같은 위원회가 있는 것을 볼 수 있습니다. 친척과 친구들의 그룹의 이 블록이 맞다고 합니다. 그러나 각 블록 뒤에 있는 친척과 친구 그룹이 다르기 때문에 어떻게 투표하든 전체 시스템의 합의에 도달할 수 없습니다.
PoS 합의에도 문제가 있습니다. 즉, 대부분의 노드가 정직하다고 가정해야 합니다. "정직"은 일반적으로 암호화에서 더 많이 언급됩니다. 그러나 게임 이론과 경제학에서는 사람이 정직하다고 말하는 경우가 드물고 사람이 합리적이라고 말하는 경우가 더 많습니다. 거짓말을 하면 더 많은 돈을 벌 수 있다면 많은 사람들이 거짓말을 선택할 것입니다. 따라서 이러한 노드가 정직하다고 가정하면 실제로 매우 강력한 가정입니다. 거짓말과 악행으로 더 많은 돈을 벌 수 있다 해도 여전히 계약을 지키겠다는 뜻입니다. 이 점은 또한 그것이 합리적인 가정인지 여부를 알기 위해 구체적인 합의와 정직성이 요구되는 정도를 살펴볼 필요가 있습니다.
PoS 합의에 의해 야기된 이러한 새로운 문제를 해결하는 방법에 대해 이야기하겠습니다.
첫 번째는 실제로 해결하기 가장 쉬운 높은 통신 복잡성 문제입니다. 상대적으로 작은 위원회를 임의로 선택하고 이 사람들이 대표로 투표를 담당하거나 대리 투표를 사용할 수 있습니다. 사람들이 선출됩니다 당의 대표가 저 대신 투표할 것입니다. 이것의 장점은 실제로 블록 합의 투표에 참여하는 사람들의 수가 상대적으로 적기 때문에 투표의 복잡성을 줄일 수 있다는 것입니다. 실제로 인민대표대회, 외국 의회, 배심원 모두 비슷한 논리를 사용하고 있다.
그렇다면 공격에 대응하는 방법은? 한 가지 방법은 우리가 대부분의 사람들이 정직하다고 가정하고 네트워크의 동기화가 매우 양호하다고 가정하는 것입니다. 노드가 받을 수 있습니다. 이 전제하에서 합의를 달성하는 것은 매우 쉽습니다. 그러나 이러한 가정은 실제로 매우 강력하며 현실적으로 이를 보장하기가 쉽지 않다. 특정 공격의 문제를 해결하려면 해당 공격이 존재하지 않는다고 직접 가정한 다음 문제를 해결해야 합니다. 이것은 확실히 설득력 있는 방법이 아닙니다.
PoS 시스템에 대한 좀 더 일반적인 공격 방법에 대해 논의해 보겠습니다.
첫 번째는 사심 없는 공격으로, 실제로는 1표 이상입니다. PoW 시스템에서 채굴자가 그러한 두 개의 포크를 본다면 그의 컴퓨팅 파워는 하나를 따라 채굴할 수 있으며 동시에 두 개를 따라가는 것은 불가능합니다. 물론 2개의 블록을 동시에 채굴하는 것이 불가능한 것은 아니지만, 이는 각 블록에 할당된 컴퓨팅 파워를 줄여야 한다는 것을 의미합니다. 해. PoS 시스템에서는 다릅니다: 왼쪽에 포크가 보이면 그에게 투표하고, 오른쪽에 포크가 보이면 다시 투표하겠습니다. 이런 식으로 어떤 포크를 합의라고 부르든 상관없이 투표 보상을 공유할 수 있습니다. 그래야 나쁜 놈들이 행복해집니다. 악인은 어차피 내가 포크를 하면 합리적인 채굴자 여러분 모두가 나에게 투표할 것이기 때문에 나머지 "그렇게 합리적이지 않은 좋은 사람들"보다 조금 더 많은 투표권을 가지고 있는 한 이전 메인 체인을 롤백할 수 있다고 말했습니다. " 졌다. 이것은 매우 안전하지 않습니다.
무해한 공격의 경우 일반적인 대결 방법은 이러한 다중 투표 행위가 감지되면 해당 사람에게 페널티가 부과된다고 말하는 것입니다. 실제로 한 표 이상 투표하면 다른 사람들이 귀하의 투표 정보를 얻은 다음 "이 사람이 한 표 이상 투표했습니다. 돈을 공제합니다"라고 말하면서 체인에 제출할 수 있습니다. 그러나이 방법은 실제로 몇 가지 문제에 직면 할 수 있습니다. 즉, 양쪽 모두에 한 표 이상 투표 할 수 있지만 결국 한쪽 만 공제되지만 다른 쪽에서는 더 큰 이익을 얻을 수 있습니다.
뇌물 수수 공격도 있습니다. 투표에 관해서는 대부분의 참가자들이 실제로 이성적인 사람들에 더 가깝습니다. 예를 들어 100위안을 보유하고 있다면 각 투표의 수입은 1위안이고 내 블록에 투표하는 한 2위안을 주겠다고 말합니다. 아마도 많은 사람들이 내 제안을 받아들일 것이다. 이런 식으로 나쁜 놈들은 예를 들어 2위안으로 100위안 자산에 해당하는 의결권을 사는 것과 같이 매우 낮은 비용으로 자신의 지점을 지원하기 위해 더 많은 표를 살 수 있습니다. 이것은 확실히 보안에 영향을 미칩니다. 이미 뇌물 수수 문제에 대한 몇 가지 해결책이 있으며, 완벽하지는 않지만 상당히 설득력이 있습니다. 예를 들어 Algorand가 제안하는 솔루션은 사적인 난수를 통해 투표권 분포를 계산하는 것입니다. 유권자가 투표권 증명을 공개하기 전에는 누가 투표권을 가지고 있는지 아무도 모릅니다. 이런 식으로 적어도 아무도 내가 투표하기 전에 투표할 권리가 있다는 것을 알지 못할 것이고 그들은 나에게 뇌물을 줄 수 없을 것입니다. 공개 투표 후, 알고랜드의 방식은 투표가 완료될 때마다 위원회의 모든 구성원을 변경한 다음 투표할 사람들을 다시 선출하는 것이기 때문에 다른 사람들이 내가 투표권이 있음을 알 때, 내 투표는 이미 캐스트되었습니다. , 수정하기 위해 뇌물을 줄 방법이 없습니다. 다음은 컨센서스 참가자의 정직성에 대한 상대적으로 높은 가정입니다. 투표권을 얻은 후에 인터넷에 가서 내가 가진 투표권이 무엇인지, 누군가 지불할지 여부를 물어볼 것이라고 말할 수 없습니다. 그것을 위해. 실제로 누군가가 이에 대해 대규모로 물어보면 실제로 커뮤니티에서 발견하기 쉽고 누군가가 이런 종류의 공격을 하고 있다는 것을 모두가 알게 될 것이고 대응하기가 더 쉬울 것입니다. 따라서 이것은 공격을 받을 위험을 줄이는 최소한 한 가지 방법입니다.
다른 하나는 장거리 공격의 보안에 관한 것입니다. 무슨 말을하는 거니? 즉, A가 생성 블록에서 코인의 20% 또는 자산의 20%를 가지고 있으면 일반 블록에 투표할 수 있습니다. 그러나 A는 특정 시간에 체인에 있는 모든 코인을 판매할 수 있습니다. 즉, 현금을 내고 도망칠 수 있습니다. 이제 그는 체인에 돈이 없으며 다른 사람들이 미래에 체인에서 그를 처벌하는 것은 불가능합니다. 이때 개인키를 공격자에게 팔았다. 공격자는 A, B, C 및 여러 사람의 많은 개인 키를 획득할 수 있습니다. 이러한 개인 키를 획득한 후 제네시스 블록에서 이러한 개인 키의 제어 권한은 50% 이상 또는 80% 이상이 될 수 있습니다. 그런 다음 공격자는 이러한 개인 키를 얻은 다음 악의적인 블록을 만들고 A, B 및 C를 각각 하나의 투표로 대체하여 악의적인 블록을 지원합니다.
제3자의 관점에서 볼 때 이 블록과 실제 메인 체인 블록은 많은 사람들이 투표하기 때문에 동등하게 합법적으로 보입니다. 악당의 사슬이 충분히 길다면, 미래에 합류하는 새로운 사람들은 두 개의 사슬이 있다는 것을 알게 될 것이고, 각각 많은 사람들이 투표한 것입니다. 어느 것을 믿어야 할까요? 이때 합의는 이미 문제가 되었다. 그렇다면 이 공격에 어떻게 대처해야 할까요? 한 가지 방법은 약한 활동을 보장하는 것입니다. 즉, 모든 정직한 채굴자가 최신 상태를 동기화하기 위해 적어도 한 번은 올라가서 확인하도록 요구하는 것입니다. 누군가 귀하의 상태가 잘못되어 1년 전에 특정 상태에서 포크해야 한다고 말하면 일반적으로 롤백 시간이 너무 길기 때문에 그러한 제안을 수락해서는 안 됩니다.
또 다른 방법은 보증금을 잠근 다음 롤백 길이 제한을 추가하는 것입니다. 이것은 Ethereum의 Casper PoS 프로토콜의 설정입니다. 투표권을 팔아야 한다면 네, 하지만 잠시 기다려야 합니다. 이 시간은 다른 사람들이 귀하가 이전 투표권으로 투표하는 것을 보았을 때 그것을 인정하지 않을 만큼 충분히 길다. 다른 사람들이 오래 전에 법적 사슬을 따랐기 때문입니다. 이것이 이더리움의 솔루션입니다.
이 점에 대한 알고랜드의 해결책은 정직한 사람으로서 매 라운드의 투표가 끝난 후 현재 투표에 사용된 프라이빗 키를 삭제해야 한다는 것입니다. 이 솔루션은 정확하지만 참가자의 도덕적 수준에 대해 상대적으로 높은 요구 사항을 제시합니다.
PoS 기반 합의 시스템에는 몇 가지 다른 문제가 있습니다. 일반적으로 작은 위원회를 선택하면 DPoS를 사용하지 않으면 PoS 시스템에서 무작위로 선택해야 합니다. PoW 투표의 무작위성은 주로 분산 병렬 마이닝에서 모든 사람의 운에 의해 발생합니다. PoW 문제 해결 자체에는 고유한 무작위성이 있기 때문입니다. 그러나 무작위성을 사용하여 투표 위원회를 선택하려면 새로운 문제를 해결해야 합니다. 공정한 난수를 생성하는 방법은 무엇입니까?
공정한 난수를 생성하는 방법도 암호학에서 수년 동안 논의된 문제이며 이를 해결할 수 있는 비교적 좋은 솔루션이 있습니다. 이 방식은 절대적으로 균일하고 완벽한 난수를 생성할 수는 없지만 범위 내에서 편차를 제어할 수 있습니다. 반면에 완벽하게 균일한 난수를 생성하는 것은 매우 어렵습니다. 2/3 이상의 코인이 있으면 공격자가 전체 체인을 완전히 제어할 수 있고 생성된 난수도 마음대로 선택할 수 있다는 것을 알고 있기 때문입니다. 따라서 67%의 동전으로 100% 난수를 제어할 수 있다면 10%의 동전으로 11%의 난수를 제어하는 것이 너무 용인되지 않습니다. 실제로 PoW에 기반한 비트코인은 비슷한 속성을 가지고 있습니다: 예를 들어 컴퓨팅 파워의 51%가 체인에서 수입의 100%를 제어할 수 있습니다 실제 컴퓨팅 파워의 비율보다 더 높은 수입을 얻습니다. 이것은 비선형 관계이지만 크게 벗어나지 않는 한 일반적으로 모든 사람이 수용할 수 있습니다.
또한 PoS 합의 기반 시스템은 시작할 때 몇 가지 문제가 있습니다. 프로젝트가 처음 시작될 때 자산 분배가 가장 덜 분산되기 때문입니다. Bitcoin이 처음 시작되었을 때처럼 Satoshi Nakamoto는 많은 동전을 가지고 있었을 것입니다. PoS 시스템이라면 혼자서 전체 시스템을 완벽하게 제어할 수 있습니다. 다른 프로젝트의 개발 팀과 초기 단계의 여러 대형 투자 기관은 이미 대부분의 코인을 획득했을 수 있으며 PoS에 대한 발언권은 매우 커질 것입니다. 따라서 PoS 퍼블릭 체인을 시작하는 방법도 큰 문제입니다. EOS가 더 나은 작업을 수행하기까지 오랜 시간이 걸렸습니다. 그래서 이 점에서 우리 팀은 적어도 프로젝트가 시작될 때 PoS보다 PoW를 사용하는 것이 훨씬 더 편리하다고 생각합니다. PoW 방식만이 라이선스 프리가 될 수 있으며, 초기 통화는 발행될 때 상대적으로 공정할 것입니다.
04 PoW VS. PoS
마지막으로, PoS가 일부 위반 사항을 확인한 다음 체인에서 이러한 사람들을 처벌할 수 있지만 공격자의 이익이 모두 체인에 있지 않고 체인 외부에 다른 이점이 있을 수 있습니다. 예를 들어 이더리움에 공격을 가해 많은 ETH를 잃는 벌을 받았지만 동시에 통화 가격이 하락할 가능성이 높기 때문에 다른 시장에서 ETH를 매도하면 더 높은 수익을 얻을 수 있습니다. 단락으로. 이 경우 체인 외부의 동기로 인해 체인에 많은 돈을 가지고 있는 일부 사람들이 여전히 체인을 공격할 동기를 갖게 됩니다. 이것은 PoS가 해결하기 어려운 문제이기도 합니다.
보조 제목
마지막으로 PoW와 PoS 메커니즘을 기반으로 한 합의 비교를 간략하게 살펴봅니다.
하나는 액세스 메커니즘입니다. 즉, 라이센스가 있습니까? 투표는 익명입니까? 참가자 수에 제한이 있나요? 투표는 병렬로 합니까 아니면 방송으로 합니까? 투표 결과를 확인하는 다른 방법이 있습니까? 한계 투표 비용?
하나는 보안입니다. 두 가지 가장 큰 차이점은 의결권이 먼저냐 아니면 후보 블록이 먼저냐라고 생각합니다. 투표 행위와 투표권은 구속력이 있습니까? 이러한 관점에서 PoW는 보안 측면에서 더 나은 작업을 수행합니다.
그러나 PoW 투표 결과는 브랜치에 누적된 이점이 충분히 커질 때까지 기다려야 하므로 실제로 블록을 기다리는 대신 정직한 컴퓨팅 파워가 이 블록에 집중할 때까지 기다려야 합니다. 확인하기 전에 일정 기간. 따라서 PoW 시스템은 일부 최적화를 통해 확인 속도가 최대한 빠르다고 말할 수 있지만 일부 PoS와 같은 두 번째 수준의 확인을 달성하기는 어렵습니다.
투표의 한계 비용에 관해서는 기계 및 전기 비용이 필요하기 때문에 PoW를 피할 방법이 없습니다. 그러나 다른 측면은 더 잘하고 있습니다. 반대로 PoS는 성능 측면에서 더 좋지만 주로 보안 측면에서 더 낫습니다. 의결권을 먼저 결정하기 때문에 누구나 이 의결권으로 마음대로 투표할 수 있다. 그리고 한 번 투표한 후 이 권한으로 다시 투표할 수 있습니다. PoS의 다른 문제는 사실 위원회나 대리권익증명을 통해 완화하거나 해결할 수 있지만 의결권만 문제는 해결하기 어렵다. 투표권과 투표 행위가 구속되지 않는 문제는 PoS의 본질적인 문제입니다.
PoW의 단점은 확인이 느리고 처리량이 일반적으로 상대적으로 낮다는 것입니다. PoS의 주요 단점은 뇌물 공격, 장거리 공격, 무해 공격과 같은 다양한 공격 방법에 대처하는 방법입니다. 이러한 공격에 대처하기 위해 PoS 프로토콜은 많은 상황을 처리해야 하므로 더욱 복잡해질 것입니다. 우리 모두가 알고 있듯이 시스템이 복잡할수록 보안을 보장하기가 더 어렵고 한편으로는 분석 및 증명이 더 어렵고 다른 한편으로는 공격자가 허점을 찾기가 더 쉽습니다. 복잡한 시스템에서.
현재 많이 사용되지 않을 수 있는 또 다른 방법은 합의를 위해 PoW와 PoS를 함께 혼합하는 것입니다. PoW의 주요 장점은 안전성과 신뢰성이고 PoS의 장점은 높은 효율성, 특히 빠른 확인 및 상대적으로 낮은 에너지 소비이기 때문입니다. 이 둘의 장점을 결합할 수 있다면 보다 이상적인 합의 프로토콜을 설계할 수 있습니다. 동시에 체인 방식이 아닌 DAG 방식으로 블록을 구성하는 것도 고려할 수 있습니다. DAG 방식은 포크를 두려워하지 않기 때문에 블록 생성 속도를 너무 제한할 필요가 없으므로 대역폭이 동기화될 수 있는 한 누구나 더 빠르게 블록을 생성할 수 있습니다.
처리량이 대역폭과 네트워크 용량의 상한에 도달하면 용량을 더 확장하려면 다른 측면에서 두뇌를 사용해야 합니다. 상대적으로 간단한 아이디어는 2계층 확장 솔루션을 채택하는 것입니다: 각 거래는 검증을 위해 전체 네트워크로 전송되어서는 안 됩니다. 전체 네트워크 및 전체 시스템 처리량을 향상시킵니다. Lightning Network도 유사한 논리를 사용합니다. 또 다른 더 어려운 방법은 검증 가능한 계산, 짧은 영지식 증명, 확률론적 검증 가능한 증명 등과 같은 일부 "검은 기술"의 사용을 필요로 하며 여기서는 논의하지 않습니다.
