개발자 조엘과 web3 삽질 – Telegram
개발자 조엘과 web3 삽질
1.08K subscribers
126 photos
6 videos
112 links
웹3 개발자 조엘의 중급 디젠 웹3 분석 채널입니다. 연락처: @joelmun
웹3 빌더 오픈채팅방 (420명) 👉 https://open.kakao.com/o/ge7kPiEg
트위터 👉 https://x.com/9oelM
디파이 트위터 👉 https://x.com/official_f12t
스레드 👉 https://www.threads.com/@nerdycrypto.dev
링크트리 👉 https://linktr.ee/9oelm
Download Telegram
Issue 10. '스테이크가 걸린 탈중앙화 펀드 매니저' 아이디어

리스크 큐레이터는 사실상 중앙화 펀드 매니저

Risk curator를 믿고 자산을 분배시키는 방식은 사실 블록체인의 ethos에 매우 어울리지 않는 방식임. vault, market 다 탈중앙화 시켜놓고, 왜 막판에 가서 중앙화된 risk curator로 찬물을 끼얹는 것인지?

그리고 이 명칭이 상당한 오해의 소지가 있음. Risk curator는 위험 관리자 정도의 뜻인데 (Aave가 Gauntlet을 4년동안 마켓 parameter를 설정하기 위해 고용한 것처럼), 사실은 그것을 넘어서 '펀드 매니저' 짓을 하고 있음. 유저의 펀드가 어디로 예치되는지 자기들이 결정함. 그리고는 책임도 지지 않음.

스테이크 걸린 탈중앙화 펀드 매니저 to the rescue

그냥 밥 먹다가 어렴풋이 생각난 아이디어를 적어보겠음. 걍 대충 말하자면 minimum stake가 큰 하이퍼리퀴드 vault인데 이제 yield를 위한.. 거 같은 느낌임.

1. Risk curator는 편리성 때문에 없어지진 않을 것이다. 내비둔다. Gauntlet처럼 정직하게 하는 애들도 있으니까.

2. 대신 이젠 Risk curator에게 돈을 맡기는 게 아니라 탈중앙화 펀드 매니저에게 돈을 맡긴다.
- 탈중앙화 펀드 매니저가 되려면, 최소 $100K 달러의 펀드 (혹은 'stake')를 본인 돈으로 먼저 운영하여 일정 수익이 발생한 기간이 90일 이상이어야 함.
- 수익 기록은 100% 온체인 데이터로만 이루어져야 함. https://docs.lagrange.dev/lpn/zk-coprocessor/quickstart 같은 거 써서 펀드 매니저의 예치/수익 현황 등 블록체인 상태를 증명할 수 있음.
- 펀드 매니저는 본인 돈, 혹은 'stake' 가 걸려있으니 성실하게 펀드를 운영해야 할 motivation이 있음.
- 최소 stake는 max($100K, 펀드 운용 자산 / 10), 최대 stake는 $1M-2M 정도로 제한. 그래야 펀드에 돈이 많아질수록 본인 돈도 많이 걸리고, 성실히 펀드를 운영할 수 있는 motivation이 유지됨.
- 리스크를 분석할 수 있는 수많은 온체인 데이터 툴들이 있지만 어쨌든 가장 잘 판단을 내릴 수 있는 건 본인 돈이 많이 걸려있는데 포폴 관리를 잘 하는 사람임.
- Performance fee는 리스크 큐레이터 받는 것과 똑같이 걍 10%-20%.
- 스마트 컨트랙트 구현하는 방법은 크게 두 가지를 생각해 보았다.

3. 스마트 컨트랙트 구현

일단 유저는 스마트 컨트랙트에 돈을 예치한다.

- 방법 1: https://github.com/PISAresearch/event-proofs 같은 걸 활용하여 특정 프로토콜 예치/출금/스테이킹 등 이벤트가 발생하면 그것을 증명하는 동시에 유저의 펀드에도 동일한 트잭이 실행. 한마디로 그냥 펀드 매니저 트잭을 복사해서 그대로 실행.
- 방법 2: 스마트컨트랙트에 펀드매니저 돈과 유저 돈을 둘다 때려박고, 수익이 날 것으로 예상되는 audit을 잘 받은 수십개의 defi 프로토콜 interface를 가져와서 수동으로 하나씩 연결. 그후 펀드 매니저가 현존하는 yield bearing token들의 'risk curator' 처럼 연결된 프로토콜에 자산을 분배함. 이게 더 안전하긴 함. 근데 귀찮음.
- 방법 3: 더 있을까요? 더 있을 거 같은데 밥먹고 식곤증 와서 생각이 안남

하여튼 대충 생각해봤는데 불가능할 것 같진 않음.
이 정도 해야 블록체인 쓸 맛이 조금이나마 나지 않을까?
4
Vault 사태 대서사 + 시사점 이걸로 요약 종결

최근 vault & yield 에 대해 말이 많았는데 어렴풋이만 알고 있었다 싶었으면, 요약본이 여기 있다.

대서사

A. 발단

1. 시간이 지나며 DeFi엔 수많은 vault 제품과 yield bearing products가 생겨남.

2. CBB를 비롯한 KOL들이 xUSD, Midas LYT 등의 불투명성과 레버리지 가능성을 예로 들며 현재 vault 운영 행태를 경고. Risk curator들이랑 싸움.

3. 하이퍼리즘 등 Risk curator로 vault 운영하고 있는 회사들은 일 없다, 꺼지라고 함

4. 장이 안 좋아짐 + Balancer v2 풀이 $120M 해킹당함 → 시장 공포감 형성

5. Stream Finance의 xUSD를 사람들이 USDC로 상환받거나 다른 자산으로 스왑하기 시작함

B. 폭락과 bad debt

6. 11월 3일부터 지금까지 xUSD 가격 $1.26 → $0.07로 폭락. Stream Finance는 부실한 재정 관리로 $93M의 자산을 잃었다고 공식 발표.

