최적의 샌드위치: 블록체인 열광가들을 어떻게 착취할 것인가

최적의 샌드위치: 블록체인 열광가들을 어떻게 착취할 것인가

최적의 샌드위치: 블록체인 열광가들을 어떻게 착취할 것인가

Mark Richardson

Mark Richardson

Mark Richardson

2023. 8. 2.

2023. 8. 2.

2023. 8. 2.

소개

내가 종종 공부하는 열성적인 청중과 산업의 다양한 측면에 대해 토의할 기회가 종종 있습니다. 듣기로는 샌드위치 공격은 더 자주 요청되는 토론 주제 중 하나입니다. 나는 이 특정 공격 벡터에 대한 흥미가, 그것의 무시무당하고 위협적인 성격 때문이라고 의심합니다. 실제로 샌드위치 공격은 DeFi 커뮤니티가 가장 두려워하는 것 중 하나이지만, 이 커뮤니티 구성원 중 정말로 샌드위치 공격이 무엇인지 정확히 설명하거나 이를 수행하는 방정식을 유도할 수 있는 사람은 극히 드물다는 것이 놀랍습니다. 작문자가 전혀 그들이 공손히 요청한 이해와 당연히 받을 자격이 있는 것에 이르기 위해 실패한 것을 경험적으로 알려줍니다. 나의 결의는 여기서 샌드위치 공격을 수행하는 전체 일정과 취약한 거래로부터 가치(문자 그대로)를 철저히 빨아들일 수 있게 하는 수학적 방법을 드러내며, 이 업계 최고의 악용자들이 무한한 가치를 착취해낼 수 있는 방법을 뭉게기 위해 노력합니다. 다른 어떤 상황에서, 이려가 있을 수 있는 윤리적인 문제에 대해 출판하기에 대한 부정적인 결과가 없습니다. 유감스럽게도 그 공격을 무기화하려고 하는 사람들은 이미 그것을 하였으므로, 우리의 적들의 흑색 상자를 비워내고 함께 내용을 탐구하는 데는 부작용이 없다고 생각합니다.


예상 동작

순진한 척하면, 사용자가 일반적인 상수 제품 유동성 풀에 대한 거래를 하고 스마트 계약과 상호작용하는 알고리즘에서 유도한 토큰을 받을 것으로 기대합니다. 즉, 친숙한 스왑 기능(eqn 1)의 결과. 공격자와 사용자 간의 입력과 출력을 구분하기 위해 서브스크립트를 사용할 것입니다. 더 나아가, 기존 관습에 따라 유동성 풀 스왑 수수료를 소문자 그리스 문자 δ로, 거래 금액을 대문자 Δ로 표시하겠습니다. 그리고 항상 양수 실수인 x, y, δ, Δx, Δy라고 가정하고, Δx와 Δy는 각각 사용자나 공격자 지갑에서 빼거나 추가되는 토큰의 양(따라서 유동성 풀 잔고에서 더하거나 빼는 토큰의 양)입니다.



약 500 ETH와 1,000,000 USDC의 유동성 풀이 존재한다고 가정하면, 이는 약 2백만 달러의 총 가치를 나타냅니다. 그리고 거래 수수료 수준인 0.003(즉, 0.3% 또는 30 베이시스 포인트)으로 고정되어 있다고 가정합니다. 그런 다음 사용자가 풀과 20 ETH를 교환하고 싶어한다고 가정하겠습니다. 가격 슬리피지의 영향을 고려하고 거래 수수료를 고려한 후 기대 결과는 그림 1에 요약되어 있습니다.


그림 1: (순진한) 기대 결과. 20 ETH가 500 ETH와 1,000,000 USDC로 이루어진 일정 제품 유동성 풀에서 38,346.1538 USDC로 교환되고 $2백만 달러의 총 유동성을 가진 풀과 교환됩니다.


위에 그려진 것은 우리가 Universidade Federal do Paraná금융(FAMMA)에 대한 기본 사항을 안다고 가정할 경우 원하는 결과입니다.


