Reading:
BOSAGORA CoinNet 기능 개발 완료 (단계별 향후 계획)
Image

BOSAGORA CoinNet 기능 개발 완료 (단계별 향후 계획)

2021-10-21

BOSAGORA CoinNet 기능 개발 완료

단계별 향후 계획

개요

BOSAGORA 개발팀은 최선의 노력으로 완성도 높은 플랫폼 개발을 위해 매진하여 CoinNet의 기능 개발을 완료하였습니다. CoinNet의 기능 개발이 완료됨에 따라 외부 감사 업체를 통한 개발 코드 감사를 앞두고 있습니다.

우리는 지난 몇 해 동안 블록체인 분야에서 상당히 효과적인 프로젝트들과 암호화폐를 시장에서 중요하게 만드는 많은 새로운 발전을 목격했습니다. BOSAGORA 코인에 대해서도 동일한 목표를 달성하는 것이 우리의 공통 목표이며, 그러한 이유로 우리는 프로젝트를 시작한 후 개발과 마케팅을 위해 노력해 왔습니다.

BOSAGORA는 투명성과 개방성을 중요시하는 퍼블릭 블록체인으로서 누구나 참여할 수 있으며, 탈중앙화된 네트워크를 구축하고, BOA 홀더들의 의견을 수렴하여 생태계에 도움이 되는 비지니스 모델 등의 제안을 선별하여 지원하는 민주적인 의사결정 플랫폼을 갖추고자 합니다.

그리고 이후 과정에서 가치와 수익성을 지닌 제안의 비지니스들을 유치하여 단기적인 인플레이션을 통제하거나 사업진행의 성과를 통해 BOA의 가치를 높임으로서 홀더들에게 혜택이 돌아가고 생태계가 더욱 확장 되기를 원합니다.

BOSAGORA가 CoinNet의 어떤 기능을 개발 하였는지, 향후 CoinNet 출시를 위해 필요한 준비과정과 어떻게 통합하려는지를 살펴보고자 합니다.

목표

1) 개방적이며 — Public, with openess

2) 탈중앙화기반의 — Decentralization-based

3) 신뢰할만한 (보안) — Reliable

4) 발전적인 제안을 통해 진화하며 — Evolving through developmental suggestions

5) 민주적이고 — Democratic

6) 전체가 참여하는 — Full (Entire) node participation

7) 빠른 결제가 가능하고 — Fast

8) 확장성을 제공하는 — Scalable

9) 에너지와 환경을 고려한 — Considering energy and the environment

10) 생태계 참여자에게 이로운 (보상이 제공되는) — beneficial to ecosystem participants

블록체인 플랫폼을 만들고자 합니다.

이러한 목표는 백서의 내용에 기반하여, 재단과 BOSAGORA 팀, TAB(Technical Advisory Board), 협력사 및 BOSAGORA 커뮤니티에서 공유되어왔고, 우리가 오랜동안 해왔던 임무이자 작업에 대한 표지판 역할을 하였습니다.

이러한 목표중에서 특히 보안과 탈중앙화, 확장성의 달성을 위한 문제는 블록체인 기술의 트릴레마로 불리며, 동시에 모두 해결하는 것이 불가능한 과제로 알려져 있습니다. 실제로 탈중앙화된 Public Full Node POS는 기술적으로 무척 어려운 과제이며, 전세계에서 아직 체계적으로 완성된 프로젝트를 찾아보기 어렵습니다. 이더리움이나 알고랜드 같은 프로젝트들도 유사한 비전을 위해 노력하고 있습니다. 이러한 도전 과제를 잘 수행해낸다면 BOSAGORA는 블록체인 분야에서 기술적으로 무척 의미있는 사례가 될 것입니다.

앞으로 진행할 CoinNet 전환 4단계

CoinNet 기능 개발 완료를 시작으로 앞으로 기능적이고 안정적인 CoinNet으로의 전환은 다음의 4단계로 이루어집니다.

CoinNet 단계별 계획 (CoinNet Stage Plan)

Stage 1. CoinNet Function Development

✓ Period : ~ August (Completed)

BOSAGORA 백서에서 기술적인 구현 과제를 큰 구분으로 보면 합의(Consensus), 계약(Contract), 의회(Congress)의 3가지로 나뉘어 있습니다. 우리는 이 중에서 합의(Consensus)와 의회(Congress)의 기능이 구현된 코인넷을 개발하였으며, 투표기능을 위한 Votera, 지갑(Wallet), 블록조회(Block-Explorer) 등의 도구를 준비하였습니다.

