메인넷이란 독자적인 생태계를 의미한다. 예를 들어, 메디블록의 메인넷은 메디블록이 만든 규칙에 합의하고 운영되는 블록체인을 의미한다. 이 블록체인은 메디블록의 규칙을 바탕으로 운영되기 때문에, 이더리움, 비트코인, 퀀텀 등과 별개의 블록체인으로 작동하게 된다.
- 퀀텀 블록체인을 이용하는 메디블록은 블록 생성 시간, transaction fee 등을 독자적으로 변경할 수 없지만, 메인넷을 통해 메디블록이 추구하고자 하는 바에 조금 더 적합한 규칙을 가지는 블록체인을 만들 수 있다.
- 퀀텀은 POS 알고리즘을 이용하고 있으며, UTXO 모델을 사용한다. 하지만 메디블록의 경우 블록 생성 속도, 보안성 등을 고려해 dPOS, Account 모델이 적합하다. 현존하는 블록체인 중, 메디블록이 달성하고자 하는 프로젝트에 최적화된 규칙을 가지고 있는 것이 없으므로, 우리 프로젝트에 최적화된 규칙으로 구동되는 블록체인이 필요하다. 마치 부모님과 함께 살며 부모님의 규칙을 따르다가, 분가하여 자신만의 규칙을 만들고 가정을 이루는 것과 동일하다.
- 메디블록은 QTUM이라는 가정에서 QTUM 규칙을 따르고 있었지만, 여러 이유로 인해 새로운 가정을 구성하여 새로운 규칙들을 만들고자 한다.
메인넷을 실제로 구동하기 전에 테스트하는 블록체인을 의미한다. 예를 들어, 이더리움 블록체인은 이미 안정성이 검증되어 우리가 실제 거래에 이용하는 Main Chain이 있고, Main Chain에 올리기 전에 실제 Main Chain에 영향을 끼치지 못하는 test chain상의 코인으로 코인 전송, smart contract등을 시험해볼 수 있는 kovan, ropsten 등의 테스트넷이 있다.
- A회사는 새로운 온라인 게임을 개발하였다. 하지만 이 게임이 정상적으로 작동하는지 확신할 수 없는 상황이다. A회사의 게임에 치명적인 오류가 있을 경우 돌이킬 수 없는 손해가 발생하므로, A회사는 많은 사람들이 이 게임을 시범적으로 이용해 볼 수 있도록 베타 버전을 공개하였다. 그리고 그 베타 버전에서는 무료로 최고급 아이템을 나눠주어 사람들이 테스트해 볼 수 있도록 하였다. 사용자들이 게임의 베타버전을 이용하며 나오는 문제와 건의사항들을 A회사가 반영하여 실제로 게임을 출시하였다. 물론 베타 버전에서 지급한 아이템들은 실제 게임에서는 사용할 수 없다! A회사는 게임에 새로운 기능을 추가하기 전에 베타 버전에 먼저 추가하여 지속적으로 사용자들의 피드백을 받고, 또 사용자들이 그 기능을 시범적으로 사용해 볼 수 있도록 하였다.
- 블록체인도 실사용자가 있는 메인넷과, 새로운 기능들을 반영하고, 사용자들이 마음껏 테스트를 진행할 수 있는 환경을 제공하는데, 이를 테스트넷이라고 한다.
실제 프로덕트를 런칭하기 전에 프로덕트의 작동, 오류 등을 파악해볼 수 있는 버전을 의미한다. PoC 결과물은 실제 프로덕트의 개발 버전이라기보단, 특정 기능을 구현해보고 검증해보는 데 의의를 갖는다.
언젠가 프로덕트가 될 예정인 소프트웨어의 초기 버전이며, 기능적으로 완성됐다고 보기 힘든, 내부 검증용 버전이라고 볼 수 있다. 따라서 동작의 안정성에 대한 보장이 없으며, 실제 사용자들을 동원한 테스트는 베타 버전에서 이루어진다.
블록체인 노드들이 구동하는 핵심 코드.
네트워크에 참여하는 노드들이 모두 동일한 규칙을 따르며 같은 데이터를 공유하기에 블록체인이 존재할 수 있다. 예를 들면 블록 생성 시간, 블록 구조 등등은 모든 노드에서 동일해야한다. 이 규칙들이 코드로 구현된 것을 우리는 블록체인 코어라고 부른다.
- 한국에서 제품을 구매하며 지출하는 비용에는 제품 가격의 10%에 해당하는 부가세가 포함되어 있다. 만약 정부가 A에게는 20%의 부가세를, B엑세는 5%의 부가세를 지출하게 한다면 사람들은 굉장히 불공평하다고 생각하며 정부에 대한 신뢰는 생겨날 수 없을 것이다. 이를 방지하기 위해 정부는 모든 사람들에게 10%라는 동일한 규칙을 적용하고, 이를 따르도록 하였다.
- 블록체인 코어 역시도 A라는 블록체인을 유지하고, 사용하는 사람들에게 모두 동일한 규칙을 적용하고, 활동을 할 수 있게 한다
이더리움 토큰들의 호환성을 위한 표준.
- A라는 마켓이 있고, A는 자회사로 A-1, A-2, A-3을 가지고 있다. A는 소비자의 편의를 위해 A-1, A-2, A-3, A 모두에서 사용할 수 있는 포인트 카드를 만들었다. 이제 소비자는 A-1에서 획득하는 포인트와 A-2에서 획득하는 포인트를 한곳에 모아 관리하고, 사용할 수 있다. ERC20표준도 마찬가지이다. 이더리움 위에 발행되는 토큰들이 ERC20을 따른다면 이더리움 지갑을 통한 관리 및 전송이 가능해진다.
퀀텀 토큰들의 호환성을 위한 표준.
- ERC20에서 설명했던 A라는 회사가 만든 포인트 통합제도가 너무 좋아보여서 B라는 회사도 자회사 B-1, B-2와 함께 사용할 수 있는 포인트 카드를 만들었다. 이제 B 회사의 소비자들도 B, B-1, B-2에서 하나의 포인트 카드로 쇼핑을 즐길 수 있게 되었다. 하지만 A 회사의 포인트 통합 제도와 B 회사의 포인트 통합 제도는 서로 다르기에 B회사의 포인트 카드를 A회사에서 이용할 수는 없다.
특정 시점의 코인 holding status를 기록하는 작업.
- 퀀텀 위에 있는 Med 1개당 이더리움 위에 발행하는 Med를 1개 주는 에어드랍 이벤트를 할 때, 특정 시각(블록)에 누가 얼마만큼의 코인을 보유하고 있는지 확인하고, 이에 맞추어 에어드랍 이벤트를 진행한다. https://explorer.qtum.org/token/2f65a0af11d50d2d15962db39d7f7b0619ed55ae/holders 이 링크를 보면 현재 어떤 address가 얼마만큼의 Med를 보유하고 있는지 알 수 있다. 이때 A라는 address가 토큰을 다른 사람에게 전송하는 경우 보유하고 있는 token 수량이 변경될 수 있으므로, “B번째 블록에 기록된 Med 보유량”으로 모든 사람들에게 명시하여 B번째 블록에서의 token 수량을 확인하는 것을 snapshot을 찍는다고 한다.
- 다음과 같은 문제가 생길 수 있다. “지금 가지고 있는 구슬만큼 새로운 구슬을 드려요!”라는 행사를 진행한다고 하자. 이때 발생할 수 있는 문제는 A라는 사람이 3시에는 1개의 구슬을 가지고 있었지만 3시 1분에는 그 구슬을 잃어버려 0개의 구슬이 되었을 때, A라는 사람에게 새로운 구슬을 주어야하는가이다. 이 문제는 특정한 ‘시각’, 또는 ‘시점'을 명시하지 않았기에 발생한다. Snapshot 은 특정 block number를 명확히 명시하여 해당 block의 내용을 보관하는 것이다.
블록체인에 무언가를 기록하기 위해서는 그에 합당한 비용을 지불해야한다. 가령 “내가 가지고 있는 돈에서 10eth를 빼서 A라는 사람에게 보내줘”, 혹은 ‘B라는 상황에 C라는 결과가 자동으로 나올 수 있는 smart contract를 기록해줘’ 라는 명령을 블록체인에 저장하기 위해서는 이를 검증하고 보관하는 채굴자들에게 비용을 지불해야한다.
- 우리가 온라인 스토어에서 10만원으로 물건을 구매할 때, 9만원은 판매자에게 전달되고 나머지 1만원은 그 온라인 스토어에 수수료로 지불한다. 온라인 스토어가 판매자와 나를 연결해주었기 때문에 수수료를 지불하는 것이다. 블록체인에서는 대게 그 중개의 과정이 없다. 그렇기에 내가 이 거래를 통해 구매한 물건이 이제부터 내 소유라는 것을 모든 사람들이 인정해줘야한다. 만약 인정해주는 사람들이 없다면 나에게 물건을 판 사람이 내일 나를 찾아와 “야 그거 내껀데 왜 네가 가지고 있어? 어서 내놔!”라고 말했을 때, 제시할 증거가 없다. 때문에 우리는 블록체인 위에서 특정 활동을 함에 있어 “나 이 물건 구매할 건데 내 거래를 인정해주는 첫 사람에게 1,000원 줄게!”라고 말한다. 이 1,000원이 transaction cost이다.
- 하지만 이런 경우가 존재한다. 사람들의 직거래를 돕기 위해 C라는 협회가 생겼다. 사람들이 거래를 인정해줄 때마다 1,000원을 지불하는 대신, 협회에 10,000원을 예치해두는 경우 협회가 매달 3번 내 거래를 인정해주기로 한다. 사람들은 처음 10,000원을 지불하고, 추가 비용없이 매달 3번의 거래를 인정받는다. 매 거래마다 비용을 지불하는 것이 아니라, 예치금을 넣고, 이 예치금에 해당하는 횟수의 거래를 fee 없이 만들어낼 수 있는 것을 bandwidth 모델이라고 한다. (물론 예치금은 나중에 다시 되찾을 수도 있다.)
A라는 블록체인 위에 있는 토큰을 B라는 블록체인 위의 토큰 혹은 코인으로 바꿔주는 것.
- A회사는 포인트 제도를 운영하고 있었으며, 그 포인트는 a라고 불렀다. 하지만 여러 사정으로 인해 A회사는 B라는 회사로 사명을 변경하게 되고 a 포인트 대신, b라는 새로운 포인트 제도를 만들기로 했다. 이때 a 포인트를 가지고 있는 사람들에게 말한다. “a포인트는 이제 더이상 가치가 없습니다! 대신 a포인트를 보유하고 계신 분들에게 1대1 비율로 b포인트를 지급해드리겠습니다!"
- 메디블록에서는 퀀텀 위에 존재하고 있던 MED를 특정 비율로 이더리움 위에 존재하는 ERC20토큰(추후공개)으로 완전히 전환하는 ‘토큰 스왑’이 아닌, ‘에어드롭'의 형태로 ERC20토큰(추후공개)을 발행한다.
토큰은 Dapp들이 발행하는 암호화폐를 일컫는 명칭이고 코인은 이더리움이나 퀀텀같은 플랫폼에서 발행되는 암호화폐를 일컫는 명칭.