비록 수상은 못했지만 다양한 사람들의 견해에 대해 살펴볼 수 있었고 앞으로의 블록체인 업계가 어느 방향을 추구해야할 지 생각해볼 수 있는 좋은 기회였다.
드림플러스 블록체인 해커톤이라는 게 있다는 걸 알고 팀원을 모아 지원했다. 지원하면서 느낀 점은 일반적인 '해커톤'보다 '창업 공모전'의 느낌이 짙은 해커톤이라는 것이다. 해커톤임에도 불구하고 기획서를 미리 작성하고 제출한다. 그만큼 준비할 게 많은 해커톤이었다.
작년 발표 8팀에 대한 영상을 보니 본선 진출도 호락호락하지는 않을 것 같았다.... 학생도 별로 없고 작년 수상팀은 기업 대표들이더라...
그래도 일단 지원..!
나는 '일반 대중'이 아닌 '크립토 생태계의 유저'를 위한 아이템을 하고 싶었고 제안했지만 다른 팀원들의 의견을 수렴해 대중을 위한 dApp을 기획하여 제출하였다.
우리는 '블록체인 기반의 자기계발 동기 부여'라는 아이템을 가지고 지원했다.
팀명은 머클루틴이었다. 머클루트와 자기계발을 위한 루틴을 합친 나름 센스있는 이름이었다ㅎ
어머나 서류합격???
진짜 기대안하고 있었다. 작년 발표팀을 보고 많이 위축되어있었다.
현업자들도 많이 지원하는 것 같았고...
주변 지인들도 꽤 지원했는데 다들 탈락하고 우리팀만 붙었다. ☆대박☆
잊고 살았었는데 부랴부랴 준비... 기획서를 제출하는만큼 미리 준비할 수가 있었다. (이게... 해커톤..?)
프론트엔드 1명, 백엔드 1명, 컨트랙트 1명, 디자이너 1명 총 4명이서 진행하는 해커톤이었다.
헌데...
이럴수가... 프론트엔드 개발자분이 전날 코로나에 확진되셨다ㅜㅜ
몸은 괜찮다고 민폐끼치고 싶지 않으시다고 온라인으로 참여할 수 있다면 참여하신다고 하셔서...
일단 주최측에 양해를 구해 세 명이 오프라인으로 참가하고 확진자 한 분은 온라인으로...
코로나로 몸도 안 좋으실텐데 온라인으로라도 프론트엔드 구현해주셔서 감사합니다.
머클루틴은 블록체인을 활용한 자기계발 동기 부여 서비스이다.
'판단 기준의 탈중앙화', '상금 관리의 탈중앙화', '토큰을 사용하지 않은 접근성'을 모토로 잡고 접근하였고 해커톤을 진행하였다.
급조된 우리팀원들과 해커톤 당일에 처음 얼굴뵙고 인사하고 멘토분도 뵀다.
멘토는 크러스트의 박종혁멘토님이 배정되었다. 아마 우리가 Klaytn을 사용하는 팀이어서 그러지 않았을까싶다.
중간중간 잘 안풀리거나 블록체인의 개념적인 부분이 궁금한 게 있을 때 멘토님께 이것저것 여쭤봤다. 덕분에 해커톤도 해커톤이지만 블록체인에 대한 인사이트도 기를 수 있어서 좋았다.
(해커톤이랑 관련없는 것도 조금 더 물어볼 걸 그랬다.)
위에서 말했듯이 개발도 개발이지만 창업 공모전같은 느낌이 있는 해커톤이다보니 법률상담도 진행해줬다. 우리 아이템은 코인을 다루기 때문에 이와 관련하여 법적인 문제가 없는지를 중점적으로 물어봤다.
(팀원이 질문할때 말 잘 한다고 칭찬해줘서 기분좋았다.)
나는 컨트랙트를 맡아서 해커톤을 진행하였다.
컨트랙트 개발에 있어 주된 내용 중 하나는 상금분배였고 주최자, 참가자, 검증인을 관리하고 상금을 주어진 식대로 분배하는 컨트랙트를 작성하고 배포하였다.
식은 두가지 조건을 연립하여 연립부등식으로부터 도출하였는데
- 주최자는 항상 참가자보다 많은 상금을 받는다. (성공할 경우를 가정)
- 참가자는 항상 참가비이상의 상금을 받는다. (성공할 경우를 가정)
이 두 조건을 연립하여 도출하고 검증자에게 소량의 상금을 분배하는 방식으로 총 3개의 식을 도출했다.
solidity가 소수형을 지원하지 않아서 조금 애먹었다...ㅎ
개발은 Truffle을 사용하여 TDD로 진행하였다. 테스트코드를 작성하는 데에 시간이 소요되지만, 에러가 나는 부분과 예외처리를 쉽게 체크해볼 수 있어서 오히려 시간을 절약할 수 있었던 것 같다.
'머클루틴'은 블록체인의 탈중앙적 정신을 이어받은 프로젝트이다.
루틴을 완료하고 인증을 제출하면 객관적인 주체들이 이를 검증한다. 이 때 공정성을 위해서 같은 루틴의 참가자는 검증을 할 수 없고 다른 루틴의 참가자들만 검증할 수 있도록 하였다.
그리고 이를 PoV(Proof Of Vote)라고 이름붙였다.
그리고 이 과정에서 검증자들의 신뢰도를 높이기 위해 Mixing Problem을 도입하였고 이 때 사용되는 Problem은 Confirm Problem과정을 통해 선정하도록 알고리즘을 설계했다.
사실 내가 제안했던 아이디어가 아니었기에 발표를 미루고 싶었으나....
알고리즘을 고안한 사람이 알고리즘에 대한 설명을 하는 게 좋지 않겠냐는 의견에 나도 동의했기 때문에 두 명이 나눠서 발표를 진행했다. 나는 알고리즘 부분을 설명했다.
발표영상은 유튜브에도 박제되어있다...
(발표를 하면서 느낀건데... 나 생각보다 발표에 소질이 있을지도...?)
한화에서 잡아준 숙소..! 해커톤 시작 전 미리 체크인을 하고 짐을 풀었다. 원래 2인 1실이지만 위에서 언급했던 대로 프론트엔드 개발자분의 사정때문에 나는 1인 1실을 쓰게 됐다.(개꿀)
모든 끼니를 찍지는 않았지만 밥도 맛있게 잘나왔다..! 심지어 중간엔 피자도 줬다. 사육당하는 느낌...
굿즈도 많이 챙겨줬다. 사진엔 없지만 안랩 블록체인 컴퍼니에서 우산도 줬었는데 순백색의 이쁜 우산이었다. 받은 굿즈중에 가장 마음에 들었지만.... 놓고 왔다.
해커톤하면 빠질 수 없는 단체티. 단체티 오른쪽 가슴에 벨크로가 있어서 다양한 뱃지를 붙여 꾸밀 수 있었다. 도지와 애플은 인기템이었는데 get!
중간중간 레크레이션도 했는데 난 빈백던지기에 좀 재능이 있었다.ㅋㅋㅋ
아래 그림처럼 콩이 들어있는 보따리?를 던져서 골인시키는 건데 팀 대표로 나가서 1등했다.
덕분에 JBL Go3 스피커 4개를 상품으로 획득했고 팀원들한테 하나씩 돌렸다ㅎ
또 해커톤 참가자 외에도 블록체인 생태계에 관심있는 다양한 사람들과 네트워킹할 수 있는 시간이 있었는데 이 때 다양한 인사이트를 보고 듣고 배울 수 있었다.
팀장들은 나가서 수료증 들고 사진도 찍었다ㅎ 초상권 혹시 모르니 내얼굴 빼곤 다 가렸다.
75개 팀이 지원하여 10개의 팀이 본선에 진출하였다고 한다. (백분위 86.6% ㄷㄷ)
우리팀은 '일반 대중'을 타겟하였지만 우리팀 말고는 모두 'Web3 생태계 종사자'를 타겟한 아이템이었다. 우리 아이템만 너무 다른 느낌이어서 조금은 위축도 됐었다...
물론 이게 이유는 아니겠지만 수상에는 실패하면서 블록체인업계가 추구해야할 방향성에 대해서 조금 더 깊게 생각해볼 수 있었다.
블록체인적으로 이상적인 꿈을 좇는 것도 좋지만 블록체인의 대중화를 위해서는 다양한 규제에 대해 대비할 필요가 있을 것 같다.
동재님과 함께한 시간들은 기존에 가지고 있던 블록체인에 대한 인사이트를 넘어 설 수 있는 즐거운 경험이었습니다:) 기회가 있다면 다시 함께하고 싶은 파트너로서 적극 추천합니다!