7. Silo Finance, Morpho, Euler, Enclabs Finance를 비롯한 과담보대출 프로토콜의 xUSD 가격 오라클이 $1.26으로 하드코드 되어있는 바람에 폭락된 온체인 가격을 반영하지 못함 → xUSD를 담보로 잡고 있던 마켓에서 건강한 청산 불가 → 도합 $100-300M의 bad debt가 발생한 것으로 추정

8. 담보의 65%를 xUSD로 가지고 있던 Elixir의 deUSD 가격 $1 → $0.007로 폭락. 프로젝트 종료.

9. deUSD를 담보로 지원한 Compound에서도 deUSD 오라클 가격이 $0.86까지 떨어졌지만 $1.06을 유지 → 이더리움 메인넷에서 (!) deUSD와 sdeUSD를 담보로 지원하던 USDC, USDS, USDT 마켓에서 출금을 긴급 중단. 다행히 bad debt 발생하지 않음.

10. 아주 불투명하게 운영되던 Stables Labs의 USDX와 sUSDX를 유저들이 던지기 시작. $1 → $0.064로 폭락. 플젝 러그침.

11. USDX를 담보로 지원하던 Lista DAO, Euler에서 bad debt 발생. Lista는 LIP022를 통해 강제 청산. Euler 마켓은 그대로. 신경도 안씀.

12. Yei Finance가 담보로 지원하던 sfastUSD $1 → $0으로 폭락. 8.6M의 bad debt는 팀이 모두 보상.

C. 후폭풍

13. 리스크 큐레이터인 K3 capital, 피해를 입은 과담보대출 프로토콜 Silo Finance등이 법적 절차를 밟겠다는 의지를 시사. K3 Capital 관련 트윗 / Silo Labs 트윗

14. 시장 공포감과 Yield risk에 겁을 먹은 유저들이 돈을 빼감 + 루핑 걸렸던게 풀림 → $srUSD는 $250M, Midas는 $400M 정도 출금되는 등 Yield bearing products의 TVL이 전체적으로 하락.

15. Risk curator들의 TVL이 급감함. 특히 레버리지 걸어서 TVL 뻥튀기 한 큐레이터들의 TVL은 눈에 띠게 급락. 대충 피해야 할 리스크 큐레이터 리스트:
- Re7 Capital: 730M → 277M
- MEV Capital: 1.4B → 843M
- 하이퍼리즘: 200M → 38M
- Varlamore: 30M → 6M
- K3 Capital: 800M → 453M
- Telos Consilium: 300M → 150M
그냥 모르겠으면 Gauntlet ㄱㄱ

시사점

1. 꽤 중앙화된 Risk curator의 역할과 책임을 점검해 볼 때임.
2. Permissionless한 구조를 표방하는 과담보대출 프로토콜들은 어디까지 책임을 져야 하는지 업계 차원의 담론이 필요.
3. 여러 market에 대한 exposure를 발생시켜 Isolated market의 의미를 퇴색시키는 curated vault의 기능의 효용성 재고 필요.
4. Yield risk rating이 중요시되고 있음. 현재 해당 기능을 제공하고 있거나 개발하고 있는 제품은 다음과 같음:
- Credora Network (오라클 운영사인 RedStone이 최근에 인수함)
- exponential.fi (Yo 운영하는 애들임)
- Stablewatch: yield intelligence
- vaults.fyi: yield comparison (defillama의 yield 페이지 업그레이드 된 느낌)
- Accountable: 암호학적으로 증명된 vault 데이터 제공 (최근 펜테라한테 7.5M 투자받음)
- Block Analitica: Sky, Compound 등 defi 프로토콜에 이미 customized defi risk dashboard 제공중.
- Chaos Labs: 요즘에 트위터에 vault 사태 분석 글 올리면서 좀 떴음. Risk Feeds라는 것도 제공.
5. 리테일 유저는 defi yield risk에 대한 충분한 DYOR 필요.

이것으로 vault 얘기는 당분간 그만 올리겠습니다! 앞으로도 defi와 웹3에 대한 재미있는 주제로 찾아뵙겠습니다. 감사합니다.
👍359
개발자 조엘과 web3 삽질 pinned «Vault 사태 대서사 + 시사점 이걸로 요약 종결 최근 vault & yield 에 대해 말이 많았는데 어렴풋이만 알고 있었다 싶었으면, 요약본이 여기 있다. 대서사 A. 발단 1. 시간이 지나며 DeFi엔 수많은 vault 제품과 yield bearing products가 생겨남. 2. CBB를 비롯한 KOL들이 xUSD, Midas LYT 등의 불투명성과 레버리지 가능성을 예로 들며 현재 vault 운영 행태를 경고. Risk curator들이랑…»
Issue 11. 위기엔 기회가 있다: 완벽하지 않은 오라클로 돈 벌기

*Prerequisite: 과담보대출 프로토콜 동작방식 알기. 모르면 예전에 올린 영상 참고.

시장이 10월 10일 위기를 겪은 후 Chaos Labs에서 Deprecation of Low Demand Volatile Assets on Aave V3 Instances (의역: Aave에서 쓰잘데기 없는 자산 지원 중지하자)라는 Proposal을 작성.

📝Proposal 핵심 내용

1. Chainlink 같은 오라클은 CEX & DEX 참고하여 추론된 가격을 스마트 컨트랙트에 공급함.

2. 10/10처럼 몇분 사이에 시장 변동성이 커지면, 다들 각자가 참여한 시장에서 사고 팔기 바쁘니까 차익거래로 시장간 가격 차이를 좁힐 겨를이 없음 → 특히 규모가 작은 자산 가격이 유동성도 적어서 각 CEX/DEX마다 가격 차이를 보임 → 가격이 제각각이기 때문에 오라클 가격도 '완벽'할 수는 없음.

3. DEX에서의 가격과 Aave의 스마트 컨트랙트에게 공급된 오라클 가격에 편차가 크다면, Aave에겐 잠재적 손실 리스크가 될 수 있음. (💡 궁금하면 끝까지 읽기)

4. 그러니까 시총이 작고 프로토콜에 이윤도 별로 못 남기는 $ZK, $UNI, $CRV 등과 같은 자산의 지원을 아예 중지하자는 내용임.

