"하나의 거래" 승리
저자: NEST Enthusiast_Nine Chapters Tianwen
저자: NEST Enthusiast_Nine Chapters Tianwen블록체인에서 불가피한 공격이 무엇인지 묻는다면 다음과 같이 대답하겠습니다.재밍 공격과 51% 공격.
다음 시간에 51% 공격에 대해 이야기하고 오늘은 블로킹 공격에 대해서만 이야기하겠습니다.
소위 차단 공격은 트랜잭션을 사용하여 블록을 점유하여 다른 트랜잭션을 패키징할 수 없도록 하는 것입니다.누군가는 잼 공격을 블록체인의 블록과 비교합니다.디도스 공격
: 시스템 허점을 찾는 것이 아니라 "준수" 방식으로 자원을 점유하고 시스템을 종료합니다. 둘은 추상화될 수 있는 유사점을 가지고 있습니다: 하나는 "컴플라이언스", 즉 시스템에서 공격을 허용하고 다른 하나는 비취약성, 즉 아무리 완벽하더라도 모든 시스템이 공격을 받을 수 있다는 것입니다. 시스템 리소스, 기타는 수동적으로 제외됩니다.
이러한 기능을 자세히 살펴보면 순전히 기술적인 문제도 아니고 순전히 보안 문제도 아닌 것 같습니다. 방해 공격은 경제적인 문제이거나 게임의 문제입니다. 이더리움 네트워크를 예로 들어, 먼저 차단 공격의 최적 논리를 연구한 다음 차단 공격에 대응하는 아이디어를 연구합니다.
블록의 가스 상한이 1000만이고 가장 작은 단일 트랜잭션이 20,000이라고 가정하면 블록을 차단하는 두 가지 옵션이 있습니다. 두 번째는 높은 gasprice(여기서는 크고 작은 것은 gaslimit로 측정하며, 큰 트랜잭션은 gaslimit가 1000만과 같이 가능한 한 전체 블록을 차지하는 트랜잭션)을 사용하여 차단하는 것입니다. 예를 들어 가스프라이스가 1000(빠른 패키징이 보장되는 가스프라이스는 312 이더리움 네트워크가 혼잡할 때도 1000배 이내)이면 두 방식에서 계산한 가스비용은 동일하며 이는 우리의 계산 결과이다. 자신의 입장 .
그러나 광부와 경쟁자의 관점에서 둘 사이에는 차이가 있습니다.경쟁사, 즉 블로킹 공격을 돌파하려는 거래자부터 시작하겠습니다.
소액 거래일 경우 경쟁자는 더 높은 가스프라이스를 사용하여 공격자보다 먼저 패킹할 수 있으며, 예를 들어 2000의 가스프라이스를 사용하여 경쟁한다면 원칙적으로 가스프라이스가 있는 많은 소액 트랜잭션 앞에 순위를 매겨야 함 그러나 대규모 거래의 경우 채굴자들이 가스 가격이 가장 높은 거래보다 가스를 극대화하는 조합을 고려하기 때문에 경쟁업체가 차단될 수 있습니다. 이는 대규모 트랜잭션의 총 가스가 1000만 * 1000이고 작은 트랜잭션을 포함한 가스가 20,000 * 2000 + 기타 트랜잭션이기 때문입니다. 이 두 가지 트랜잭션 조합에서 합리적인 채굴자는 큰 트랜잭션의 조합을 선택하므로 경쟁자가 더 높은 Gasprice를 가지고 있어도 단일 트랜잭션의 낮은 가스로 인해 제외됩니다. 따라서 블로킹 공격의 실효성 측면에서 높은 Gasprice를 가진 대규모 거래가 더 유리하다.이더리움 네트워크의 현재 거래 상황에 따르면 가스프라이스 1000배의 대규모 거래에 대한 처리 수수료는 1000w*1000=10 ETH이며, 1개의 블록이 차단되었으므로 10분 동안 차단하는 비용은 500 ETH입니다.외부 인센티브가 충분히 큰 경우(외부 인센티브는 현재 행동 이외의 보상), 1시간 동안 차단하는 것은 3000 ETH이며 이는 아마도 가치가 있을 것입니다.
가스 가격의 1000배는 온체인 애플리케이션이 아닌 통계적 가정에 기반한 것입니다.경제가 블록, 즉 N 블록 내에서 완료되어야 하는 DeFi와 같은 온체인 애플리케이션을 고려하십시오. 그렇지 않으면 X ETH 손실이 발생합니다. 응용 프로그램이 아무런 설계도 하지 않은 경우 이전 가정에 따라 10*N ETH의 차단 공격으로 인해 X ETH의 손실이 발생할 수 있습니다. 다음은 몇 가지 상황입니다. 1. X ETH의 손실은 공격자의 이득이 될 수 있으며 X>10N일 때 공격은 완전히 합리적인 인센티브입니다. 2. X ETH의 손실은 공격자의 이익으로 전환될 수 없으며, 이 상황은 X와 동일합니다.
10N 미만이면 악의적인 행위가 됩니다. 애플리케이션의 유효성을 파괴하여 자산이 애플리케이션 밖으로 유출되도록 합니다.
이 두 가지 상황은 따로따로 생각해야 하지만 어느 경우든 차단 공격을 무효화하는 방법이 핵심입니다. 거래".
첫째, 경제 규모나 특정 이상 조건에 따라 N의 크기를 N1로 늘리고, 둘째, 거래 완료에 대한 인센티브 수입을 늘리는 두 가지 방법으로 응용 프로그램을 설계해야 합니다. 예를 들어, 거래 완료에 대한 수입은 a ETH가 b>a, b>10eth인 bETH로 업그레이드됩니다. 즉, 블록 차단 비용은 bETH가 되고 총 비용은 10*NETH에서 b로 변경됩니다. *N1ETH, b*N1ETH>X이면 공격에 대한 외부 인센티브가 유효하지 않습니다.두 번째 경우 악의적인 공격에 대처하는 가장 좋은 방법은종료 메커니즘, 두 가지 의미가 있습니다.하나는 공격으로 인한 비용의 기하급수적 진행으로 공격자가 목표 달성을 불가능하게 하여 공격을 포기하는 것입니다.예를 들어 NEST 시스템의 베타 계수 설계는 현재 최초의 내장형 종료 시스템입니다. 블록체인 산업에서의 설계 우리는 그것으로부터 배울 수 있습니다.
. 둘째, 애플리케이션의 실행 파일은 "거래의 승리"의 난이도에 따라 자동으로 조정됩니다. "거래의 승리"를 완료하는 것이 매우 시급한 경우 애플리케이션을 일시적으로 비활성화하여 공격자가 대상을 잃을 수 있습니다. 공격의. 이 두 배열은 개방성으로 인해 경계 조건에 대한 보다 심층적인 분류 연구가 필요합니다.물론 위의 분석은 채굴자들이 완전히 합리적이고 가능한 블랙리스트와 상관없이 패키지된 가스 수입만 고려하고 차단 공격 등에 저항하기 위해 자발적으로 이익의 일부를 희생한다는 것을 가정합니다.
이러한 인간화 배치를 통해 공격 저항의 목적도 간접적으로 달성할 수 있지만 애플리케이션 측면에서 설계하는 것을 선호합니다.체인의 현재 응용 프로그램이 아직 탐색 단계에 있기 때문에 아무도 차단 공격의 공격과 방어를 심각하게 고려하지 않았으며 이는 향후 응용 프로그램 개발에 매우 불리합니다.그때 FOMO3D의 종료를 생각하면 좋겠습니다. DeFi 산업에서는 일어나지 않을 것입니다.


