이 글은 블록체인에 대한 관심은 있지만 기술적인 지식은 높지 않은 분들도 쉽게 이해하도록 작성했습니다.
본 문서에서는 실제 사례인 ARK의 BaaS, ARK Deployer에 대해 알아보겠습니다.
먼저, 블록체인 네트워크와 ARK에 대해 간단히 살펴보겠습니다.
블록체인 네트워크는 Public과 Private 네트워크로 나눌 수 있습니다.
Public 네트워크는 제네시스 블록이 만들어진 후 그 생태계를 발전시키기 위해 전 세계의 사람들이 자발적으로 참여하는 공개형 네트워크입니다. 반면, Private 네트워크는 특정한 목적을 위해 특정 사람들만 사용하는 비공개형 네트워크입니다.
BaaS(Blockchain as a Service)는 무엇일까요?
BaaS는 사용자로 하여금 블록체인의 기술적 요소보다 사업 모델에 더 집중할 수 있도록 해줍니다.
또한, 인프라 구성부터 블록체인 노드 설치 및 운영 등 블록체인을 활용하기 위해 필요로 하는 사전 작업들을 도와줍니다. BaaS를 한마디로 정의하면, “블록체인 Private 네트워크의 생성 및 관리를 간편하게 해준다”라고 할 수 있겠습니다.
ARK는 무엇인가요?
“목표나 기술적 배경에 관계없이 모든 사람이 블록체인 기술을 빠르고 쉽게 활용할 수 있도록 합니다. 우리는 개인, 개발자 및 신생 기업이 자체 프로젝트, 응용 프로그램 및 아이디어의 기초로 블록체인 기술을 적용할 수 있는 도구와 리소스를 제공합니다.” – 출처: https://ark.io/
ARK는 우리가 흔히 알고 있는 이오스나 이더리움과 유사하게 자체 생태계를 조성하고 노드 운영, 스마트컨트랙트 배포, 디앱 개발을 할 수 있도록 도와줍니다.
“ARK Deployer란 어떤 것일까?”
[ARK Deployer 메인 화면 – 출처: https://deployer.ark.io/]
ARK Deployer는 웹 형태로 되어있어 설치가 필요 없고, 별도의 로그인 없이 서비스를 이용할 수 있습니다. 하지만 ARK는 자체 클라우드 서비스가 없기 때문에 인프라 부분에 대한 준비가 별도로 필요합니다.
블록체인 기반의 서비스를 준비하는 분들에게 직접 인프라를 구축하고 준비하는 것은 부담이 될 수도 있습니다. 다른 블록체인의 경우 자체 클라우드를 운용하는 기업과 협약을 맺어 인프라에 대한 부분을 보완하기도 했습니다.
(QTUM 블록체인과 아마존: https://blog.qtum.org/qtum-announces-a-historic-partnership-with-amazon-web-services-6a197568f6a0)
“실력에 맞게 체인을 생성하기”
[ARK Deployer의 레벨 설정 화면 -출처: https://deployer.ark.io/select-level]
ARK Deployer 메인화면에서 체인 생성하기를 누르면 처음으로 나오는 화면입니다.
3가지 레벨로 나누어져 있으며, 블록체인을 잘 모르는 사람이라 할지라도 Basic 단계를 통해 쉽게 체인을 생성할 수 있습니다. 만약 어느 정도 지식이 있는 경우엔 더 많은 설정을 직접 할 수 있는 Intermediate나 Advanced 레벨을 선택하면 되겠습니다.
“나만의 블록체인 설정하기”
[ARK Deployer의 체인 배포 전 설정 화면(Advanced) – 출처: https://deployer.ark.io/fees-static]
그다음 단계는 사용자가 사용할 체인에 대한 설정을 할 수 있습니다.
ARK 네트워크의 합의 알고리즘은 AERGO나 EOS와 마찬가지로 DPOS 방식입니다.
따라서, 두 블록체인의 BP(Block Producer)와 유사한 개념인 Forgers가 있습니다.
ARK Deployer에서 Forgers, 블록 생성 시간, 총 발행량, 수수료 등 블록에 대한 세부적인 사항들을 목적에 맞게 직접 설정할 수 있습니다.
Forgers들은 블록을 생성하는데, 생성된 블록 안에는 해당 시간 동안 발생한 트랜잭션의 정보가 담겨있습니다.
그러한 트랜잭션의 정보들은 보통 탐색기라 불리는 Scan, Explorer를 통해 확인할 수 있습니다.
“트랜잭션 조회는 어떻게?”
[AERGO Scan(왼쪽), ARK Explorer(오른쪽)]
-AERGO Scan: https://mainnet.aergoscan.io/
-ARK Explorer: https://explorer.ark.io/
AERGO 체인에 AERGO Scan이 있는 것처럼 ARK 체인에는 ARK Explorer가 있습니다.
해당 체인에서 발생한 트랙잭션의 기록과 현재 생성 중인 블록에 대한 정보를 볼 수 있습니다.
마지막으로, 아래는 ARK Deployer로 브릿지 체인을 생성하는 방법에 대한 요약입니다.
– 출처: https://deployer.ark.dev/
Step 1 Prepare: 체인을 생성하기 전에 알아야 할 사항들
- 목적 정의
a. 어떤 용도로 체인을 사용할지에 따라 레벨(3가지)을 선택할 수 있으며, 각 레벨마다 커스터마이징 가능한 옵션이 다름
-
- Basic Level: ARK 퍼블릭 네트워크 설정과 동일
- Intermediate Level: 체인 이름, 심볼, 수수료, 공급량 등 커스텀 가능
- Advanced Level: 모든 세부사항(호스트, 포트 번호, Explorer 등) 커스텀 가능
b. 잘못된 설정 조합은 체인의 안정성을 떨어뜨리며, 포크를 야기할 수 있음 (권장 설정, 퍼블릭 네트워크)
-
- Number of Forgers: 51
- Block Time: 8 Seconds
- Number of Transactions per Block: 150
- 네트워크 형태
a. 노드(제네시스 노드, 피어 노드)의 IP 주소
-
- 제네시스 노드
- 피어 노드
b. 네트워크 상태
-
- Mainnet: 제품군에서 사용, 퍼블릭 네트워크의 실제 코인과 Tx를 사용 (최소 20개의 피어 노드)
- Devnet: 메인넷에 올리기 전에 사용 (최소 5개의 피어 노드)
- Testnet: 로컬에서 운영, 테스트 용도 (피어 노드 필요 없음)
- 서버 운영 방법
a. 서버 종류와 서비스 공급자를 설명하며, 노드 운영 수에 따라 예상되는 비용을 예시로 듦
b. 서버 종류 및 필요 사양
-
- VPS(Virtual Private Server)
- Dedicated Server
- Local Hardware
- 요구 하드웨어 사양
Type | Value |
OS | Ubuntu
16.x/18.x |
CPU | 2 Core |
RAM | 8GB RAM |
Storage | 20 + GB
SSD(HDD) |
- 서버 연결 및 준비
a. 서버 연결: 운영체제별로 서버에 연결하는 방법을 안내(PuTTy, ssh 등)
b. 서버 준비: 사용자 추가 및 권한 부여
c. Github 준비: 프로젝트를 위한 Github Repo 생성 및 연동
Step 2 Customize: 체인 커스터마이징
- 커스텀 레벨 선택
a. 기본 레벨, 중급 레벨, 고급 레벨로 선택 가능
- 브릿지체인 이름 설정
- 체인 설정(Forger 수, 블록 생성 시간, 블록당 Tx 수, 코인 유통량, 채굴자 보상 등)
- 수수료 설정
a. Static fees: 설정값의 최소, 최대치를 제공함 (합리적인 수준)
b. Dynamic fees: 트랜잭션 크기에 따라 동적으로 수수료를 부과할 수 있음 (선택적)
- 서버 설정(호스트, DB 포트, API 포트 등)
- Explorer
- 추가 옵션(Git, License)
- 피어 설정
a. 메인넷: 최소 20 피어
b. 개발넷: 최소 5 피어
Step 3 Deploy: 체인 생성
- 스크립트 배포
a. 체인 커스터마이징이 끝나면 배포 스크립트가 생성되는데, 이를 제네시스 노드에서 실행함
b. 제네시스 노드 생성 과정에서 address와 passphrases가 표시됨
-
- 한 번만 보이며, 사용자 스스로 안전하게 보관해야 함
- 피어 추가
a. 제네시스 노드 동작 후 피어 노드들을 추가하여 네트워크 안정성을 높임
-
- 테스트넷: 상관없음
- 개발넷: 5 피어
- 메인넷: 20 피어
- 지갑 연동
a. 브릿지체인에서 사용하는 코인을 ARK Desktop Wallet에 추가할 수 있음
- Forger 추가
a. 지갑을 생성하여 토큰을 추가한 다음 delegates 탭에서 voting 가능 (vote = tx이므로 fee 발생)
b. 득표 수에 따라 delegates로 선출됨 (delegates로 출마/등록 시에도 fee 발생)
- 체인 운영
a. 제네시스 노드를 없애고, 제네시스 노드에 그 누구도 접근하지 못하게 해야 함
b. 주의점
-
- 적절한 delegates를 선출하여 제네시스 노드 없이도 체인이 운영될 수 있도록 해야 함
- 제네시스 노드가 보상을 받았을 경우, 그 토큰을 삭제(burn) 하거나 이전할 수 있음
이 글을 통해 BaaS와 ARK Deployer가 무엇인가에 대해 조금이라도 도움이 되었으면 좋겠습니다.
기회가 되면 ARK 체인에 대한 글과 step by step으로 브릿지 체인을 만드는 글을 써보도록 하겠습니다.