업사이드 2기 성과 공유회 후기
6월 12일 목요일 오후 2시, 서울 강남 빅플레이스에서 업사이드 2기 성과 공유회가 진행되었다. 평소에 2기 업사이더 분들께서 어떤 프로젝트를 진행하셨을까 정말 궁금했는데, 이번 기회로 궁금증을 해소할 수 있어서 좋았다. 처음에는 현장 사진도 간간히 찍었는데, 발표가 시작된 이후에는 경청하며 발표 내용을 필기하다보니 나중에는 사진 생각을 못하고 발표만 계속 듣게 되었다 😂 그래서 자칫하면 텍스트만 있는, 지루한 후기가 될 수도 있었지만, 정말 감사하게도 업사이드 운영진 분들께서 고품질의 현장 스틸컷을 제공해주셨다!! 덕분에 발표가 어떠했는지에 대한 회고 외에도, 보유한 사진들을 최대한 활용해서 당시의 분위기와 열기가 어떠했는지 작성해보려 한다.
행사 시작 전
30분 일찍 행사장에 도착해서 낯익은 분들께 가벼운 인사를 건내고, 자리에서 일어나 잠시 주변을 둘러봤다. 가장 먼저 눈에 띈 것은 넓어진 공간이었다. 1기 성과공유회에 비해 2배 이상의 크기였다. 당시 행사장이 좁아서 아쉽다는 이야기들이 있었는데, 이번에는 정말 쾌적하고 좋았다. 그 다음 눈에 들어온 것은 2기 성과공유회의 슬로건 `The Final Step, The First Leap`. 꽤나 익숙한 의미의 메세지이다. 업사이드 1기를 수료하면서도 멘토님들께서 강조하셨던 `끝이 아니라 새로운 시작`의 의미라는 생각이 들었다. 행사장 뒷편에는 각 업사이더들의 간단한 소개와 팀별 주제, 그리고 다과가 준비되어 있었다. (마카롱 있는 줄 알았으면 먹었는데!!! 😫)
행사 시작
업사이드 아카데미 2기 영상이 재생되고 난 뒤, 유미라 아나운서님의 반가운 목소리로 행사가 시작되었다. 1기 성과공유회의 진행을 맡아주셨는데, 이번에도 원활하고 멋진 진행으로 행사를 이끌어주셨다. 사진은 없지만 다양한 기업의 CISO 분들도 참석하여 자리를 빛내주셨다.
이후 티오리 멘토 은성님, 베로님의 편지 낭독(?) 시간이 있었다. 두 분 다 분위기를 풀어주시고자 아내 외에 써본적 없는 손편지임을 강조했지만, 그 소회가 편지에서 넘쳐 흘러 내게도 전달이 되었다. 특히 정말 열과 성을 다해 과정에 몰입했을 2기 업사이더 분들과 멘토님께는 만감이 교차하는 시간이었으리라 생각한다.
프로젝트 발표
고대하던 발표 시간이 왔다. UMA, 베어문, chain stalker, Stack Audit Flow. 각양각색 4팀의 발표가 시작되었다. 1기 때와 마찬가지로 audit 두 팀 그리고 tooling 두 팀으로 나누어져 있었다.
1. UMA 계정 추상화
1기 때에도 계정 추상화를 기반으로 감사를 진행한 팀이 있었는데 2기에도 있었다. 그리고 공교롭게도 두 팀 모두 우수상을 수상했는데, 아마 그만큼 최근 관심도도 높고 중요한 문제이기 때문에 그렇지 않나 싶다. 이번에 filler라는 역할이 있는 것은 처음 알았는데, 찾아보니 ERC-4337이 아닌 ERC-7683 Cross Chain Intents에 존재하는 것임을 확인했다. 쉽게 말하면 정부가 프로젝트 내용을 공개하면, 기업들이 경쟁 PT를 통해 프로젝트를 수주하는 것과 비슷하다. filler들은 사용자의 의도를 만족시키는 연산을 수행하는 대신 그에 대한 보상을 얻게 되는데, Web3 생태계를 보면 대리자의 개념이 정말 많이 활용되는 것 같다. 물론 이에 따른 위협도 존재한다. UMA 팀이 소개한 위협 시나리오 중에 기억이 나는 건 공격자가 번들러의 역할을 담당하고, 유저의 연산 일부를 탈취해서 의도적으로 트랜잭션을 실패시키는 경우이다. 간단하게 음식점 비유를 들어보자.
지금 시간 오후 10:02분. 갑자기 야식이 먹고 싶어서 배달 앱을 키고 주문하는 상황이다. 이 배달 앱은 구조가 다소 독특하다. 일단 배달 요청이 들어오면 라이더들에게 공개적으로 배달 권한을 입찰한다. 이 때, 라이더가 배달을 담당하려면 주문 금액과 동일한 액수의 담보금이 필요한데, 정해진 시간 안에 배달하지 못하면 담보금이 청산되어 배달 앱에 전달된다. 따라서 각 라이더들은 자신의 위치와 배달 동선 등 여러 가지를 고려해서 신중하게 배달을 담당하게 된다.
이런 상황에서 만약 배달 앱의 관리자가 어떤 라이더에게 악의를 갖고 있다면 어떻게 될까? 사용자 A가 배달 앱으로 치킨과 족발을 주문했고, 라이더 B는 배달을 담당하기 위해 5만원을 담보로 맡겼다. 이 때, 관리자는 치킨 요리점 위치를 파악하고, 앞에 난동꾼을 배치해서 라이더가 음식을 수령하지 못하도록 방해한다. 사용자의 요청은 단순히 실패한 것이지만, 라이더는 5만원 손해, 그리고 악의적인 공격자인 배달 앱은 5만원의 이익을 보게 된다.
발표에서 소개한 UserOp Hijacking 시나리오에 따라 라이더=filler, 배달 앱=bundler에 비유했는데, 사실 Web3 환경과 실제 배달 과정은 다른 부분이 많아 다소 억지스러운 부분이 있긴 하다. 그래서 실제로는 bundler가 난동꾼이라는 실체를 사용하지 않고도, 어떻게 사용자의 요청이 실패하도록 할 수 있는지 궁금하다면 UMA 팀의 깃북 문서를 참고하길 바란다. (nonce & front-running)
AA + Cross-chain DOCS | AA + Cross-chain DOCS
Modular Smart Accounts & Cross-Chain Security Guide
aacross.gitbook.io
2. 베어문 PoL 기반 체인
기존 PoS 방식의 지분 증명 체인의 유동성 파편화 문제를 해소하기 위한 여러 시도가 있었고, BeraChain은 PoL(Proof of Liquidity) 방식의 문제 해결을 시도하고 있다. 베어문 팀은 이 체인의 구조에 대한 설명과 감사를 진행한 결과를 공유했다.
일단 내가 이해하기로는 일반 Native Token을 예치하는 것이 두 합의 매커니즘의 공통 전제이다. PoS는 그 상태에서 머물기 때문에, 예치된 ETH를 활용할 수 없으니 체인 내 유동성이 파편화되는 문제가 있지만, PoL의 경우 유동성 토큰과 거버넌스 토큰을 발급하는 것으로 합의 방식을 충족하면서도 체인 내 유동성 파편화를 완화할 수 있다. 솔직히 엄청나게 새로운 방법은 아니라 생각한다. 가장 먼저 re-staking 등 프로토콜 수준에서 파생 토큰을 발급하는 Pendle이 떠올랐는데, 이 밖에도 EigenLayer, Polkadot, UniswapX 등 다양한 프로토콜과 체인들이 이미 유사한 문제를 다양한 방식으로 해결하려 하고 있다.
기억나는 위협은 크게 두 가지인데, 하나는 0.13퍼센트의 주소가 90퍼센트 이상의 유동성을 보유하고 있어서 담합하면 거버넌스 조작이 발생할 수 있다는 것과, 가격이 오라클에 의해 관리되지 않고 토큰 비율에 의해 결정되어 가격 조작에 매우 취약하여 대량 청산을 유발할 수 있고, ERC-4626 취약점에 의해 공격자가 전체 지분을 쉽게 차지할 수 있다는 것이다. 베어문 팀은 이에 인플레이션 급등을 감지하고, 급격한 담보 가치 하락에 대응하는 서킷 브레이커 도입을 대안으로 제시했다. 솔직히 근본적인 해결책은 아니라고 생각하지만, 구조적인 문제는 해결하는 것이 어려울 수 있으니 꽤나 실용적인 방안이라고 생각이 들었다. 앞서 다룬 내용이 정확하지 않을 수 있으니 자세한 내용은 다음 깃북을 참조하길 바란다.
Introduction | BearMoon
Introduction This document identifies potential security threats in Berachain's Proof of Liquidity (PoL) system and presents practical guidelines to prevent them. The Berachain ecosystem introduces a new economic model through its PoL mechanism, but it can
bearmoon.gitbook.io
3. ChainStalker 자금 세탁 추적
꽤나 이해하기 쉬웠다. KYC 없이 운영되는 무기한 선물 거래소를 통해 불법 자금이 세탁되는 정황들이 있는데, 합리적인 가정을 통해 자금 세탁으로 추정되는 트랜잭션을 필터링하겠다는 컨셉이다. 첫 번째 가정은 동일한 거래소에서 동일 시점에 동일한 액수의 반대 포지션을 잡는다는 것이다. 솔직히 동일 거래소는 중요한 가정은 아니라 생각하지만, 당장 바로 모든 거래소의 데이터를 추적하는 것도 비현실적이라 생각해서 어느 정도 납득했다. 두 번째 가정은 높은 비율의 레버리지를 사용한다는 것이다. 돈 세탁의 액수는 규모가 크기 때문에 꽤나 합리적이라고 생각했다. 마지막으로 중앙 거래소의 출금 여부이다. 중앙 거래소 출금 여부는 단순히 해당 주소의 직접 출금 여부만을 고려했을 줄 알았는데, 다른 주소로의 송금까지 고려하여 최종 출금 여부를 파악했다고 했다. 하이퍼리퀴드가 정확히 어떻게 동작하는지는 잘 모르겠지만, 크로스체인까지 고려하면 추적하는 게 어려울텐데 대단하다. 위의 세 가정을 만족하는 트랜잭션을 추적하고 -50% 이상의 큰 손실이 발생했는지, 남아있는 별도의 포지션이 있으면 헤징으로 간주하는 등 고민을 많이 한 흔적이 보였다.
심사위원 분들께서 남겨주신 심사평도 좋았는데, 우선 bpak 멘토님은 현재 1:1로 반대 포지션을 추적하고 있지만, 사실 1:1/n * n 포지션으로도 가능하지 않냐고 질문을 하셨다. 맞는 말인게 더 나아가면 주소별 가중치를 둘 수도 있고, 여러 거래소를 사용할 수도 있을 것이고, 두 반대 포지션의 합에 작은 오차를 둘 수도 있을 것이다. 솔직히 너무 많은 경우의 수가 남아있지만, 그럼에도 한 걸음 나아갔다는 것만으로 의미가 있다고 생각한다. 다른 심사위원 분들께서도 '기준이 되는 수치를 변경할 수 있어야 도구로서의 의미가 있을 것이다', '굉장히 많은 금융 공학자들이 도전하게될 과제이다'라며 많은 관심을 보이셨다. 그 결과인지는 모르겠지만, 툴링 부문에서는 체인 스토커 팀이 우수상을 수상하게 되었다.
Perp DEX를 통한 자금 세탁 효용성 검증 | ChainStalker Docs
A Study on the Effectiveness of Money Laundering through PerpDEX - by ChainStalker™️
chainstalker.gitbook.io
4. Stack Audit Flow 스마트 컨트랙트 AI 감사
컨셉은 `LLM을 활용한 스마트 컨트랙트 감사`. 이걸 audit을 업으로 삼고 있는 일부 심사위원 분들께서는 밥줄을 위협하는 프로젝트라는 식으로 농담을 하셨던 기억이 난다. (과연 농담일까? 😅) 개인적으로 어떤 모델을 사용했는지, 또 어떻게 학습시키고 튜닝했는지가 제일 궁금했는데, 이런 부분이 발표에서 드러나지 않아 너무 아쉬웠다...
발표에서 고민을 많이 한 흔적은 드러났다. 이 모델의 성능을 측정하기 위해 분석할 프로토콜이 학습된 상태인지 확인했고, zellic과 같은 감사 전문 업체의 리포트와의 유사도를 비교했다고 한다. 또 대부분의 결과가 `만약 ~하다면 ~한 위협이 있다`는 식이었다고 하니, 온체인 데이터를 참조할 수 있다면 오탐율을 줄일 수 있다고 한다. 또 작업했던 프로토콜의 감사 결과가 약 100여개 였는데, 발견된 77개의 예상 위협을 검증하는데 시간이 걸렸다고 한다. 이 부분은 PoC 생성 자동화가 실현된다면 체인을 테스트넷으로 fork한 이후 테스트해보는 것으로 단축할 수 있을 것이라 한다.
여기까지 듣고, `zellic 레포트랑 유사도가 높다고? 대단한데?` 생각했는데 bpak 멘토님께서 날카로운 멘트를 몇 개 던지셨다. 일단, 사후 검증에 소요되는 시간이 길다면 도구로서의 의의가 있는지(배보다 배꼽이 크다 뭐 그런 느낌), 그리고 감사 작업에는 오탐보다 크리티컬한 위협에 대한 미탐이 더 문제가 된다는 이야기. 맞는 말이긴 하지만 나는 이 역시도 시작했다는 것 자체만으로 충분히 의의가 있다고 본다. 애초에 다양한 감사 업체에서 문제 없다고 리포트를 남긴 프로토콜도 취약점이 발견되어 피해가 생기는 경우가 있다. 설령 AI가 현재 인간에 비해 부족하더라도, 무한한 잠재력을 가진 이 분야를 굳이 도외시 할 이유는 없지 않을까? 따라서 당장 실용화는 어렵겠지만 멋진 도전이라고 생각한다 👍
발표 이후
각 팀에 대한 심사평, 그리고 수상 팀이 발표되었다. bpak 티오리 대표님의 축사도 있었고, 업사이더 2기 분들의 가슴 따뜻한 후기 나눔도 있었다. 게임 개발자에서 합류한 TamaNeko님의 후기를 듣다보니, 마치 내 얘기 같아서 몰입이 됐다. 얼마나 힘드셨나요.. 고생 많으셨어요 🥹
나는 개인적인 사정이 있어 먼저 자리를 떴지만, 행사 후에는 멘토분들과 1기 업사이더들과의 네트워킹 시간이 있었다고 한다. 끝이 아닌 새로운 시작을 준비하는 2기 업사이더 분들께는 소중한 시간이 되지 않았을까 싶다.
마치며...
문득 Toss 관계자 분의 코멘트가 생각난다. "4~5명이 모여 2개월 간 작업한 결과물이라는 것을 알고 놀랐다." 비단 업사이더들만의 작품이 아니라 멘토님들의 도움이 있었기에 가능했던 것이라 생각한다. 앞으로 얼마나 더 멋진 결과물이 탄생할지 기대가 된다. 함께하는 것의 힘을 아는 것, 그것이 업사이더니까.