이 Proposal은 그냥 이론이 아니라 실제 일어난 일 때문에 적혀짐. 계속 읽어보자.

🤓 똑똑한 애들은 돈을 어떻게 벌었는가 (재미있는 부분)

1.
10/10 붕괴 당시 ENS/USD 체인링크 오라클 가격이 순간적으로 30분만에 $20 → $7-8대로 하락

2. 유니스왑 v3에서는 $13 유지. 오라클 가격과 편차가 극심했음.

3. 누군가가 $WETH 를 잔뜩 담보로 예치한 후 $ENS 를 빌린 후 바로 그걸 $WETH 로 팔아버려서 몇만 달러 정도의 수익을 봄.

4. 이게 되는 이유: $ENS 오라클 가격이 유니스왑 가격보다 너무 낮아서 담보로 예치한 $WETH 가 모두 청산이 되더라도 $ENS 를 빌린 후 팔아제끼면 이익인 상황이 되어버림.

5. 실제 돈벌이 과정 (궁금하면 펼쳐보기)
a. WETH의 청산 LTV는 83%. 그러니까 차입하는 자산의 가격이 DEX와 오라클 사이에서 17% 이상 편차가 나면 a) WETH 담보 예치후 b) 해당 자산을 차입 c) 차입한 자산을 더 안전한 자산으로 스왑 d) 담보 청산되게 놔둠 e) bad debt 발생시키는 전략으로 $1라도 벌을수 있음.

b. 38.78 WETH (당시 $140K 정도)를 담보로 맡기고 ENS를 오라클 가격 (약 $7-8) 기준으로 빌림.

c. Aave는 오라클 가격만 믿고 있으니 $95K 정도의 ENS를 빌렸다고 생각하는 상황. 하지만 사실은 Uniswap WETH-ENS pair 시장가 기준 거의 두 배 $204K (56.323 WETH) 정도였음. 유니스왑에서는 사실 $14-15 정도에 트레이딩 되고 있었던 것임!

d. 빌린 애는 바로 유니스왑 가서 ENS를 팔아서 $204K 어치 WETH 얻고 튐.

e. 담보는 아예 버리는 카드로 청산 당하도록 놔뒀으니, 이익 = (빌려서 해치운 ENS 값 - 담보로 예치했던 WETH의 USD 값) = (204K - $140K) = $64K 정도 이득을 봄.

f. Aave는 고스란히 그것을 bad debt로 떠안게 됨. 프로토콜 차원에서 큰 돈은 아니었지만 한 건 한 사람에겐 적지 않은 돈. 현재 환율로 9.2천만원임 ㅋㅋㅋ

e. $CRV 와 같은 자산도 오라클 가격 $0.21 vs Curve pool 가격 $0.36으로 비슷한 현상이 있었지만 아무도 못 알아채서 bad debt가 발생하진 않았음.

Arkham 트잭 참고
이더스캔 트잭 참고
Chaos Labs 지갑 상태 참


무엇이 잘못됐을까

두 가지.
1. DEX에서 가격이 안정화되지 않았음에도 불구하고 CEX로부터 더 많이 가격 정보를 의존하여 온체인 가격과 편차가 생긴듯.
2. 폭락시 블록체인이 혼잡해지며 오프체인 오라클 로직은 정상인데 컨트랙트에 publish가 느리게 되는 현상이 발생한듯.

Inverse Finance도 10/10 비슷한 현상을 목격함:

1. 보통 push 오라클은 'deviation threshold' (편차 임계값) 이란 게 있어서, 오프체인에서 수집된 가격이 가장 최근에 publish된 온체인 가격에서 x%이상 벗어날 시, heartbeat (보통 15-30분)과 상관없이 다시 온체인 컨트랙트에 가격을 publish 해줘야 함.

2. 근데 Inverse Finance가 사용하던 CVX/USD 체인링크 피드는 2%의 deviation threshold였음에도 불구하고 가격 업뎃이 수분간 밀리는 현상이 발생

3. $110k의 bad debt 발생. 팀이 상환해줌.

시사점

1. DYOR 더 하자

저번 vault 사태도 그렇고, 오라클 설정까지도 혹시 모르니 유저가 직접 확인해도 나쁘진 않은 시대. 예~전에는 오라클도 해봤자 닥 체인링크밖에 없어서 확인할 의미도 없었는데 지금은 RedStone, Chaos Labs, Switchboard, Stork, Band 등 오라클 제품도 너무 많아졌고 동작하는 방식도 제각각.

체인링크는 안 보던 사이에 SVR feed라는 신기한 걸 출시했는데 뭔지 아직 잘 모르겠음. 이미 살펴봤듯이 Morpho, Euler 같은 프로토콜은 오라클 주소를 큐레이터가 알아서 설정하는 방식.

하여튼 오라클도 복잡도가 높아졌고 그냥 넘어갈 주제가 더 이상 X

2. Risk oracle의 시대

Chaos Labs는 Risk oracle이란 걸 출시함. 이게 뭐냐 하면 기존 가격만 전달해주는 price oracle의 기능을 넘어서서, 시장의 Risk(변동성, 유동성 등)를 실시간으로 인지하여 supply cap, LLTV 같은 프로토콜 Parameter를 자동으로 업데이트 해 주는 제품.

기존 방식은 DAO에 proposal을 올리고, 논의 후에 Parameter를 업뎃. 이건 Risk가 분명해도 몇시간에서 몇달까지 걸리는 과정. Risk에 선제적으로 대응하기엔 너무 느림.

Risk oracle을 사용하면 DAO가 설정해놓은 범위 안에서 자유롭게 자동으로 시장 상황에 따라 parameter를 업뎃하여 실시간으로 시장 상황에 대처할 수 있다. (Chaos Labs가 신기한 거 많이 만드는듯?)

3. Pull oracle의 시대

Pyth 이후로 pull oracle이 각광받고 있으니 모른다면 알아보는 게 좋을듯. 기존 Push oracle에 비해 Latency 문제를 크게 해결할 수 있어서 Latency가 많이 중요한 선물, 옵션 등을 지원하는 디앱에서 쓰임.

