[생각정리] 솔리디티 오딧을 배우는 이유

0xDave·2023년 1월 20일
2

Ethereum

목록 보기
87/112

Build space 예제를 처음 접했던 것이 벌써 1년 전이다. 그 때는 단지 취미로 시작했었다. 이후 예제도 따라해보고 매우 간단한 dApp도 만들어보면서 흥미를 키워갔다. 러스트와 golang 찍먹도 해보고 내가 생각보다 코딩과 잘 맞다는 느낌도 받으면서 한편으로 높은 난이도와 배울 게 너무 많다는 두려움으로 벽에 다다른 기분이었다.

처음부터 솔리디티를 할 생각은 없었다. 러스트 기반으로 돌아가는 루나, 솔라나, 니어가 이렇다 할 퍼포먼스를 보여주지 못했고 심지어 솔라나는 체인이 중단된 적이 여러 번 있었다. 이후 루나는 망했고 니어는 호기롭게 USN을 출시했다가 몇 달 지나서 프로젝트를 접는 등 러스트 기반 프로젝트들에서 긍정적인 모습을 볼 수는 없었다. golang으로 돌아가는 코스모스는 생각보다 자료가 많이 없었고 실력이 부족한 내가 느끼기에 golang 조차도 자료가 많은 것은 아니었다. 물론 다른 고수분들은 다르게 생각하실 수 있지만 주니어라고 할 수도 없는 나는 다른 언어에 비해서 현저히 자료가 부족하다고 느꼈다.

이제 남은 것은 결국 솔리디티였다. 처음부터 솔리디티를 하지 않았던 것은 다른 게 더 재밌어 보였기 때문이다. 하지만 앞서 말했듯이 여러 난관에 부딪히면서 결국 돌고 돌아 근본이라 불리는 솔리디티를 하기로 마음 먹었다. 그 때가 아마 8월이었을 것이다. 신나게 예제도 따라해보고 Alchemy university에 참여도 해보면서 스마트컨트랙트의 재미에 빠졌었다. 그러다 어느날 우연히 알고리즘에 의해 Andy Li의 영상을 보게됐다.

자기가 Code4rena에 참여하고 있는데 생각보다 재밌고 다른 사람들에게 한 번 참가 해보라는 영상이었다. 자신이 Code4rena에 참여하기 전에 했던 학습방법, 처음 발견한 취약점으로 상금을 탔던 경험, 자신이 생각하는 학습 로드맵 등 여러 영상이 올라와 있었다. Code4rena 홈페이지에 가보니 생각보다 큰 규모의 상금을 걸고 여러 컨테스트들이 진행되고 있었다.

그냥 한 번 해볼까라는 생각으로 Andy Li의 영상들을 보면서 간단한 CTF로 연습도 해보고 그가 추천했던 학습 로드맵을 따라갔다. 이후 Code4rena에 올라와 있는 레포트들을 보면서 취약점이 어떤게 있는지 보고 컨테스트에 참여도 해보면서 결국 여기까지 왔다. 처음엔 단지 흥미에서 시작했다면 지금은 생각이 조금 달라졌다. 내가 생각하기에 오딧을 배우는 것은 여러 장점이 있다.


1. 컨트랙트는 dApp의 핵심이다.

블록체인 위에서 돌아가는 대부분의 dApp은 스마트컨트랙트로 동작한다. 컨트랙트가 어떻게 동작하는지 아는 것은 블록체인을 다루는 개발자에겐 매우 중요한 능력이다. 또한 스마트컨트랙트의 보안도 중요하다. 컨트랙트의 취약점을 통해 프로젝트의 자금을 탈취당하는 사례와 그 규모는 꾸준히 늘고 있고 그 만큼 dApp을 사용하는 유저와 프로젝트 운영진 측에서는 보안을 신경쓸 수 밖에 없다. 이런 상황에서 보안에 전문성을 가진 오디터의 역할은 중요해진다.

2. 상방이 열려있는 가치를 만들어낼 수 있다.

내가 투자를 할 때 가장 중요하게 생각하는 기준은 그것의 상방이 열려있는지다. 여러 요소도 같이 고려해야겠지만 하방 대비 상방이 높게 열려있다면 그 자체 만으로도 충분히 고민해 볼 가치가 있다. 투자를 하는 것 뿐만 아니라 자신이 어떤 일을 할지에 대해서도 상방이 열려있는지 고민해봐야 한다고 생각한다. 내가 하고 있는 일과 이를 통해 얻는 경험들이 확장 가능한가? 다른 곳에 적용이 가능하고 실력으로 이어질 수 있는가? 오딧을 한다는 것은 컨트랙트의 취약점을 찾음으로써 자금이 탈취당하는 것을 사전에 방지하는 것이다. 여기서 중요한 점은 내가 찾은 취약점으로 인해 방지할 수 있는 자금의 규모가 정해져 있지 않다는 것이다. 단순히 1K가 될 수도 있고, 50M이 될 수도 있다. 자신이 만들어내는 가치에 따라 보상을 받는 자본주의 시스템에 따라 상방이 열려있는 가치를 만들어낸다는 것은 굉장히 매력적이다.

3. 희소한 인력 풀

현재 web2에 비해 web3 개발자들의 규모는 매우 작다. 또한 그 중에서도 보안 관련 일을 하는 오디터의 수는 훨씬 적다. 베어장이라고 하더라도 프로젝트를 빌딩하는 수는 꾸준히 있으며 오딧의 수요가 상승했을 때 현재 있는 인원들로 해당 수요를 감당할 수 없다면 인력의 가치는 올라간다. 어느 분야나 마찬가지겠지만 실력 있는 사람의 가치는 훨씬 높을 것이다.




물론 장점만 있는 것은 아니다. 현재 블록체인 분야는 불안정하고 언제 사라져도 이상하지 않다. 한 순간에 루나가 망하고 FTX가 파산했듯이 다른 분야에 비해 위험도는 매우 높다. 또한 오딧을 마쳤다 하더라도 내가 못 찾은 취약점으로 인해 프로젝트 자금이 탈취 당한다면 그에 따른 책임과 감정적인 죄책감까지 감당하기 어려울 것이다.

경험 -> 피드백 -> 실력 -> 상방이 열려있는 가치 생성 -> 경험 -> ...

그럼에도 불구하고 내가 오딧을 계속 하려는 이유는 위와 같은 사이클을 계속 돌릴 수 있다고 생각하기 때문이다. 현재 나는 실력도 부족하고 경험 또한 부족하다. 앞으로의 계획과 방향에 대해서는 다음 글에 작성할 예정이다.

profile
Just BUIDL :)

0개의 댓글