CETUS LP Exploit
얼마나 털렸는가?
에 대한 이야기는 있지만
어떻게 털렸는가?
에 대한 이야기가 없어서 정리해봄
1줄 요약
있을지 모르는 과정이 궁금한 사람들을 위해 발생시킨 트랜잭션 중 하나를 예시로 Event 흐름을 위주로 분석해보려고 함
(단, 공식적인 발표가 아닌 단순 트랜잭션을 바탕으로 추론한 것이라 오류가 있을 수 있음)
얼마나 털렸는가?
에 대한 이야기는 있지만
어떻게 털렸는가?
에 대한 이야기가 없어서 정리해봄
1줄 요약
flash_swap과 remove_liquidity의 검증 미비를 활용해 풀에 있는 돈을 털어감
있을지 모르는 과정이 궁금한 사람들을 위해 발생시킨 트랜잭션 중 하나를 예시로 Event 흐름을 위주로 분석해보려고 함
(단, 공식적인 발표가 아닌 단순 트랜잭션을 바탕으로 추론한 것이라 오류가 있을 수 있음)
👍1
고졸무직백수롱숏딸깍도박충은 어떤 생각을 가지고 행동할까?
결과적으로 위와 같은 이벤트를 바탕으로 풀에 있는 대부분의 자금을 빼냈다고 볼 수 있다 공격자(0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06)의 트랜잭션들을 보면 굉장히 다양한 곳에서 탈취를 했음을 확인할 수 있고 그 규모는 $220M 정도로 이야기 되었지만 $160M 정도는 동결되었다고 함 탈중앙화화의 해결이 시급하다던 그 사람을 비웃던 적이 있었는데 이번만큼은 그러지 못할 것…
문제가 되는 코드에 대한 수정은 약 5시간 전에 진행이 되었었네요
👍7
가스 리밋을 자체적으로 설정해보자
어제 $LA의 경우 체인간 가격 차이가 좀 났었다고 하던데.... 가스비가 적으면 적다고 뭐라하고 많으면 오버플로우가 난다고 뭐라한다는 이야기를 들었음
그래서 contract 실행을 못하니까 해당 갭이 좀 오래간 것 같은데 이런 경우 그냥 코드로 실행하면 사실 저런거 마주할 일이 없음
아래와 같이 코드를 사용한다면 큰 문제 없이 아비트라지를 할 수 있었을텐데 기회를 놓친 것이 매우 아쉽다
아 참고로 환경 세팅은 본인의 몫인 거시다
다들 파이팅!
어제 $LA의 경우 체인간 가격 차이가 좀 났었다고 하던데.... 가스비가 적으면 적다고 뭐라하고 많으면 오버플로우가 난다고 뭐라한다는 이야기를 들었음
그래서 contract 실행을 못하니까 해당 갭이 좀 오래간 것 같은데 이런 경우 그냥 코드로 실행하면 사실 저런거 마주할 일이 없음
아래와 같이 코드를 사용한다면 큰 문제 없이 아비트라지를 할 수 있었을텐데 기회를 놓친 것이 매우 아쉽다
아 참고로 환경 세팅은 본인의 몫인 거시다
다들 파이팅!
import {
Contract,
JsonRpcProvider,
Wallet,
AbiCoder,
parseUnits,
zeroPadValue
} from "ethers";
const provider = new JsonRpcProvider("https://bsc-dataseed.binance.org/");
const wallet = new Wallet("본인 pk 쓰시면 됩니다 이 때 pk는 헥사데시멀이라서 0x 붙여줘야함", provider);
const oftProxyAddress = "0x389AD4bb96d0D6EE5B6eF0EFAF4b7db0bA2e02a0";
const abi = [
`function send(
tuple(uint32 dstEid, bytes32 to, uint256 amountLD, uint256 minAmountLD, bytes extraOptions, bytes composeMsg, bytes oftCmd),
tuple(uint256 nativeFee, uint256 lzTokenFee),
address refundAddress
) external payable`
];
const contract = new Contract(oftProxyAddress, abi, wallet);
const sendParam = {
dstEid: 체인 ID,
to: zeroPadValue("님 받을 주소", 32),
amountLD: parseUnits("보낼 개수", 18),
minAmountLD: parseUnits("보낼 개수", 18),
extraOptions: "0x00030100110100000000000000000000000000013880", // 가스 소모량 설정한건데 대충 저 정도면 됨
composeMsg: "0x",
oftCmd: "0x"
};
const fee = {
nativeFee: parseUnits("0.009", "ether"), // 대충 0.009 정도하니까 전송됨
lzTokenFee: 0
};
const refundAddress = wallet.address;
async function sendOFT() {
const tx = await contract.send(sendParam, fee, refundAddress, {
value: fee.nativeFee,
gasLimit: 800_000 // 대충 70만 정도라서 80만 성정하면 됨
});
console.log("Tx sent:", tx.hash);
}
sendOFT().catch(console.error);❤4🔥1
고졸무직백수롱숏딸깍도박충은 어떤 생각을 가지고 행동할까?
가스 리밋을 자체적으로 설정해보자 어제 $LA의 경우 체인간 가격 차이가 좀 났었다고 하던데.... 가스비가 적으면 적다고 뭐라하고 많으면 오버플로우가 난다고 뭐라한다는 이야기를 들었음 그래서 contract 실행을 못하니까 해당 갭이 좀 오래간 것 같은데 이런 경우 그냥 코드로 실행하면 사실 저런거 마주할 일이 없음 아래와 같이 코드를 사용한다면 큰 문제 없이 아비트라지를 할 수 있었을텐데 기회를 놓친 것이 매우 아쉽다 아 참고로 환경 세팅은 본인의…
항상 느끼는건데 이런 코드들 잔뜩 올려놓으면 private shares가 엄청 많이 늘어남...
다들 많이많이 공유해서 관심을 받을 수 있게 부탁드립니다...
다들 많이많이 공유해서 관심을 받을 수 있게 부탁드립니다...
Forwarded from 김봉찬의 트레이딩 룸
오늘 누군가 큰돈을 잃는 사고가 터졌다는 글을 봤다.
나는 겉으로 보이는 성격과는 다르게, 굉장히 감성적인 편이라 감정이입이 쉽게 되고 그래서 이런 상황이 더 힘들게 다가온다.
이렇게 시장에 큰 무빙이 있을 때마다, 알고 지내거나 건너 알고 있는 지인이 사고를 당했다는 소식을 들을 때면
이 시장에 대한 회의감, 공포감, 안도감 등 복잡한 감정들이 뒤섞여 마치 내가 사고를 당한 듯한 기분이 들어서
정신적으로 굉장히 힘들어진다.
누군가는 큰돈을 벌기 위해,
누군가는 이미 번 돈으로 더 큰돈을 벌기 위해
이 시장에 들어와 치열하게 싸우고 배팅을 한다.
그러다 결국 누구나 한번쯤은 큰 사고를 겪게 된다.
나도 내 얘기를 자세히 말하진 못하지만, 부따빔, 루나 포함해서 꽤 여러 번 큰일을 겪었다.
그래서인지 저런 소식을 들을 때마다 그때의 감정이 다시 떠올라 나를 힘들게 만든다. 내가 당한 것 같은 느낌....
예전에 정말 엄청나게 큰 돈을 잃었을 때, 부랄친구한테 전화를 걸어 하소연을 한 적이 있다.
근데 지금 생각해보면 그건 하소연이라기보단
‘나 이렇게 큰돈을 잃었어’ 라는, 이상하게 자랑 같은 느낌이 섞인 말이었던 것 같다.
무슨말인지 알려나...
일반 직장인이라면 평생 만져보기 힘든 돈이었으니까.
근데 그때 친구가 해준 말이 아직도 잊혀지지 않는다.
“봉찬아, 나는 지금 내 인생에 당장 2천만 원만 있어도 진짜 소원이 없겠는데... 너 진짜 대단하다.”
그 말을 듣고 너무 부끄러워졌고, 뭔가 위로 같지도 않은 위로였지만 나를 정신 차리게 해줬다.
코인을 하다 보면, 돈의 단위에 대해 무감각해진다.
누군가에겐 인생을 바꿀 돈이,
나에겐 그냥 조금 빠지면 다시 채우면 되는 금액처럼 느껴질 때도 있다.
만약 내가 다시 다 부러져서 0이 된다면…
내가 과연 다시 일어설 수 있을까?
그 공포감이 머리에서 떠나지 않는다.
나도 이제 마흔이고, 책임져야 할 가족도 많다.
그래서 더더욱 이런 소식에 감정이입이 되는 것 같다.
시장은 잔인하다.
사람들은 종종 고수들이 리스크 관리를 못 해서, 혹은 실력이 없어서 사라졌다고 생각하지만
사실 우리는 늘 성공과 실패, 그 한 끗 차이 사이에서 배팅하는 승부사들이다.
그렇기 때문에 누구에게나 이런 일은 일어날 수 있고, 그래서 더 무섭고 경각심이 드는 것같다.
내가 맨날 조심해라, 게이처럼 해라, 출금해라 하면서 잔소리하는 것도
결국 내가 느꼈던 그 좆같은 감정들을
내 주변 지인들이 경험하지 않았으면 하는 잔소리 같은것 같다
내 주변 사람들도, 코인을 하다 보면… 제발 안 그러길 바라지만
누군가는 반드시 큰 사고를 한번쯤은 겪게 될 것이다.
그럴 때 해주고 싶은 말은 하나밖에 없다.
시간이 지나면 견뎌진다. 무뎌진다.
그리고 당신이 이뤘던 결과물은 단순한 운이 아니라
당신의 노력과 실력의 증거다.
이미 걸어온 길이 있으니, 조급해하지 말고 지름길 찾으려 하지 말고
그냥 천천히 가다 보면 결국 도착할 수 있을 거라고, 나는 믿어 의심치 않는다.
다들 화이팅 합시다.
사랑합니다.
나는 겉으로 보이는 성격과는 다르게, 굉장히 감성적인 편이라 감정이입이 쉽게 되고 그래서 이런 상황이 더 힘들게 다가온다.
이렇게 시장에 큰 무빙이 있을 때마다, 알고 지내거나 건너 알고 있는 지인이 사고를 당했다는 소식을 들을 때면
이 시장에 대한 회의감, 공포감, 안도감 등 복잡한 감정들이 뒤섞여 마치 내가 사고를 당한 듯한 기분이 들어서
정신적으로 굉장히 힘들어진다.
누군가는 큰돈을 벌기 위해,
누군가는 이미 번 돈으로 더 큰돈을 벌기 위해
이 시장에 들어와 치열하게 싸우고 배팅을 한다.
그러다 결국 누구나 한번쯤은 큰 사고를 겪게 된다.
나도 내 얘기를 자세히 말하진 못하지만, 부따빔, 루나 포함해서 꽤 여러 번 큰일을 겪었다.
그래서인지 저런 소식을 들을 때마다 그때의 감정이 다시 떠올라 나를 힘들게 만든다. 내가 당한 것 같은 느낌....
예전에 정말 엄청나게 큰 돈을 잃었을 때, 부랄친구한테 전화를 걸어 하소연을 한 적이 있다.
근데 지금 생각해보면 그건 하소연이라기보단
‘나 이렇게 큰돈을 잃었어’ 라는, 이상하게 자랑 같은 느낌이 섞인 말이었던 것 같다.
무슨말인지 알려나...
일반 직장인이라면 평생 만져보기 힘든 돈이었으니까.
근데 그때 친구가 해준 말이 아직도 잊혀지지 않는다.
“봉찬아, 나는 지금 내 인생에 당장 2천만 원만 있어도 진짜 소원이 없겠는데... 너 진짜 대단하다.”
그 말을 듣고 너무 부끄러워졌고, 뭔가 위로 같지도 않은 위로였지만 나를 정신 차리게 해줬다.
코인을 하다 보면, 돈의 단위에 대해 무감각해진다.
누군가에겐 인생을 바꿀 돈이,
나에겐 그냥 조금 빠지면 다시 채우면 되는 금액처럼 느껴질 때도 있다.
만약 내가 다시 다 부러져서 0이 된다면…
내가 과연 다시 일어설 수 있을까?
그 공포감이 머리에서 떠나지 않는다.
나도 이제 마흔이고, 책임져야 할 가족도 많다.
그래서 더더욱 이런 소식에 감정이입이 되는 것 같다.
시장은 잔인하다.
사람들은 종종 고수들이 리스크 관리를 못 해서, 혹은 실력이 없어서 사라졌다고 생각하지만
사실 우리는 늘 성공과 실패, 그 한 끗 차이 사이에서 배팅하는 승부사들이다.
그렇기 때문에 누구에게나 이런 일은 일어날 수 있고, 그래서 더 무섭고 경각심이 드는 것같다.
내가 맨날 조심해라, 게이처럼 해라, 출금해라 하면서 잔소리하는 것도
결국 내가 느꼈던 그 좆같은 감정들을
내 주변 지인들이 경험하지 않았으면 하는 잔소리 같은것 같다
내 주변 사람들도, 코인을 하다 보면… 제발 안 그러길 바라지만
누군가는 반드시 큰 사고를 한번쯤은 겪게 될 것이다.
그럴 때 해주고 싶은 말은 하나밖에 없다.
시간이 지나면 견뎌진다. 무뎌진다.
그리고 당신이 이뤘던 결과물은 단순한 운이 아니라
당신의 노력과 실력의 증거다.
이미 걸어온 길이 있으니, 조급해하지 말고 지름길 찾으려 하지 말고
그냥 천천히 가다 보면 결국 도착할 수 있을 거라고, 나는 믿어 의심치 않는다.
다들 화이팅 합시다.
사랑합니다.
❤3
코드로 NFT 민팅하기
저번에 에스프레소도 코드로 민팅을 하려고 했는데 머클프루프를 못구해서 슬퍼했던 기억이 있는데 이번에는 다행히도 성공적으로 민팅했네요
민팅하고보니 굳이 이렇게 빡세게 할 필요까지는 없었을 것 같기도 한데 그래도 좋은 경험이 된 것 같아서 다음이 기대되네요
하나 둘 셋 텍트라 파이팅!
저번에 에스프레소도 코드로 민팅을 하려고 했는데 머클프루프를 못구해서 슬퍼했던 기억이 있는데 이번에는 다행히도 성공적으로 민팅했네요
민팅하고보니 굳이 이렇게 빡세게 할 필요까지는 없었을 것 같기도 한데 그래도 좋은 경험이 된 것 같아서 다음이 기대되네요
하나 둘 셋 텍트라 파이팅!
👍1