고졸무직백수롱숏딸깍도박충은 어떤 생각을 가지고 행동할까?
813 subscribers
214 photos
45 links
Download Telegram
결과적으로 위와 같은 이벤트를 바탕으로 풀에 있는 대부분의 자금을 빼냈다고 볼 수 있다

공격자(0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06)의 트랜잭션들을 보면 굉장히 다양한 곳에서 탈취를 했음을 확인할 수 있고 그 규모는 $220M 정도로 이야기 되었지만 $160M 정도는 동결되었다고 함

탈중앙화화의 해결이 시급하다던 그 사람을 비웃던 적이 있었는데 이번만큼은 그러지 못할 것 같다...

끝!
👍2
20 NXPC를 1만명한테 뿌린다던 채널은 사라지고 이상한 채널로 바뀌었네요

뭔가 이상하긴하더라
장이 막 그렇게 좋진 않은 오늘의 주인공은 FLOCK
1
가스 리밋을 자체적으로 설정해보자

어제 $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
오늘 누군가 큰돈을 잃는 사고가 터졌다는 글을 봤다.
나는 겉으로 보이는 성격과는 다르게, 굉장히 감성적인 편이라 감정이입이 쉽게 되고 그래서 이런 상황이 더 힘들게 다가온다.

이렇게 시장에 큰 무빙이 있을 때마다, 알고 지내거나 건너 알고 있는 지인이 사고를 당했다는 소식을 들을 때면
이 시장에 대한 회의감, 공포감, 안도감 등 복잡한 감정들이 뒤섞여 마치 내가 사고를 당한 듯한 기분이 들어서
정신적으로 굉장히 힘들어진다.

누군가는 큰돈을 벌기 위해,
누군가는 이미 번 돈으로 더 큰돈을 벌기 위해
이 시장에 들어와 치열하게 싸우고 배팅을 한다.
그러다 결국 누구나 한번쯤은 큰 사고를 겪게 된다.
나도 내 얘기를 자세히 말하진 못하지만, 부따빔, 루나 포함해서 꽤 여러 번 큰일을 겪었다.
그래서인지 저런 소식을 들을 때마다 그때의 감정이 다시 떠올라 나를 힘들게 만든다. 내가 당한 것 같은 느낌....

예전에 정말 엄청나게 큰 돈을 잃었을 때, 부랄친구한테 전화를 걸어 하소연을 한 적이 있다.
근데 지금 생각해보면 그건 하소연이라기보단
‘나 이렇게 큰돈을 잃었어’ 라는, 이상하게 자랑 같은 느낌이 섞인 말이었던 것 같다.
무슨말인지 알려나...
일반 직장인이라면 평생 만져보기 힘든 돈이었으니까.

근데 그때 친구가 해준 말이 아직도 잊혀지지 않는다.
“봉찬아, 나는 지금 내 인생에 당장 2천만 원만 있어도 진짜 소원이 없겠는데... 너 진짜 대단하다.”

그 말을 듣고 너무 부끄러워졌고, 뭔가 위로 같지도 않은 위로였지만 나를 정신 차리게 해줬다.

코인을 하다 보면, 돈의 단위에 대해 무감각해진다.
누군가에겐 인생을 바꿀 돈이,
나에겐 그냥 조금 빠지면 다시 채우면 되는 금액처럼 느껴질 때도 있다.
만약 내가 다시 다 부러져서 0이 된다면…
내가 과연 다시 일어설 수 있을까?
그 공포감이 머리에서 떠나지 않는다.

나도 이제 마흔이고, 책임져야 할 가족도 많다.
그래서 더더욱 이런 소식에 감정이입이 되는 것 같다.

시장은 잔인하다.

사람들은 종종 고수들이 리스크 관리를 못 해서, 혹은 실력이 없어서 사라졌다고 생각하지만
사실 우리는 늘 성공과 실패, 그 한 끗 차이 사이에서 배팅하는 승부사들이다.
그렇기 때문에 누구에게나 이런 일은 일어날 수 있고, 그래서 더 무섭고 경각심이 드는 것같다.

