Info

[18.07.20] 정기 공지 : 에이넷을 만나다 #1 — Blockchain Developer, Joshua

By 2018년 7월 20일 No Comments

Roy : 안녕하세요. ANET에서 한지우를 맡고 있는(웃음) Roy입니다. 반갑습니다.

Joshua : 반갑습니다. 블록체인 개발을 담당하고 있는 Joshua입니다.

Roy : “ANET을 만나다” 첫 번째 인터뷰이로 선정되신 것을 축하드립니다.

Joshua : 별 말씀을요. 인터뷰라니 조금 떨리긴 하네요. 하하.


오늘 ANET 팀의 개발 담당 팀원 Joshua님과 진행할 인터뷰는 크게 세 가지 주제로 구성되어 있습니다. 첫째는 개발 진행중인 사항, 둘째는 테스트넷 Alpha Test, 그리고 셋째는 현재 계획된 앞으로의 개발 방향입니다.

Joshua님께 제일 먼저 여쭙고 싶었던 내용은 ANET 프로젝트가 처음 시작할 당시의 단순한 아이디어-채굴장 개발-에서 웹 브라우저 기반 블록체인이라는 현재의 콘셉트까지 진행된 과정과 그 이유였습니다.


웹/모바일 채굴장 구축에서 출발한 ANET이 지금은 어려운 기술도 많이 들어가고 개발 스코프가 상당히 광범위해졌습니다. 특히 ‘웹 브라우저 기반 블록체인 기술’, 이 부분이 현재 많은 관심을 받고 있는데 어떤 과정을 거쳐서 여기까지 진행된 건가요?

“가장 기초적이고 핵심적인 질문이네요. 우선 저희 개발팀은 (개발을 포함한 여러 측면에서) 기존의 합의 방식과 다른 블록체인을 개발하는 것보다는 이미 증명된 작업 증명 방식(PoW)을 개선하는 것이 낫다고 판단했습니다. 그러면서도 동시에 ‘채굴장’으로 대표되는, 채굴의 낮은 기술적 문턱을 실현하는 방안이 바로 웹 블록체인이라고 생각했습니다. 코드를 다운로드받고 컴파일해서 실행하는 것만 해도 개발 경험이 없으신 분들께는 꽤 복잡한 일이니까요.”

웹 블록체인이 기존 블록체인에 비해 강점을 가지는 부분이 있나요?

“작업 증명 방식이 가장 효율적인 상황은 컴퓨팅 파워 차이가 거의 없는 다수의 노드가 지속적으로 유지되는 상태입니다. 웹 블록체인은 채굴 기술의 문턱을 낮춤으로써 사용자가 쉽게 채굴자가 될 수 있도록 합니다. 장기적으로 볼 때, 이 방식이 조금은 느리더라도 다수의 노드를 확보하는 데 도움이 됩니다. 이는 곧 작업 증명 방식 블록체인의 효율을 높이는 것입니다.”

‘누구에게나 평등한’ 것이 오히려 가장 효율적이기도 한 것이군요.

“그렇죠. 그뿐 아니라 기술적으로 많이 향상된 부분도 있습니다.”

“브라우저의 한정된 저장공간과, 한정된 컴퓨팅 파워로 작업 증명 처리를 가능하도록 하기 위해 여러 기술이 적용되었습니다. 풀 노드 유지의 필요를 없애 적은 공간으로도 채굴 노드를 작동시킬 수 있도록 한 ‘미니 블록체인’ 개념. 웹 환경에서도 네이티브 코드와 같은 속도로 코드를 처리하도록 한 웹 어셈블리 등이죠. 리소스를 많이 소모하는 ‘무거운’ 작업 증명 방식 블록체인을 여러 측면에서 보다 효율화한 것이 장점이라고 할 수 있습니다.”

현재까지 개발된 결과물은 무엇이 있나요?