한 끼의 맛있는 샌드위치


상대적으로 덜 가치의 CFMM 알고리즘에 대한 겸손한 지식과 그 대수적 조작 능력 그리고 사용자의 안전을 위해 무모한 무관심으로 무장한 상태에서, 기대했던 프로세스에 개입하여 거래로부터 상당한 가치를 빨아들일 수 있습니다. 나는 이러한 공격을 임의의 조건 하에서 수행하기 위한 지침을 제공하기 전에 그림 1에 나타낸 기대 동작을 예시로 사용하여 공격을 먼저 시연하고 싶습니다.


단계 1: 거래의 앞서기

공격자는 mempool에서 사용자의 거래를 관찰한 후, 사용자의 예상 스왑을 최대화하는 대신 빠르게 정확한 수의 토큰을 계산할 수 있습니다. 지금은 나의 말만 믿어주세요. 가장 효과적인 공격은 같은 방향으로 사용자의 20 ETH거래를 공격자에 의해 575,031.4616 USDC 교환함으로써 필자의 의견을 가지고 있는 사람은 기존의 다른 사람처럼 마찬가지로 새로운 기술 및 마켓 데이터를 융합하여 시장 데이터를 분석할 준비가 되어있는 사람은 금을 찻 구멍에 흘려서 동전을 벌어랄 수 있다고 생각합니다.

그림 2: 단계 1 — 거래의 앞서기. 공격자가 사용자와 동일한 방향으로 대규모 거래를 하고,그들의 스왑이 사용자의 트랜잭션 순서보다 앞설 리미지 않도록 합니다; 공격자가 681.3677 ETH을 575,031.4616 USDC(이그림 2)로 스왑함.


단계 2: 사용자의 스왑이 조작된 유동성 풀에서 실행되도록 허락합니다

유동성 풀 내부의 가격이 공격을 위한 적절한 조정된 지금은 사용자의 스왑 트랜잭션이 등록된 직후에 즉시 실행되어야 합니다(그림 3). 만약 이 공격이 자신의 것이 아니라면, 블록 내 트랜잭션의 순서를 결정하는 사람이 시도된 공격의 운명을 결정하는 특권적인 위치에 있기 때문에 이것은 위험한 시도가 될 수 있습니다. 조금처럼 운의 여지가 있다면, 무시할 정도의 크기입니다.


그림 3: 단계 2 — 사용자의 거래 허락. 공격자가 사용자의 거래를 앞서서 바로 실행합니다. 사용자가 20 ETH를 사용하여 7,053.5213 USDC로 교환하게됩니다; 위 그림 1에서 사용자가 같은 풀에서 같은 거래에 대해 38,346.1538 USDC를 받았기 때문에 81.6% 감소함.


단계 3: 거래의 뒤따르기

세 번 째 그리고 마지막 단계에서, 공격자는 초기 프론트 런을 뒤집어, 몇 분 만에 구입한 USDC 모두를 ETH로 다시 교환합니다


그림 4: 단계 3 — 거래의 뒤따르기. 20 ETH를 사용자가 거래한 후 바로 공격자가 소유한 575,031.4616 USDC를 모두 다시 693.6444 ETH로 교환하여 공격자가 여행에서 순수한 숫자 토큰을 얻게 됩니다.


여기서 중요한 것은 공격자가 본질적으로 아무것도 위험하지 않았고 시스템에 아무가치도 제공하지 않았다는 것입니다. 아마도 “블록체인을 보호하기 위한것”으로 참여하는 사람들의 관계의 상태 정도로 배척하겠 네이 강조된다.


전체 결과

위에 설명된 단계는 공격의 메커니즘(그림 2–4)을 설명하는데 많은 사람들은 지금까지 새로운 정보가 거의 없습니다. 그러나 내가 희망하는 것은 전반적인 프로세스에 대한 관점이 충분히 새롭다고 생각합니다. 주마다 그리고 누구나의 사전 지식에 관계없이 고려할 가치가 있는 perspective이기 때문에 이를 고려하기 바랍니다.