내가 맨날 조심해라, 게이처럼 해라, 출금해라 하면서 잔소리하는 것도
결국 내가 느꼈던 그 좆같은 감정들을
내 주변 지인들이 경험하지 않았으면 하는 잔소리 같은것 같다

내 주변 사람들도, 코인을 하다 보면… 제발 안 그러길 바라지만
누군가는 반드시 큰 사고를 한번쯤은 겪게 될 것이다.

그럴 때 해주고 싶은 말은 하나밖에 없다.

시간이 지나면 견뎌진다. 무뎌진다.

그리고 당신이 이뤘던 결과물은 단순한 운이 아니라
당신의 노력과 실력의 증거다.
이미 걸어온 길이 있으니, 조급해하지 말고 지름길 찾으려 하지 말고
그냥 천천히 가다 보면 결국 도착할 수 있을 거라고, 나는 믿어 의심치 않는다.

다들 화이팅 합시다.
사랑합니다.
❤3
코드로 NFT 민팅하기

저번에 에스프레소도 코드로 민팅을 하려고 했는데 머클프루프를 못구해서 슬퍼했던 기억이 있는데 이번에는 다행히도 성공적으로 민팅했네요

민팅하고보니 굳이 이렇게 빡세게 할 필요까지는 없었을 것 같기도 한데 그래도 좋은 경험이 된 것 같아서 다음이 기대되네요


하나 둘 셋 텍트라 파이팅!
👍1
이건 도대체 뭐하는 스캠일까?

가끔씩 유명한 방에 올라오는 비밀키 12개, 도대체 뭐하는 스캠인지 도대체 뭐하는 놈일까 생각해본 적 있으신가요?

해당 키로 지갑을 임포트 하면 실제로 돈이 있습니다
진짜 테더로요
그것을 발견한 익명의 코붕이는 본인의 지갑으로 전송을 하려고 해요
그런데 전송이 안된다고 하네요
가스비가 없어서 그렇다고 해서 가스비를 입금하고 전송하려고 하니 또 전송이 안된다고 하네요

왜냐하면 해당 주소는 다중 서명(Multi-Sig) 방식의 지갑이기 때문이에요!

이미지에서 볼 수 있다시피 다른 주소에 Weight가 훨씬 높고 해당 주소의 pk를 아는 것은 아무 도움이 안된다고 볼 수 있죠...

근데 이거 낚이는 사람이 있나 궁금하지 않으신가요?

놀랍게도 종종 존재한다는 사실!

해당 지갑으로는 3일간 80TRX 정도로, 거의 3만원이나 벌었네요

같은 업체에서 진행한다는 가정하엔 꽤나 큰 돈을 벌고 있을지도 모르겠다는 생각이 드네요
❤5
저랑 정말 친한 레전드 누님이십니다
제가 아는 사람 중에 제일 웃긴 사람인데 이야기해보시면 좋을듯

공유 많이 해주시면 좋겠다고 하시네요
많은 포워딩 부탁드립니다

https://x.com/doheeie
@doheeie
bonk로 끝나는 코인을 산 사람들 금지한다는 글이 돌던데 이상한 점이 몇가지가 있음


1. 코드가 타입스크립트로 작성되었다


펌펀의 프리세일 컨트랙트라고 하면 당연히 솔라나에서 나올텐데 왜 러스트가 아닌 것인지?
해당 코드만 확인했을 때는 오프체인에서 Helius API로 지갑상태를 확인하기 위한 코드로 봐야할 것 같음....

아까 올라왔던 게아오 프리세일 그 쪽에서 확인할 수 있었으려나 싶긴한데 현재는 체크가 불가능한 것 같으니 패스

하지만 해당 트윗에 적혀있는 'pumpdotfun presale contract'는 확실히 아니라고 말할 수 있음

2. 코드 내용도 좀 이상하다


트윗에서 확인할 수 있는건
- helius로 특정 지갑의 tx 목록 받아와서
- mint 주소에 어떤 것이 있으면
- true / false를 알려주는 코드
정도인데

