안녕하세요. 초밥매니아입니다.
땡글에 오랜만에 글을 올리네요^^
예전에 제가 올린 글중 비트코인 채굴이 아닌 도굴? 이란 제목으로 글을 올린 적이 있습니다(https://www.ddengle.com/develop/9694510). 여러 논란이 되는 가운데 저는 기술 관점에서 성능 향상에 초점을 맞춰서 프로그램을 좀 더 업그레이드한 raiders-go 라는 클라이언트 프로그램을 개발하고 있습니다. 기존에 초당 2~5개의 속도로 비트코인 주소를 탐색했다면 raiders-go에서는 초당 12,000 ~ 20,000개의 주소를 탐색합니다.
ㅁ 기존 raider-prototype 프로그램
ㅁ 성능을 개선한 raiders-go 프로그램
저는 비트코인 주소 탐색 속도를 개선하기 위해 몇 달간 머리를 쥐어짜봤는데... 비트코인 잔액을 Explorer에서 확인하면 통신 속도 때문에 병목현상이 발생하게 되더군요. 그리고 초당 1만개 이상 주소를 Explorer에 조회한다고 통신을 보내면 DDOS 공격으로 의심받아 블록당할 가능성이 높아서 어떻게 하면 잔액 조회를 빠르게 할 수 있을까 고민을 했습니다.
잔액 조회 속도를 높이기 위해 모든 클라이언트에 비트코인 주소와 잔액이 들어있는 데이터를 가지고 있고 클라이언트 자체에서 확인해야만 속도가 개선될 것으로 보며 비트코인 스냅샷을 어떻게 찍어서 조회하나... 방법을 찾아봤습니다. 다행히도 https://github.com/mycroft/chainstate 여기에 비트코인 블록을 특정한 시기에 스냅샷찍어 텍스트파일로 만드는 오픈소스가 있었습니다. 이걸 활용해서 잔액 데이터 조회하는 기능을 만들 수 있었습니다. (이렇게 짧게 요약해서 적었지만... 이거 한달정도 고민했습니다 ㅠㅠ)
Go에서 map 변수에 2000만개 이상의 비트코인 주소 데이터를 넣고 검색하니 조회 속도가 엄청 빠릅니다. 이 조회 속도도 처음에 굉장히 느렸는데 https://www.darkcoding.net/software/go-slice-search-vs-map-lookup/ 여기를 참고하고 map 방식 조회를 적용하고 나서 조회 속도를 대폭 향상시킬 수 있었습니다.
이미 해외에 몇군데서 제가 진행하는 RAIDS 프로젝트와 비슷한걸 진행하는 곳이 있는걸로 알고 있습니다. 공개된건 제가 한군데 확인해봤는데 초당 200만개 이상 탐색을 해야 60일에 한번꼴로 비트코인 주소를 찾는다고 합니다. 해당 업체에서 공개한 자료라 사실인지는 잘 모르겠지만 이게 사실이라면 10000명에서 20000명 정도 유저를 확보하면 비트코인을 찾을 가능성이 있다고 생각합니다.
RAIDS는 여러 사람이 참여해서 유저의 컴퓨팅 파워로 비트코인 개인키를 찾아 잔액을 조회하여 보물을 찾는 서비스입니다. 개인키를 끊임없이 찾도록 하기 위해 유저에게 PoW을 통해 특정 해시를 찾도록 하고, 비트코인과 마찬가지로 해시를 찾은 유저에 RAIDS라는 토큰을 지급합니다. RAIDS는 EOS 플랫폼 위에 생성될 토큰이고 현재 EOS 테스트넷에서 테스트중입니다. (https://kylin.eosx.io/account/eosraidscoin?sub=actions). RAIDS 토큰이 많으면 보물을 찾은 경우 분배 비율이 높아지도록 설계해서 많은 사람들이 해시파워를 사용하는 동기가 되도록 하였습니다.
(이런식으로 수학문제를 풀면 보상을 지급합니다. blake2b 해시 알고리즘을 사용하였습니다.)
RAIDS는 비트코인을 공격하는 프로젝트가 아니라 분실한 비트코인을 찾는 프로젝트입니다. 함께 깃헙에 올린 백서를 읽어보시면 참고가 될것 같습니다.
https://github.com/Sushimania/raiders-go
아직 다 완성된게 아니라서 따로 실행파일을 올려두진 않았습니다. Go를 잘아시는분은 올린 소스를 기반으로 빌드해서 로컬에서 체험해보실 수 있을 겁니다 ㅎㅎ
혹시나 유저를 10000명 모은다고 하더라도 비트코인을 못 찾을 수도 있습니다. 못찾는다면 그것대로 의미가 있을 것이고 비트코인을 찾는다면 그것 또한 블록체인 역사에 의미가 있을 것 같습니다.
또 종종 개발 근황 올리도록 하겠습니다 ㅎㅎ 좋은 하루보내세요 :)
-------------------------------------
꼬리말
* 게시글 내용 삭제시 레벨 강등
* 질문은 각 주제별 게시판에 적어주세요.
비트코인 암호화화폐 커뮤니티 땡글~ 땡글~
-------------------------------------
'지갑에 코인을 넣어두고 한 10년 묵혀두자' 생각하고 놔둔 상태라면
그것도 분실된 코인으로 보는건가요?