board_free custom_top_html:no
default debug random = 0 / type = READ / detected = READ

<이제는 말할수 있다> 

레이븐코인 추가발행사태 -골로 갈뻔한 우리의 까마귀



본 글은 레이븐코인 리드개발자 트론블랙의 글(레이븐코인 취약점  -아놔, 뭔일이야 진짜)*을 제 나름대로 각색 및 요약 정리하였습니다. 

https://medium.com/@tronblack/ravencoin-post-vulnerability-fix-fb3a4bd70b7b

 

 

※ 레이븐코인 정보와 비하인드 스토리는 "코인논객오공 소통방(t.me/satoshicode)"에서.


□ 사건 배경지식

 ㅇ 레이븐코인의 메커니즘 

    - 이번 결함은 레이븐코인의 콘센서스코드에서 발견됐다. 참고로 컨센서스코드란 모든 노드가 상호동의함으로써 트랜잭션을 받아들이거나 거절하는 특수한 층위의 코드를 말한다. 레이븐코인은 자산 발행 및 관리를 하는 메커니즘을 지난 만큼 비트코인보다 복잡하다. 그 메커니즘은 자산 층(asset later)으로 두 개로 나눠진다. 첫째는 블록에 들어갈 트랜잭션이 대기하는 곳(멤풀)이고, 둘째는 그 블록에 들어가는 곳이며, 이 두번째가 이중지출을 확인 및 차단하는 곳이다. 특히, 레이븐코인의 경우 새로 발행된 자산이 유일무이한 이름을 갖는지, 소각 주소로 500RVN이 전송되는지 등을 확인하는 곳이다.

 

  ㅇ 결함의 원인

    - 이중지출 등을 확인하는 데 있어 중요한 점은 자산발행으로 이해 RVN이 제대로 소진되는지 여부다. 좀 더 기술적으로 말하면, 중요한 검사 시 조건부 IF구문 밖에서 신규자산(New assets)과 이전자산(Transfer assets) 등 2가지를 포함하는 것으로 코드 변경이 합의됐는데, 문제는 그 2가지 외에 재발행자산(Reissue asstes)이 있다는 점이다. 즉, 중요한 검사 시 재발행자산을 검사 대상에서 빠지므로 재발행자산이 이뤄질 때 RVN이 소진되지 않았다는 것이다. 그런데 이번 결함은 알고보니 자산발행 이후에도 RVN이 소진되지 않는 코드가 입력된 것이었으며, 그 코드는 의도를 갖고 입력된 것으로 보인다.

    - 혹자는 '그러면 왜 그런 코드가 입력되도록 방치했느냐'고 물을 수도 있다. 거기에는 2가지 이유가 있다. 첫째, 그 코드 변경사항은 위험성이 없어보였고 게다가 사용자 정의 오류 메시지 형식으로 위장되어 있었기 때문이다. 둘째, 레이븐코인 핵심 개발진은 더 많은 개발자들이 레이븐코인 프로젝트에 기여하기를 바라기 때문이다. 참고로, 우리는 양질의 개발 지원을 갖고 있지만 대부분은 핵심코드와 무관하다.

 

 

