안녕하세요, 코인논객오공입니다.
레이븐 개발자 사정상 지난 5월 31일, 3주만에 회의가 있었고 조금 늦었지만 그 내용을 공유합니다.
*편의상 '~이다/하다'체로 작성하였음을 미리 양해바랍니다(퍼가는 경우, '필자와 출처'는 밝혀주세요).
□ 소재별 회의 내용
ㅇ 태그(Tags)와 제한자산(Resticted Assets) 개발 현황
- 현재 일부 개발자들이 태그와 제한자산의 개발에 매진하고 있다. 좋은 방향으로 추진되기를 바라며, 많은 테스트과정을 거칠것이고, 자연스럽게 많은 변화가 있을것이다.
- 해당 개발자들이 깃헙(Github)에 올린 태그 및 제한자산에 대한 개발현황을 공유하고, 리뷰 및 코멘트를 통해 논의 및 개선할 것이다.
- 또한 해당 개발자들은 태그와 제한자산의 개발과 테스트를 위하여 Qt*를 활용하고 있으며 진전이 있길 바란다고 말했다.
*Qt : 컴퓨터 프로그래밍 분야에서 GUI(그래픽 유저 인터페이스)개발에 활용되는 상호호환 소프트웨어 개발도구(Cross-platfrom softward developmen)로 누구나 무료로 사용할수 있는 오픈소스 개발도구이기도 함.
- 전반적으로 태그와 제한자산에 대한 초기 개발은 Qt에서 1-2주정도 소요될 예정이며, 이후 테스트넷에 올려질것이다.
ㅇ 모바일 지갑과 복구 암호(니모닉)
- 우선 개발자들이 논의한 내용을 살펴보기 이전에 관련 배경지식에 대해 알아보자. 암호화폐 지갑기술이 발전하면서 보다 사용하기 편하고 보다 폭넓게 호환가능한 산업표준들이 등장하였고, 여기서는 본 개발자 회의에서 언급된 것이면서, 비트코인개선제안(Bitcoin Improvement Proposals, BIP)에 의한 지갑표준 2가지에 대해 알아보겠다.
- 우선 BIP-39관련이다. 이 제안은, 결정론적 지갑*을 만들기 위해 기억하기 쉬운 단어 목록인 복구암호(필자주: 보통 12~24개의 단어로 구성되며, 니모닉코드(Mnemonic code)라고도 한다)에 대하여 정의한 내용이다.
*결정적-비결정론적 지갑 : 지갑을 구분할때 생성된 키들간의 관계에 따라 결정적 지갑과 비결정적 지갑으로 나뉜다. '결정적(Non-deterministic/Random) 지갑'은 모든 키들이 서로 다른 난수로부터 생성되므로 상호 독립적이다. 대표적인 예로 이더리움 지갑이 있으며, 랜덤으로 생성된 한 개인키에 따른 지갑파일(예: JSON인코딩파일)이 하나 만들어지는데
각 키에 따라 별도의 지갑이 존재하므로 관리와 사용면에서 다소 불편하고 번거롭다. 반면, '비결정적(Deterministic/Seeded) 지갑'은 하나의 모든 키들이 하나의 시드(마스터키 개념)로부터 생성되므로 상호 보완적이다. 대표적인 예로 레이븐 모바일 지갑이 있으며, 12개의 단어만 알면 언제든 본인 지갑 복구가 가능하므로, 관리와 사용면에서 상대적으로 간편하다.
- 다음으로 BIP-44관련이다. 이 제안은, 결정론적 지갑보다 한차원 진보한 '계층 결정적(Hierarchical Deterministice)' 지갑을 만들기 위한 것으로, 하나의 시드에서 더 많은 키들을 쉽게 생성하고, 트리구조를 통해 쉽게 유도하는 설계를 정의한 내용이다. 또한, 이 계층 결정적 지갑은 최초 시드로부터 계층적으로 키를 생성하는데 거래가 발생할때마다 새로운 주소를 생성하여 해킹을 어렵게 하는 등 거래 또는 조회시 개인정보를 보호하며, 수많은 키와 그로부터 파생되는 지갑(주소)를 관리하는데 매우 유용한 메커니즘이다.
< 계층 결정적 지갑 도식화(https://potensj.tistory.com) > |
- 그러면 다시 개발자 회의로 돌아가 보자. 트론은 모바일 지갑에서의 니모닉 코드에 대한 논의가 필요하다고 말했다. 이 사안은 지갑 재설치, 오랜만에 네트워크 접속 등 동기화(Sync, 블록체인을 조회하여 지갑 내 자산을 찾는 일련의 과정)를 실행하는 것과 관련된 사안이다. 동기화할때, 특정 블록으로부터 동기화를 하게 하여 시간을 절약할수 있도록 숫자(필자주: 여기서 숫자는 2009년 1월 3일 비트코인 제네시스 블록생성 이후의 기간중 특정 주간을 의미하는 것으로, 가령 제네시스 블록생성 주간을 0으로 치환하면 10주후 주간은 10으로 치환할수 있음)와 같은 '선택적인(optional) 추가정보'를 포함시키자고 제안하였다.
< 엔트로피 및 SHA256으로부터의 니모닉 생성과정(https://potensj.tistory.com) > |
- 바로 위 사진은 128비트 엔트로피와 SHA256으로부터 추출된 체크섬 4비트가 결합된 132비트로부터의 니모닉(여기선 12개 단어) 생성 과정을 보여주고 있다. 바로 뒤의 내용이 어려울것 같아 잠시 언급해봤다.
- 다시 개발자회의로 돌아와서, 트론은 (니모닉 등을 생성하기 위해) 생성된 128비트 중 일부를 엔트로피(필자주 : 무작위 수준을 결정하는 것) 대신 숫자로 사용하자는 것을 제안하였다. 가령, 1)기존의 128비트 중 96비트는 엔트로피로 남기고 나머지 32비트는 타임스탬프*로 구성하거나 아니면 2)기존대로 128비트를 엔트로피로 하되 특정 숫자(즉, 제네시스 블록생성 이후 특정 주간)를 사용케 하여 블록체인 조회 및 동기화 작업이 빨라질수 있을 것이다. 1번의 경우, 32비트가 타임스탬프로 활용되므로 시드 보안측면에서는 불리할수 있고, 2번의 경우, 기존 방식에 별도의 특정 숫자를 기입하는 약간의 번거로움이 있다고 말했다.
* 타임스탬프(Timestamp) : 시간을 기록하는 의미로, 현실세계에서는 0월 0일 0시 0분으로 표현하지만 디지털세계에서는 유닉스타임(Unix time) 등 그 세계만의 고유한 시간기록체계가 존재하며, 가령 비트코인은 거래발생시간을 기준으로 시간을 기록하고 있음. 트론이 말한 32비트에서의 타임스탬프 구성은 이 유닉스타임을 포함시켜 블록체인 조회 및 동기화 작업시 특정 블록생성 기준부터 작업을 하게끔 설정하기 위함
- 트론의 빠른 블록체인 조회 및 동기화 작업방식 제안은 다른 개발자들의 공감을 샀으나 일부 개발자는 코딩으로 숫자를 포함하여 동기화 시작 블록을 고르는 방식말고, 보다 직관적으로 GUI방식(필자주: 동기화 개시 블록을 마우스로 이동하여 클릭한다던지 숫자를 타이핑하는 방식)을 도입하자고 말했고 다른 개발자도 트론이 제안한 방식보다 더 간편하다고 말하며 공감하였다.
ㅇ 메시징(Messaging), 배당(Dividens), 투표(Voting) 개발 현황
- 메시징에 대한 개발은 대략 완료되었고, 개발 및 테스트 일정은 제한자산과 같으며, 앞서 언급했듯이 현재 Qt를 활용하여 메시징과 제한자산을 구축중이라고 말했다.
- 배당에 대한 개발은 추진중인 개발자가 있으나 개발자회의에 불참하고 연락이 닿지 않아 확인할수 없으며, 배당 개발을 하고 있는 다른 개발자들이 있으니 알아보고 다음 회의때 공유하겠다.
- 투표에 대한 개발은 앞서 언급된 제한자산 등이 테스트넷에 올려지고 난 다음 단계에 다룰 예정이다.
ㅇ 레이븐 공식 로드맵 공개
- 2019년 말까지 작성 완료되길 바라며 크리스마스 선물이 될수도 있다.
□ 개인 논평
ㅇ 안정성과 편의성
- 이번 개발자 회의를 통해서 레이븐 지갑의 메커니즘에 대해 좀 더 알게 되었고, 더불어 네트워크 안정성과 사용자 편의성 역시 생각하는 계기가 되었다.
- 현재 레이븐의 지갑 개발 현황은, 네트워크 안정성을 해치지 않는 범위내에서 최소한의 변경을 하여 최대한의 사용자 편의성을 달성하려고 한다.
- 물론 그와 동시에 태그, 제한자산, 메시징, 배당, 투표 등 다양한 기능을 개발하고 구현하기 위해 노력하고 있다.
ㅇ 걸어온 길과 걸어갈 길
- 아무것도 아닐수도 있는 이 오픈소스 프로젝트에, 서로 다른 길을 걸어왔고 서로 다른 능력을 가진이 이들이 모여, 서로 같거나 상호 보완이 가능한 비전과 목표를 향하고 있다.
- 여기서 발현된 '잠재가능성'은 점점 더 많은 이들의 관심과 참여가 모여 어느순간 '가치'가 발생하였고 현재까지 이어지고 있다.
- 혹자는 '과거들의 중첩이 현재'라고 말한다. 그 중첩이 필연적인지 우연적인지 모르겠지만 중요한 것은 우리가 관심을 갖고 참여하는 '레이븐의 미래 역시 현재 우리가 걸어가는 길들의 중첩이 될것'이라는 점이다. 그런 의미에서 현재 레이븐을 지지하는 우리 역시 나름대로의 방법으로 즐기면서 레이븐이 어떤 모습으로 중첩되어 미래를 그려나갈지 기대해보자.
* 추천과 댓글 등 피드백 환영합니다
그래도 늘 관심가지고 감사하며 보고 있습니다...꾹~~