렌딩에서는 pull oracle을 사용하는 게 흔하지 않은 건 아니고 (Euler, Suilend, Echelon Market 등) 오늘 다룬 Latency 문제도 어느 정도 해결을 볼 수 있는데, 왜 Aave가 pull oracle을 아직 사용하지 않는진 아직도 의문. 이번에 나오는 v4는 사용하려나?

4. 시간이 지날수록 중요해지고 있는 Risk guardian의 역할

ㄹㅇ 거짓말 안치고 Gauntlet밖에 몰랐는데 최근엔 생태계가 조금 성숙해지며

- LlamaRisk
- Chaos Labs
- ChainRisk

이런 애들이 생김 (사실 이미 있었는데 내가 모르고 있었음). 역할은 risk 조사에 기반하여 protocol parameter를 검토, 업뎃 (다른 것도 많지만). 앞으로 더 많아질듯. 지금이 딱 defi risk 분석 & 관리 해주는 회사 차리기 좋은 시점. 통계 + DeFi에 관심많은 디젠이면 진짜 지금 차리삼.

5. 작은 과담보대출 시장에서 기회를 포착하자

만약 개발자/디젠이라면 기회는 많다. Aave에 기회가 있다는 건 그보다 작은 과담보대출 시장에 이런 기회가 있다는 걸 시사함.

노려봐야 할 건 인기 없고 낮은 유동성을 가진 자산 + push-based oracle + 체인링크보다 신뢰성 떨어지는 오라클 제품. 다음 번엔 모니터링 하고 있다가 멋지게 몇만달러 뜯어가보자.

출처

- 출처 1: Aave governance
- 출처 2: Inverse finance

오랜만에 글자수 제한까지 꾹꾹 눌러 담았습니다. 읽어주셔서 감사합니다!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍268
영어 잘해야 하는 이유 & 매운맛 질책

*
저번에 올렸던 <아시아와 웹3, 3개 국어론>의 후속편임.

여러번 강조를 했지만 안 하는 사람이 많은 거 같아서..

1. 요즘엔 서울에 돈 많은 집안에서 자란 토종 한국인 아이들도 ㄹㅇ 영어 잘함. 대치동 애들 예전에 영어하는거 봤는데 내가 영어 잘 하는게 더 이상 장점이 아니라는 걸 깨달음. 대신 못하면 단점.

2. 웹3 = 영어인데, 직무는 둘째치고 웹3에서 영어 못하면 도대체 어떻게 소통할거? 문서도 영어 미팅도 영어 다 영어.

3. 본인 직군 실력 (개발이면 개발, BD면 BD)이 딸리면 영어라도 잘해서 말빨로 커버쳐야 하는데 그것도 안됨

4. 해외 웹3 회사에서 몇억씩 연봉 받으며 한국에서 편하게 리모트로 일하고 싶다는 상상은 하면서 시원스쿨 다니는건 상상도 안함

5. 한국은 버리는 카드임. 한국은 장기적으로는 그냥 망하는 나라라고 생각하면 됨. 앞으로 10년쯤은 버티겠지만 그 후엔 초고령화 + 인구감소 + 좌우파 할것없이 부정부패 + 인재유출 크리맞고 걍 터질거임. 내 모국어는 한국어가 아니라 영어라는걸 세뇌시켜야함

6. 핑계좀 그만. 누구는 돈이 많아서 누구는 국제고 나와서 누구는 해외 유학가서 영어 잘했는데 나는 아니다 등. ㄹㅇ ㅇㅉㄹㄱ. 돈 벌고 싶으면 해야함. 걍 웹3를 떠나서 지리산에서 라면 끓여먹으면서 혼자 지내든지 웹3에서 영어 공부하면서 지내든지 둘중 하나만 하삼

7. 이건 걍 개인적인건데 미팅에서 영어 잘 못하면 이해는 되지만 괜히 없어보이고 걍 설득력이 좀 떨어지는 느낌.

*오늘은 좀 저답지 않게 더 와닿을 수 있도록 약간 매운맛으로 적어봤습니다.
** 웹3 빌딩 & 취업에 관심 있으시면 제가 운영하는 오픈채팅방 들어오세요. 이미 400명 되어가는 중.
22👍4🥰3
맨틀 글로벌 해커톤 금년까지 등록

맨틀은 잘 모르고 있었는데 묵묵하게 빌딩하는 팀인듯

- TVL 근 1-2년간 200M-600M대 유지

- OP 스택인데도 불구하고 Succinct Labs의 기술 사용하여 OP + ZK 짬뽕 롤업을 만들어냄. L2 중 최초인듯. OP 스택이면 보통 출금이 challenge period인 7일만큼 걸리는데 ZK라 12시간내로 가능.

- 2021년쯤 'BitDAO'라는 엄청 큰 DAO가 있었는데 거기에 바이빗이 돈을 엄청 쏟아부으면서 시작된게 맨틀의 시초인 것도 처음 알았음 → 바이빗이랑 그래서 요즘에 협업 많이 하는듯. BSC-Binance, Base-Coinbase 정도의 협업은 아닌 거 같긴 한데 앞으로 시너지를 지켜봐야 할듯.

- L1/L2 팀들을 보면 그냥 체인 런칭하고 아무것도 안 하는 팀이 있고, 생태계 빌딩에 열심히 직접 관여하는 팀이 있는데, 후자에 가까운듯. 난 손 놓고 그냥 아무나 와서 빌딩하세요~ 이것보다 이게 차라리 맞다고 봄.

- 그래서 최근엔 UR라는 네오뱅크 앱도 출시해서 내러티브 & 실용성 한번에 잡으려는 것 같고.. 설치해봐서 대충 써봤는데 ㄹㅇ 나쁘진 않음. mETH 도 뭐 TVL 741M이라 자리를 잘 잡은듯. MI4라고 178M 짜리 기관용 펀드도 운용. MC 1B짜리인 $FBTC 도 사실상 맨틀이 투자하고 키운듯. 하여튼 들춰보면 맨틀이 생각보다 뭔가 생태계를 열심히 꾸리고 있음 (포필러스도 여러번 리포트 작성).