우리가 다듬고 있는 공격 벡터들은 극복할 수 없는 것으로만 받아들일지, 또는 더 나쁜 경우 니스를 하는데 차량세와 같은 목적를 두며 거버닝 인프라를 구축하는 알고리즘으로부터 요구되는 가스 비용 외에 세금 효과치만 요구하기 시작하는 경우가 생각해 보시기 바랍니다. 또한, 이러한 샌드위치 공격에는 많은 불필요한 단계가 포함되어 있는것으로 파악됩니다. 이것을 실행하는 것 없이 동일한 결과에 도달하는 것이 바람직할 것입니다. 나는 실례를 들었지만, 약속합니다. 중요한 것은 단순화되어야 합니다.

  1. 사용자가 유동성 풀에서 ETH를 USDC로 교환하기로 결정했습니다. 이 풀의 수수료율은 0.3%이고 거의 2백만 달러의 유동성을 가지고 있습니다.


  2. 그들은 유동성 풀로 20ETH를 보내어 38,346.1538USDC를 받을 것으로 예상 했고 그러고 거래를 하기로 했습니다.


  3. 낯선 사람이 경고없이 그리고 어떤 이유도 없이 12.2767 ETH를 가져갑니다.


  4. 나머지 7.7233 ETH은 거래를 하기 위해 유동성 풀로 보내지게 됩니다.


  5. 유동성 풀은 즉시 수수료 수준이 53.63%로 변경됩니다(즉, 17,776.9349% 증가).


  6. 스왑은 수행되고 사용자는 새로운 수수료 수준에서 7,053.5213 USDC을 받습니다 (그림 1의 eqn 1).


  7. 마지막으로 유동성 풀은 사용자의 거래 이전의 수준으로 즉시되돌립니다 (즉, 0.3%로 다시).


위의 단계는 완전히 샌드위치 공격 수행 단계와 아예 다르지만 정확히 동일한 결과로 이끌어내게 됩니다; 금전적으로 그리고 어느정도의 계싼에서 정확하게 같다 즉 두번 모두 같은 것을 말하고 있고 시각적 검사가 그래프는 사람들의 흥미를 유도합니다. 다음 그래프와 상호작용그래프는 독자들의 편의를 위해서 제공됩니다 desmos.


그림 6: Q와 ΔxA.대한 Q 대 ΔxA그래프 각각은 eqn 3으로부터 얻어진것, a)는 선형 척도에서 묘사되며 b)는 로그 척도에서 Δxₐ 차원으로 묘사ㅏ합시다. b)에 등장한 피크는 공격의 최적화에서 사용되는 Δ


그림 5 b)에 나타나는 피크 주위의 국부 최대값들은

소개

내가 종종 공부하는 열성적인 청중과 산업의 다양한 측면에 대해 토의할 기회가 종종 있습니다. 듣기로는 샌드위치 공격은 더 자주 요청되는 토론 주제 중 하나입니다. 나는 이 특정 공격 벡터에 대한 흥미가, 그것의 무시무당하고 위협적인 성격 때문이라고 의심합니다. 실제로 샌드위치 공격은 DeFi 커뮤니티가 가장 두려워하는 것 중 하나이지만, 이 커뮤니티 구성원 중 정말로 샌드위치 공격이 무엇인지 정확히 설명하거나 이를 수행하는 방정식을 유도할 수 있는 사람은 극히 드물다는 것이 놀랍습니다. 작문자가 전혀 그들이 공손히 요청한 이해와 당연히 받을 자격이 있는 것에 이르기 위해 실패한 것을 경험적으로 알려줍니다. 나의 결의는 여기서 샌드위치 공격을 수행하는 전체 일정과 취약한 거래로부터 가치(문자 그대로)를 철저히 빨아들일 수 있게 하는 수학적 방법을 드러내며, 이 업계 최고의 악용자들이 무한한 가치를 착취해낼 수 있는 방법을 뭉게기 위해 노력합니다. 다른 어떤 상황에서, 이려가 있을 수 있는 윤리적인 문제에 대해 출판하기에 대한 부정적인 결과가 없습니다. 유감스럽게도 그 공격을 무기화하려고 하는 사람들은 이미 그것을 하였으므로, 우리의 적들의 흑색 상자를 비워내고 함께 내용을 탐구하는 데는 부작용이 없다고 생각합니다.