그러면
const hasBonkFunTokenTransfer = async (wallet: string): Promise<boolean> => {
const txs = await fetch(`https://api.helius.xyz/v0/addresses/${wallet}/transactions?api-key=YOUR_API_KEY`)
.then(res => res.json());

return txs.some(tx =>
tx.tokenTransfers?.some(transfer =>
transfer.mint?.toLowerCase().endsWith("bonk")
)
);
};

위의 코드처럼 되어있어야할거고 endsWith("bonk") 이 부분은 꽤나 중요한 파트라고 생각하는데 왜 안보여줬는지 이해가 잘 안됨

그리고 저런 함수 이름 지을거면 hasBonkToken보단 hasRecordWith~~ 와 같은 식으로 써야하는데 왜 저렇게 썼는지?도 알 수가 없음

3. 트윗 작성자가 좀 이상함


트위터를 많이 안봐서 저 사람이 유명한 사람인지 안유명한 사람인지는 모르겠는데
- 말이 너무 많은데 영양가가 없는 경우가 빈번함
- PNL 위주로만 업로드를 하는 것 같음
- 개발적 소양이 있어보이지는 않음

그런데 갑자기 저런 말을 한다? 좀 이상하다고 생각이 들었음


이상한 점이 너무나도 많아서 지금 당장 저 말을 그대로 믿을 수는 없을 것 같다는 것이 본인 생각
👍2❤1
GMX 해킹 요약

GMX 구조

퍼프덱스인 GMX는 Vault의 AUM을 바탕으로 GLP 가격을 결정함

GLP price = AUM / Total GLP


이 때, Vault AUM을 계산할 때 다음이 포함됨

globalShortSizes[token]
globalShortAveragePrices[token]


즉, 숏 포지션을 여는 것으로 GLP 가격을 조작할 수 있다는 것이 문제의 원인이 되었음


탈취 흐름

아래의 함수들은 GMX Exploiter가 생성한 컨트랙트 0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355에서 확인할 수 있음

1. 낮은 가격으로 초기에 숏 포지션을 생성하고 조건 체크
function fallback() public payable {  find similar
if (!(msg.sender - _gmxPositionCallback)) {
v0, /* uint256 */ v1 = _uniswapV3FlashCallback.getGlobalShortAveragePrice(stor_8_0_19).gas(msg.gas);
require(bool(v0), 0, RETURNDATASIZE()); // checks call status, propagates error data on error
...

» 해당 fallback을 통해 globalShortAveragePrice와 max price를 비교하여 조건 충족 시 uniswapV3FlashCallback 실행

2. uniswapV3FlashCallback 실행
...
v2, /* uint256 */ v3 = stor_3_0_19.mintAndStakeGlp(varg1, varg0, 0, 0).gas(msg.gas);
require(bool(v2), 0, RETURNDATASIZE()); // checks call status, propagates error data on error
MEM[64] = MEM[64] + (RETURNDATASIZE() + 31 & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0);
require(MEM[64] + RETURNDATASIZE() - MEM[64] >= 32);
return v3;
}

uniswapV3FlashCallback에 포함된 함수를 통해 낮은 가격에서 mintAndStakeGlp

function 0x35b0(address varg0, uint256 varg1, address varg2) private { 
v0, /* uint256 */ v1 = stor_3_0_19.unstakeAndRedeemGlp(varg2, varg1, 0, varg0).gas(msg.gas);
require(bool(v0), 0, RETURNDATASIZE()); // checks call status, propagates error data on error
MEM[64] = MEM[64] + (RETURNDATASIZE() + 31 & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0);
require(MEM[64] + RETURNDATASIZE() - MEM[64] >= 32);
return ;
}

높은 가격에서 unstakeAndRedeemGlp

이를 바탕으로 GMX TVL의 약 10%에 해당하는 40M을 탈취하였으며 GMX 토큰 자체의 가격은 약 30%의 하락을 보임

탈취 자금을 DAI, ETH의 형태로 전환한 것을 바탕으로 현재까지는 자금을 돌려줄 생각은 없는 것으로 판단됨