👉 하여튼 이미 뭘 많이 하고 있음.

해커톤

1. 트랙이 Rwa / DeFi / AI / ZK & Privacy / Infra / GameFi 등으로 다 나눠져 있어서 사실상 본인이 만들고 싶은 거 만들면 됨.

2. 일정

참가 등록: ~ 2025년 12월 31일
프로젝트 개발: ~ 2026년 1월 5일
결과물 제출: ~ 2026년 1월 15일
데모데이: 2026년 2월 1일
우승자 발표: 2026년 2월 7일

3. 심사위원은 우리가 잘 아는 해시드, 해시키 분들 뿐만 아니라 내가 존경하는 bankless의 david hoffman도 참여.

4. 트랙별 상금은 $15K고 1등은 $8K. 만약에 대학생인데 급전 좀 땡기고 싶으면 생각해볼만 한듯?

5. 위에 얘기한 것과 같이 뭔가를 찐으로 진지하게 만들고 있다고 하면 맨틀이 관심 안 가져줄 팀은 아닌듯. 안 가져주면 젬마님한테 가서 따지면 될듯.

그리고 이건 개인적 의견인데 특히 대학생/주니어라면 CV에 이상한걸로 공간낭비하지 말고 그냥 해커톤 같은 거 제대로 나가서 상 좀 타서 한줄 채우면 좋겠음.

👉 참여 링크

* 맨틀한테 스폰서 받은거 아님. 젬마님한테서 올려달란 부탁만 받았고 저도 커뮤니티에 도움 되는 자료다 판단이 들어서 100% 선의로 올려봅니다. 즐해커톤 하시길.
10👍5
Issue. 12: 컨트랙트 개발자가 알려주는 approve & allowance, ERC20Permit, Permit2 기본 개념 익히기

DApp을 써봤다면 예치하기 전에 먼저 얼마를 'approve' 하라는 팝업 창을 한번쯤은 봤을 것임. 그리고 approve 트잭을 보내면 귀찮게 예치 팝업이 그 후에 뜨고 그제서야 예치를 할 수 있음. 오늘은 그것과 관련된 얘기를 좀 해보려고 함. 왜? 의외로 approve, ERC20Permit, Permit2 등을 모르는 사람들이 많아서.

개발자가 아닌 사람도 최대한 이해할 수 있도록 적어보려고 하긴 했는데 모르겠으면 그냥 키워드 이 글에서 얻어서 더 찾아보는걸로.

1. approve & allowance

이게 왜 필요한지부터 설명해보자. 만약 DApp에서 유저가 소유하고 있는 ERC20 토큰을 x만큼 가져오고 싶다면, 가장 간단한 방법은 사실
그냥 유저가 .transfer 함수를 직접 호출해서 DApp 컨트랙트로 보내버리는 것이다.

근데 문제는, 이러면 토큰이 전송될때 컨트랙트가 custom logic을 실행할 수 없다는 점. 예를 들면 ERC20 토큰이 x만큼 들어왔을 때, msg.sender (트잭 쏜사람)의 포인트를 x만큼 온체인에 기록한다든지.

그래서 사람들이 생각해낸게 바로 .transferFrom 란 함수임. 이건 뭐 어떻게 작동하냐면, 유저가 직접 호출하는게 아니고, 유저가 상호작용하고자 하는 컨트랙트의 함수가 .transferFrom을 대신 호출해줌.

예를 들자면 이런 식으로.


function pullTokenFromUser() external {
IERC20(TOKEN).transferFrom(msg.sender, address(this), 10); // 10 만큼 유저한테로부터 컨트랙트에 ERC20 송금
points[msg.sender] += 10; // 10 포인트 주기
}


이렇게 하면 유저가 ERC20transfer를 직접 호출하지 않고, pullTokenFromUser를 호출하게 됨. 이점은 커스텀 로직이 실행 가능함. 대부분의 DApp들이 이렇게 돌아감.