합의(Consensus)와 관련하여 –
우리는 Congress 의결권을 가진 모든 Node들이 Block Confirm에 같이 참여하도록 하고자 하며, 이를 위한 기본적인 합의 알고리즘으로 SCP(스텔라 합의 프로토콜) 를 선택하였고, SCP는 거래를 정확하게 기록하기 위해 중앙화되거나 폐쇄된 시스템에 의존하지 않고 합의에 이르는 방법을 제공합니다. (SCP는 분산 제어, 유연한 신뢰 및 비대칭 보안과 같은 주요 속성을 갖추고 있으며, 사용자가 누구를 신뢰할 것인지 선택하고 이를 바탕으로 형성된 신뢰망을 이용하여 합의에 도달하는 방식입니다.)

하지만 SCP는 참여의 측면에서 충분히 개방적이지 않기 때문에 우리는 이것을 완전히 분권화하고 개방적인 구조로 업그레이드 하였습니다. 이것을 위해 Balancing 기능을 구현하였고, 또한 SCP에는 고려되지 않았던 POS 를 구현하기 위한 체계적인 Reward 구조를 만들었으며, 프로토콜을 어기고 부정적인/악의를 가진 행위를 하는 Node들을 퇴출시키기 위한 Slashing 기능을 포함하였습니다. Slashing 프로토콜은 노드의 지분을 빼앗을 수 있는 일련의 규칙이며, Slashing이 있는 PoS 시스템에서, 검증자들은 시스템의 일부분을 부담하는데 거의 또는 전혀 비용을 지불하지 않지만, 잘못된 행동은 가혹하게 처벌됩니다.

우리는 Full-Node 구현을 위해 다음과 같은 블록체인에서 요구하는 대부분의 기본 기능과 응용기능을 구현하였습니다.

– Basic server architecture : config & argument parsing, logging /stats components (구성 및 인수 구문 분석, 로깅/통계 구성 요소)

– Discovery protocol : 하나의 독립형 노드가 시작되고 다른 피어와 상호 작용할 수 있을 만큼 충분한 네트워크를 얻을 수 있는 프로토콜

– Gossip protocol : 네트워크상에서 새로운 데이터를 빠르고 효율적으로 전파할 수 있는 프로토콜로서, 거래나 블록일 수 있음

– Catch-up protocol : 노드가 네트워크와 결합하는 네트워크와 동일한 글로벌 상태에 도달하기 위해 수신하는 데이터를 재생하여 네트워크와 “캐치업”하는 수단

– Disk serialization : 직렬화, 노드가 매번 네트워크를 따라잡지 않도록 컴팩트하고 안전한 방법으로 로컬 상태를 디스크에 저장하는 수단

– Settlement Layer : 다음 블록에 안전하게 포함될 수 있는 일련의 거래 선택을 담당하는 모듈이며 적절한 인센티브 모델을 설계하는 첫 단계의 역할

– 기타 : 검증자가 될 수 있도록 코인을 나눠주는 봇, 거래 전송을 위한 최소한의 인터페이스, 결제 중인 being settled on 데이터를 분석하고 표시하는 도구 개발 등

Validator (검증자 기능) 개발을 위해 효율적인 서명체계(Schnorr signatures)와 UTXO 데이타 구조를 설계하여 적용하였습니다. 새로운 데이터를 효율적으로 가져오고 저장하기 위해 데이터 합의가 포함된 UTXO 데이터 구조이며, 노드 운영자는 자신의 UTXO를 ‘동결’로 표시하는 트랜잭션을 생성하여 검증자 노드 실행을 위한 담보물로 사용할 수 있습니다.

합의에 참여하는 Node들로 구성되는 쿼럼(정족수)에 개방성을 부여하기 위한 Balancing 기능을 개발하였습니다. 쿼럼이란 결정되어 결코 변할 수 없는 합의이며, 신뢰할 수 있다고 선택된 노드 집단을 말하며, ‘Balancing’은 쿼럼 생성과정을 자동화하는 것으로 사용자들은 누구를 신뢰해야 하는지 또는 어떻게 신뢰가 생성되는지에 대해 걱정할 필요가 없습니다.

확장성 문제의 해결을 위해 Flash-Layer를 개발하였습니다. 노드수가 증가함에 따라 각 노드는 더 높은 하드웨어 및 대역폭을 필요하게 되어 트랜잭션 확인에 더 많은 시간을 소요하게 되는데 이를 해결하기 위해 2계층 솔루션을 도입하여 1계층에 모든 데이터를 기록할 필요없이 피어에서 트랜잭션을 수락하여 빠른 트랜잭션 속도를 유지할 수 있게 됩니다.