예상 동작

순진한 척하면, 사용자가 일반적인 상수 제품 유동성 풀에 대한 거래를 하고 스마트 계약과 상호작용하는 알고리즘에서 유도한 토큰을 받을 것으로 기대합니다. 즉, 친숙한 스왑 기능(eqn 1)의 결과. 공격자와 사용자 간의 입력과 출력을 구분하기 위해 서브스크립트를 사용할 것입니다. 더 나아가, 기존 관습에 따라 유동성 풀 스왑 수수료를 소문자 그리스 문자 δ로, 거래 금액을 대문자 Δ로 표시하겠습니다. 그리고 항상 양수 실수인 x, y, δ, Δx, Δy라고 가정하고, Δx와 Δy는 각각 사용자나 공격자 지갑에서 빼거나 추가되는 토큰의 양(따라서 유동성 풀 잔고에서 더하거나 빼는 토큰의 양)입니다.



약 500 ETH와 1,000,000 USDC의 유동성 풀이 존재한다고 가정하면, 이는 약 2백만 달러의 총 가치를 나타냅니다. 그리고 거래 수수료 수준인 0.003(즉, 0.3% 또는 30 베이시스 포인트)으로 고정되어 있다고 가정합니다. 그런 다음 사용자가 풀과 20 ETH를 교환하고 싶어한다고 가정하겠습니다. 가격 슬리피지의 영향을 고려하고 거래 수수료를 고려한 후 기대 결과는 그림 1에 요약되어 있습니다.


그림 1: (순진한) 기대 결과. 20 ETH가 500 ETH와 1,000,000 USDC로 이루어진 일정 제품 유동성 풀에서 38,346.1538 USDC로 교환되고 $2백만 달러의 총 유동성을 가진 풀과 교환됩니다.


위에 그려진 것은 우리가 Universidade Federal do Paraná금융(FAMMA)에 대한 기본 사항을 안다고 가정할 경우 원하는 결과입니다.


한 끼의 맛있는 샌드위치


상대적으로 덜 가치의 CFMM 알고리즘에 대한 겸손한 지식과 그 대수적 조작 능력 그리고 사용자의 안전을 위해 무모한 무관심으로 무장한 상태에서, 기대했던 프로세스에 개입하여 거래로부터 상당한 가치를 빨아들일 수 있습니다. 나는 이러한 공격을 임의의 조건 하에서 수행하기 위한 지침을 제공하기 전에 그림 1에 나타낸 기대 동작을 예시로 사용하여 공격을 먼저 시연하고 싶습니다.


단계 1: 거래의 앞서기

공격자는 mempool에서 사용자의 거래를 관찰한 후, 사용자의 예상 스왑을 최대화하는 대신 빠르게 정확한 수의 토큰을 계산할 수 있습니다. 지금은 나의 말만 믿어주세요. 가장 효과적인 공격은 같은 방향으로 사용자의 20 ETH거래를 공격자에 의해 575,031.4616 USDC 교환함으로써 필자의 의견을 가지고 있는 사람은 기존의 다른 사람처럼 마찬가지로 새로운 기술 및 마켓 데이터를 융합하여 시장 데이터를 분석할 준비가 되어있는 사람은 금을 찻 구멍에 흘려서 동전을 벌어랄 수 있다고 생각합니다.

그림 2: 단계 1 — 거래의 앞서기. 공격자가 사용자와 동일한 방향으로 대규모 거래를 하고,그들의 스왑이 사용자의 트랜잭션 순서보다 앞설 리미지 않도록 합니다; 공격자가 681.3677 ETH을 575,031.4616 USDC(이그림 2)로 스왑함.