□ 사건 개요

  ㅇ 결함 발견

    - CryptoScope팀(https://rvn.cryptoscope.io)은 레이븐코인 관련 모니터링을 하던 중 이상한 점을 발견하고 레이븐코인 핵심 개발진에 온전치못한 방식을 통한 RVN발행에 대해 알렸다. 그 팀은 우리에게 불법적 RVN발행을 보여주는 링크를 보냈고 그것은 사건 파악에 큰 도움이 됐다.

 

  ㅇ 긴급 코드 수정과 결단

    - CryptoScope팀 정보 덕분에 코드 수정은 바로 완료했으나, RVN홀더에게 악영향을 끼칠수도 있고 취약점을 공표하면 범인이 눈치챌수도 있었기 때문에 코드 저장소에 코드 수정을 올릴수는 없었다.

    - 또다른 검토사항은 이 결함을 해결하기 위한 방식인 소프트포크를 추진하기 위한 방법이었는데, 그것을 하려면 채굴 노드가 새로운 버전으로 업데이트를 해야했고 그 노드는 너무 적지도 너무 많지도 않아야 했다. 너무 적으면 일부 채굴풀이 담합하여 괜한 힘 겨루기를 할수가 있고 너무 많으면 소프트포크가 달성하기 어렵기 때문이다. 결국 소프트포크를 위한 전체 노드 대비 참여 노드 비중을 70%로 정했다.

 

  ㅇ 비밀 작전 개시

    - 범인 몰래 코드 수정을 반영하기 위해 소소한 코드 변경 건을 미끼로 해서 코드 변경을 요청하되, 그것에 결함을 해소하는 코드 역시 심어놨다. 물론, 이런 방식은 악성코드를 심는 방식과 유사하다.

    - 문제는 레이븐코인 노드는 잘 분산되어있기 때문에 그저 코드 수정된 버전을 채굴 풀에 업데이트하도록 놔두는 것으로는 부족했다. 보통 48%~57%정도가 그나마 알려진 채굴풀이었고 나머지는 알려지지 않는 채굴자들이다. 비록 결함을 해소하려는 좋은 의도임에도 불구하고, 대놓고 채굴노드에게 업데이트하도록 대놓고 독려할수는 없었지만 결국엔 공개적으로 알려야한다고 결정했다. 그와 동시에 거래소들에게도 이 사실을 알리되 그들 재량에 따라 레이븐코인 거래와 입출금이 중단될수 있다는 점도 주지시켰다. 물론, 우리는 레이븐코인 시장을 멈추고 싶지 않았고, 그것이 옳다고 생각하지는 않는다. 다만, 범인이 불법적으로 발행한 엄청난 RVN으로 인해 거래소들 역시 피해를 입을수 있었기 때문이다.

    - 트론 블랙을 포함한 핵심 개발진은 밤잠을 설쳐가며 범인의 돌발행동, 전체 피해의 최소화, 빠른 해결 등을 위해 고민을 거듭했다. 그러던 중 소프트포크를 추진하기 위한 적절한 시점을 골랐고 마침 난이도 조정 주기인 2016블록의 사이클이 막 시작할 시점이었기 때문에, 코드 수정을 위한 채굴 노드의 투표를 개시했고 최대한 투표를 독려했다. 가급적 최소의 사이클 주기에 70%이상의 찬성 투표율을 얻어내야했기에 그것이 달성될때까지 매우 초조해했다.

    - 이제 중요한 점은, 범인이 이 모든 것을 눈치채고 불법 발행에 더욱 박차를 가할수 있다는 점과 또다른 영악한 이들이 이 결함을 눈치채고 범인처럼 재발행자산 기법을 활용해 불법발행에 합류할 수 있다는 점이었다. 그런데 그 우려가 현실이 되었고, 그게 범인인지 또다른 이들인지는 모르지만 추가 불법 발행이 포착됐다.

    - 다행히 짧은 주기만에 코드 수정이 합의 반영되었고 레이븐코인 네트워크의 결함은 일단락되었다.

 

  ㅇ 특이사항

    - 우리가 이 결함을 늦게 알았거나 소프트포크가 어떤 이유로든 지지부진했다면 범인 및 또다른이들이 이 불법발행에 가세하여 엄청난 인플레이션이 발생하고 레이븐코인 생태계가 무너졌을 것이다. 그것을 막기 위해 그 사태가 발생하기 이전으로 네트워크를 리부팅했을 것이지만 웃긴 것은 무엇을 하든 최선이 아닌 차악이었을 뿐이다.

    - 흥미로운 사실은, 비트코인에도 이와 유사한 일이 2010년과 2018년에 발생했고 이번에 시행한 우리의 작전과 유사한 작전으로 해결했다는 점이다.

 

 

□ 사건 수습

  ㅇ 법 집행

    - 이번 사태를 일으킨 범인을 잡고 그에 합당한 처벌을 주기 위해 법 집행 기관에 이 사실을 알렸다. 하지만 우리가 보기에 그 범인이 한 짓은 현재 법과 규제 측면으로 볼때

안타깝게도 패스트푸드에 들어가 냅킨, 케첩, 빨대 등을 훔친 수준에 지나지 않을 것이라는 점이다.

    - 물론 어떤 방식으로는 그 범인에게 어떤 압력을 가해야하지만 문제는 우리는 그 범인이 누구인지 모른다는 점이다.

 

  ㅇ 정보공개의 범위

    - 우리는 이번 사태에 대해 공개적으로 알리되 세부사항은 공개하지 않기로 했다. 이 사태가 재발행과 관련되어있다는 것과 어떤 법 집행기관에 알렸는지, 정확한 추가발행RVN 수량을 밝히지 않았다.

 

  ㅇ 해결책 제안

    - 결론적으로 이번 사태를 총 297,902,411.57279207 RVN이 추가 발행됐다. 이것을 바로잡기 위해 4가지 해결책을 제안한다.

     1. 아무 조치도 하지 않는다.

     2. 반감기를 41.375일(59,580블록) 당긴다.

     3. 첫번째 반감기를 82.75일(119,160블록) 당긴다(필자주 : 첫번째 반감기와 두번째 반감기 사이의 기간만 늘어날뿐 두번째 반감기 시점은 변동없음).

     4. 아무 조치도 하지 않되, 총 발행량이 총 공급량(210억개)에 도달하면 공급을 멈추게 한다.

 

    - 리드개발자 트론블랙은 2번을 선호하지만 다른 제안을 받아들일 용의가 있다. 결정하는 것은 우리 모두의 몫이다.

 

  ㅇ 앞으로는 

    - 커뮤니티에서 이런일이 발생하지 않도록 제삼자의 코드 감사 등을 후원하는 움직임이 있다고 들었고 우리는 그것을 지지한다.

    - 코드 변경에 따른 코드 취약성은 대부분 실수로 인해 발생하지만 이번 일을 계기로 더욱 관심을 갖는 것은 좋은 변화이며, 알려지지 않은 기여자들로 하여금 더 잘 코드를 확인하는 계획을 세우려고 한다.

    - 참고로 이번 소프트포크 쯤에 놀라울정도로 그 위기의 수준을 감안할때 가격이 놀라울정도로 안정적이었다는 데에 놀랐고 강력한 지지자의 힘을 보여준 것 같다.

 

 

※ 출처: "코인논객오공 소통방(t.me/satoshicode)"

4,556
댓글 3
default debug random = 0 / type = READ / detected = READ

자유게시판

홍보/사기/불법을 제외한 모든 글작성이 가능합니다.

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
38701 자유 5700 놀랍네요..   클레이모아 GPU0 = 매트릭 GPU2 = HIS RX5700 에 롬플 램타한 거 클레이모아 GPU1 = 매트릭 GPU1 = MSI RX5700 트프7 에 롬플 램타한 거   어제 옆동네 사시는 ... 6 file 0 626
밤톨아빠
2020.07.17
38700 질문 ERC20 토큰 거래시 락업 방법이 따로있나요? 전문가님 조언을 구래 봅니다.   ERC20 토큰 발행후 지금 거래소와 개인간 토큰의 거래가 이루어지고 있는 상황입니다. 근래 ERC20 토큰을 개인이 직접 거래로 회... 0 632
어떻하지
2020.07.17
38699 자유 현황 기록2020/07/17   중국커뮤에 암호화폐 순위 top20에 대한 글을 쓰시는 ‘관찰 기록원’ 이라고 닉넴 쓰시는 분이 있는데요~   매일 변화같은거 알려주시는 분인듯 해서 가져와 봤... file 0 31
끼룩끼룩
2020.07.17
38698 질문 장터에서산 그래픽카드 고장 가능성 좀 봐주세요. 안녕하세요.   장터에서 RX470 7장을 구입 후 16일날 장착을 했습니다. 바이오스 와 윈도우 까진 정상적으로 진입하는데 그래픽 카드 드라이버만 설치하면 화면이... 7 0 326
히포
2020.07.17
[오공] 레이븐코인 추가발행사태 정리 -골로 갈뻔한 우리의 까마귀 v1.0 &lt;이제는 말할수 있다&gt;  레이븐코인 추가발행사태 -골로 갈뻔한 우리의 까마귀 본 글은 레이븐코인 리드개발자 트론블랙의 글(레이븐코인 취약점  -아놔, 뭔일이야... 3 5 21730
코인논객오공
2020.07.16
38696 자유 오늘의 암호화폐 금리 [20.07.16]         사진 안뜨는 사람들을 위한 정리   모든 이율은 플렉시블(No-LockUp) 상품 기준     오늘의 암호화폐 금리 [20.07.16]     USDT - CeFi   넥소 - 10.00% ... file 0 65
디파이팅
2020.07.16
38695 자유 축구보고 잤더니 정신이 없네요.   밤새 축구 본 보람이 있어서 그나마 다행인데 너무 늦게 잠을 잤더니 너무 힘드네요.   그나저나 손흥민 참 잘하네요. 점점 더 물이 오르는듯.             1 81
날마다방콕
2020.07.16
38694 자유 현황 기록2020/07/16   중국커뮤에 암호화폐 순위 top20에 대한 글을 쓰시는 ‘관찰 기록원’ 이라고 닉넴 쓰시는 분이 있는데요~   매일 변화같은거 알려주시는 분인듯 해서 가져와 봤... file 0 31
끼룩끼룩
2020.07.16
38693 자유 한국 특금법 이슈 - Issues related to the creation of bitcoin-related laws in Korea - FATF related laws   3월 통과된 특정금융거래 정보의 보고 및 이용 등에 관한 법률 개정안에서는 가상자산 사업자에게 해킹 사고 예방을 위해 정보보호관리체계를 갖추도록 하는 등... file 0 158
진짜화폐
2020.07.15
38692 자유 채굴 4G 그래픽카드 언제까지 채굴 가능한가요?         채굴 4G 그래픽카드 언제까지 채굴 가능한가요?             4 1 286
p메모리p
2020.07.15
38691 질문 채굴게시판은 레벨몇부터 쓸수있나요       MSI rx5700 트프7 잘기억은 안나는데 롬플래싱 하기전 50 mh/s  90~9xW 롬플래싱 램타 잡은후 53.5 mh/s 98W  이거 명작이다 생각해서 글써보려 했는데 글... 2 2 90
hellobit
2020.07.15
38690 자유 땡글에 중고차광고 하는거.. 너무싼데.. 허위매물? 이런거 아닌가요? 사이트들어가보니 너무쌈~~~ㅠ 8 1 228
라미
2020.07.15
38689 자유 현황 기록2020/07/15 중국커뮤에 암호화폐 순위 top20에 대한 글을 쓰시는 ‘관찰 기록원’ 이라고 닉넴 쓰시는 분이 있는데요~   매일 변화같은거 알려주시는 분인듯 해서 가져와 봤습... file 0 45
끼룩끼룩
2020.07.15
38688 자유 서울사랑 상품권 구매하기 힘드네요   고양 살다가 서울로 이사왔는데요. 서울사랑상품권 10퍼센트 할인해서 구매할 수 있다고 해서 10시에 대기타다가 구매버튼 눌렀는데 계속 오류 ㅜㅜ   고양페이... 0 90
날마다방콕
2020.07.15
38687 자유 당근마켓 쓸만하네요.   사용하던 중고용품은 주로 중고나라 통해서 처분하곤 했었는데요. 최근에 당근마켓 한번 사용해 봤는데 쓸만하네요. 특히 동네주변 사람들 위주다 보니 직거래... 12 1 288
날마다방콕
2020.07.15
38686 잡담 운동하기 좋은날씨네요. 오늘 하루도 힘차게! 2 51
서보짱
2020.07.15
38685 자유 현황 기록2020/07/14 중국커뮤에 암호화폐 순위 top20에 대한 글을 쓰시는 ‘관찰 기록원’ 이라고 닉넴 쓰시는 분이 있는데요~   매일 변화같은거 알려주시는 분인듯 해서 가져와 봤습... file 1 42
끼룩끼룩
2020.07.14
38684 잡담 오늘 좀 춥네요 감기조심하세요. 코로나두요 2 2 71
서보짱
2020.07.14
38683 자유 현황 기록2020/07/13 중국커뮤에 암호화폐 순위 top20에 대한 글을 쓰시는 ‘관찰 기록원’ 이라고 닉넴 쓰시는 분이 있는데요~   매일 변화같은거 알려주시는 분인듯 해서 가져와 봤습... file 0 42
끼룩끼룩
2020.07.13
38682 자유 좋은 하루 보내세요       좋은 하루 보내세요                 1 2 48
p메모리p
2020.07.13
목록
Board Pagination Prev 1 ... 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 ... 3097 Next
/ 3097
default debug random = 0 / type = READ / detected = READ