암호화폐 산업의 단면을 코드로 보다.

in #bitcoin6 years ago (edited)

안녕하세요, 이더리움 코드보는 sigmoid입니다.
이 글을 계기로 비트코인류의 코드를 처음으로 접하게 되네요.

얼마전 인터넷 게시판을 눈팅하던중, 논란이 있는 어떤 코인을 보게되었습니다.

이 글에서는 해당 프로젝트의 문제여부를 판단하고자 하는 것이 아니라는 점 다시한번 명확하게 밝힙니다.

마스터 노드기반의 다크 코인인데, 실제 메인넷에 staking까지 모두 동작하는 백서도 없는 코인이고, ico정보도 한참 빈약합니다. 그런데... 각종 OS에서 동작하는 지갑까지 지원하고 잘 못들어본 어떤 dex에 상장되고, 마스터 노드들이 수백개 동작하고 이자를 받아갈 만큼 안정적으로 동작하고 있었습니다.

=== 논란 덕에 보게된 비트코인의 다크 계보 (bitcoin->dash->pivx) ===
코드를 안볼수가 없죠. 그리고 코드 퀄리티를 보고 상당히 놀라게 되었습니다. 해서 약간의 정보를 수집한뒤 가설을 세웠습니다.
( 마스터노드용으로 코인이 10000개가 필요하다고 했고...staking을 한다고하고..지갑도 이자를 받는다고 했습니다)

  1. 오픈된 지 채 두 달도 안된 프로젝트의 메인넷이 돌고있다. 이 정도 분량과 퀄리티의소프트웨어 패키지들을 스크래치부터 구현하긴 힘드니 반드시 스켈레톤이 된 원본이 존재할 것이다.

  2. 꽤나 수준 높은 원본일텐데, 이더리움은 아니다. c++로 구현이 되어있다면 비트코인일 확률이 높지 않을까?

그래서 비트코인 코드를 github에서 받아서 비교를 시작했습니다. 상당히 많은 부분이 수정되어 있었지만 기초 뼈대는 비트코인과 같았기 때문에 크게 무리는 없었고요. (c++이라 너무 반가웠 ㅠ.ㅠ)

어느부분을 주로 고쳤는지를 먼저 찾아보다가 몇가지 힌트를 발견합니다.

얼마전에 산 "50 coins" 책에서 본 다크코인인 dash(2014년 2월)가 딱 보입니다.

간략히 대시의 특징을 요약해보면,

  1. 비트코인 수정
  2. 마스터 노드로 거래를 섞어 숨기는 방식이고, (다크코인)
  3. 2.5분이 걸리며 (비트코인보다 빠름)
  4. POS+POW이며 마스터 노드가 되기 위해서는 1000개의 대시가 필요하다
    인데요..3번부분이 조금 다르네요. 대시는 천개네요.

이제서야 그밑에 PIVX(2016년 2월)가 눈에 들어옵니다. 피벡스를 조금 알아보니..

  1. 대시 수정
  2. 마스터노드가 되기위해서는 10000개가 필요하고(오!)
  3. 신규 코인 발행시 10프로는 재무부에, 마스터 노드와 스테이킹노드는 나머지 90%를 시소방식으로 나눠가짐.
  4. 다양한 os의 지갑 지원(심지어 os의 종류도 같네)

네...그래서 피벡스와 비교를 시작했습니다.

=== 암호화폐 업계의 현실 ===

피벡스와 비교해도 꽤나 수정한 분량이 있습니다. 뭐야 일을 진짜 하는 팀인가? 하며 최대한 변화가 적은 커밋으로 역추적하여 비교하다보니 이상한점을 발견합니다.

pivx에서 역사상 사용된적이 없는 헤더를 사용하고 있는겁니다. 피벡스는 단한번도 rhenfast.h를 사용한적이 없습니다(최소한 2014년는도 이후 까지는)

그래서 해당 헤더를 사용하는 프로젝트를 뒤졌습니다.
https://github.com/Rheniumnetwork/Rhenium
2018년 2월쯤 시작한 프로젝트네요. 베이스 코드는 피벡스가 맞는것으로 보이고요

몇몇 코어 파일들만 스캔해봤는데, 주석이나 포트정도만 수정되었고 98프로 이상 동일한 코드입니다

사실, 예전에 사용했던 코드를 그대로 사용하는게 나쁜건 아니라고 생각합니다. 다만 뭔가 망했던데는 이유가 있을테니, 리브랜딩형태로 끌고 갔으면 좋았을텐데요..

이미 이런식으로 돈벌어간 프로젝트가 많겠죠..
많이 혼란스럽네요.

Sort:  

우와... 엄청나네요....
무슨 외계어 보는듯한 느낌....ㅋㅋ
그렇게 코드를 비교할 수 있으면 스캠인지 아닌지는 자체적으로 판별해 낼 수 있겠네요....??

부럽습니다!! :)

팔로우하고 갑니다~~ :)

사실 오픈소스 진영에서는 스캠의 기준이 사업성 쪽에 더 치우쳐져서 평가해야 하는게 일반적이라.. 동일한 코드로 문제를 풀어내도 스캠은 아니죠. 다만 뭘하는지 모르는데 이미 커뮤니티를 운영하고 거래를 시작한부분이 좀 껄끄럽네요.

이정도면 그래도 공들인거라고 느껴질만큼 어이없는 경우도 많지 않을까요? ㅎㅎ

네. 아무것도 수정안하고 쓰는 경우도 있을듯.
사실 저정도 수정은 find sed 조합으로 명령어 한줄돌리면 되는거라...

뭔가 애매하네요. 잘 봤습니다 :)

스캠인듯 스캠아닌 스캠같은 너...