단계 2: 사용자의 스왑이 조작된 유동성 풀에서 실행되도록 허락합니다

유동성 풀 내부의 가격이 공격을 위한 적절한 조정된 지금은 사용자의 스왑 트랜잭션이 등록된 직후에 즉시 실행되어야 합니다(그림 3). 만약 이 공격이 자신의 것이 아니라면, 블록 내 트랜잭션의 순서를 결정하는 사람이 시도된 공격의 운명을 결정하는 특권적인 위치에 있기 때문에 이것은 위험한 시도가 될 수 있습니다. 조금처럼 운의 여지가 있다면, 무시할 정도의 크기입니다.


그림 3: 단계 2 — 사용자의 거래 허락. 공격자가 사용자의 거래를 앞서서 바로 실행합니다. 사용자가 20 ETH를 사용하여 7,053.5213 USDC로 교환하게됩니다; 위 그림 1에서 사용자가 같은 풀에서 같은 거래에 대해 38,346.1538 USDC를 받았기 때문에 81.6% 감소함.


단계 3: 거래의 뒤따르기

세 번 째 그리고 마지막 단계에서, 공격자는 초기 프론트 런을 뒤집어, 몇 분 만에 구입한 USDC 모두를 ETH로 다시 교환합니다


그림 4: 단계 3 — 거래의 뒤따르기. 20 ETH를 사용자가 거래한 후 바로 공격자가 소유한 575,031.4616 USDC를 모두 다시 693.6444 ETH로 교환하여 공격자가 여행에서 순수한 숫자 토큰을 얻게 됩니다.


여기서 중요한 것은 공격자가 본질적으로 아무것도 위험하지 않았고 시스템에 아무가치도 제공하지 않았다는 것입니다. 아마도 “블록체인을 보호하기 위한것”으로 참여하는 사람들의 관계의 상태 정도로 배척하겠 네이 강조된다.


전체 결과

위에 설명된 단계는 공격의 메커니즘(그림 2–4)을 설명하는데 많은 사람들은 지금까지 새로운 정보가 거의 없습니다. 그러나 내가 희망하는 것은 전반적인 프로세스에 대한 관점이 충분히 새롭다고 생각합니다. 주마다 그리고 누구나의 사전 지식에 관계없이 고려할 가치가 있는 perspective이기 때문에 이를 고려하기 바랍니다.


우리가 다듬고 있는 공격 벡터들은 극복할 수 없는 것으로만 받아들일지, 또는 더 나쁜 경우 니스를 하는데 차량세와 같은 목적를 두며 거버닝 인프라를 구축하는 알고리즘으로부터 요구되는 가스 비용 외에 세금 효과치만 요구하기 시작하는 경우가 생각해 보시기 바랍니다. 또한, 이러한 샌드위치 공격에는 많은 불필요한 단계가 포함되어 있는것으로 파악됩니다. 이것을 실행하는 것 없이 동일한 결과에 도달하는 것이 바람직할 것입니다. 나는 실례를 들었지만, 약속합니다. 중요한 것은 단순화되어야 합니다.

  1. 사용자가 유동성 풀에서 ETH를 USDC로 교환하기로 결정했습니다. 이 풀의 수수료율은 0.3%이고 거의 2백만 달러의 유동성을 가지고 있습니다.


  2. 그들은 유동성 풀로 20ETH를 보내어 38,346.1538USDC를 받을 것으로 예상 했고 그러고 거래를 하기로 했습니다.


  3. 낯선 사람이 경고없이 그리고 어떤 이유도 없이 12.2767 ETH를 가져갑니다.


  4. 나머지 7.7233 ETH은 거래를 하기 위해 유동성 풀로 보내지게 됩니다.


  5. 유동성 풀은 즉시 수수료 수준이 53.63%로 변경됩니다(즉, 17,776.9349% 증가).


  6. 스왑은 수행되고 사용자는 새로운 수수료 수준에서 7,053.5213 USDC을 받습니다 (그림 1의 eqn 1).


  7. 마지막으로 유동성 풀은 사용자의 거래 이전의 수준으로 즉시되돌립니다 (즉, 0.3%로 다시).