근데 여기서 중대한 문제는 보다시피, 유저의 ERC20 토큰을 전송할 권한을 유저 본인이 아닌 스마트 컨트랙트가 가지게 된다는 것. 그러면 스마트 컨트랙트가 혹여나 악성 코드가 있거나 취약점이 있다면 누군가가 당신의 토큰을 가져가 버릴 수도 있다. 그래서 가끔씩 텔레그램 채널 보면 어디 해킹 사건 터니면 approve 해놓은거 revoke 하라는 말이 돌아다니는 거다 (https://revoke.cash 참고).

ERC20::approve 가 실행되면 내부적으로는 allowance라는 매핑 안에 유저가 해당 주소에게 전송 권한이 위임된 양을 증가시킨다. 그리고 transferFrom이 한번 호출될 때마다 allowance의 값이 감소하고, 0에 도달하면 에러가 나며 더 이상 전송할 수 없게 된다. 더 위임하고 싶으면 또 approve를 호출하면 됨.

만약 자꾸 쓰다보면 allowance가 계속 낮아져서 계속 approve해야 하는게 귀찮다 싶으면 보통 uint256의 가장 큰 숫자인 type(uint256).max 로 승인을 때려버리기도 한다. 기본적으로 이렇게 승인을 요구하는 DApp들이 많은데, 트잭 보내기 전에 월렛에서 이 값을 내가 직접 수정할 수 있으니 좀 안전하지 않을 것 같은 앱이다 싶으면 꼼꼼하게 체크해서 값을 낮추는게 좋은 방법.

그래서 approve를 꼭 사용해야 할 때 가장 좋은 security practice는 전송되어야 하는만큼만 승인하고, 다음에 또 전송해야 할때 또 approve 하는것임.

2. ERC20Permit

여기까지 읽었다면 approve의 문제가 무엇인지 당신은 이미 알고 있다. 안전하고 싶으면 컨트랙트와 상호작용 할 때마다 a. approve 트잭, b. 실제 컨트랙트 함수 호출 트잭으로 두 번 트잭을 보내줘야 한다. 귀찮고, 가스비도 더 나가고, 시간도 더 걸리고. 아무도 이걸 원하지 않는다.

그래서 사람들이 생각해낸게 ERC20Permit임.

사실 진짜 별거 없고, ERC20를 상속하는 컨트랙트인데 가장 중요하게는 permit이란 함수가 있음. 얘를 사용하면 ERC20::approve랑 컨트랙트의 custom logic을 한꺼번에 실행이 가능하다.

예를 들면 이렇게.


function pullTokenFromUserWithPermit(
address token,
uint256 amount,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external {
// 여기서 approve 해버림
IERC20Permit(token).permit(
msg.sender,
address(this),
amount,
deadline,
v,
r,
s
);
// 유저한테서 토큰 가져오기
IERC20(token).transferFrom(
msg.sender,
address(this),
amount
);
points[msg.sender] += amount; // amount만큼 포인트 주기
}


근데 뭐가 달라져서 가능하냐면, 유저가 오프체인에서 누가 누구의 돈을 언제까지 얼마를 전송할 수 있는지에 대한 데이터에 서명을 하기 때문임. 서명은 100% 오프체인이기 때문에 가스비가 절대 들지 않음 (월렛에서 팝업 뜨고 버튼은 눌러주긴 해야함).

그러면 그 서명을 컨트랙트 함수에 갖다주면 서명이 올바른지 확인하고, 내부적으로 approve를 바로 실행해주고, 그 후에 바로 transferFrom을 호출할 수 있게 됨.

가장 중요 포인트는 두 번 보내야 하는 트잭이 하나가 된다는 점. permitapprove를 내부적으로 실행시켜주기 때문에 그 후에 컨트랙트는 동일 트잭 내에서 실행시키고 싶은 로직을 실행시키면 됨.

(여기까지 잘 읽은 분들 중 질문이 생겼을 수도 있다. 그러면 pullTokenFromUserWithPermit 안에서 굳이 permit을 호출하지 않고 approve를 호출하면 되는 거 아닌가? 라는 질문이 들 수 있는데, 사실 이건 단순한 이유로 되지 않는다. 답은 본인이 직접 approve 함수 구현체를 찾아보시길)

3. Permit2

여기까지 읽었으면 수고했음. 이게 마지막임. ERC20Permit를 읽다가 문제를 발견했다면 그게 Permit2의 존재 이유일 가능성이 높다.

ERC20Permit은 가장 고통스러운 게, 이미 배포된 ERC20 토큰인데 ERC20Permit을 사용하지 않는 토큰이면 토큰 컨트랙트를 다시 배포/업글하지 않는 이상 ERC20Permit을 사용할 수가 없음 → 결국 approve & allowance 사용해야 하는 문제로 돌아감. 이거 말고 여러 문제가 있지만 일단 이것만 설명.
5
Issue. 12: 컨트랙트 개발자가 알려주는 approve & allowance, ERC20Permit, Permit2 기본 개념 익히기 파트 2.

그러면 어떻게 할 수 있느냐? 바로 'Permit2'라고 하는 또 다른 컨트랙트에 송금 권한을 위임하는 것이다. 참고로 Permit2는 공공의 이익을 위해 유니스왑이 그냥 개발, 배포해준 컨트랙트임.

그러니까 내가 상호작용해야 하는 예치 컨트랙트가 있다면, 이렇게 작동하게 된다.

a.
Permit2 컨트랙트에 ERC20::approvetype(uint256).max로 해버림. 근데 이게 더 이상 문제가 안 됨. 왜냐하면 Permit2는 돈을 마음대로 쓸 수 있는 함수가 없기 때문 (Permit2는 '믿을 만한' 컨트랙트임).

b.
유저인 내가 예치 컨트랙트의 pullToken()같은 함수를 나의 서명을 인자로 호출하게 된다. 그러면 그 예치 컨트랙트의 함수는 더 이상 ERC20::transferFrom(나, address(this), ...) 를 호출하지 않고, Permit2::permitTransferFrom(...)를 호출해준다.

그러면 Permit2는 가지고 있는 무한 allowance 덕분에 내부적으로 ERC20::transferFrom(나, address(예치컨트랙트), ...)를 불러줄 수 있음.

c.
b 단계의 서명은 '누가 누구에게 언제까지 얼마를 송금할 수 있는지'에 대한 정보를 담고 있음. Permit2::permitTransferFrom이 그 서명을 검증하고 유효하면 바로 송금해줌.

요약하자면 ERC20Permit을 상속하지 않는 토큰을 송금하는 건 더 이상 문제가 되지 않음. 유저는 Permit2라는 믿을만한 컨트랙트에게 모든 송금 권한을 위임하고, 송금이 필요할 때마다 호출하고자 하는 함수에 서명을 같이 보내면 서명 검증 후 바로 송금이 됨.

말고도 많은 문제를 해결해 주는데, 그건 걍 직접 확인.

세줄요약

1. ERC20::approve 직접 호출은 가장 원시적인 방법. allowance 무한으로 때려박지 않는 이상 항상 트잭 두 번 보내야 함.
2. ERC20Permit을 상속하는 토큰 컨트랙트를 사용한다면 오프체인 서명으로 approve와 원하는 custom logic을 한 트잭만에 실행할 수 있음.
3. Permit2로 처음에 approve를 한 번만 해주면 ERC20Permit을 상속하지 않는 토큰 컨트랙트도 ERC20Permit과 같이 한 트잭만에 송금하고 싶은 수량을 확인하고 custom logic을 실행시킬 수 있는 이점을 누릴 수 있음.

왜 중요한가

👉 개발자: 되도록이면 개발할때 1은 지양하세요. 두 번 트잭 보내는 건 옛날 메타..
👉 유저: 월렛에서 서명할 때 뭘 서명하는지, approve할 때 무엇을 approve하는지 알고 버튼 누르세요.
8👍4
최근 자주 하는 것: Aave나 Uniswap 등 Governance 포럼 들어가서 재밌어 보이는 글 확인하기.

트위터는 아무나 뻘글이고 진지글이고 다 싸지르는 곳이라면, governance forum은 한층 수준 높고 차분하고 진지한 분위기라 내용이 오염되지 않았고 DeFi 생태계에 어떤 재미있는 일이 벌어지고 있는지 자세히 알 수 있음.

예를 들어 최근엔 Sky의 USDS를 담보로 더 이상 지원하지 말자는 글을 살펴보고 있음. 이 글을 이해하려면 결국 Sky가 MakerDAO 시절부터 어떻게 지금까지 변모해 왔는지 알아봐야 해서 좋은 공부 주제임.

하여튼 앞으로 포럼에 댓글이나 글도 좀 남겨볼 예정. DeFi 공부할거면 governance 포럼 자주 들려보는 걸 추천함.
16👍1
폴리마켓에서 안전하게 수익얻기

@Tripleshothero 님이 트위터에 폴리마켓에서 무위험 트레이딩으로 돈을 벌 수 있는 전략을 공유해주셨는데요.

저도 약간 관련된 내용으로 시간차 정보 arbitrage를 통해 돈을 버는 방법에 대해 예전에 혼자 리서치 한 게 있어서 재공유합니다. GTA VI 출시 날짜 마켓이었는데 시장이 뉴스에 반응하는 시간을 조사해 보았습니다. 폴리마켓 API 써가면서 데이터 추적해서 정성스럽게 만들었슴다.

결론은 시장보다 5분만 빨라도 돈을 벌 수 있다는 사실입니다. 뉴스 나온지 5분동안 가격 차트는 큰 반응을 안 했어요. 개발 좀 할 줄 아시면 트위터나 뉴스 자동으로 모니터링 하면서 트레이딩 해보는것도 나쁘진 않을 겁니다.

리서치 링크: https://9oelm.github.io/polymarket-research/gta
7🎄2
개발자 조엘과 web3 삽질
폴리마켓에서 안전하게 수익얻기 @Tripleshothero 님이 트위터에 폴리마켓에서 무위험 트레이딩으로 돈을 벌 수 있는 전략을 공유해주셨는데요. 저도 약간 관련된 내용으로 시간차 정보 arbitrage를 통해 돈을 버는 방법에 대해 예전에 혼자 리서치 한 게 있어서 재공유합니다. GTA VI 출시 날짜 마켓이었는데 시장이 뉴스에 반응하는 시간을 조사해 보았습니다. 폴리마켓 API 써가면서 데이터 추적해서 정성스럽게 만들었슴다. 결론은 시장보다 5분만…
폴리마켓에서 안전하게 수익얻기 pt 2.

하나만 더. <비트코인이 N월에 얼마가 될까?>는 폴리마켓에서 흔해빠진 형식의 마켓인데요. 여기서 마켓이 닫히기 전 막판에 투자해서 수익을 얻어야겠다! (예를 들면 12월 31일 23시 55분쯤에)라고 생각하시는 분들이 계실겁니다.

이것도 데이터 기반으로 조사했었는데, 결론부터 말씀드리자면 마켓이 종료되기 30분 전에는 대부분의 경우에 이미 마켓은 95%정도에 합의를 본 상태고, 꽤 안전하게 100%까지 도달합니다 (첫번째 사진). 오더북 depth만 받혀준다면 충분히 수익이 1센트라도 나올 수 있는 구조죠.

하지만 유의하셔야 할게 그렇지 않은 마켓도 있습니다. 월말이 되었을때 비트 무빙이 기괴한 날이 있을 수도 있겟죠?

그런 경우에 3-5분 전까지도 가격이 35%-100% 사이를 왔다갔다 하는 마켓이 있다는 점을 알고 계셔야 할 것 같습니다.

60개 마켓을 조사했는데 한 10개 정도 마켓이 그런 거 같네요.

해피 트레이딩.

리서치: https://9oelm.github.io/polymarket-research/what-price-will-bitcoin-hit-in-april
5
월요일을 깨워주는 주피터 (+ Fluid) vs 카미노 (+ 멀티코인 캐피탈) 솔라나 집안싸움 단편극

> 8월 중순 Jupiter Lend 트윗에 담보자산의 isolated risk와 'zero contagion risk' (전염 리스크 0, 그니까 isolated risk를 걍 다르게 말한거임)를 홍보함. 근데 사실 루핑/rehypothetication에 대한 risk도 다 가져가서 isolated risk는 아니었음. 원본 트윗은 삭제된듯.

> 8월 말 Jupiter Lend public 출시 → 출시후 지금까지 1.6B TVL까지 성장. 카미노는 Jupiter lend 출시후 약 1B 정도 TVL이 하락. 경쟁자에게 뺏겼다고 생각할 수 밖에 없는 상황.

> 9/22 솔라나 가격 하락 → 카미노에서 청산이 '507 달러'밖에 일어나지 않았고 안전하다는 트윗을 날림

> 9/23 Jupiter Lend를 함께 만든 Fluid의 코파운더 Samyak이 카미노 트윗은 구라고 explorer를 좀만 살펴봐도 규모있는 청산을 알아볼 수 있다고 트윗. 실제로 예시를 든게 1M, 0.5M 청산. 507달러는 너무했지.

> 9/23 카미노 트윗 지움.

> 11/28 Jupiter lend에서 Save, Marginfi, Kamino의 포지션을 클릭 한번만으로 Jupiter로 옮길 수 있는 'refinance' 기능 출시

> 12/2 카미노 스마트컨트랙트에서 Jupiter 프로그램을 차단해버림 → Jupiter 통해서 refinance 더 이상 불가

> 12/2 Jupiter 대장 Meow 폭발. Open finance의 가치를 훼손한다, 카미노는 자기네 유저 신경도 쓰지 않는다 등. (현재 트윗은 삭제됨)

> 12/7 카미노의 Marius가 Jupiter 거짓말쟁이들이다. 8월 트윗의 Isolated risk는 거짓이다라고 트윗.

> 12/7 카미노 투자사인 멀티코인 캐피탈의 파트너 Tushar가 Jupiter는 isolated collateral의 뜻도 이해하지 못했다. 바보들이라고 트윗.

> 12/7 Jupiter COO가 8월에 올린 트윗이 zero contagion risk는 아니었다며 사과하는 비디오 올림.

> 12/7 솔라나 재단 대장 Lily Liu가 "제발 그만해 나 너무 무서워! 이러다간 다 죽어...!"라고 트윗 올림

👉 $SOL, $JUP, $KMNO 가격 다 망했는데 집안싸움만 계속 하는중. defillama에서 1, 2위를 다투고 있는 이 두 프로토콜의 원한은 쉽게 안 풀릴 것 같음.
👉 경험상 이건 그냥 사실 마케터/소셜 미디어 담당자 잘못이 큼. 내 경험상 보통 소셜 미디어 담당자는 웹3 용어는 알지만 기술적인 깊이는 많이 없어서 검증하고 올렸여야 하는데 그걸 못한듯..
2
AI의 발전이 스마트컨트랙트에 실질적인 위험을 초래할까?

최근 AI 오딧 연구자료가 돌아다니고 있어서 개발자의 시선에서 그것에 대한 생각을 공유하고자 함. 결론부터 말하면 너무 hype가 심한듯.

1. AI가 보안 취약점을 찾는 능력이 늘어나는 만큼, 보안 감사 비용도 똑같이 내려가는 중임.

그래서 스마트컨트랙트 개발자들도 배포 전에 AI 감사툴을 더 싸고 쉽게 쓸 수 있게 됨. AI 모델 성능은 계속 올라갈 거라 개발자들도 AI 도움 받아 더 잘하게 될 거임.

즉, AI의 취약점 탐지 능력 향상이 스마트컨트랙트 개발자들한테만 불리하게 작용한다고는 안 봄.

2. AI가 진짜 따라잡는 중이냐고 하면, 잘 모르겠음.

커뮤니티가 그냥 AI 버즈워드에 낚여서 연구자 발표에 과하게 반응한 느낌이 큼.

논문 보면 이럼.

“동일한 10개 모델을 2025년 3월 1일 이후 악용된 34개 취약점에 대해 평가함. Opus 4.5, Sonnet 4.5, GPT-5가 19개(55.8%)에서 익스플로잇 생성했고, 최대 460만 달러의 시뮬레이션 피해를 냄.”


결국 이건 이미 알려진 취약점 가진 컨트랙트 대상으로 테스트한 거고, 모델이 그 절반 찾았다는 얘기임.

우리가 이미 아는 취약점 찾은 걸로 대단하다고 보긴 어려움. 우리가 걱정하는 건 모르는 취약점, 즉 제로데이를 AI가 찾아서 돈 털어가는 상황임.

반대로, 실제 세상에서 배포된 컨트랙트 중 ‘알려진 취약점 없는’ 애들 대상으로 테스트하니까 이럼:

“2025년 10월 3일 기준 최근 배포된 2,849개 컨트랙트 대상 평가. 두 모델이 제로데이 취약점 2개 찾아냈고, 총 3,694달러 가치의 익스플로잇 생성.”


거의 3000개 중 2개 찾고, 그 가치가 3.7천 달러 정도임.
결국 제로데이 찾는 능력은 아직 별로라고 봄.

3. 마무리

AI가 스마트컨트랙트 개발이나 해킹을 보조하는 수준은 확실히 가능함. 다만 위험을 초래할 수준은 아님.

그리고 설령 잘하게 돼도 공격도 하고 방어도 할 거라, 그게 일방적으로 위험만 커진다고 보기도 힘듦.

👉 내 생각엔 걱정은 시기상조인듯? 그리고 만약에 AI가 스마트컨트랙트 다 해킹하는 시대가 오면 그것만 걱정할 일이 아닐듯함
Please open Telegram to view this post
VIEW IN TELEGRAM
5
12/17 수 조엘과 커피챗 & 커뮤니티 네트워킹 기회

안녕하세요~ 조엘입니다. 다음주 12/17 수요일 18-22시 강남 localhost:web3 에서

1) 제가 한국 뜨기 전에 저와 간단하게 커피챗 하고 싶으신 분 (DeFi, web3, 취업, 개발, 해외생활 얘기 등)

2) 공통분모를 가진 제 커뮤니티 멤버들과 가볍게 네트워킹 하고 싶으신 분