외부와의 인터페이스를 위해 StoaSDK를 지원합니다. Agora는 BOSAGORA의 네트워크 이름이며 Stoa는 Agora의 API 서버 이름입니다. 검증자 노드를 최대한 가볍고 안전하게 유지하기 위해 BOA 블록체인에 대한 인터페이스를 다음과 같은 두 엔티티 사이에서 분리하기로 했습니다. Agora는 블록체인 데이터 검증을 담당하는 핵심 서버이며 검증자 역할을 할 수 있습니다. 반면 Stoa는 아고라에 접속하는 API 서버이며, 각 블록을 처리하여 훨씬 더 풍부한 블록체인 뷰를 생성합니다. 예를 들어, Agora는 특정 공개키에 속하는 모든 UTXO를 찾을 수 있지만, 모든 UTXO 항목에 대해 반복하거나 추가 캐시를 사용하여 이 정보를 추적해야 합니다. 이것은 아고라가 일반적으로 실행하는 것이 아니기 때문에, 그러한 캐시는 존재하지 않습니다. 한편, 특정 공개키에 대한 UTXO를 나열하는 것은 사용자들이 자주 원하는 것이며, 이와 같이 Stoa는 이러한 정보를 직접 만들어 저장합니다. 이 분리를 통해 버그 노출을 줄일 수 있습니다.

Congress 를 위한 서비스로 추진된 Votera Server와 Application(Android와 iOS 지원)은 노드 운영자들로 구성된 멤버들이 민주적인 의사 결정프로세스를 통해 생태계를 발전시킬 의견 조율이나 인큐베이팅할 프로젝트를 직접 선정하게끔 하기 위하여 제안과 토론, 투표에 이르는 과정을 지원하고 투표의 내용들이 투명하게 블록체인에 기록될 수 있도록 개발하였습니다.

토큰넷에서 코인넷으로 전환하기 위해서는 working product(노드)가 필요할 뿐만 아니라, 그 주변에 적절한 도구 세트, 즉 Block Explorer 와 멀티플랫폼을 지원하는 Wallet 등이 필요합니다. BOA팀에서는 BOAscan이라는 이름의 Block Explorer 와 Web, iOS, Android 를 지원하는 BOA Wallet 을 기본적으로 개발하여 지원합니다. 물론 추후에는 BOSAGORA 생태계를 위해 프로토콜을 준수하고 제공되는 SDK/API를 잘 활용한 제 3자에 의한 기타 도구들이 풍성하게 만들어지기를 바랍니다.

이렇게 BOSAGORA 블록체인 네트워크 기능 및 블록 처리를 위한 상세 기능과 유효성 검사 부분과 함께 도구의 통합과 Node 운영에 필요한 관리기능을 개발하였습니다.

Stage 2. External Audit for CoinNet & Wallet

✓ Period : September ~ November

BOSAGORA의 CoinNet과 Wallet 개발 코드에 대한 외부 감사에 대응하고 제품이 최고 품질에 도달할 수 있도록 점검 및 보완 검토 내용에 대한 업데이트를 실시할 것 입니다.

우리는 CoinNet과 Wallet의 개발 코드 감사를 진행할 수 있는 외부 코드 감사 업체를 선정하는데 많은 노력을 하였습니다. 글로벌 상위 50여개 업체들을 약 6개월에 걸쳐 협의하였으나 대부분이 보편적인 스마트컨트랙트 감사만 가능할 뿐이고 BOSAGORA와 같은 코인넷/메인넷에 대한 코드 감사가 가능한 업체가 거의 없었습니다. 다행히 최근에 상위 업체 중 코드 감사가 가능한 업체와 계약을 체결하여 9월부터 코드에 대한 감사를 진행하며, 감사업체의 고유 절차에 따라 약 3개월의 시간이 소요될 것으로 예상됩니다. 코드 감사 후반에는 실질적인 보완사항 테스트가 진행될 예정입니다.

이 단계에서는 외부 감사에 대한 대응과 더불어 CoinNet Launch를 위해 추가로 몇가지 작업들을 진행할 것입니다.

– 브릿지 개발 (ERC-20 to CoinNet Preparation)

BOA팀은 2단계인 CoinNet Launch 단계에서 진행될 ERC20 토큰을 BOA 코인으로 이전하는 Bridge를 준비할 것입니다. 이 단계에서 개발팀은 새로운 코인넷 요구 사항에 맞게 거래소 및 기타 API 사용자(예: CoinMarketCap & CoinGecko) 등과 협력하여야 합니다.

– 설치용 컨테이너 & GUI Admin

노드의 설치는 컨테이너 형식의 이미지를 기반으로 배포하여 쉽게 설치 가능토록 준비하려 합니다.

(노드 운영에 필요한 서버프로그램, 소스코드 및 라이브러리, 컴파일된 실행파일을 묶은 형태로 모든 파일과 설정과 환경을 지닌 것으로, 더 이상의 의존성 파일을 컴파일하거나 이것저것 설치할 필요 없는 상태를 말합니다.)

노드 운영환경으로 Linux와 MAC 및 Windows를 지원할 것이고, 전산에 익숙한 사람들을 위한 CLI (Command Line Interface) 환경과 함께 일반인들을 위해 GUI (Graphic User Interface)인 Admin을 통해 Node를 실행할 수 있도록 하려합니다.