위의 단계는 완전히 샌드위치 공격 수행 단계와 아예 다르지만 정확히 동일한 결과로 이끌어내게 됩니다; 금전적으로 그리고 어느정도의 계싼에서 정확하게 같다 즉 두번 모두 같은 것을 말하고 있고 시각적 검사가 그래프는 사람들의 흥미를 유도합니다. 다음 그래프와 상호작용그래프는 독자들의 편의를 위해서 제공됩니다 desmos.


그림 6: Q와 ΔxA.대한 Q 대 ΔxA그래프 각각은 eqn 3으로부터 얻어진것, a)는 선형 척도에서 묘사되며 b)는 로그 척도에서 Δxₐ 차원으로 묘사ㅏ합시다. b)에 등장한 피크는 공격의 최적화에서 사용되는 Δ


그림 5 b)에 나타나는 피크 주위의 국부 최대값들은

소개

내가 종종 공부하는 열성적인 청중과 산업의 다양한 측면에 대해 토의할 기회가 종종 있습니다. 듣기로는 샌드위치 공격은 더 자주 요청되는 토론 주제 중 하나입니다. 나는 이 특정 공격 벡터에 대한 흥미가, 그것의 무시무당하고 위협적인 성격 때문이라고 의심합니다. 실제로 샌드위치 공격은 DeFi 커뮤니티가 가장 두려워하는 것 중 하나이지만, 이 커뮤니티 구성원 중 정말로 샌드위치 공격이 무엇인지 정확히 설명하거나 이를 수행하는 방정식을 유도할 수 있는 사람은 극히 드물다는 것이 놀랍습니다. 작문자가 전혀 그들이 공손히 요청한 이해와 당연히 받을 자격이 있는 것에 이르기 위해 실패한 것을 경험적으로 알려줍니다. 나의 결의는 여기서 샌드위치 공격을 수행하는 전체 일정과 취약한 거래로부터 가치(문자 그대로)를 철저히 빨아들일 수 있게 하는 수학적 방법을 드러내며, 이 업계 최고의 악용자들이 무한한 가치를 착취해낼 수 있는 방법을 뭉게기 위해 노력합니다. 다른 어떤 상황에서, 이려가 있을 수 있는 윤리적인 문제에 대해 출판하기에 대한 부정적인 결과가 없습니다. 유감스럽게도 그 공격을 무기화하려고 하는 사람들은 이미 그것을 하였으므로, 우리의 적들의 흑색 상자를 비워내고 함께 내용을 탐구하는 데는 부작용이 없다고 생각합니다.


예상 동작

순진한 척하면, 사용자가 일반적인 상수 제품 유동성 풀에 대한 거래를 하고 스마트 계약과 상호작용하는 알고리즘에서 유도한 토큰을 받을 것으로 기대합니다. 즉, 친숙한 스왑 기능(eqn 1)의 결과. 공격자와 사용자 간의 입력과 출력을 구분하기 위해 서브스크립트를 사용할 것입니다. 더 나아가, 기존 관습에 따라 유동성 풀 스왑 수수료를 소문자 그리스 문자 δ로, 거래 금액을 대문자 Δ로 표시하겠습니다. 그리고 항상 양수 실수인 x, y, δ, Δx, Δy라고 가정하고, Δx와 Δy는 각각 사용자나 공격자 지갑에서 빼거나 추가되는 토큰의 양(따라서 유동성 풀 잔고에서 더하거나 빼는 토큰의 양)입니다.