이 있으실까요? 사인업 부탁드립니돠

https://luma.com/9cfvcmns

이벤트 홍보 그림은 3시간 걸려서 만들었습니다.

특히 해외 웹3 취업/커리어 관심 있는 분들께 많은 공유 부탁드립니다~
11
개발자 조엘과 web3 삽질 pinned «12/17 수 조엘과 커피챗 & 커뮤니티 네트워킹 기회 안녕하세요~ 조엘입니다. 다음주 12/17 수요일 18-22시 강남 localhost:web3 에서 1) 제가 한국 뜨기 전에 저와 간단하게 커피챗 하고 싶으신 분 (DeFi, web3, 취업, 개발, 해외생활 얘기 등) 2) 공통분모를 가진 제 커뮤니티 멤버들과 가볍게 네트워킹 하고 싶으신 분 이 있으실까요? 사인업 부탁드립니돠 https://luma.com/9cfvcmns 이벤트 홍보…»
리액트 신종 취약점 두 개 더 발표

*리액트는 개발자들이 애용하는 프론트엔드 라이브러리입니다.

저번주 모든 개발자를 패닉에 빠뜨린 리액트 취약점 React2Shell 그 이후.

한 시간 전 새로운 취약점 두개가 발견되었다고 발표가 있었네요. 물론 React2Shell만큼 크리티컬은 아니지만 무시할 수는 없는 수준의 취약점입니다.

세계최강기업 페북이 유지보수+버그바운티 운영하는 오픈소스 라이브러리도 이런데, 아무나 적는 스마트컨트랙트는 오죽할까요. Food for thought.
8
솔직히 대부분의 DAO는 토큰 발행과 토큰 효용성 창출을 위한 핑계임. 돈벌자니 토큰 발행은 해야겠고 프로토콜 방향성에 대한 권한 행사는 계속 하고 싶고. 걍 딜레마임. 최근 Aave 사건 보면서 느끼는 점.
17😭5