“ANET 팀에서 개발된 작업물들은 Github(https://github.com/ANET-Blockchain)에서 일부 확인하실 수 있습니다. Golang 버전의 기본적인 블록체인과, 해당 블록체인 코드를 JavaScript 기반으로 컨버팅한 새로운 블록체인 코드가 공개되어 있습니다. 이외에 A.I. 모듈과 인공지능 기반의 Trading Analysis 등의 작업도 상당 부분 완료되었지만 보안의 중요성이 큰 부분이라 현재는 미공개입니다.”


 

7월 20일 오늘, ANET 테스트넷이 공식적으로 오픈되었습니다. Developer 팀원분들의 많은 노고가 있었기에 개발팀의 맏형이신 Joshua님은 감개가 무량해 보였습니다. (많은 관심과 성원에 진심으로 감사드립니다.)

이번 테스트넷 Alpha Test에 총 16분께서 참여해 주셨죠. 참여자 지원을 받을 때 몇 가지 질문을 했었는데 특별히 기억에 남은 답변이 있을까요?

“저희가 문제를 내면서 사실 조금 창의적인 답변을 기대하기는 했어요. 예를 들어 하나씩 인덱스, 혹은 일부러 어려운 방식으로 돌고 돌아 답을 도출한다든지… 지원해주신 분들 모두 답변 수준이 훌륭하시더군요. 특히 모든 답변을 한자로 제출하신 분은… 구체적인 답변은 아끼겠습니다(웃음)”

테스트넷 Alpha Test를 진행하는 목적은 무엇인가요?

“Beta Test 이전에 Alpha Test를 진행하는 이유는 테스트 방법이 아무래도 개발 경험이 없으신 분들께는 테스트 참여 자체가 어려운 상황이라서 그렇습니다. 현재 블록체인과의 통신은 HTTP 프로토콜로 하는데, 이건 웹 페이지가 없으면 실행하기가 조금 까다롭습니다.”

“기능 구현이 우선이라 웹 인터페이스 구성은 Task 순위에서 좀 밀렸거든요. 저희가 원하는 핵심 기능들이 구현되고, 인터페이스도 좀 더 유저 친화적으로 바뀐 이후에는 좀더 규모를 키워서 Beta Test를 진행할 계획입니다.”

테스트넷 Alpha Test를 진행하는 구체적인 방법은 어떻게 되나요?

“테스트 방법은 다음과 같습니다.

(1) git clone https://github.com/ANET-Blockchain/AnetJS
(2) yarn add nodemon, yarn add level-browserify
(3) yarn dev
(4) 블록체인 통신은 REST API를 사용합니다.

Github에 첨부된 request.http를 Notepad 등에서 열면 지원하는 명령을 확인하실 수 있습니다.
비주얼스튜디오 코드 같은 ATOM 기반 IDE에서 열면, 생성되는 send quest 버튼을 통해서 테스트할 수 있습니다.
다른 방법으로 커맨드라인 환경에서 REST API (HTTP) 요청 보내기를 따라하시면 설치된 IDE가 없어도 REST API를 사용할 수 있습니다.”


ANET 테스트넷 Alpha Tester로 선정되신 분들께는 차주(7월 4번째 주)에 순차적으로 연락을 드릴 예정입니다. 많은 참여에 다시 한 번 진심으로 감사드립니다!

현재 ANET 체인에 구현된 기능과, 추가 예정인 기능들은 무엇이 있나요?

“기본적인 블록체인 기능은 이미 다 구현되었습니다. 사실 이건 저희가 진행 중인 다른 부분들에 비하면 간단한 일에 속합니다. 블록체인은 단순하게 보면 일종의 변형 단일 연결 리스트라고 할 수 있으니까요. ”

“저희가 앞으로 할 일은 블록체인의 성능을 높이는 작업이라고 보시면 됩니다. 그리고 이게 바로 상대적으로 어려운 부분입니다. 경우에 따라서는 기본 구조를 거의 갈아 엎다시피 해야 하고(ANET 체인에 ‘미니 블록체인’ 구조를 적용하는 작업), 트랜잭션 클래스의 구조도 완전히 바꾸어야 합니다(어카운트 트리로 계좌를 관리하여 트랜잭션 처리 방식을 새롭게 구성하도록 하는 작업).”

지금 작업 중이거나 계획된 기능들의 존재 목적(강점)은 무엇인가요?

“기존 블록체인의 성능을 높이기 위한 ‘미니 블록체인’ 구조에 대해서 간단히 설명할게요. 일단 미니 블록체인은 아래 3가지 구성 요소로 이뤄져 있습니다.

(1) 미니 블록체인 (Mini-Blockchain)
(2) 어카운트 트리 (Account Tree)
(3) 프루프 체인 (Proof Chain)

미니 블록체인은 본질적으로 일반적인 블록체인과 다르지 않지만, 오래된 트랜잭션 정보를 저장하지 않아도 된다는 특징이 있습니다. 또 가벼워서 풀 노드를 다운로드받지 않아도 되고, 따라서 웹 브라우저에서도 작업 증명 방식의 연산 작업을 수행할 수 있어 결과적으로 웹 기반 블록체인을 실현할 수 있게 됩니다. 말하자면, 일종의 Scalability Issue에 대한 해결책이 된다고 할 수 있죠.”

인터뷰에 몰입하다 보니 이야기가 어느새 현재 준비 중인 액면분할 스마트컨트랙트 갱신에 대해서까지 이어졌습니다. 말이 나온 김에 Joshua님께 ANET/ANX 액면분할 컨트랙트 갱신의 진행 상황에 대해서도 여쭤보기로 하였습니다.

지금 컨트랙트 갱신(액면분할)이 지연되고 있는 이유는 무엇인가요?

“이더리움 블록체인이 과부하되어 있어서 그렇습니다. 그 외에 저희 쪽에서 할 수 있는 준비는 모두 마쳤다고 보시면 됩니다.”

그렇다면 언제쯤 가능할 것으로 예측하고 계신지요?

“이더리움 블록체인 상태는 현재 조금씩 나아지고 있습니다. 아마 다음 주 중으로 오픈할 수 있지 않을까 싶어요. 물론 예상과 달리 빠른 시일 내에 정상화되지 않을 경우 약간의 불편을 감수하고 강행해야 할 시점도 내부적으로 논의 중입니다.”

컨트랙트 소스코드는 어디서 확인할 수 있나요?

“앞서 말씀드린 다른 개발 진행 사항과 함께 ANET Github https://github.com/ANET-Blockchain/anet_split에서 열람하실 수 있습니다. 약 2주일 전에 업로드 되었어요. Truffle Box를 활용하여 간단한 구조로 제작하였습니다. 아마 보시면 바로 이해하실 수 있을 거예요.”

인터뷰가 진행되는 동안 Joshua님은 차분하게 진행 중인 개발 상황과 앞으로의 계획 등을 설명해 주셨습니다. 블록체인 개발에 대한 Joshua님의 열정은, 시니어 프로그래머이자 개발팀의 맏형으로서 Developers 분들을 조율하는 모습에서도 늘 드러나지만 이렇게 말씀을 나누는 와중에 더욱 강렬하게 발산되는 것 같기도 합니다. 이런 부분을 보면 역시 개발자다우시다고나 할까요.

마지막으로 투자자분들께 전하고 싶은 말씀이 있으신가요?

“저희 회사에는 야근이 정말 없으니까 개발자 분들의 많은 지원 부탁드립니다(웃음). 앞으로도 많은 분들께 개발 내용을 공유하고, 또 소통하고 싶은 마음이 있어요. 그런데 아시다시피 저희 Developer들이 워낙에 그 어떤 완벽주의… ‘마치 내 자식 같은’ 개발 결과물들에 대한 애정이 크다 보니 공을 많이 들이고 싶은 곳들이 조금 많습니다. 너그럽게 지켜봐주세요. 투자자분들이 주신 믿음에 반드시 보답이 될 테니까요.”

Author : Roy(한지우)
Interviewee : Joshua


2018.7.20.
ANET Friends