약 500 ETH와 1,000,000 USDC의 유동성 풀이 존재한다고 가정하면, 이는 약 2백만 달러의 총 가치를 나타냅니다. 그리고 거래 수수료 수준인 0.003(즉, 0.3% 또는 30 베이시스 포인트)으로 고정되어 있다고 가정합니다. 그런 다음 사용자가 풀과 20 ETH를 교환하고 싶어한다고 가정하겠습니다. 가격 슬리피지의 영향을 고려하고 거래 수수료를 고려한 후 기대 결과는 그림 1에 요약되어 있습니다.


그림 1: (순진한) 기대 결과. 20 ETH가 500 ETH와 1,000,000 USDC로 이루어진 일정 제품 유동성 풀에서 38,346.1538 USDC로 교환되고 $2백만 달러의 총 유동성을 가진 풀과 교환됩니다.


위에 그려진 것은 우리가 Universidade Federal do Paraná금융(FAMMA)에 대한 기본 사항을 안다고 가정할 경우 원하는 결과입니다.


한 끼의 맛있는 샌드위치


상대적으로 덜 가치의 CFMM 알고리즘에 대한 겸손한 지식과 그 대수적 조작 능력 그리고 사용자의 안전을 위해 무모한 무관심으로 무장한 상태에서, 기대했던 프로세스에 개입하여 거래로부터 상당한 가치를 빨아들일 수 있습니다. 나는 이러한 공격을 임의의 조건 하에서 수행하기 위한 지침을 제공하기 전에 그림 1에 나타낸 기대 동작을 예시로 사용하여 공격을 먼저 시연하고 싶습니다.


단계 1: 거래의 앞서기

공격자는 mempool에서 사용자의 거래를 관찰한 후, 사용자의 예상 스왑을 최대화하는 대신 빠르게 정확한 수의 토큰을 계산할 수 있습니다. 지금은 나의 말만 믿어주세요. 가장 효과적인 공격은 같은 방향으로 사용자의 20 ETH거래를 공격자에 의해 575,031.4616 USDC 교환함으로써 필자의 의견을 가지고 있는 사람은 기존의 다른 사람처럼 마찬가지로 새로운 기술 및 마켓 데이터를 융합하여 시장 데이터를 분석할 준비가 되어있는 사람은 금을 찻 구멍에 흘려서 동전을 벌어랄 수 있다고 생각합니다.

그림 2: 단계 1 — 거래의 앞서기. 공격자가 사용자와 동일한 방향으로 대규모 거래를 하고,그들의 스왑이 사용자의 트랜잭션 순서보다 앞설 리미지 않도록 합니다; 공격자가 681.3677 ETH을 575,031.4616 USDC(이그림 2)로 스왑함.


단계 2: 사용자의 스왑이 조작된 유동성 풀에서 실행되도록 허락합니다

유동성 풀 내부의 가격이 공격을 위한 적절한 조정된 지금은 사용자의 스왑 트랜잭션이 등록된 직후에 즉시 실행되어야 합니다(그림 3). 만약 이 공격이 자신의 것이 아니라면, 블록 내 트랜잭션의 순서를 결정하는 사람이 시도된 공격의 운명을 결정하는 특권적인 위치에 있기 때문에 이것은 위험한 시도가 될 수 있습니다. 조금처럼 운의 여지가 있다면, 무시할 정도의 크기입니다.


그림 3: 단계 2 — 사용자의 거래 허락. 공격자가 사용자의 거래를 앞서서 바로 실행합니다. 사용자가 20 ETH를 사용하여 7,053.5213 USDC로 교환하게됩니다; 위 그림 1에서 사용자가 같은 풀에서 같은 거래에 대해 38,346.1538 USDC를 받았기 때문에 81.6% 감소함.


단계 3: 거래의 뒤따르기

세 번 째 그리고 마지막 단계에서, 공격자는 초기 프론트 런을 뒤집어, 몇 분 만에 구입한 USDC 모두를 ETH로 다시 교환합니다


그림 4: 단계 3 — 거래의 뒤따르기. 20 ETH를 사용자가 거래한 후 바로 공격자가 소유한 575,031.4616 USDC를 모두 다시 693.6444 ETH로 교환하여 공격자가 여행에서 순수한 숫자 토큰을 얻게 됩니다.


