Nakamoto 컨센서스 프로토콜(Nakamoto Consensus 그림에서 NC로 약칭)에서 분기 문제를 해결하기 위해 채굴자는 가능한 한 가장 긴 체인을 선택해야 합니다. 메인 체인에 추가됩니다. 보상 측면에서 메인 체인 블록은 모든 보상을 받고 고아 블록은 아무것도 얻지 못합니다.
이 정도면 안전한가요?
Nakamoto 컨센서스의 원래 분석은 블록체인 자체가 완벽한 체인 품질을 가지고 있다고 믿는 경향이 있습니다. 즉, 전체 네트워크 컴퓨팅 파워의 50% 미만을 가진 공격자는 블록체인을 수정할 수 없습니다. 그러나 실제로 공격자는 매우 높은 성공률로 블록체인을 수정할 수 있습니다.
블록체인을 수정하는 공격에는 이기적 채굴, 이중 지출, 검열 공격의 세 가지 유형이 있습니다. 그 중 이기적인 채굴 공격자는 자신의 컴퓨팅 파워에 비례하지 않는 불공평한 블록 보상을 얻을 수 있습니다. 그들은 더 높은 상대적인 블록 보상을 얻기 위해 채굴 컴퓨팅 파워를 집중할 수 있으며, 이로써 블록체인의 탈중앙화 특성을 파괴할 수 있습니다. 공격자는 트랜잭션이 확인되는 것을 방지하여 정직한 채굴자에게 경제적 손실을 초래합니다.
이기적인 채굴
이기적인 채굴
이중 지출 공격
검열 공격
빨간색 사각형은 블록이 네트워크에 전파된 시기를 나타내고 주황색 원은 공격자의 블록을 나타내고 삼각형은 정직한 채굴자가 채굴한 블록을 나타냅니다. 공격자는 첫 번째 블록을 찾을 만큼 운이 좋았지만 네트워크에 게시하는 대신 보류하기로 결정했습니다.
정직한 채굴자가 블록을 찾으면 이때 공격자는 정직한 채굴자보다 먼저 보류된 블록을 브로드캐스트하고 모든 채굴자는 정직한 채굴자의 블록이 아닌 공격자의 블록에서 채굴하게 됩니다.
공격자가 연속으로 여러 블록을 찾을 만큼 운이 좋다면 공격자는 위험 없이 정직한 블록을 격리할 수 있습니다. 이 경우 공격자의 체인이 길어지고 전체 네트워크의 컴퓨팅 파워가 자신의 체인으로 이동하여 채굴하게 됩니다. 이러한 방식으로 공격자는 획득한 전체 블록 보상의 상대적 비율을 성공적으로 증가시킵니다.
이중 지불 공격은 비밀 채굴을 통해 추가 보상을 얻는 이기적 채굴 공격과 매우 유사합니다. 예를 들어, 비트코인에서는 컨벤션에 따라 트랜잭션을 확인하기 위해 6개의 블록이 있으며 기본적으로 완전히 확인됩니다. 공격자가 비밀리에 6개의 블록을 보류하고 한꺼번에 네트워크에 브로드캐스팅하면 상품이나 서비스를 받은 후 거래를 되돌릴 수 있습니다.
검열 공격은 검열 요구 사항을 충족하지 않는 모든 블록을 격리하려고 합니다.
두 가지 솔루션
Nakamoto 합의 보안 문제를 해결하는 두 가지 방법에 대해 이야기해 봅시다.
첫 번째 범주는 "더 나은 체인 품질" 프로토콜이라고 합니다. 이 광범위한 범주에는 체인의 품질을 향상시킬 수 있다고 주장하는 많은 프로토콜이 있습니다. 이번에는 "Smallest hash tie-breaking protocol (약칭 SHTB)"과 "Unpredictable deterministic tie-breaking protocol (약칭 UDTB)"에 초점을 맞출 것입니다.
두 번째 광범위한 범주는 "공격 방지 프로토콜"입니다. 이러한 프로토콜은 체인의 품질이 완벽하지 않아도 공격에 저항할 수 있으므로 체인의 품질을 개선할 필요가 없다고 주장합니다.
세 가지 유형의 공격 방지 프로토콜
첫 번째는 Reward-all 프로토콜입니다. 이러한 유형의 프로토콜은 가장 최근의 작업 증명에 보상을 제공하며 적격 블록은 어쨌든 보상을 받게 되므로 공격자는 이기적인 채굴 공격을 수행하여 정직한 채굴자의 보상을 무효화할 수 없으므로 공격자는 이기적인 채굴을 할 인센티브가 없습니다. 공격.
두 번째는 "처벌" 프로토콜입니다. 이러한 프로토콜은 의심스러운 블록에 대한 보상을 박탈합니다. 페널티 규칙은 손실 회피를 통해 모든 사람이 계약을 준수하기를 희망합니다.
세 번째는 "Reward-lucky" 프로토콜이라고 합니다. 이러한 프로토콜은 이러한 행운의 블록이 안정적인 네트워크를 위한 "앵커 포인트" 역할을 하길 바라며 블록의 내용에 따라 특정 행운의 블록을 보상합니다.
다음으로 이러한 프로토콜에 대해 자세히 살펴보겠습니다.
먼저 "더 나은 체인 품질" 유형의 계약을 분석하고 첫 번째는 "최소 해시 타이 브레이킹 계약"입니다. 이 프로토콜에서 동점이 있을 때마다 프로토콜은 모든 채굴자가 누가 먼저 받았는지에 관계없이 해시가 가장 작은 블록을 선택하도록 요구합니다.
두 번째는 "Unpredictable Deterministic Tie Breaking Protocol"입니다. 프로토콜은 동률이 있을 때마다 모든 사람이 어떤 블록이 먼저 수신되었는지에 관계없이 모든 참여 체인의 순서를 계산하기 위해 예측할 수 없는 결정적 유사 무작위 함수를 사용한다고 명시합니다. 예측할 수 없는 결정론적 프로토콜의 근거는 공격자가 50% 이상의 확률로 블록 경쟁에서 이길지 여부를 예측할 수 없기 때문에 이기적인 채굴 공격을 수행하는 것은 현명하지 못하므로 선택 사항이 아니라는 것입니다.
공격 방지 프로토콜은 각 기술적 방법에서 프로토콜을 선택하여 분석하겠습니다. "모든 보상" 프로토콜을 위해 과일 사슬을 분석해 봅시다. Fruitchain에서는 동일한 채굴 절차가 두 가지 다른 제품에 사용됩니다. 후보 블록의 해시 값의 처음 k 비트가 일정 임계치 미만이면 블록으로 판단하고, 후보 블록 해시 값의 마지막 k 비트가 일정 임계치보다 작으면 블록으로 판단합니다. 그것은 열매입니다. 그래서 해시 알고리즘을 실행하면 블록을 얻을 수도 있고, 열매를 얻을 수도 있습니다.
프로토콜은 Nakamoto 합의와 마찬가지로 가장 긴 체인 원칙을 따르고 첫 번째 수신된 블록을 기반으로 관계를 끊습니다.
모든 공격 방지 프로토콜에 대해 포크 해결을 위한 규칙으로 Nakamoto 합의를 사용합니다. 따라서 그들의 공격 저항을 분석할 때 동일한 규칙에 놓이게 됩니다.
과일은 블록에 내장되어 있습니다. 과일에 그냥 내재되어 있는 나카모토 컨센서스에서 거래라고 생각하시면 됩니다.
각 과일에는 가장 가까운 블록인 포인터 블록이 있으며 과일 채굴자는 고아가 되지 않습니다. 그림에서 바나나 블록의 포인터가 그런 경우인데 포인터 블록이 메인 체인에 있으면 과일이 유효합니다. 포인터 블록이 다이어그램의 토마토와 같이 고아인 경우 해당 과일은 더 이상 유효한 과일이 아닙니다.
과일 블록 간격이 미리 정의된 제한 시간 임계값보다 작아야 한다는 추가 규칙이 있습니다. 간격은 메인 블록과 포인터 블록 사이의 블록 높이 차이로 정의됩니다.
예를 들어 바나나의 간격은 메인 블록이 포인터 블록보다 2 블록 늦기 때문에 2입니다. 따라서 유효한 과일은 완전한 보상을 받는 반면 블록은 아무것도 얻지 못합니다.
처벌 프로토콜은 수정된 버전의 DECOR 프로토콜을 설명할 사례로 선택합니다. 수정된 버전에서는 RS(Reward-Splitting) 프로토콜이라고 합니다. 이름에서 알 수 있듯이 보상은 동일한 높이의 모든 경쟁 블록 간에 균등하게 나뉩니다. 이 프로토콜을 사용하면 블록이 이전 고아 블록을 삼촌 블록으로 참조할 수 있습니다. 간격이 제한 시간 임계값보다 낮으면 삼촌 블록이 유효합니다(또한 특정 보상을 받습니다).
이는 보상 분배 프로토콜 및 과일 체인의 간격 정의와 유사합니다. 차이점은 이 프로토콜에서는 간격을 메인 블록과 포인터 블록의 높이 차이가 아니라 메인 블록과 엉클 블록의 높이 차이로 정의한다는 것입니다. 따라서 우리는 블록의 친족 관계를 고려하지 않고 블록 자체의 높이만 고려합니다. 각 블록 보상은 경쟁 블록과 동일한 높이의 삼촌 블록 간에 균등하게 분배됩니다. 예를 들어 이 다이어그램에서 블록 B와 C는 각각 블록 보상의 절반을 받고 블록 A와 D는 전체 블록 보상을 받습니다.
마지막은 차일드 체인입니다. 하위 체인도 동일한 채굴 절차를 사용하지만 두 개의 다른 제품입니다. 서브체인의 블록 생성 규칙은 비트코인과 동일하며 후보 블록의 해시가 일정 임계값보다 낮으면 블록이 유효한 것으로 판단합니다. 후보 블록의 해시 값이 블록 임계값보다 크고 다른 임계값보다 작은 경우 약한 블록(Weak Block)으로 간주합니다. 약한 블록도 체인 길이에 포함되어 트랜잭션 확인 기능을 수행합니다. 그러나 약한 블록은 블록 보상을 받지 못합니다. 블록만 블록 보상을 받습니다.
프로토콜 보안 측정을 위한 공통 메트릭
다음에 우리는 프로토콜의 보안을 측정하기 위해 몇 가지 공통 메트릭을 설정할 것이기 때문에 매우 기쁩니다. 당신은 이것이 가장 안전한 프로토콜이라고 주장합니다. 저에게 그것을 증명하려면 이 지표의 차원에서 당신의 프로토콜이 얼마나 안전한지 측정해야 합니다.
이 연구에는 네 가지 지표가 있습니다. 이를 분석해 보겠습니다.
우리가 체인 품질이라고 부르는 첫 번째 메트릭은 메인 체인에서 정직한 채굴자의 블록의 최소 비율을 나타냅니다. 이 예에서 체인 품질은 6개 중 3개입니다. 메인 체인에 6개의 블록이 있고 그 중 3개는 정직한 채굴자로부터 생성되었기 때문입니다.
인센티브 호환성이라고 하는 두 번째는 이기적인 채굴 공격에 대한 저항을 측정하고 정직한 채굴자에 대한 블록 보상의 최소 비율로 정의됩니다.
이 경우 6개의 메인 체인 블록 중 3개가 정직한 채굴자로부터 나왔기 때문에 인센티브 호환성은 50%입니다. Nakamoto 합의에서 이 두 가지 메트릭(체인 품질 및 인센티브 호환성 참조)은 동일합니다. 그러나 다른 프로토콜의 경우 이 두 메트릭이 동일하지 않습니다. 체인 품질은 비잔틴 적(일명 악성 노드)을 평가하는 데만 사용되지만 인센티브 호환성은 보상을 고려합니다.
세 번째 지표는 이중 지출 방지 공격의 성능을 측정하는 "Subversion Gain"이라는 공격 저항의 또 다른 지표입니다. "블록 간격당 얻을 수 있는 평균 블록 보상에 이중 지출 보상의 최대값을 더한 값"으로 정의됩니다.
이 경우 10분마다 하나의 블록이 발견된다고 가정하면 총 8개의 블록이 있으면 총 80분이 소요됩니다(그 중 공격자는 3개의 블록을 가지고 있음). 이 예에서 평균 10분마다 공격자는 3/8 블록 보상을 받습니다. 이중 지출 보상은 6개의 블록을 연속으로 격리해야 하기 때문에 이중 지출 보상은 0입니다.
이중 지출 방지 공격에는 완전한 백분율 보상이 없기 때문에 지표는 "평균적으로 블록 간격당 최대 블록 보상을 얻음"으로 설정됩니다. 이 그래프에는 이중 지출 보상을 얻기 위해 연속으로 최소 6개의 블록을 격리해야 하기 때문에 이중 지출 공격 보상이 없습니다.
마지막 측정 항목은 검열 민감성(Censorship Susceptibility)으로, 검열 요청 거부로 인해 정직한 채굴자가 잃는 보상의 최대 비율입니다. 검토 요청을 거부하면 공격자가 내 블록을 분리하기 시작합니다. 이 메트릭은 고아가 될 수 있는 내 블록의 백분율을 측정합니다. 이 경우 5개의 정직한 블록이 있고 그 중 2개는 고아이므로 검열 민감도는 2/5입니다.
평가 결과
이제 평가 결과를 살펴보겠습니다. 이번 공유에서는 5개의 프로토콜을 분석했는데, 첫 번째 지표 체인의 품질을 살펴보겠습니다.
우리는 먼저 변수 γ를 정의합니다. 이는 공격자의 체인에서 마이닝하는 정직한 마이너의 컴퓨팅 파워가 동점인 경우 모든 정직한 마이너의 컴퓨팅 파워에 대한 비율입니다.
γ가 0이면 모든 정직한 채굴자의 컴퓨팅 파워는 정직한 채굴자의 체인을 채굴하는 데 사용되며 정직한 채굴자의 컴퓨팅 파워는 공격자의 체인에서 채굴되지 않습니다. γ가 1이면 모든 정직한 채굴자의 해시레이트는 공격자의 체인에서 채굴되며 아무도 정직한 채굴자의 체인에서 채굴하지 않습니다.
이것은 Nakamoto 합의를 평가하는 데 사용되는 일반적인 매개변수입니다. Nakamoto 합의, 최소 해시 타이 브레이킹 프로토콜(SHTB) 및 γ = 0, 0.5, 1인 경우 각각 UDTB(Unpredictable Deterministic Tie Breaking Protocol)의 다섯 가지 사례가 있습니다. 어떤 것이 체인 품질이 가장 좋은가요?
이 다섯 가지 프로토콜 중 SHTB(Minimal Hash Tie Breaker)와 UDTB(Unpredictable Deterministic Tie Breaker)는 어떻게 연결을 끊느냐에만 집중합니다. 따라서 γ = 0인 동률의 경우 Nakamoto 합의보다 더 잘할 수 없습니다. γ = 0일 때 모든 마이닝 파워는 정직한 체인에 있기 때문입니다. 그리고 공격자가 모든 타이에서 승리하는 γ = 1인 Nakamoto 컨센서스보다 더 나빠질 수는 없습니다.
그렇다면 나머지 세 가지 프로토콜(SHTB, UDTB, γ = 0.5인 Nakamoto 프로토콜) 중에서 가장 성능이 나쁜 프로토콜은 무엇입니까? 실제로 프로토콜을 깨뜨리는 것은 최소 해시 타이입니다. 그렇다면 나머지 두 프로토콜(UDTB, γ = 0.5인 Nakamoto 프로토콜)에 대해 어느 것이 더 낫습니까?
답을 밝히기 위해 왔습니다. γ = 0.5인 Nakamoto 합의가 더 좋습니다. 왜? 예를 들어 UDTB(Unpredictable Deterministic Tie Breaking Protocol)에서 공격자가 블록을 찾았지만 정직한 채굴자가 블록을 패키징하여 공격자보다 먼저 브로드캐스팅하면 공격자가 의사 난수 함수를 계산하고 깨달을 가능성이 있습니다. 그가 블록을 게시하면 블록 경쟁에서 동점을 잃었기 때문에 아무도 그의 블록에서 채굴을 계속하지 않을 것입니다. 그렇다면 이 공격자는 무엇을 할 수 있습니까?
Nakamoto 컨센서스에서 공격자는 첫 번째로 받은 블록이 동점 규칙을 깨고 가능한 한 빨리 블록을 게시하지 않으면 아무도 블록을 채굴하지 않기 때문에 실패할 운명에 처해 있습니다. 하지만 UDTB는 다릅니다.다음 블록이 발굴되더라도 공격자는 여전히 이 블록에서 채굴을 계속할 수 있습니다.공격자가 다음 블록을 생산할 수 있는 권리를 획득할 수 있는 한 공격자는 두 개의 블록을 게시할 수 있습니다. 정직한 광부의 블록 이후 동시에.
이 의사 난수 함수가 공격자가 블록 경쟁에서 이겼다는 것을 나타내면 공격자는 블록 보상을 얻을 수 있습니다. UDTB는 "포스트 스트라이크"라는 특수 공격 동작을 허용하기 때문에 UDTB의 보안은 γ = 0.5인 Nakamoto 컨센서스보다 나쁩니다.
그렇다면 최소 해시 타이 브레이킹 프로토콜의 보안이 취약한 이유는 무엇입니까? 공격자가 블록을 발견하고 해시 값이 실제로 매우 작을 때 공격자는 다른 사람의 해시가 무엇이든 관계없이 블록을 생산할 수 있는 권리를 얻을 수 있는 확률이 약 99%이기 때문입니다. 어떤 블록을 먼저 브로드캐스트하든 이 동점을 얻을 수 있는 확률을 정확하게 예측할 수 있습니다. 이를 통해 공격자는 운이 좋으면 블록 공격을 시작할 수 있습니다.
정직한 채굴자가 다음 블록을 찾으면 공격자의 블록의 해시가 충분히 작기 때문에 블록을 제대로 획득할 확률이 높기 때문에 블록을 게시하고 블록을 올바르게 얻을 수 있습니다. 다음에 공격자가 운이 좋지 않을 때 상대적으로 해시가 큰 블록을 얻고 공격자는 이 블록을 게시하고 직접 보상을 받을 수 있습니다.
더 나은 체인 품질 프로토콜에 대한 일반적인 결론
다음은 더 나은 체인 품질 프로토콜에 대한 연구에서 얻은 몇 가지 일반적인 결론입니다.
공격자의 컴퓨팅 파워 α > 1/4일 때 어떤 프로토콜도 이상적인 블록체인의 품질을 달성할 수 없습니다. 공격자의 컴퓨팅 파워가 전체 네트워크 컴퓨팅 파워의 1/4을 초과하는 한, 그 수입은 컴퓨팅 파워 점유율에 따라 계산된 정상 수입보다 높을 수 있습니다.
공격자의 컴퓨팅 파워가 전체 네트워크 컴퓨팅 파워의 1/4을 초과하는 한, 그 수입은 컴퓨팅 파워 점유율에 따라 계산된 정상 수입보다 높을 수 있습니다.
γ = 0인 α의 모든 값에 대해 보안 측면에서 Nakamoto 컨센서스보다 우수한 프로토콜은 없습니다.
특정 상황에서는 특정 프로토콜이 Nakamoto 컨센서스보다 보안면에서 더 우수할 수 있지만 일반적으로 Nakamoto 컨센서스가 보안면에서 최고입니다.
왜 그런 겁니까? 프로토콜은 정직한 블록과 공격자의 블록을 구분할 수 없기 때문입니다.
프로토콜이 이러한 블록을 구분할 수 없는 이유는 무엇입니까?
정보의 비대칭성 때문입니다. 공격자는 사용 가능한 모든 정보를 기반으로 행동합니다. 즉, 그는 자신이 릴리스한 블록 수, 보류한 블록 수, 이 블록을 릴리스할 시기 등을 알고 공격자는 모든 것을 알고 있습니다. 그러나 정직한 채굴자들은 제한된 공개 정보에 근거해서만 행동합니다.
왜?
이것은 PoW가 약한 보안 가정을 가지고 있기 때문입니다. 그들은 모든 채굴자가 매우 제한된 공개 정보에 대해서만 행동/작동한다고 규정하면서 비동기식으로 작동하려고 합니다.
이제 Nakamoto 합의, 과일 체인, 보상 분배(Reward-Splitting, RS) 프로토콜 및 하위 체인, 우선 인센티브 호환성에 대한 공격 저항을 분석해 보겠습니다.
그 중 보상 분배 프로토콜(강제)이 가장 잘 수행됩니다. 왜냐하면 처벌은 항상 올바른 행동을 장려하는 가장 효과적인 방법이기 때문입니다. 하위 체인이 최악의 성능을 보였습니다.
과일 체인은 Nakamoto 컨센서스보다 더 좋을 때도 있고 더 나쁠 때도 있습니다. 서브체인을 통해 공격자는 가치가 없는 약한 블록으로 정직한 블록을 무효화할 수 있습니다. 모든 것이 가치가 있는 경우 공격자가 블록을 보류하는 것은 위험합니다. 그러나 약한 블록은 그 자체로는 가치가 없으며 공격자는 블록 보상을 잃을 위험 없이 이 약한 블록을 보류할 수 있습니다. 위험이 없으니 좀 더 과감한 원천징수 차단을 해보는 건 어떨까요?
약한 블록이 많을수록 프로토콜 동작이 나빠집니다. 따라서 약한 블록이 많을수록 실제로 상황이 악화됩니다. 가장 좋은 경우는 약한 블록을 사용하지 않는 것입니다.
과일 체인의 타임아웃 값이 작으면 Nakamoto 컨센서스보다 성능이 떨어집니다. 공격자는 자신의 과일을 무효화하기 위해 쓸모없는 블록을 사용할 수 있습니다. 이것은 또한 비슷한 문제가 있는데, 그 이유는 블록이 과일 체인에 어떤 보상도 없기 때문입니다. 따라서 공격자는 블록을 보류할 위험이 없기 때문에 블록을 게시할 인센티브가 없으며 결과적으로 공격자가 시도할 수 있습니다. 블록을 보류하는 더 대담한 행동.
그 결과 공격자는 보다 공격적인 홀딩 동작을 시도할 수 있습니다.
과일이 더 많았으면 조금 더 좋았을 텐데. 확률 문제인 유명한 Newton-Pepys 문제가 있습니다.
A. 일반 주사위 6개 독립적으로 굴림, 최소 1 6개 등장
B. 최소 2개의 6이 있는 12개의 일반 주사위가 독립적으로 굴림
6개의 주사위를 굴려 16이 나올 확률은 12개의 주사위를 굴려서 2개의 6이 나올 확률보다 큽니다.
과일 체인에는 정직한 과일, 정직한 블록, 공격 과일 및 공격 블록의 네 가지 채굴 제품이 있습니다.
우리는 "공격자가 정직한 광부보다 1개의 타임아웃 블록을 가지고 있다"라고 생각할 수 있습니다. 즉, 공격자가 일부 과일을 성공적으로 격리할 수 있다는 것을 조건부 이벤트로 생각할 수 있습니다. 이 이벤트는 청크만 고려하므로 과일 생성과는 완전히 독립적입니다. 우리는 그것을 Newton-Pepy의 문제에서 조건으로 취급할 수 있습니다. 독립적이기 때문에 그냥 버릴 수 있습니다. 하지만 조건이 맞을 때 과일이 적으면 "공격자가 더 많은 과일을 가지고 있다"의 확률은 매우 낮습니다.
더 많은 과일은 더 많은 공격자 과일을 의미합니다. 공격자가 소수이기 때문에 전체 과실의 개수가 많다면 공격자의 전체 과실 비율이 실제보다 많아진다는 뜻이다. 여기서는 도박을 비유로 사용하는 것이 좋습니다. 왜냐하면 우리는 더 많은 과일을 가지고 있기 때문입니다. 즉, 공격자가 더 많은 과일을 가지고 있을 때 그는 도박에 덜 참여할 것임을 의미합니다. 사람은 잃을 것이 없을 때 더 기꺼이 도박을 하지만 더 많은 자본을 잃을 가능성이 있으면 도박을 원하지 않습니다. 즉, 더 많은 과일이 인센티브 호환성에 약간 기여한다는 것을 의미합니다.
다음으로 공격 저항에서 공격의 "나쁜 이익"을 분석합니다. 지수가 작을수록 좋습니다. 그림에서 보듯이 보상 분배 프로토콜은 Nakamoto 컨센서스보다 낫고 과일 체인보다 낫습니다. 하위 체인보다 낫습니다.
우리는 "나쁜 현상금"이라는 또 다른 흥미로운 척도를 분석했습니다. 인센티브 편향을 연구하기 위한 최소 이중 지출 보상으로 정의합니다. (즉, 이중 지출 공격에 대한 보상이 악행에 대한 현상금보다 크면 공격자는 악행을 저지를 동기가 있습니다.) (그림 우측 하단의 표는 블록 확인 횟수가 3회 또는 6회일 때, α(공격자의 컴퓨팅 파워 비율이 0.1에서 0.4일 때)일 때 Nakamoto 합의 및 보상 분배 프로토콜에 의해 계산된 바운티입니다.
각 프로토콜의 "사악한 현상금"을 계산하면 과일 체인과 하위 체인은 기본적으로 제로 비용으로 파괴될 수 있으며 위험이 없기 때문에 보상 없이 이중 지출을 시도할 수 있음을 알 수 있습니다.
거래 확인 횟수가 증가함에 따라 약한 공격자의 경우 사악한 현상금의 성장이 거의 기하급수적으로 증가한다는 것을 알 수 있습니다. 즉, 더 많은 트랜잭션 확인이 이중 지출을 방지하는 데 도움이 되지만 강력한 공격자에게는 그 효과가 그렇게 분명하지 않습니다.
검열 저항을 위해 다음과 같이 모든 숫자와 순위를 계산합니다.
작은 α의 경우, 즉 공격자의 컴퓨팅 파워의 비율이 낮을 때 과일 체인이 가장 좋고 그 다음이 Nakamoto 합의, 그 다음이 보상 분배 프로토콜 및 하위 체인입니다.
큰 α의 경우, 즉 공격자의 컴퓨팅 파워 비중이 상대적으로 높을 때 보상 분배 프로토콜이 가장 좋고 그 다음이 과일체인, 나카모토 컨센서스, 서브체인 순이다.
분명한 것은 Fruitchain의 경우 다른 블록을 무효화하려는 경우 고아 블록이더라도 여러 조건에서 보상을 받기 때문에 다른 프로토콜보다 훨씬 어렵다는 것입니다.
α가 충분히 클 때, 즉 공격자의 컴퓨팅 파워가 상대적으로 높을 때 보상 분배 프로토콜이 과일 체인보다 나은 이유는 무엇입니까? 과일 체인에서 간격은 메인 블록과 포인터 블록 사이의 블록 높이 차이로 정의되기 때문입니다. 보상 분배 프로토콜에서 간격은 메인 블록과 블록 자체 사이의 블록 높이 차이로 정의됩니다.
따라서 과일 체인에서는 공격자가 장기 블록 경쟁에서 이기면 그들의 포인터 블록이 모두 격리되어 있기 때문에 정직한 과일의 보상을 빼앗길 것입니다. 즉, 포인터를 분리하면 게임이 종료됩니다. 그러나 보상 분배 프로토콜에서 마지막 몇 개의 정직한 블록은 여전히 일부 보상을 받을 수 있습니다. 정직한 광부가 모든 보상을 잃으려면 포인터를 고아시키는 것만으로는 충분하지 않습니다. 많은 수의 연속 블록을 고아시켜야 합니다. (이것은 공격자에게 장애물을 추가합니다).
이 사진은 이러한 문제를 보여줍니다.
과일 체인에서 포인터를 분리하면 안심하고 모든 보상을 얻을 수 있습니다. 그러나 보상 분배 프로토콜에서는 블록 경쟁에서 오랫동안 이러한 블록을 격리하더라도 이러한 블록은 여전히 메인 체인을 다시 가리킵니다. 키 관계를 고려하지 않기 때문에 이 블록은 여전히 공격자의 블록 보상의 절반을 차지하므로 검열 공격에 더 강합니다. (정직한 채굴자는 검열을 받더라도 여전히 보상의 일부를 얻을 수 있기 때문입니다.)
공격 방지 프로토콜에 대한 일반적인 결론
연구에서 공격 방지 프로토콜에 대한 몇 가지 일반적인 결론에 대해 이야기해 봅시다.
더 긴 블록 확인 시간과 더 큰 대역폭을 합리적으로 설정하면 보안이 향상됩니다.
딜레마가 있습니다. 우리가 "나쁜 사람에게 보상하고 좋은 사람에게 벌을 주는 것"이라고 부르는 메커니즘입니다. 이것은 프로토콜 보상에 대한 모든 사람의 이해를 뒤집습니다. 여기서 포크하더라도 블록 보상을 받을 수 있고 포크할 위험이 없기 때문입니다. 따라서 이것은 대신 공격자가 이중 지출 공격을 분기하고 시작하도록 동기를 부여합니다.
징벌적 프로토콜에서 검열 공격자는 자신의 블록 보상에 관심이 없기 때문에 페널티 규칙은 공격자에게 정직한 채굴자가 블록 보상을 포기하도록 하는 또 다른 도구를 제공합니다.
그리고 행운 보상 프로토콜의 경우, 정보 비대칭성을 깨뜨리지 않는다면 행운은 좋은 의미가 아닙니다. 때로는 행운의 블록이 불량 블록으로 판명되어 상황을 악화시키는 경우도 있습니다.
결론은 모든 공격을 해결하려면 기본 규칙의 보상을 넘어설 필요가 있다는 것입니다. (보상 규칙은 공격 문제를 잘 해결하지 못합니다)
그것을하는 방법? 나는 당신과 논의할 몇 가지 아이디어를 제안합니다.
너무 복잡하고 분석하기 어려운 프로토콜을 설계해서는 안 됩니다. 설계자가 분석할 수 있는 프로토콜을 설계해야 합니다. 단순성은 좋은 것이고 복잡성은 보안의 적입니다.
단일 공격 전략만을 겨냥한 보안 분석은 위험합니다. 많은 프로토콜에 대해 설계자는 프로토콜이 특정 공격 방법에 저항할 수 있다고 시뮬레이션했지만 이러한 프로토콜은 공격자가 다른 공격 전략을 연구하도록 영감을 주었습니다. 단 하나의 공격 동기만을 겨냥한 보안 분석도 위험하다.
공격자는 단기 이익, 장기 이익에 집중하거나 다른 채굴자의 이익을 해칠 수 있습니다. 하나의 공격에 저항하기 위해 공격자가 다른 대상을 기반으로 다른 형태의 공격을 시작하도록 영감을 줄 수 있습니다. 모델에서 동기가 다른 모든 공격자를 고려해야 합니다.