– Agora Network 자동 업데이트 방식 적용

노드 운영중에 추후에 수정(업데이트)된 내용을 자동으로 적용되도록 하는 기능을 탑재하려 합니다.

개발 팀은 새로운 기능과 향상된 기능을 갖춘 새로운 버전의 코드를 주기적으로 업데이트해야 하며 때로는 중요한 보안 문제를 해결할 수 있어야 합니다. 이를 위한 우리의 계획은 아고라와 스토아를 위한 자동 업데이트 소프트웨어를 구현하여 최신 상태를 유지하기 위해 복잡하고 불편한 조치가 필요하지 않게 하는 것입니다

Stage 3. CoinNet Launch

✓ Period : November ~ December

CoinNet에 대한 외부 감사가 마무리가 되면 제네시스 블록을 생성하고 실질적인 CoinNet이 출발합니다.

이에 따른 계획을 세우기 위해 출시일을 사전에 알릴 것입니다.

그러나 대부분의 블록체인 프로젝트가 그러했듯이 이 단계에서는 안정화를 위해 전체 네트워크(노드)가 재단에 의해 운영됩니다. 이 기간 동안 새로운 특징, 실제 운영환경에서 벌어진 버그의 수정 또는 단순히 최적화를 위하여 노드에 대한 일부 조정이 필요할 수 있습니다.

우리의 목표는 완전히 분산된 네트워크를 제공하는 것이지만, 이러한 초기 단계를 갖는 것은 몇 가지 이점이 있습니다. 첫째는 초기에 네트워크의 고가용성(HA)을 보장할 수 있다는 것이고, 둘째는 개발 팀이 가장 중요한 문제를 먼저 해결하는 데 집중할 수 있도록 한다는 것입니다. 네트워크는 51% 공격의 위험이 없는 상태이기 때문에 네트워크를 느리게 하거나 중지시키는 공격 벡터에 초점을 맞출 수 있으며, 네트워크에 큰 이해 관계가 필요하지 않습니다. 팀이 51%가 아닌 모든 공격을 처리할 수 있는 네트워크 용량을 확신하면, 다음 단계에서는 합의 프로토콜에서 재단의 역할을 점차 줄여 네트워크를 보다 개방적으로 만들 것입니다.

CoinNet 출시로 대중이 가장 크게 주목하게 될 차이점은 기존 ERC-20 토큰 타입에서 실제 BOA 코인으로의 전환입니다. 토큰넷에서 코인넷으로 전환하기위해 자동화된 방식으로 작동해야 합니다. 사용자의 코인이 두 배로 늘어나는 것을 피하기 위해, 홀더들은 그들의 코인넷 코인을 받기 위해 ERC20 코인을 소각하여야 합니다.

이를 위해 Bridge를 제공할 것입니다. 브리지는 체인간의 교환을 위해 개발된 것으로, 한쪽에서 ERC20 토큰을 수신하여 잠그고 코인넷에서 BOA 코인을 사용자에게 전송하는 것입니다. 이러한 전환 프로세스에 대한 사양과 관련 화면은 별도의 안내로 제공할 것입니다.

CoinNet 구축이 성공적이기 위해서는 거래소와 같은 대부분의 서비스 공급업체가 이를 지원할 준비가 되도록 협력하고 확인해야 합니다. 이는 BOA팀만의 의지로 정해지는 일이 아니기 때문에 사전에 실행 일정에 대한 조율과 협조가 필요합니다.

Stage 4. CoinNet Public

✓ Period : January ~ March

일정 기간 동안 BOSAGORA 네트워크의 안정성이 개선되고 검증되면 일반에 공개하여 배포할 예정입니다. 이렇게 하면 BOA 홀더가 노드를 작동할 수 있습니다.

코인넷 공개 단계는 완전한 기반 실행 플랫폼에서 분산형 공개 운영 플랫폼으로 전환하는 단계가 될 것입니다. 이 단계에 이른 이후에도 수정 사항에 대한 업데이트가 자주 배포될 수 있습니다.

CoinNet Public 초기에는 Node 설치를 서두른 일부가 합의력의 대부분을 차지할 가능성이 있을 것입니다. 재단에서는 초기에 합의력의 쏠림이 부정적 영향을 미치지 않도록 노드 숫자를 안배하고, 특히 Commons Budget이 오용되지 않도록 안정화 될 때까지 제안이나 투표의 기간 제한, 금액 제한 등을 조치할 수도 있습니다.

BOSAGORA CoinNet 기능 개발 완료 관련 CTO 커뮤니티 메시지:
https://youtu.be/HzTjCejClMg


0 Comments

답글 남기기

Arrow-up