여기서 중요한 것은 공격자가 본질적으로 아무것도 위험하지 않았고 시스템에 아무가치도 제공하지 않았다는 것입니다. 아마도 “블록체인을 보호하기 위한것”으로 참여하는 사람들의 관계의 상태 정도로 배척하겠 네이 강조된다.


전체 결과

위에 설명된 단계는 공격의 메커니즘(그림 2–4)을 설명하는데 많은 사람들은 지금까지 새로운 정보가 거의 없습니다. 그러나 내가 희망하는 것은 전반적인 프로세스에 대한 관점이 충분히 새롭다고 생각합니다. 주마다 그리고 누구나의 사전 지식에 관계없이 고려할 가치가 있는 perspective이기 때문에 이를 고려하기 바랍니다.


우리가 다듬고 있는 공격 벡터들은 극복할 수 없는 것으로만 받아들일지, 또는 더 나쁜 경우 니스를 하는데 차량세와 같은 목적를 두며 거버닝 인프라를 구축하는 알고리즘으로부터 요구되는 가스 비용 외에 세금 효과치만 요구하기 시작하는 경우가 생각해 보시기 바랍니다. 또한, 이러한 샌드위치 공격에는 많은 불필요한 단계가 포함되어 있는것으로 파악됩니다. 이것을 실행하는 것 없이 동일한 결과에 도달하는 것이 바람직할 것입니다. 나는 실례를 들었지만, 약속합니다. 중요한 것은 단순화되어야 합니다.

  1. 사용자가 유동성 풀에서 ETH를 USDC로 교환하기로 결정했습니다. 이 풀의 수수료율은 0.3%이고 거의 2백만 달러의 유동성을 가지고 있습니다.


  2. 그들은 유동성 풀로 20ETH를 보내어 38,346.1538USDC를 받을 것으로 예상 했고 그러고 거래를 하기로 했습니다.


  3. 낯선 사람이 경고없이 그리고 어떤 이유도 없이 12.2767 ETH를 가져갑니다.


  4. 나머지 7.7233 ETH은 거래를 하기 위해 유동성 풀로 보내지게 됩니다.


  5. 유동성 풀은 즉시 수수료 수준이 53.63%로 변경됩니다(즉, 17,776.9349% 증가).


  6. 스왑은 수행되고 사용자는 새로운 수수료 수준에서 7,053.5213 USDC을 받습니다 (그림 1의 eqn 1).


  7. 마지막으로 유동성 풀은 사용자의 거래 이전의 수준으로 즉시되돌립니다 (즉, 0.3%로 다시).


위의 단계는 완전히 샌드위치 공격 수행 단계와 아예 다르지만 정확히 동일한 결과로 이끌어내게 됩니다; 금전적으로 그리고 어느정도의 계싼에서 정확하게 같다 즉 두번 모두 같은 것을 말하고 있고 시각적 검사가 그래프는 사람들의 흥미를 유도합니다. 다음 그래프와 상호작용그래프는 독자들의 편의를 위해서 제공됩니다 desmos.


그림 6: Q와 ΔxA.대한 Q 대 ΔxA그래프 각각은 eqn 3으로부터 얻어진것, a)는 선형 척도에서 묘사되며 b)는 로그 척도에서 Δxₐ 차원으로 묘사ㅏ합시다. b)에 등장한 피크는 공격의 최적화에서 사용되는 Δ


그림 5 b)에 나타나는 피크 주위의 국부 최대값들은

Share on social

알파! 알파!
이에 대해 모두 읽으세요!

알파! 알파!
이에 대해 모두 읽으세요!

알파! 알파!
이에 대해 모두 읽으세요!

Carbon DeFi의 최신 업데이트를 구독하세요

Carbon DeFi의 최신 업데이트를 구독하세요

Carbon DeFi의 최신 업데이트를 구독하세요