X-Token - REKT X2



X-token X2 - X-해커의 재림.

어떤 속편의 경우에는 다시는 작성되지 않아야 하는 것도 있습니다.

X-토큰은 다시 한번 털렸고, 플래시 론이 아직도 유행하고 있는 것 같습니다.

~$450만 가 xSNX 컨트랙트에서 도난당했습니다.

석 달 전, 이 팀은 2400만 달러를 도난당했습니다 - 같은 방법으로, 같은 토큰을 말이죠.

그 당시에 저희는 이렇게 작성했습니다;“X토큰은 수준 높은 프로토콜입니다”.

그러나 이제는 잘 모르겠습니다.

그들은 왜 또다시 해킹이 발생하도록 내버려 두었을까요?

공격 트랜잭션: 0x924e6a6...

Credit: Official Post Mortem

1: dydx에서 25,000 ETH를 플래시 론으로 대출받습니다.

2: Aave V1과 V2에서 대략 1백만 SNX를 대출 받습니다.

3: Bancor에서 6800 ETH를 51.9k SNX로 스왑합니다.

이 시점에서 해커는 대략 150만개의 SNX를 가지고 있습니다.

4: Kyber에서 150만개의 SNX를 대략 650만 USDC로 스왑하고, SNX의 가격을 폭락시킵니다.

5: 650만 USDC를 Curve에서 650만 sUSD로 스왑합니다.

6: 200만 sUSD를 xSNXADmin 컨트랙트(xSNX가 관리하는 자산을 가지고 있는 컨트랙트입니다)로 전송하여, 컨트랙트의 sUSD 부채를 상환하고 SNX의 잠금 상태를 해제합니다.

7: xSNXAdmin 컨트랙트에서 callFunction 기능을 호출하여, 남아있는 sUSD 부채를 소각하고 폭락된 가격으로 ~614k SNX를 ~811k sUSD로 스왑합니다.

해커가 callFunction 기능을 호출할 수 있었던 것이 취약점의 중요한 부분이었습니다. 이 기능은 리밸런싱을 통해 펀드의 수익률을 높일 수 있도록 dydx의 SoloMargin 플래시 론 컨트랙트만 호출할 수 있었어야 할 기능입니다.

잘못된 호출자의 요구 사항 조항은 누구나 호출할 수 있도록 허가하였습니다.

X토큰에서 require(msg.sender==soloMarginAddress) 가 사용되었어야 하는데 require(sender==address(this) 가 사용된 것입니다.

8: 컨트랙트 안에 존재한 채로 ~811k sUSD를 ~811k USDC로 스왑합니다.

9: 해커는 모든 과정을 역순으로 실행하여 ETH로 스왑하고 대출을 상환합니다.

해킹을 당하게 된 원인은, xSNX의 자금으로 SNX의 가격을 폭락시켜서 외부에서 재정거래가 가능할 수 있도록 기회를 만든 것이었습니다.

첫 번째는 실수라고 해도, 과연 두 번째도 실수일까요? X-토큰 팀은 유저에게 보상을 해주겠다고 말했으며(또다시), 그들의 xSNX 상품을 없애는 결정을 내렸습니다.

그들의 사후 분석에 따르면;

xSNX 는 저희의 상품 중 가장 복잡하며, 저희는 언제나 투자자들에게 최고의 자신감을 가지고 상품을 제시하고 싶습니다. 저희의 다른 상품들과 컨트랙트들은 최고의 자신감으로 제시할 수 있지만, 최근 xSNX 컨트랙트에 대해서는 그렇지 못하다고 결론을 내렸습니다.

비록 그들의 평판이 rekt 리더보드의 두 자리를 차지하면서 영원히 손상을 받겠지만, 이 팀은 그들의 유저들을 신경 쓰는 것으로 보이고, 더 나은 방향으로 나아가기 위해 노력하는 것으로 생각됩니다.

xSNX 상품을 내리는 결정은 현명할 수 있지만, 그러나 너무 복잡해서 감당할 수 없다고 공개적으로 선언하는 것이 그들의 평판에 더욱 손상을 가할 수도 있지 않을까요? 아마 처음부터 새로 시작하는 것이 더 올바른 것일 수 있습니다.

속편은 대부분 시리즈로 이어집니다.

과연 X-해커는 세 번째를 시도할까요?


기사 공유하기

REKT는 익명 작성자들에 의한 공공 플랫폼이며, REKT에 작성된 관점이나 내용에 대해서 그 어떤 책임도 지지 않습니다.

기부 (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

disclaimer:

REKT는 당사 웹 사이트의 익명의 작성자 또는 REKT에 의해 게시되거나 관련된 서비스에서 게시되는 콘텐츠에 대해 어떠한 책임도 지지 않습니다. 당사는 익명 작성자들의 행동 및 게시물에 대한 규칙을 제공하지만, 익명의 작성자가 웹 사이트 또는 서비스에 게시, 전송 혹은 공유한 내용을 통제하거나 책임지지 않으며, 귀하가 웹 사이트 또는 서비스에서 직면할 수 있는 불쾌함, 부적절함, 음란함, 불법 또는 기타 해로운 콘텐츠에 대해서도 책임을 지지 않습니다. REKT는 당사 웹 사이트 또는 서비스 사용자의 온라인 또는 오프라인 행위에 대한 책임을 지지 않습니다.