Jump to content

Search the Community

Showing results for tags '연금술'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Blogs

  • Key 타이탄 되기 데일리 블로그
  • James의 제텔카스텐 투자 노트
  • CMDS 타이탄의 실오라기 연구실
  • chatGPT 커뮤니티
  • 이태극의 세컨드브레인
  • 깁고 더하는 지식 노동자
  • 트렌드세터 (프로덕트 메이커)
  • Key의 Vitamin M 전문 스마트 스토어
  • 사색가 이태극
  • 읽기와 쓰기
  • 브라이언의 삶의 GPS 마스터하기
  • 작가와 러닝앤그로스
  • 분석맨의 '두 번째 뇌'
  • Saisiot’s Laboratory
  • 반을의 작업실 Baneul's Atelier
  • 반짝이는 매일, Twinklekris.
  • 달나라
  • 방해받지 않는 삶

Forums

  • beTITAN Community Lounge
    • Announcements & Tips
    • beTITAN 기간 한정 공개 게시물
    • Question & Answer
    • Community Lounge
  • beTITAN 주제별 + 목적별 타이탄 되기 프로젝트
    • 스마트하게 + 세련되게 + 명료한 일잘러 되기
    • 글로벌 셀러를 위한 D2C 및 브랜드

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


Apps

Found 11 results

  1. 주말은 특별하지 않았다. 어짜피 한번은 이런 일이 있을꺼 같았다. Peter 덕분인지 나도 제법 멘탈이 강해진 상태였다. 난 주말 동안에 봇 코드를 다시 리뷰하면서 MDR이 깨졌을 때 왜 봇이 작동을 멈추지 않았는지 살펴봤다. 봇의 코드와 알고리즘 보호 방법을 엄격하게 관리해야 한다는 Peter의 요청에 따라, 난 봇의 많은 부분들을 모듈화했었다. 연금술사들이 많아지면서 특정 알고리즘의 모듈을 수정하거나 개선이 필요할 때에도 알고리즘의 특정 부분을 브릿지 형태로 확장하는 방법을 사용했다. 이 방법은 연금술사들조차 봇이 어떤 방식으로 작동하는지 짐작할 순 있지만, 전체 알고리즘을 파악하는건 불가능하게 만들었다. 마치 직소 퍼즐의 한 두조각만을 가지고 작업하는 방식이었다. 회사 내부에서도 알려지지 않게 비밀리에 개발중인 메타트레이더 5용 포렉스 봇의 경우 슈퍼 KEY 트랜드 같은 핵심 알고리즘 인디케이터를 아예 별도로 봇과 분리해버렸다. 이를 통해, 봇의 핵심 작동 매커니즘 자체를 연금술사들도 알 수 없게 되었다. 봇의 비밀을 풀지 못하게 우린 연금술사들에게 퍼즐 조각 몇개만을 던져주었다. MDR이 깨진 이후에도 봇이 멈추지 않고 작동했던 이유는 아주 간단한 내 실수 때문이었다. 특정 알고리즘이 수정되어 적용 될 때, 봇이 멈춰야 하는 안전장치 부분의 코드가 내 부주의로 잘못 덮어 쒸어진 상태였다. 이건 단순한 실수였기 때문에 다음부턴 더 주의하면 간단히 해결될 문제였다. 변명을 하자면 그 당시엔 사실 하루에도 몇번씩 봇의 알고리즘 조정이 있었다. 봇 또한 여러 버전이 있었고 하루에도 몇번씩 봇이 다시 컴파일되던 때였다. 진짜 문제는 우리 알고리즘이 MDR로 설정된 값 이상의 손실을 냈다는 점이었다. 이건 누구의 실수가 아니었다. 시장 상황에 따라 이렇게 언제든 문제가 다시 발생 할 수 있었다. 이 알고리즘을 어떻게 수정할 수 있을까? 수정한다고 이런 문제가 앞으로 더 생기지 않을까?하는 고민을 하다가, 우선 Peter에게 짧게 이메일을 작성해 보냈다. “MDR이 깨진 후 봇의 안전 장치가 작동하지 않았던건 내 실수였어. 봇의 코드 업데이트를 하면서 해당 부분이 삭제된체 덮어 쒸어졌어. 이 문제는 다시 발생하지 않도록 봇을 Deploy 할 때 점검 프로세스에 확인 작업을 해야 한다고 테스크를 추가하면 될꺼 같아. 문제는 거래 알고리즘인데 이건 다음주에 퀀트 마법사팀과 회의를 한 후 다시 업데이트 해줄께.” 얼마 뒤 Peter에게 전화가 왔는데, 받지 않았다. 지금 그와 통화하면 왠지 주말 동안 푹 쉬지 못할꺼 같은 기분이 들었다. 내가 전화를 받지 않자 Peter는 잠시 뒤 내게 이메일을 보냈다. Peter의 이메일에는 MDR이 깨진 후 봇이 멈추지 않은건 전혀 중요한 일이 아니라고 적혀 있었다. 중요한건 MDR 자체가 깨진거고 다음주에 전문가들에게 이런 다양한 시장 상황에서 봇의 안정성을 높힐 수 있도록 준비할테니 주말 동안에 그냥 푹 쉬란 내용이었다. 추가로 퀀트 팀과의 미팅도 하지 않아도 된다고 적혀 있었다. Peter는 이 문제를 퀀트팀이 해결할 문제가 아니라고 판단한듯 싶다. 이제는 Peter의 이런 이메일이 단순히 날 위로하기 위한 이메일이 아님을 안다. 생각해보면 Peter는 아주 큰 범주에서의 리스크 관리에 탁월했고, 지금 이 문제 또한 봇이 멈추지 않은게 아니라 MDR 자체가 깨진거였다. Peter는 단순히 봇이 멈추지 않은건 쉽게 고칠 수 있다고 생각했고, 맞는 얘기였다. 다만 봇의 여러 매매 알고리즘은 다른 문제였고, 문제 해결을 위해선 해당 문제 해결에 특화된 외부 전문가가 필요하다고 생각한 것이다. Peter는 늘 어떤 문제가 발생했을 때, 빠르게 상황들을 정리하고 해결 방법들을 제시한다. 그의 빠른 결정들은 수많은 대마법사들(팀의 리더들 또는 중간 관리자들)이 그들의 위치에서 내릴 수 없는 결정들일 때가 많았다. 그렇기에, 모두 Peter가 제시한 해결 방안을 빠르게 쫒아 문제를 해결 할 수 있었다. 난 Peter의 조언데로 더 이상 이 문제에 대해 생각하지 않기로 했다. 그렇게 주말을 푹 쉰 후 월요일 아침 일찍 출근했다. 나는 퀀트 마법사들과 연금술사들과 오전 내내 금요일 있었던 차트 움직임과 봇이 왜 그런 매매를 수행했는지 부검을 하면서 오전을 보냈다. Chris는 아직 출근 전이었다. 오전 11시경 David이 수소문해서 섭외한 DataMage(데이타 마법사)와 AlgoSages(알고리즘 현자들)들이 사무실에 도착했다. 한 둘을 빼고선 그들 대부분 모두 너무 어려보였다. 애띤 얼굴은 20대 초중반 정도로 밖에 보이지 않았다. 우린 그들과 함께 회의실로 이동해 자리에 앉았고, 내가 자리에 앉기도 전, 과거에도 이런 문제를 같이 해결해 본 사람처럼, Peter는 그들에게 오늘부터 바로 일을 시작할 수 있는지 물어봤고, 그들은 가능하다고 대답했다. 그 대답에 Peter는 알겠다면서 먼저 자리에 일어나 자신의 사무실로 돌아갔다. 그때서야 Chris가 회의실로 들어왔다. Chris는 이미 그들 중 몇 명과 친분이 있는 듯 보였다. David은 Chris에게 그들이 사무실에서 상주하면서 일을 할 수 있는 공간으로 1층에 있는 대회의실을 쓰면 어떨까? 하고 물었고 Chris는 날 바라보며 자신을 따라오라는 눈치를 준 후 그들과 함께 자리에서 일어났다. 그들이 1층 대회의실에 들어가 밖에서 안이 보이지 않도록 블라인드를 치고 노트북을 꺼내 일할 준비를 하는 동안, Chris는 내게 지난주 금요일에 벌어진 사건에 대해 물어봤고 우린 그렇게 선체로 한참을 얘기했다. 그들이 어떻게 일하는지 알 수 없었다. 그 때 Peter에게서 전화가 걸려왔다. Peter는 나와 Chris에게 DataMage(데이타 마법사)와 AlgoSages(알고리즘 현자들)에게 이번에 문제가 된 봇 외에도 지금 한참 준비가 끝난 다른 비밀 병기들 모두 최적화 작업을 의뢰하라고 얘길했다. 그들은 그렇게 회의실에 자리를 잡고 무언가를 하기 시작했고, 화장실에 갈 때 빼고는 누구 하나 회의실 밖으로 나오는 사람이 없었다. 몇시간 뒤, 그들 중 리더로 보이는 Jay가 나와 Chris를 찾아왔다. Jay는 내게 현재 봇의 알고리즘들을 직접 수정해서 적용할 수 있는 Configuration 화면을 요구했다. 나는 그걸 열어줘도 되는지 몰라 Chris를 바라봤고, Chris는 별도 설명없이 숫자들만 수정할 수 있게 해당 기능을 추가해주겠다고 Jay에게 대답했다. Jay는 그거면 충분하다면서 대신 숫자들의 단위에 대해서는 별도로 알려달란 얘기를 했다. 나는 무슨 말인지 알아듣고, 알겠다고 대답했다. 맞다. 예를 들면, 어떤 알고리즘의 설정값은 10 단위로 조정이 되지만 어떤건 또 0.1 단위로 조정이 된다. 난 이 얘기를 듣고 그들이 무언가 봇의 세세한 알고리즘들을 변경하면서 테스트를 하겠구나 싶었다. 어렵지 않은 요청이어서 난 봇을 실행 후 직접 알고리즘 설정 값들을 수정할 수 있는 화면을 추가해서 다시 컴파일한 후 그들에게 전달했다. 그리고 다음날 아침부터 거의 수백메가짜리 엑셀 파일들 수십개와 한장짜리 보고서가 올라오기 시작했다. 나는 그 보고서를 봐도 전혀 이해가 안갔다. 그런 날 보면서 Chris가 자세히 설명을 해주었다. DataMage(데이타 마법사)와 AlgoSages(알고리즘 현자들)들은 과거 수많은 시점의 엄청난 시장 데이타를 가지고 흔히 우리가 얘기하는 백테스트를 하고 있었다. 문제는 그들이 방대한 과거 시장 데이타와 변동이 컸던 특정 시점들의 데이타를 활용해 봇을 테스트하는데 그치는게 아니라, 수많은 변수들을 하나 하나 조정해가면서 그 모든 시장 데이타에서 봇의 성능 평가를 하고 있다는 점이었다. 특히 시간 왜곡 마법을 펼치자, 봇은 특정 시간대의 마켓 상황을 실제 상황으로 인식하기 시작했다. 이 점이 단순히 과거 시장 데이타에 시그널 등을 맞춰보는 백테스트와 다른 점이었다. 그렇기에 엄청난 결과 데이타가 매일 매일 쏟아져 나왔다. 봇은 엄청난 속도로 과거 시간 여행을 하는 중이었다. 그들은 그런 데이타들 사이에서 매직 넘버를 열심히 조합하며 찾아가고 있었다. 답이 없는 문제를 푸는 듯 보였다. 그러나 그들은 결국 답을 찾았다. 마치 암호를 푸는 과정처럼 보였다. 그들은 한자리 한자리 매직 넘버를 그렇게 찾아가고 있었다. 그리고 결국 그 주 금요일 밤, DataMage(데이타 마법사)와 AlgoSages(알고리즘 현자들)은 우리 봇의 매직 넘버들을 찾았다. 수많은 경우의 수와 그 각각에 대한 MDR과 수익율 그리고 그 MDR이 얼마나 유지되는지 총거래일수와 그 설정을 위한 매직 넘버로 구성된 엑셀 파일속 쉬트에는 수백개의 조합 결과가 있었다. DataMage가 추천하는 몇가지 조합들에는 하이라잇이 되어 있었다. Peter는 내게 그 중 가장 MDR이 낮고 유지 기간이 길었던 반면에 수익율은 상대적으로 낮은 미세 조정값 하나와 그 다음 단계의 설정 데이타를 봇에 각각 적용해달라고 요청했다. Peter는 다시 그들에게 바로 이어서 우리가 준비하고 있는 일반 포렉스 전체 통화쌍 거래를 위한 다른 비밀 병기들과 아직 가설 단계에서 테스트 중인 다른 봇들도 모두 점검을 해달라고 요청했다. 난 그들이 찾아낸 미세 조정된 설정 값들이 적용된 봇을 각각 준비했다. MDR이 깨졌을 땐 봇이 멈추는 기능도 테스트를 마쳤다. 다시 봇을 테스트할 준비가 끝났다. 그리고 10월 2째주부터 우린 다시 봇을 실제 시장에서 운용하기 시작했다.
  2. 나는 시간에 맞춰 Peter 사무실로 향했다. Photograph by Related-Oxford / Xinhua / Redux Peter 사무실이 있는 허드슨 야드 건물 로비는 이른 퇴근을 하는 사람들 때문에 조금 붐볐다. 건물 로비에 막 들어섰을 때 Peter에게 언제 오냐고 연락이 왔고, 난 건물 로비라고 답장을 보냈다. 보안 데스크쪽 경비원에게 손인사를 건내고 곧바로 엘리베이터에 올라 탔다. 잠시 뒤 Peter의 오피스층에 도착해 엘리베이터 문이 열렸고, Peter는 1층과 2층을 연결하는 계단을 내려오고 있는 중이었다. 그의 발걸음을 보며, 무슨일이지? 난 순간 불안감에 휩싸였다. 우린 서로를 향해 걸었고, 잠시 뒤 일반 트레이더 마법사들의 베틀 스테이션 복도 한 가운데에서 마주쳤다. Peter는 내 손을 잡았다. 그리고 날 보며 피식 웃었다. Peter는 내게 ‘어서 올라가자’면서 내 손을 잡고 날 끌듯이 2층 자신의 오피스 옆 회의실로 데리고 갔다. 회의실 분위기를 보니, 이미 대마법사들과 다른 마법사들은 회의를 한참 하고 있었던거 같다. 회의실엔 많은 마법사들이 있었다. 회의 테이블에 모두 앉을 수 없어 회의실 한쪽 벽에 놓인 의자들에 앉아 있거나 그냥 뒷쪽에 서있는 젊은 마법사들도 많았다. Peter는 나를 자신의 의자에 앉친 후 마법사들을 보면서 “I told you guys, Kings never die.”라고 외치고 테이블을 주먹으로 뭉직하게 두번 내려쳤다. 그의 목소리엔 힘이 있었다. 순간 많은 마법사들이 날 보며 박수를 쳤다. 난 어리둥절한 상태였는데, Chris와 Jiang 등과 눈을 마주친 후 그들의 표정을 보고서 그 때서야 봇이 잘 작동했구나 하고 짐작했다. Peter는 마치 지휘를 하듯 양손을 허공에서 꽉 쥐었다. Peter의 신호에 맞춰 박수가 멈추자, 그는 “Time to go for that pot of gold!”라고 외쳤고, 다른 대부분의 마법사들이 자리에서 일어나 회의실을 나갔다. 그들의 표정은 상기돼 있었다. Peter는 처음 DEXs 차익 거래봇이 바로 해킹을 당했을 때 다른 대마법사들에게 놀림을 받았다. 그리고 내가 그 봇을 리뷰한 걸 나중에 알게된 대마법사들은 그닥 날 믿지 못하는 시선으로 날 바라봤었다. 그냥 Peter 때문에 (어쩔 수 없이 + 적당히) 날 도와 무언가를 하는 그런 기분이 들곤 했었다. 당시에 나는 그런 그들의 시선을 느꼈고 그래서 더 열심히 연금술을 개발했던거 같다. 회의실엔, Peter와 David 그리고 Taylor와 나 이렇게 넷만 남았다. Peter는 날 바라보며, “지난주 테스트 결과가 나왔고 봇의 거래 수익율이 미쳤다.”고 소리치듯 외쳤다. David은 “더 시간을 가지고 운영 테스트를 해봐야 하지만, 이런 수익율의 봇은 자신의 마법사 인생을 통틀어 본적이 없다.”고 말했다. Taylor만 차분하게 자리에 앉아 있었다. Peter와 David은 거의 동시에 무언가를 말하려 했고, David은 Peter에게 손짓으로 먼저 말하라며 양보를 했다. Peter는 “이 수익율이 언젠가는 분명 깨질거야. 그게 다음 주가 될 수도 있고, 다음 달이 될 수도 있고, 1년 뒤가 될 수도 있어. 나도 이런 수익율은 본적이 없거든. 우선 계속 봇을 운영하면서 매일 수익율 데이타 보고를 Jiang이 매일 정오에 우리에게 업데이트 해줄꺼야.” David은 자신이 하려던 말이 그 말이었다는 제스처를 하며 자리에서 일어났고, 날 보며, 윙크와 엄지척을 했다. 그는 자리에서 일어나며 “굿잡”이라고 말해줬다. Taylor도 David과 함께 자리에서 일어났다. 그녀는 내 앞으로 걸어와 날 바라보며 평상시와 동일한 말투로, “잘했다.”고 얘길 해줬다. 나는 문득 궁금했다. 그들은 수익율이 좋다고만 얘기했지, 수익율이 그래서 몇 퍼센트인지는 얘길 하지 않았기 때문이다. 그 수익율을 난 Peter 오피스로 이동 후 그와 마주 앉았을 때 다시 물어봤다. Peter는 날 보며, 검지 손가락을 들어올렸다. “1%?”라고 나는 되물었다. 나는 그 때까지도 감이 없었다. 내 표정이 아무렇지 않은 듯 똑같은걸 보고 Peter는 내게 “하루에 1%가 넘어”라고 외치듯 말했다. 난 여전히 감을 못잡고 있었다. 아마 내 표정은 ‘아아 그렇구나’ 정도였던거 같다. Peter는 내 반응에 실망한듯 더 과장된 목소리와 큰 몸짓으로 내게 하루 수익율 1%가 얼마나 엄청난 건지 설명을 해줬다. “돈 10만불을 하루 수익율 1%로 1년에 250일 정도 매매를 한다고 했을 때 2년 뒤(500 거래일) 복리로 얼마가 되는지 알아?” 그는 내 대답을 기다리지도 않고, 바로 이어 “1,450만불 정도”라고 대답을 했다. 나는 그 때서야 “와 엄청난 수익을 올릴 수 있다는거내?”라고 맞장구를 쳤다. Peter는 여전히 내 반응이 맘에 들지 않는 듯 했다. “맞아! 2년 수익율이 14,000%가 넘게 되는거야!” 내가 당시 왜 그랬는지 모르겠지만, 난 그만큼 들뜬 마음은 들지 않았다. 난 여전히 차분했고, Peter는 그런 날 보며 약간 답답해 하는거 같았다. 그러고선 내게 맛있는걸 먹으러 가자며 뭘 먹고 싶냐고 물어봤다. 난 그런 Peter에게 “우리 동네 Rosa’s Pizza”라고 대답했고, Peter는 “그 피자집? 정말 피자가 먹고 싶어?” 라고 내게 되물었다. 난 “웅”이라고 짧게 대답했다. Peter와 난 그의 오피스를 나와 계단을 내려가고 있었고, 아랫쪽엔 Chris와 Mike가 우릴 기다렸는지 내게 무언가 말을 걸려고 했는데, Peter는 그들을 보며, “아니 아냐 안돼!”라고 말하며 엘리베이터쪽으로 곧장 내 등을 떠밀었다.
  3. 많은 마법사들의 도움으로 얼마 뒤 난 첫번째 메타트레이더 4용 자동 거래 봇을 만들수 있었다. 첫번째 봇이 나온건 몇일 됐지만, Peter와 David은 내게 코드와 알고리즘을 보호 할 수 있는 방안을 준비해달라고 요청했다. 메타트레이더 플랫폼은 자체 코드 편집기를 별도로 가지고 있다. 그래서 코드 전체를 전달해 컴파일해서 사용할 수 있는데, 난 그냥 간단히 컴파일 된 봇 파일만을 일단 포렉스 팀에 전달했다. 첫번째 봇은 대마법사 Chris와 그가 이끄는 퀀트 팀의 핵심 알고리즘이 탑재되었다. Gold 마켓 전용으로 최적화된 알고리즘과 자동 매매가 가능한 봇이었다. 즉 베틀스테이션의 마법사들의 관여없이 봇 혼자 사고 팔 수 있었다. 포렉스팀은 해당 봇을 위한 별도의 트레이딩 데스크를 만들고, 내가 전달해준 ex4 파일을 바로 테스트 운영해보기로 했다. 각 팀들의 흥분된 분위기와 달리 난 차분했는데, 과연 봇이 제대로 시장에서 작동할까 하는 의문이 계속 있었기 때문이다. 크라켄용 봇을 만들때와 마찬가지로, 이렇게 쉽게 봇을 만들수 있다는 점에서 못미더웠던거 같다. 커피의 매직?! 어쩌면 내 자신에 대한 믿음이 부족했던게 가장 큰 이유였을지도 모르겠다. Peter의 관점에서 보면, 그가 알고 있는 사람 중에서 내가 제일 개발을 잘하는 천재 개발자처럼 보이겠지만, 나는 실무에서 실제 천재 개발자들과 함께 일을 해왔고, 내 개발 실력은 그들과 비교해 터무니 없이 모자란다는걸 스스로 잘 알고 있었다. 그래서였을까? 난 봇이 제대로 작동해도 작동하지 않아도 걱정이 될 뿐이었다. 포렉스팀과 메타트레이더 봇을 만드는 동안 크라켄 온보딩도 끝났고, Taylor 팀에서도 크라켄 거래소 내 삼각 차익 거래 봇을 계속 테스트하는 중이었다. 다행히 Peter는 내가 포렉스팀과 우선 완전히 집중해서 첫번째 봇을 마무리 할 수 있도록 Taylor에게 다른 연금술사들을 고용해 내 밑에 두게 했는데, 그들이 우선 크라켄 봇을 최적화하면서 테스트하는 중이었다. 어느새 Peter 오피스엔 내 연금술 팀이 생겼고, 팀원도 한명 두명 늘어나고 있었다. 그즈음, 난 하루 일과 중 반나절을 Chris 팀과 함께 알고리즘 개발과 이론적 배경에 대해 연구하고 있었고, 우리는 Gold 거래용 봇 개발 이후에 휠씬 더 복잡한 영역의 포렉스 알고리즘 연구에 매진하고 있었다. Peter는 당시 주단위로 우리와 미팅을 가지면서 우리의 이론적 설명을 듣고, 대마법사들의 마스터답게 새로운 아이디어들을 추가해주었다. 그리고 세세하게 방향성을 잡아주었다. 또 필요한 전문 인력들을 바로 바로 충원할 수 있게 해주었다. 어느새 팀은 그렇게 조금씩 커지고 있었다. 당시 우리는 다양한 거래쌍이 존재하는 포렉스 마켓을 위한 추론 엔진을 만들고 있었다. 데이타와 지식을 결합 후 쿼리로부터 답변을 생성하는 추론 엔진 다이어그램 그렇게 우리는 뜨거운 한 여름을 나고 있었다. 열병이 난듯 뜨거웠던 내 머리는 Chris 팀과 보내는 시간이 길어지면서 점점 차가워졌고 샤프해지고 있었다. 그렇게 처음 봇을 전달한지 한주가 지났다. 그리고 월요일이 되었다. Peter에게 문자가 왔다. “오늘 사무실에 4시에 와줄 수 있어?” 라는 내용이었고, 난 오늘 3시에 Chris 팀과 미팅이 있으니 3시부터 Chris 팀과 아마 함께 있을꺼야라는 답장을 보냈다. Peter는 “그 미팅은 내가 취소할께 오늘은 4시에 와줘.”라고 다시 내게 문자를 보내왔다. 일정이 한시간 늦어져서 난 내 할일들을 좀 더 느긋하게 할 수 있었다. 남은 시간엔 그동안 연락이 뜸했던 주변 사람들에게도 연락을 하고 짧게 수다도 떨었다. 에어콘 바람은 시원했고, 커피는 진했다. 난 내가 좋아하는 음악을 들으며, 한가로운 한시간을 즐겼다.
  4. 내가 보낸 이메일에 답장이 온건 한시간 정도 뒤였다. Mike가 아닌 Taylor가 보낸 답장이었다. Taylor는 크라켄 온보딩 절차가 진행중이고, 빠르면 다음주에 모든 절차가 끝날거라고 했다. 그리고 그 이후 크라켄쪽 API 관련 담당자 2명이 우리쪽에 배정될거라고 했다. 그리고 내가 언급한 다른 고려할 부분들에 대해서 잘 알겠다고 적혀 있었다. 그 중, “가격쌍별(예를 들면, 비트코인-이더리움 또는 비트코인-에이다 등) 봇을 만들어 여러 PC에서 돌려도 결국 한 어카운트에 API 호출 제한이 있을 수 있다. 비슷한 문제로 봇을 가격쌍별로 나눠 운영해도 한 어카운트의 달러 밸런스는 하나이기 때문에 비중을 선택하는 알고리즘 또한 필요하다.” 이 부분에 대해 크라켄에 확인한 결과 온보딩 절차가 끝난 기업 어카운트의 경우 API 키를 무제한으로 만들수 있고, API 호출 리밋은 계정 단위가 아닌 생성된 API 단위라고 내게 업데이트 해주었다. Taylor는 이렇게 될 경우 내가 말한 몇가지 문제는 해결이 될 것이고, 실제 API 호출 제한 부분은 온보딩 절차가 끝난 후 크라켄쪽에서 호출 제한을 어떻게 늘려줄지 논의를 해보면 될꺼 같다고 했다. 그리고 언제 다시 볼 수 있냐고 물어왔다. 자신이 내쪽으로 오겠다며, 언제든 괜찮으니 앞으론 문자와 통화로 얘기하자는 얘기로 메일은 끝이 나 있었다. 나는 메일을 읽고, 크라켄 거래소용 차익거래 봇에 어카운트 밸런스의 비중 부분을 넣어야겠다는 생각을 했다. 만약 여러 API를 만들고 각 API를 사용한 봇들이 한개의 비트코인 거래 가격쌍으로 지정을 하면, 10개 API를 생성해서 각각 봇을 운영하면 그만이었다. 다만, 전체 밸런스를 기반으로 계산하는 방식에서 비중 방식 추가는 반드시 필요했다. 그러니까, 각 봇마다, 전체 밸런스의 10% 금액만을 사용해서 차익 거래 기회를 찾아 매매를 하게 하면, 한 어카운트에 속한 10개의 API를 사용해서 10대의 봇이 동시에 돌고 있어도, 상관이 없게 된다. 이렇게 하면, 여러개의 어카운트는 필요하지 않게 된다. 마찬가지 방법으로 어카운트 밸런스가 커져도 각 봇마다 비중 설정을 다르게 하면 수십대의 봇을 하나의 기업 어카운트에서 운용이 가능해진다. 여전히 다른 고려할 사항들이 남았지만, 그건 차차 방법을 찾아가면 될꺼 같았다. 난 Taylor에게 Mike와 함께 오늘 퇴근 후 보자고 문자를 보냈다. Taylor에게 바로 알겠다는 답장이 왔다. 그리고, 한시간 뒤 Taylor와 Mike가 내 사무실로 찾아왔다. 그 때서야 나는 우리가 따로 만날 장소를 정하지 않았다는걸 깨달았다. 그런데 주소를 어떻게 알고 찾아왔지?라는 생각을 할 때, 뒤이어 Peter의 얼굴이 보였다. Peter는 내게 자신이 보자고 할 땐 바쁘다고 하고서 Taylor와 Mike와 만날 시간은 있냐고 장난스럽게 내게 너스레를 떨었고, 난 별다른 대답을 하지 않은체 나갈 채비를 했다. 그리고 언제나 늘 편하게 얘길 나누며 식사를 할 수 있는 내가 좋아하는 레스토랑으로 향했다. 첼시에 위치한 Fig & Olive 레스토랑에 자리를 잡고 앉아 음식과 음료를 주문했고, Taylor는 곧 바로 일 얘기를 시작했다. 우선 크라켄 거래소의 온보딩 프로세스가 시작되었고, 아마 다음주면 모든 절차가 마무리 될 것이라고 했다. 회사 어카운트 개설과 별도로 Peter를 바라보면서 새로운 법인 설립에 대해 물었고 Peter는 곧바로 “지시했어 아마 내일이면 St. Vincent and the Grenadines에 법인 설립은 끝날꺼야. 다만 몇가지 라이선스 처리 등은 하루 이틀 더 걸릴 수 있을꺼야.”라고 대답했다. Taylor는 이 때 내게 이렇게 얘길 했다. “올 12월부터, 크립토 시장이 움직이기 시작할꺼 같고, 내년이 되면 그 움직임이 더 활발해질거 같아. 혹시 이전에 크립토 트레이드를 해봤어?” 나는 Peter를 한번 바라본 후 Taylor에게 “2014년부터 비트코인을 매수했고, 본격적인 트레이드는 2017년 초부터 해왔다고 대답을 했다.” Taylor는 무표정으로 나를 똑바로 바라보면서 담담하게 말을 했다. “지금 봇도 기본적으론 작동을 하는거 같아. 너가 언급한 몇가지 리스크를 해결한 봇을 2023년 12월 말까지 준비해줄 수 있어?” 나는 Taylor를 바라보면서 잠깐 생각을 했다. 그리고 Mike를 바라봤다. 둘 다 내 대답을 기다리고 있었다. 그 때 주문한 칵테일이 나왔고, Peter가 대화 주제를 그 때 바꿨다. 퀀트 마법사들을 투입해 포렉스 봇을 만드는거에 대한 내용이었다. Peter의 대화에 Mike만이 장단을 맞춰주고 있었다. 난 곰곰히 생각을 해보고, Taylor에게 대답을 했다. “웅 가능할꺼 같아. 그렇지만 호가 예측 알고리즘을 별도로 만들어야 할꺼 같아.” 나를 가만히 응시하고 있던 Taylor는 내 대답을 듣자마자, “웅 그건 내가 다른 연금술사들을 알아볼께.”라고 대답을 했고, Peter에게 “Jason 팀을 자기가 써도 되냐고 물었다.” Peter는 나를 한번 바라본 후 과장된 몸짓으로 Taylor에게 “필요한 모든 자원은 다 써도 된다.”고 대답을 했다. Peter는 내게 Jason 팀이 했던 일을 설명하기 시작했다. “우리같은 IB나 헤지펀드들이 Walmart 실적 예측을 하기 위해 과거 전통적으로 사용했던 방식은, 손님이 매장에 몇명이나 들어가는지 주요 거점 도시의 대표 월마트 매장에 사람을 보내 수동으로 카운트를 하는 방식이었어. 그 숫자를 보고 과거 데이타와 비교해 실적 예측을 했었는데, Jason 팀이 그걸 최첨담 방식으로 바꿨어.” 난 호기심을 보였다. “어떻게?” 내가 호기심을 보이자, Peter는 신나서 설명을 계속 했다. “이제 우리는 주요 리테일러들의 실적 예측을 위해 예전처럼, 사람을 보내 손님이 몇명이나 매장에 들어가는지 카운트 하지 않아. Jason이 실시간 위성 데이타를 활용해서 주차장에 들어오는 차량수를 카운트해서 실적 데이타를 예측할 수 있는 모델을 만들었거든. 심지어 차량이 주차장에 머무른 시간 등 여러가지 복합 모델을 활용해서 더 정교하게 예측할 수 있게 되었어. 이제 우리는 언제든 사무실에서 필요할 때마다 주요 리테일러들의 해당 분기 판매 실적 예측 데이타를 실시간으로 모델링 할 수 있어.” 온라인 커머스에서는 이런 접근이 휠씬 간편하다. 그런데, 오프라인에서 이런식으로 에측 모델을 만들 수 있다는 아이디어에 난 깜짝 놀랬다. “비가 오거나 눈이 오고, 해가 진 야간에도 데이타 추적이 가능해?”라고 나는 바로 이어서 물었고, Peter는 대수롭지 않게 대답했다. “대부분은 다 가능해. 구름이 잔뜩 껴서 주차장 자체가 가려지는 경우를 제외하면, 이런 경우는 다른 지역의 비슷한 규모의 매장 데이타를 활용해서 데이타를 교정하는데, 신기하게 오차 범위 이내로 정확하게 예측해.” 난 Peter에게 “이런 방식은 뉴스나 이런데서 한번도 들어보지 못했는데…”라고 얘길했고, Peter는 날 보며 “당연하지 이런게 머글 세계에 알려지면 안되지. 애플의 판매량 / 재고량 예측도 팍스콘 등 애플의 주요 조립 파트너들의 공장에서 매일 출발하는 컨테이너 수를 가지고 예측해. 이제는 다 이런식이야.” 그들은 세상을 내려다보면서 예측을 하고 있었다. 나는 이제까지 마법사들이 단순히 휴민트를 이용해 정보 수집 등을 하는 줄 알았다. 그런데 그게 아니었다. 그들은 세상 구석 구석을 살펴보고 있었다. 우리는 이런 저런 얘기들을 하면서 식사를 마쳤다. Peter는 Mike를 시켜 내가 계산할 틈도 없이 미리 식당에 들어올 때 카드를 식당 직원에게 건냈었고, 우리는 이제 일어날까? 하고 마음을 먹었을 때 계산서를 주고 받고 카드를 건네는 등등 기다리는 과정 없이 아주 자연스럽게 식당에서 걸어나왔다. Gansevoort Rooftop Peter는 우리 모두에게 Gansevoort 호텔 앞을 지나면서 이 호텔 라운지에 가서 칵테일이나 한잔 더 할까 물어봤고, 나와 Taylor는 동시에 괜찮다고 대답을 했다. Mike만 혼자 자기는 같이 갈 수 있다고 대답했는데, Peter는 잠깐 망설이다가 그럼 그냥 나중에 다 같이 가자고 했다. Peter는 헤어지기 전 내게 언제 한번 사무실에 잠깐 와줄 수 있냐고 물었다. 포렉스 대마법사인 David이 만나고 싶어하는데, 시간을 15분만 내달라는 얘기였다. 난 Peter를 바라보면서 “그래 다음주에 한번 들릴께.”라고 대답을 했다. 나도 모르는 사이 나는 그렇게 전혀 몰랐던 세상에 한 발자국 들어와 있었다. 그리고 새로운 무언가가 시작되고 있다는걸 느꼈다. 이 때만 해도 이게 어떤 시작일지 전혀 몰랐다. 그래서였을까? 당시엔 설레임이나 흥분 같은 감정은 들지 않았다. 그냥 계속 무언가 귀찮은 일이 생긴다고 느끼고 있었다. 그렇지만 이 시작이 내 돈에 대한 기존에 가졌던 일반적인 사회 통념을 송두리체 바뀌는데는 한달이 걸리지 않았다.
  5. 아침 일찍 Peter에게 전화가 왔다. 그는 출근 전에 잠깐 만날 수 있냐고 물어왔다. 예전엔 습관적으로 그가 만나자는 얘기를 할 때면, 나는 이 핑계 저 핑계로 거절을 했었다. 만나면 내가 잘 모르는 세계에 대한 얘기만 했기 때문이다. 처음 몇번은 괜찮지만, 현실감 없는 그들, 마법사들의 세상 얘기는 평범한 머글이 듣기엔 너무 허황되게 들릴 때가 많았다. Peter와 어울린다고 내가 마법사의 일원이 되는 것도 아니었다. 나이 들면 그냥 오가다 만나 아무말 없이 마주 앉아 소주 한잔 하는 편한 친구가 그래서 더 소중하다. Peter에겐 내가 그런 존재였지만, 내게 Peter는 부담스러운 친구였다. 매번 계산하는 Peter 대신 한번은 내가 사겠다고 했을 때, 두명 식사비가 팁 포함 800불 정도 나왔을 때도 그랬다. 그런데 해킹 사건 이후 생긴 마음속 빚 때문인지 그의 요청을 거절하기가 쉽지 않았다. 나는 알겠다고 대답을 한 후 Penn Station 근처 로컬들만 아는 간판도 없이 빵과 커피를 저렴하게 파는 35가에 있는 중국 카페에서 만나자고 했다. 맛은 딱, 한국의 인스턴트 커피 맛이다. 아침에 당 충전하기 딱 좋다. Penn Station에서 두 블럭 떨어진 곳인데, 아주 작은 공간에 인테리어도 안되어 있고 심지어 불도 안켜고 영업을 해서 관광객들은 절대 찾지 못할 그런 장소였다. Peter 같은 대마법사들이 주로 이용하는 Fancy 한 곳이 아닌 평범한 머글들이 아침 출근길에 들려 부담없이 커피와 빵을 사는 그런 곳이었다. 약속 장소로 향하면서도 밤세 고민한 API 호출 제한 관련 해결 방안을 생각하고 있었다. 그렇게 생각에 잠겨 걷고 있는데 뒤에서 누군가 와락 날 껴안았다. 깜짝 놀라 뒤를 보니 Peter 였다. Peter와 그렇게 카페 앞에서 만나, 달달한 중국식 아이스 커피를 마시면서 사무실로 향했다. 걷는 동안 그는 대뜸, 자신이 날 전혀 배려하지 않은거 같다며 얘길 시작했다. 그는 새로운 회사 설립을 할 것이고, 그 회사의 공동 창업자와 CTO로 함께 해달라고 내게 얘길했다. 나는 Peter의 제안에 1초도 생각하지 않고 거절 의사를 밝혔다. “Peter, 내가 할 수 있는 일이 아닌거 같아. 그리고 난 지금 일을 줄여나가고 있어.” 그러자 Peter는 “아냐 너는 이미 전문가야. 우리 함께 하자. 복잡하게 생각하지마. 그냥 너랑 나랑 공동 창업자가 되고 너가 CTO를 맡아주면 돼. 형식적인 회사 설립야. 개발하는게 어렵고 부담되면, 개발 하지마. 대신 개발팀을 맡아줘. 그리고 너가 기술쪽 관련 업무만 커버 해줘” 나는 어제 Taylor에게 다른 거래소용 차익 거래 봇에 대해 검토해달란 얘기에 난색을 표했던게 생각 났다. 그 때 Taylor는 내 입장을 배려하지 못했다며 사과를 했었는데, 내가 나간 후 Peter와 그 부분에 대해서 얘길 나눈 듯 싶었다. 나는 이 얘기를 Peter에게 하며, 공동 창업자든 CTO든 괜찮다고 얘길 하면서 다른 거래소 봇도 크라켄 차익 거래 봇이 어느 정도 정리가 되면 리뷰를 해볼테니 걱정하지 말라는 대답을 했다. 그런 내게 Peter는 내게 “아니 그걸 그럼 그냥 해줄려고? 난 그런거 싫은데, 난 최고랑 함께 일하고 싶어. 너는 내가 아는 최고의 연금술사야. 내가 몇일 사이에 준비를 할테니 그럼 그 때 다시 얘기하자. 그리고 나랑 함께 St. Vincent and the Grenadines에 한번 같이 다녀오자. 오케이?!”라고 얘길 했다. 얘기를 듣던 내가 “St. Vincent and the Grenadines?”라고 묻기도 전에 Peter는 도망가듯 나와 반대 방향인 횡단보드를 뛰어 건너가버렸다. 그렇게 짧고 정신없게 Peter를 만난 후 난 다시 크라켄 봇에 대해서 생각을 하고 있었다. 그리고 내 자리에 앉아 어제부터 밤세 작성한 코드를 다시 테스트했다. 제일 처음 생각한 방법은 그냥 한번의 차익 거래를 찾은 후 그냥 쿨 타임을 몇 초 갖게 하는거였는데, 너무 날림으로 쓴 코드 같았다. 그래서 우선 순차적으로 차감되는걸 카운팅 한 후 다시 차증되는 딜레이 시간을 계산했다. 처음부터 한 사이클 매매를 완료하기 위해 몇번의 API 호출이 필요한지를 계산한 후 이 횟수 자체를 처음부터 빼고 카운팅 하는 방식을 택했다. 중간에 쿨타임은 가변적으로 발생할 수 밖에 없지만, 그나마 정해진 시간에 더 많은 차익 거래 기회를 찾을 수 있었기에 이게 차선책이라고 생각했다. 하나의 어카운트에 정해진 API 호출 리밋이 있었기에, 제일 처음 생각한 여러 PC에서 하나의 가격쌍만을 확인하는 차익 거래봇을 각각 돌리면 좋겠다는 생각을 버리고 나니, 오히려, 많은 어카운트들이 필요하다는걸 깨닫게 되었다. 연금술의 비밀에 접근할수록, 또 다른 장애물이 계속 생기는 그런 기분이 들었다. 체스 고수와 지도 체스를 두는 그런 기분. 다만 다른 점은, 내가 한 칸 나아갈 때마다 가르침이 아닌 생각지 못한 공격이 들어온다는 점이었다. 시간은 어느새 점심 시간이 훌쩍 지난 오후 2시 30분이 되어 있었다. 나는 Taylor와 Mike에게 업데이트 한 봇을 첨부하고 어제 얘기한 생각해 볼 문제점들에 대해 리스트를 이메일로 작성하고 있었다. 가격쌍별(예를 들면, 비트코인-이더리움, 비트코인-에이다 등) 봇을 만들어 여러 PC에서 돌려도 결국 한 어카운트에 API 호출 제한이 있을 수 있다. 비슷한 문제로 봇을 가격쌍별로 나눠 운영해도 한 어카운트의 달러 밸런스는 하나이기 때문에 비중을 선택하는 알고리즘 또한 필요하다. 소액인 경우 위험도가 덜하지만 큰 금액인 경우 거래소 차익거래의 경우 위험이 따른다. 시장가로 해당 코인을 매수하게 되는데, 해당 시장가 기준 매도 호가가 없을 경우 매수 가격이 위로 올라가게 된다. 시장 변동성이 커졌을 때, 가격 변동 타이밍을 맞추지 못한체 시장가 매수가 될 수 있다. 이 때, 실제 차익 거래를 발견했을 때의 각 매수 가격보다 낮은 가격이면 문제가 없지만 더 비싼 가격일 땐 매수 주문이 안될 수 있다. 이 경우 API 호출을 계속 하게 되면서 차익 거래 매매가 진행중이지만 API 호출 제한에 걸릴 수 있게 된다. 가장 큰 문제는 달러로 비트코인을 매수한 후, 다음 알트 코인 매수가 실패했을 경우이다. 이 경우, 이미 달러가 비트코인으로 바꿔진 상태인데, 삼각 차익 거래를 위해 리셋을 해야 한다면, 다시 비트코인을 달러로 매도해야 한다. 이 경우 비트코인 가격 변동으로 인해 매도 시점에서 손해가 발생할 수 있다. 이런 저런 경우의 수를 적어 함께 보냈다. 대충 이 정도 예상되는 문제들을 보내면서, 해결 방법을 고민해보겠다고 적었다. 그리고 다른 거래소용 차익 거래 봇을 만든다고 해도 위와 같은 유사한 문제들이 발생할 수 있다고 코멘트 했다. 우선 새로 업데이트 한 크라켄 봇을 돌려보고 다른 문제가 있으면 알려달란 말로 메일을 마무리했다. 그리고 난 방금 내가 작성한 문제점들을 어떻게 해결할 수 있을지 리스크는 어떻게 관리할 수 있을지 고민하기 시작했다.
  6. Peter에게 걸려온 전화를 보면서, 둘 중 하나겠구나라는 생각이 들었다. 실제 작동하거나 아니거나. 나는 곧장 Peter의 전화를 받았다. “봇이 작동 하는거 같아. 근데 뭔가 계산에 문제가 있는거 같아.” Peter의 목소리는 그 특유의 차분함을 유지하고 있었다. 이어서 Peter는 차분하게 설명을 했다. 아침에 Mike가 별도로 PC를 세팅해서 봇을 실행했는데, 실제 차익 거래 기회를 봇이 잡았고, 거래까지 두어번을 마친거 같아. 근데, 거래 이후 밸런스가 오히려 조금씩 줄어든걸 보고 우선 봇 실행을 멈췄다는 얘기였다. Taylor 팀이 해당 거래 내역에 대해 크라켄 어카운트에 들어가서 조사를 해봤고, 수수료 계산이 잘못되었다는 것을 발견했다고 한다. 자세한 내용은 Mike가 이메일로 정리해서 보낸다고 하니까, 나중에 한번 봐달라는 얘기였다. 우선 각자 오전 일정을 보내고 오후에 다시 통화를 하기로 했다. Peter와 전화를 끊고 나니 Mike에게 이메일이 와있었다. Mike는 내 코드를 리뷰했고, 크라켄의 Fee를 잘못 계산했다고 얘길 했다. 실제 내가 계산한 방식에 오류가 있었는데, 그 부분은 차치하더라도, 나는 크라켄의 Fee 스케줄에서 Maker Fee를 기반으로 계산을 했다. 크라켄의 Maker Fee는 0.16%이다. 그런데, 차익 거래 봇은 거래 기회를 확인 후 바로 시장가로 매수를 해야 했기 때문에, Taker Fee인 0.26%가 붙는게 맞는 계산이었다.(부끄럽지만, Maker Fee와 Taker Fee 차이도 당시엔 구분을 하지 못했다.) 즉 3번의 거래에서 매번 0.16% x 3 = 0.48%가 아닌 0.26%씩 3번의 Fee가 붙는거였다. 실제로는 약간 차이가 있지만, 그러니까 결국 0.78% Fee가 붙게 된다. 차익 거래에서는 적은 수익이라도 차익 거래 기회를 발견해서 매매를 계속 일으키는게 중요하기 때문에, Mike는 실제 지정 수익율을 작게 넣었는데, 실제로는 지정 수익율보다 매매 수수료로 나간 비용이 더 컸기 때문에, 거래가 진행될수록 밸런스가 조금씩 줄어든거였다. 나는 해당 내용을 확인 후 빠르게 Fee 계산 방식을 업데이트 하고, 자세한 거래 내역이 로그로 남을 수 있도록 코드를 업데이트 했다. 그리고 나서, 다시 해당 봇을 Mike에게 보냈다. 5분쯤 지났을까? Mike에게 다시 전화가 왔다. 이번엔 아까 걸려온 부재중 전화를 보고 연락처에 등록을 해두었기 때문에 바로 전화를 받았다. Mike는 Peter와 달리 흥분한 목소리였다. Mike는 손실이 나긴 했지만 봇이 정말 작동한다는 점에 조금 흥분한거 같았다. Mike는 내가 수정해서 보내준 봇을 받았고, 바로 다시 테스트를 해보겠다고 대답을 했다. 오후에 Peter에게 전화가 왔다. 아직 실제 수익이 나는 차익 거래를 봇이 수행한건 아니지만, 회사의 많은 마법사들이 관심을 보이고 있다고 했다. 그 중 포렉스 트레이딩 데스크쪽 대마법사가 따로 미팅을 하길 원한다면서 언제 시간이 되는지 알려달라고 했다. 나는 사실 마법사들과 미팅하는데 상당한 피로감을 느끼고 있었기 때문에, 짐짓 망설였다. Peter는 날 달래듯, 너가 바쁘면 할 수 없지만, 오늘 저녁 먹으면서 얘길 할 수 있는지 물어왔다. 밥 먹으면서 얘기를 하면 휠씬 더 많이 시간을 뺏기기 때문에, 그럴거면 그냥 내일 사무실에서 만나자라고 대답을 했다. Peter는 알겠다고 얘기를 하면서 이어서, 어쨌든 작동하는거 같아서 기쁘다며 내게 대단하다라고 얘길 했다. 기쁜 마음보다는 그 때서야 엄청난 피로감이 몰려오는걸 느꼈다. 생각해보니 몇일 동안 잠을 거의 제대로 자지 못했다. 일단 오늘은 일찍 자야겠다는 생각뿐이었다. 퇴근 후, 그렇게 기절하듯 난 잠들었고, 다음 날 아침, 아내는 이런 최근 내 모습에 걱정이 되는지 괜찮냐고 물어왔다. 난 “괜찮아 요즘 새로운 일을 사이드로 하느라 그런건데, 아주 재미있어!”라고 대답하며 아내를 안심시켰다. 오전 10시 20분경 Mike에게 전화가 왔다. 봇은 정상적으로 작동했고, 이번에 $6 정도 실제 수익이 났다며, 매우 흥분한 목소리였다. 그런데, 그 이후 계속 더 높은 수익을 내는 차익 거래 기회들을 봇이 계속 찾아내고 있는데, 에러가 난다는 것이었다. 에러 내용을 보고나서, API 호출에 대해 크라켄에 제약이 있다는걸 바로 알 수 있었다. 나는 Mike에게 거래소 API 호출에 제약이 있는거 같다는 코멘트를 줬고, Mike는 우선 크라켄에 자신도 연락을 해보겠다며 전화를 끊었다.
  7. “흑마법사들, 너흴 찾을 것이다. 찾아내서, 죽여버릴 것이다.” 라고 말하고 싶었지만 난 그런 능력이 없다. ㅠ 해킹 사건의 흑마법사들을 찾아 응징하진 못했지만, Greg의 보고서로 우선 나와 Peter는 마음속에서 해당 사건에 대해 조금은 마음을 내려놓게 되었다. 그래도 여전히 내 마음 속 한켠에 찜찜함은 남아 있었다. 죄책감이었을까? 어쨌든, 이런 마음들이 당시 나에게 큰 동기부여가 되었던거 같다. 아마 이런 기분이지 않았을까? 보여줄께! 불끈! 지금 생각해보면, 나를 늘 환대해주고 믿어주는 친구에게 큰 실망감을 준거 같았고, 그걸 만회하고 싶었던거 같다. 나는 그렇게 Mike와 Taylor에게 대략적인 거래소 내 삼각 차익 거래에 대한 설명을 듣고, 개발을 바로 하기 시작했다. 지금 생각해보면, 개발 과정이 어렵진 않았던거 같다. Peter의 요청에 따라 나는 크라켄 거래소에서 사용할 수 있는 삼각 차익거래 봇을 제일 처음 만들기로 했다. 크라켄 거래소는 거래량도 많고, 미국에서 코인베이스 다음으로 큰 거래소였다. API 지원도 괜찮아 보였고, 무엇보다 기술 문서 정리가 잘 되어 있었다. 그리고, 삼각 차익 거래를 위한, 비트코인 마켓과 달러 마켓 모두 있었다. 상장된 알트 코인들도 많았다. 나보다 더 뛰어난 개발자분들은 지금까지의 글만 읽고 이제 삼각 차익 거래 봇을 충분히 만들 수 있을거란 생각이 든다. 왜냐면, 첫번째 초기 크라켄 봇을 (내 일을 하면서) 단 3일만에 만들었기 때문이다. 참고로 Python으로 만들었다. 핵심은 Mike에게 설명 들은 부분이 전부였다. 그리고 크라켄은 삼각 차익 거래 봇을 위해 필요한 모든 API가 있었다. 나는 Mike와 Taylor에게 설명 들은 내용을 바탕으로 거래 기회를 찾는 로직을 우선 만들었다. 그러면서 정말 수익이 나는 거래 기회가 있을까 하는 생각을 계속 했던거 같다. 지금은 비트코인 가격이 많이 올랐고 알트코인의 시장 변동성도 더 커졌지만 당시만 해도, 가격 변동이 크지 않을 때였다. 핵심 비밀? 알고리즘? 그런건 없었다. 그냥 산수였다. 원금(USD) 밸런스를 확인한다. 그 돈으로 비트 코인을 몇 개 살 수 있는지 계산한다. 비트 코인으로 미리 지정한 알트 코인 중 하나를 몇 개 살 수 있는지 계산한다. 해당 알트 코인을 다시 달러마켓에서 매도한다. 매도했을 때 금액에서 매수 수수료를 제한다. 계산이 끝났을 때 금액이 처음 원금 밸런스 기준 내가 정한 수익율 이상인지를 확인한다. 이 동일한 과정을 추가로 지정한 몇개의 다른 알트 코인에서도 동일하게 수행한다. 수익이 나는 거래 기회를 찾았을 땐, 해당 거래를 순차적으로 진행한다. 밸런스가 조금씩 늘어난다. 다시 1번부터 반복: 차익 거래 기회 탐색 > 발견 > 매매 여가까지 코딩을 하고 나니, 이제 슬슬 실제 유저 API를 넣어서 밸런스를 확인하고, API를 통한 매매 테스트를 돌려봐야겠단 생각이 들었다. 우선 크라켄 거래소에 접속했다. 나는 코인베이스만 주로 사용했기 때문에 다른 거래소 접속은 오래간만이었다. 크라켄 사이트는 좋아보였다. 개인 어카운트를 열기 위해 가입을 시도했다. 왓! 크라켄 거래소는 미국내에서 2개 주(State)에 거주하는 사람은 가입을 받지 않고 있는데, 그 중 하나가 뉴욕주였다. 다른 하나는 시애틀이 있는 워싱턴주. 뉴욕주는 은근히 이런 부분에서 까다롭다. 월가 때문인거 같다. 그만큼 금융쪽 사람이 많아서일까? ‘아니 Peter는 왜 크라켄을 추천한거지? 나는 주소지가 뉴욕주라서 어짜피 가입도 할 수 없는데, Peter와 동료들도 마찬가지 아닌가? 아, Peter는 주소지가 뉴저지인가?!’ 시계를 확인해보니, 너무 이른 새벽 시간이었다. 난 크라켄의 실제 유저 API가 필요했다. Peter가 출근해서 볼 수 있게, 이메일을 보내놨다. 그런데, 정말 이렇게 만든 봇이 돈을 벌 수 있는걸까? 너무 쉽지 않아? 라는 생각이 계속 들었다. 크라켄 유저 API로 바로 오늘 테스트 해봐야겠단 생각을 했다. 그리고, 잠시 뒤 Peter에게 문자가 왔다. 오늘 사무실로 와줄 수 있냐는 내용이었다. 나는 Peter가 함께 스크린을 보면서 테스트 해보길 원한다고 느꼈다. 그치, 최근에 사건도 있었는데, 아무래도 Account API를 막 이메일 등으로 알려주기는 껄끄럽겠지?! 라는 생각을 하고 Peter에게 그러겠다고 답장을 보냈다. Peter는 다시 내게, 오후 3시 30분이 괜찮냐고 문자가 왔고, 나는 그러겠다고 답장을 보냈다. 이어서 나는 Peter에게 크라켄에서 API 생성 및 권한 관련 URL을 찾아 Peter에게 보내줬다. “미리 확인하고 준비해줘”라는 내 문자에 Peter는 “Roger”라고 답장이 곧바로 왔다.
  8. 설명을 들으면서 이해한 부분도 있었고 질문들도 생겼다. Peter와 Taylor의 시선을 느끼고 난 질문을 하기 시작했다. Mike는 내 질문을 끝까지 다 듣기도 전에 대답들을 하기 시작했다. “그런데, 실제 이런 차익 거래 기회가 있어?” “웅 많아, 그리고 가격 변동성이 커지면 더 많아질거야. 가령, 비트코인 반감기가 내년에 있으니까, 올 연말부터 2025년까지는 시장에 변동성이 휠씬 더 커질거고 이런 차익 거래 기회는 급격하게 늘어날꺼야.“ 난 여전히 이해가 가지 않았다. “아니 왜 다 이렇게 하지 않는거야?” 마이크는 혼자 식사를 마치지 못해서인지 음식을 씹으면서 설명을 이어 나갔다. “코인베이스(북미 지역 1위 거래소)는 차익 거래 기회를 거래소에서 직접 대응하는거 같아. 그래서 코인베이스에서는 수수료를 제하고 나면 이익이 나는 차익 거래 기회를 거의 찾을 수 없다는게 이 바닥 풍문이야. 그런데, 다른 거래소들은 여전히 많아, 예를 들면 대형 거래소인 크라켄, 바이낸스 같은 곳만 해도 차익 거래 기회가 여전히 많아.” “리스크는 없는거야?” “전혀, 왜냐면, 차익 거래는 수익이 나는 기회를 찾았을 때만 일괄 매매를 체결하는 방식이니까.” 이 때 Taylor가 추가 설명을 했다. “하나의 Pair로만 차익 거래 기회를 찾는다면 그 기회는 많지 않을꺼야, 하나의 페어는 가령, USD > 비트코인 > 이더리움 > USD로만 한정하는거지. 그렇기 때문에 CEXs(중앙거래소 기반) 차익 거래봇은 더 많은 Pair들에 대해서 초단위 이하로 계산을 계속 해서 기회를 찾아야 해. 가령, USD > 비트코인 > 다른 수많은 알트 코인들 > USD인 경우에는 휠씬 많은 차익 거래 기회가 있어.” Peter도 말을 보탰다. “게다가 거래소 차익 거래의 경우 이체하거나 할 때 2FA 등이 있기 때문에 DEXs 보다 휠씬 안전할 수 있겠다. 그치?!” 순간 나는 해킹 당했다는걸 전해 들은 그때의 그 순간이 떠올랐고 눈쌀을 찌푸리며, Peter를 바라 보았다. Peter는 그런 나를 보고 미안하다는 제스쳐를 보였다. 나는 여전히 이해가 가지 않았다. 내가 크립토 관련 뉴스를 관심있게 안본지 오래되었어도, 이런게 가능하다면 왜 사람들이 하지 않는거지? 코인 관련 유튜버 등도 이런 얘길 하는걸 본적이 없다. 이런 세상이 있었어? 라며 의아해하는 내 표정을 봤는지, Taylor가 말을 이어갔다. “우선 거래소에 USD와 비트코인 페어 마켓이 각각 있어야해. 예를 들면 크라켄 같은 곳은 우리가 봇이 있다면, 바로 사용이 가능할 수 있어. 크라켄이 바로 USD 마켓과 비트코인 마켓이 동시에 있거든” 난 애써 참고 있었던 질문을 했다. “그런데, 왜 다른 플레이어들은 이런걸 안해? 리스크도 없고, 말 그대로 돈 복사하는 방법인데?”라고 질문을 했다. Mike는 그런 내게, “많이 모를걸, 비밀은 아니지만 그렇다고 누구나 다 아는 내용은 아니야. 주변에 암호화폐 투자로 큰 돈을 번 머글들이 있잖아? 그런 머글들도 이런 차익거래가 있다는 건 잘 모를거야. 기본적으로 매매를 통해 수익을 낸다고만 생각하니까. 그리고 이런 방식으로 실제 수익을 내는 마법사나 연금술사들이 있다면, 이런 얘기를 막 하고 다닐까? 내 생각엔 그러지 않을꺼 같아. 이런 거래 기법에 대해서 얘기를 방송이나 뉴스에서 얘기할 순 있어. 그렇지만 그걸 또 만들어 볼 생각을 할 수 있는 사람은 적지. 우리같은 마법사들도 이론은 알지만, 이걸 만들 수 있는건 연금술사니까”라고 말을 했다. Taylor가 다시 얘기를 했다. “고성능 PC에서 밀리초 이하의 단위(마이크로 초, 나노 초)로 이런 거래 과정들을 모든 알트 코인 대상으로 계산해서 차익 거래 기회를 찾는게 관건야. 왜냐면, 차익 거래 기회를 찾은 시점과 매매 시점의 가격에 차이가 생기면, 실제 수익이 나는게 아니라 손실이 날수도 있거든. 그러니까 100% 안전하기 위해서는 거래 기회를 찾는 즉시 순차적으로 매매가 이루어져서 확정 수익이 나게 해야 할거야? 이 모든게 밀리 초 이하의 시간 단위에서 끝나야하고, 변동성이 커질 때는 0.1초 사이에 가격은 위 아래 어느쪽으로도 바뀔 수 있으니까. 할 수 있겠어?” 라고 내게 물어봤다. 난 이전에 이미 한차레 큰 실수를 했기 때문에, 그 자리에서 대답을 바로 하지 못했다. 대신 “그래 대충 알겠어. 우선 조사를 더 해볼께”라고 대답을 했다. 정말 리스크는 없고 돈을 벌 수 있는 비밀이 있다. 그 비밀을 어딘가에서 들어봤을수는 있다. 그렇게 비밀은 소문이 되고 괴담이 된다. 일부 머글은 작동하지 않는 연금술로 사람들에게 사기를 친다. 비밀이 비밀인 이유는 그 비밀을 지키는 사람들이 있기 때문이다. 어쩌면 내가 오늘 계속 물어본, “그런데 왜 다른 플레이어들은 안하는거야?”에 대한 정확한 답변은, “너가 단지 모르는 비밀이기 때문”이다. 내가 모르는 세상이 있었다.
  9. 그 날 이후, 나는 매일 1시간에서 2시간여 동안 Peter와 그가 소개해준 마법사들에게 마법의 기초 등을 배울 수 있었다. 배경 지식이 거의 없었던 나는 제일 처음엔 들어도 무슨 말인지 전혀 감을 잡지 못했다. 그래도, Peter와 동료 마법사들은 쉬운 예로 내게 설명을 계속 해주었다. Peter와 나는 처음 우리가 해킹 당한 300만불짜리 DEXs 차익거래 봇과 유사한 봇 개발을 목표로 잡았는데, 관련 기술과 배경 지식을 따라 공부를 하다보니, 단기간에 내가 만들기는 어렵겠다는 결론을 내렸다. “내가 한번 만들어볼께”라고 당차게 대답했던 내 모습이 떠올랐고, 부끄러움을 느꼈다. 때때로 자신감만으로 모든 세상일이 해결되는건 아니다. 나는 Peter에게 이 부분에 대해서 솔직하게 얘기를 꺼냈다. Peter는 직접 만나서 얘기하자며 나를 대마법사 회관 중 한 곳인 AMEX 뉴욕 지부 빌딩 앞으로 불렀다. AMEX 또한 일반 머글들의 생각과 달리 품고 있는 주문 스펠이 있었다. AMEX 뉴욕 지부 빌딩은 호그와트 익스프레스를 탈 수 있는 그랜드센추럴 터미널 근처에 있었다. 빌딩 안으로 들어갔을 때 Peter가 날 반갑게 맞이해줬고, 그와 함께 난 마법사들을 위한 센추리온 라운지로 올라갈 수 있었다. Peter는 날 이런 저런 이유로 자주 보고 얘기할 수 있다며 좋아했고 잠시 뒤 우리는 머글들은 들어올 수 없는 AMEX 빌딩의 숨겨진 장소에 도착했다. ZACH GRIFF/THE POINTS GUY 다른 마법사들은 거의 보이지 않았다. 우린 입구에서 안내를 받아, 크라이슬러 빌딩이 보이는 창가쪽 자리에 앉게 되었다. ZACH GRIFF/THE POINTS GUY Peter와 단 둘이 만나는 자리인줄 알았는데, 우리가 자리를 잡고 앉은 후 후드티를 입은 애띤 얼굴의 마법사 2명이 동석했다. 그 중 한명은 지난번 meju에서 인사를 했던 Taylor라는 이름의 마법사였고, 다른 한명은 Taylor와 함께 일하는 Mike라는 이름의 마법사였다. 우리는 DEXs 차익거래봇을 개발하는데 들어가는 기간과 비용 등에 대해 논의를 먼저 시작했다. 그리고 나는 이 봇을 만들기 위해서 여러가지 비용과 그에 따른 기간이 길어질 수 있다는 부분에 대해서 얘기를 먼저 했다. 그 때 Taylor가 자신이 아는 퀀트 마법사면서 연금술사인 친구가 있는데, 그 친구가 얼마전에 2달여만에 DEXs 차익거래 봇으로 3,200여만불을 벌었다는 얘기를 담담하게 했다. Peter는 시드머니가 얼마였는지 물어봤고, Taylor는 “$0, Flash Loan 방식의 차익거래봇이었어. 그래서 수수료로 나간 비용만 1,000만불이 넘었어.”라고 대답했다. 그러니까 총 수익은 4,000만불이 넘는거였다. Peter는 Taylor에게 “그 마법사를 한번 데리고 올 수 있어?”라고 물어봤고, Taylor는 아주 담담하게 “Okay”라고 짧게 대답을 했다. 평범한 머글인 나는, 이 대화를 들으면서 ‘이런게 정말 가능한거야?’, ‘그 친구가 조인하면 내가 할 일은 없어지는거 아닌가?’ 하는 생각들과 함께 ‘그래 이 세계에서 지금이라도 발을 빼는게 좋을지도 몰라’라는 생각을 동시에 하고 있었다. 이어서 Peter는 Taylor에게 CEX 차익거래 개념에 대해서 설명을 해줄 수 있냐고 물어봤다. Taylor는 함께 데리고 온 Mike에게 눈짓을 줬고, Mike는 ‘이제 내 차레군.”이라는 어깨짓을 한번 하고서 설명을 하기 시작했다. 설명을 시작하려는 Mike에게 Peter는 아주 쉬운 설명과 예제로 설명을 하고, 전문용어 등을 사용하지 말라고 주문을 했다. 아마 날 배려해서였을거다. 사실 CEX 차익 거래 설명은 어렵지 않았다. 우선, 거래소(바이낸스, 업비트, 크라켄, 코인베이스 등)에 달러를 집어 넣는다. 그리고 봇은 DEX에서와 마찬가지로 차익 거래 기회를 찾는다. 봇은 끊임없이 수익이 나는 거래를 찾기 위해 멈추지 않고 계산을 한다. 가령, 이런식이다. 먼저 봇은 USD(=USDT, USDC)로 비트코인을 샀을 때 몇개의 비트코인을 살 수 있는지 계산한다. 그리고, 그 비트코인으로 다른 알트 코인을 얼마나 살 수 있는지 동시에 계산한다. 그 이후 알트 코인을 다시 USD로 매도 했을 때 얼마인지 계산한다. 각각의 거래 수수료(거래소에서 사고 팔 때 붙게 되는 수수료)를 제하고 남은 금액이 처음 비트 코인을 매수했을 때 비용보다 큰지 적은지를 비교한다. 크다면 수익이 나는거고 적다면 손해를 보는거다. 즉 이 3단계의 모든 거래를 수행하는걸 전제로 수익이 나는 거래 기회를 찾았을 때만, 이 거래를 순차적으로 체결한다. 한번의 거래가 끝나면, 밸런스에 추가 수익이 더해지게 된다. 이 과정을 수행하는데 1초도 걸리지 않아야 한다. 이렇게 봇은 24시간 거래소에서 계속 차익 거래 기회를 찾고, 찾은 기회에만 매매를 수행한다. Mike는 벌써 3번째 고급 냅킨 펼쳤고 계속 설명을 이어갔다. “즉 USD로 비트코인을 먼저 산 후, 이 비트코인으로 이더리움이나 다른 알트 코인 등을 매수한다. 그리고 다시 해당 알트 코인을 다시 매도한다. 이 때 거래 수수료를 제하고 수익이 일정 부분 이상 나는 경우(차익 거래 기회)에만 봇이 일괄 매매 체결을 하면 된다.” 여기까지 설명을 마친 Mike는 다시 자기 앞에 놓인 음식을 먹으려고 펜에서 포크로 바꿔 잡으면서 우리를 보면서 “Any questions?”라고 질문을 했다. Peter와 Taylor는 날 동시에 바라봤다.
  10. 배경지식이 너무 부족하다는걸 스스로 알고 있었기 때문에, 여전히 마음 한 곳에 불안감이 가득했다. 무언가 시작하기 전 조금 더 공부를 해야겠단 생각을 했다. 추가로 관련 아티클들을 찾아보고 깃헙에도 기웃거리면서 공부를 했다. – The Arbitrage System on Decentralized Exchanges – ALT: Aggregate Liquidity Technology – Arbitrage in Cryptocurrency: A Survey – On the Implementation of a Blockchain-Assisted Academic Council Electronic Vote System – Towards Secure and Trustworthy Flash Loans: A Blockchain-Based Trust Management Approach – The Flash Loan Attack Analysis (FAA) Framework—A Case Study of the Warp Finance Exploitation – Trade or Trick? 당시 읽고 실제 많은 도움된 논문들 중 일부 대략적인 탈중앙화 거래소에서의 차익거래에 대해 공부하고 나서, 나는 주말에 AlchemyKeyMaster.zip 파일의 압축을 풀었다. 그리고 폴더 구조와 루트 폴더의 파일부터 리뷰를 시작했다. 사실 이 이야기의 모든 시작은 이 지점에서 시작되었다. 내가 그 때 끝까지 리뷰를 고사 했다면, 압축을 풀지 않았다면, 메일을 그냥 무시했다면 어땠을까? 내가 그 때 끝까지 거절했다면, 어땠을까… 봇은 자바스크립트와 타입스크립트, 이더리움 자바스크립트 API인 web3.js, 솔리디티 등으로 작성되어 있었다. Node Modules 폴더는 일단 제외했다. 물론 위변조 된 파일이 있을 수 있지만, 나중에 Diff 첵업을 하면 쉬운 문제라고 생각했다. 그러고 나서 따져보니, 총 85개 파일만이 남았다. 파일 사이즈로 따지면 3.66MB였다. 대충 따져보면, 1바이트 당 1불의 가치. 리뷰를 한 과정은 특별한게 없었다. 다만, 이번 리뷰는 이 개발자(회사)가 작성한 코드를 내가 정해진 방법들로 확인하면서 Side Effect나 오류 또는 개선점을 찾는 목적이 아니었다. 무언가 숨겨진 백도어 등이 있는지를 찾는게 목적이었다. 그래서 제일 처음 나는 URL 하이재킹이나 타이포 스쿼팅을 면밀하게 리뷰했다. 그리고 나서 메타마스크를 연결하고 더미 지갑 주소들을 통해 실제 봇 실행을 하면서 이 애플리케이션이 어떻게 작동하는지 로그를 살펴보면서 파일들을 다시 살펴봤다. 지루한 시간이었다. 문제는 내가 이런 봇을 개발해 본 경험이 없다는 점이었다. 그렇기에 리뷰 과정에서 잘 모르는 부분, 상식적으로 생각했을 때 좀 이상한 부분, 의심가는 정황(외부 디비 연결 등)이 있는 부분에 대해서 Peter에게 중간 중간 얘기를 했는데, Peter는 내가 말한 포인트들을 봇 개발자에게 물어본 후 전달 받은 답변을 내게 설명해주었다. Peter는 개발자가 아니라 금융인이었다. 그가 이해할 수 있는 방식의 설명을 들은 후 그가 아는 만큼 다시 내게 설명을 해주었다. 풋. 비웃는 분들이 느껴진다. 맞다. 인정한다. 그러니까 덫을 놓은 사람에게 이 길 앞에 저거 좀 수상한데 저거 뭐야? 함정 아냐? 라고 물었던 것이다. 그렇지만 당시엔, 이렇게 체크 리스트 하나 하나를 원개발자에게 묻고 다시 답변 받은 내용을 Peter의 언어로 설명을 들은 후 체크 리스트 목록을 하나 하나 빠르게 지워나갔다. 당시 Peter는 내게 이렇게 말했다. 그렇게 Peter가 웃으며 얘기할 때면, 나는 “웅 그래?” 라고 대답을 했다. 당시 Peter는 나와 개발자를 직접 연결시키지 않고 중간에 스크린을 했다. 아마 그의 오래된 업무 방식 때문이었을것이다. (그 때 Peter가 아닌 내가 얘기를 나누었다면 어땠을까라는 생각도 해본다.) 근데 정작 순진한건 우리였다. 당시 Peter는 이 개발자(=회사)에 대한 신뢰도가 100% 였던거 같다. Peter가 의심한 유일한 한 가지는 ‘이 탈중앙화 거래소의 차익 거래 봇이 계속 수익을 내진 않을 것이다.’ 정도였다. 세상에 영원한건 없으니까. 그는 이런 세세한 우려까지 흥분해서 개발자와 소통을 하고 있던 중이었고, 개발자는 그럴 때면, Peter를 안심시키듯, “걱정하지마 무언가 새로운 거래 기법 등이 나오면 우리가 추가해줄게.”라고 얘기를 했다. 그렇게 내가 할 수 있는 리뷰를 마쳤다. 그리고 교차 검증을 위해 내가 신뢰하는 다른 시니어 개발자인 Steve에게 몇몇 코멘트와 함께 리뷰를 요청했다. 그리고 7월 12일 수요일 낮, Steve 에게도 비슷한 몇몇 부분에 대한 부정적인 피드백을 받았다. Peter는 이 부분에 대한 원개발자 피드백을 근거로 내게 봇 사용에 대한 최종 의견을 종용했고, 나는 퇴근 직전 테스트 운용을 컨펌해줬다. 가족들과 저녁 식사를 하는 도중, 난 문득 궁금한 마음에 Peter에게 문자를 보냈다. “어때? 수익 기회(Arbitrage Oppotunity)를 찾아 실제 거래가 이루어져?” 라는 내 질문에 Peter는 내게 “몇시간째 돌아가고는 있는데, 전혀 기회를 못찾내?”라고 답장이 왔고, 바로 이어서 “개발자에게 한번 물어볼께 뭔가 세팅을 잘못한건가?”라고 답장을 보내왔다. 그리고 다시 1-2시간이 지났고, 나는 또 궁금한 마음에 Peter에게 문자를 보냈다. Peter는 여전히 똑같아라는 답장을 보내왔다. 기대감이 컸기 때문에, 나는 가족들과 외식을 마치고 집에 들어와 다시 컴퓨터 앞에 앉았고 Peter에게 다시 문자를 보냈다. 이제 봇을 돌려본지 7시간 정도 된 상태였고, 나는 이전에 조사했던 큰 수익을 내고 있는 유니스왑 주소들(봇이라 생각되는)을 확인해봤다. 그리고, 그들은 여전히 오늘도 많은 거래 내역이 있다는걸 확인 했다. 그 때 였다. Peter에게 전화가 왔다. 이렇게 늦은 밤 전화를 할리가 없는데, 난 Peter의 전화를 받기 전 이미 무언가 잘못되었다는걸 느끼고 있었다.
  11. 돈을 쉽게 벌 수 있는 투자 방법이 있다면, 그 방법을 처음 발견한 사람은 어떻게 처신할까? 그 비밀을 여기 저기 떠들고 다닐까? 아니다. 더 많은 사람이 같은 방법으로 돈을 벌 수 있어도 그는 그 사실을 철저히 비밀로 간직할 것이다. 평범한 머글이었던 내가 마법사들의 세계에 들어온지도 이제 거의 6개월이 되어간다. 나는 Peter에게 여러가지 기존의 알려진 수많은 마법들의 원리와 연금술의 매커니즘에 대해 1대1 과외 수준으로 지식을 전달 받을 수 있었다. Peter가 자신의 마법사 사회에 날 초대했을 때 그의 니즈는 한가지였다. 사람을 믿고 안믿고를 떠나 그들은 늘 100% 게임에만 배팅을 한다. 그렇기에 그가 직접 무언가를 만들려고 했을 때 퀀트 수학자들과 트레이더들 외에 그걸 구현해줄 마법 전반의 높은 이해와 연금술(금융 투자)의 매커니즘을 이해한 개발 총 책임자가 필요했다. 행여 내가 부담을 느끼고 도망갈까봐 그는 늘 내게 이렇게 얘기했다. “직접 모든걸 할 필요 없어. 개발자가 더 필요하면 더 채용해. 그리고 그들에게 모듈별로 개발을 맡기면 돼. 너는 관리 감독만 해도 돼.” 그러니까 이걸 풀어보면, 개발을 직접 하지 않아도 코드 진행과 버전 관리(다양한 시장 테스팅 + 스트레스 테스팅이 이루어지므로)와 보안 그리고 해킹 등에 취약한 점 등을 내가 책임지고 맡아달란 얘기였다. 어쩌면 Peter는 DEXs Arbitrage 봇의 경우, 직접 개발하지 않는 이상 안전하지 않다라고 느낀 것 같다. Peter가 이런 생각을 갖게 된 결정적인 이유는 내가 리뷰한 300만불짜리 첫번째 봇이 작동 하루만에 해킹을 당했던 사건 때문일 것이다. 몇년처럼 느껴지는 6개월 동안 우리는 총 7개의 봇을 만들었고, 이 중 완벽하게 최적화와 스트레스 테스트를 끝낸 2개의 봇은 큰 수익율을 내며 실제 자금을 넣어 운용중이다. 우리가 첫번째 봇을 개발해 30여일 동안 테스트를 진행하고, 이게 정말 되는구나!라는 내부 결론을 내렸을 때 Peter가 한 첫번째 말은 “이거 우리만 쓰는거다. 회사 운영 펀드에서도 우리(내부 임원 및 일부 직원을 위한) 내부 펀드에만 사용하는거다. 알았지?” 였다. 비밀은 이렇게 만들어지고, 그 비밀은 그렇게 굳건한 자물쇠로 잠기게 된다. 일부 직원들은 봇의 존재와 그 봇이 선택받은 임직원들 전용인 내부 A 펀드에만 사용된다는 걸 소문으로 들을뿐이다. 회사 내에서도 그 진위를 확인해주지 않는 그런 전설같은 소문. 그리고 일부 머글들 중 사기꾼들은 이런 전설들을 듣고 그럴싸한 장치들과 스토리로 다른 머글들에게 사기를 친다. 그렇기에 화제가 되는 모든 금융 관련 사기에는 (지금 생각해보면) 이런 마법같지만 실재하는 연금술에 대한 얘기들이 교묘하게 섞여 있더라. 짧은 기간이었지만, 내가 느낀 점으로 결론을 내자면, 제대로 된 봇을 만들기 위해서는 정말 (개발, 수학, 금융에 대한 이해가 높은) 한두명의 천재 개발자가 만들었거나 오랜 경력의 수많은 관련 전문가들이 모여야만 만들 수 있다는 점이다. 그리고 그들은 자신이 만든 봇이 작동될 때, 그 즉시 자물쇠가 채워진다. 그 사실을 다른 누군가에게 발설하지 않는다. 나는 지금의 이런 현재를 당시엔 상상하지 못했다. 그렇게 압축을 풀고, 첫번째 파일을 열어보았다.
×
×
  • Create New...