AMO

모빌리티 데이터 공유 플랫폼

home link https://www.amo.foundation/

reference material

Community

Exchanges that listed the coin
3
Symbol
AMO
Dapp
To be released
Project introduction

AMO는 데이터의 저작권을 가진 개인 및 기업에게 이윤을 주고, 데이터를 원하는 사람들이 신뢰할 수 있는 데이터를 안전하게 구매할 수 있도록 하는 플랫폼을 제공하기 위해 시작되었습니다.

Executives and partners

SangGyoo Sim

CEO

KwonKoo Kwak

COO

DS Kim

CTO

Daniel ES Kim

CBDO

MOBI

Car Connectivity

Latest News

There is no news posted at the moment
Please leave a message of support for the team

go to leave a message

Medium

AMO 데이터 마켓 서비스 출시

AMO 데이터 마켓 베타 서비스 출시AMO 가족 여러분, 새로운 소식 많이 기다리셨죠?어느새 가을이 다가온 지금! 여러분께 좋은 소식을 전해드리고자 합니다!드디어 AMO가 데이터 마켓의 베타 서비스(https://market.amolabs.io/)를 시작하였습니다!!격한 박수로 환영해주세요사실 그동안 국내 데이터 거래 사업은 아직 필요성에 대한 공감대가 부족하고 제도적 혹은 기술적 장애 요인으로 인해 활성화가 되기 어려웠는데요.그럼에도 불구하고 AMO는 자동차, 모빌리티 뿐만아니라 건강/의료, 스포츠, 스마트시티 등 다양한 분야를 아우르며 파트너사들과 함께 데이터 생태계 활성화를 위해 노력해왔습니다.이번 AMO 데이터 마켓 런칭은 다양한 분야의 데이터가 원활히 그리고 안전하게 거래되는 환경을 조성하고자 하는 AMO의 바람과 피땀눈물이 결실로 드러나는 순간이라고 할 수 있습니다!다만, 베타 서비스는 한정된 사용자만 이용이 가능한 클로즈베타 성격을 띄고 있어 회원 가입을 통해 신청하신분들만 체험 가능합니다. 또한 데이터 등록, 데이터 거래 등의 기능적 측면에 중점을 두고 개발되어 사용상 약간의 불편함이 있을 수 있습니다.정식오픈 시에는 모든 분들이 자유롭게 사용가능할 수 있도록 또한 사용자 편의성과 심미적 디자인을 위한 부분을 완벽하게 채워나갈 예정이오니 조금만 기다려주세요.AMO 발전을 위한 좋은 아이디어나 제안은 언제나 환영합니다!환절기 감기와 코로나 조심하시고 또 좋은 소식으로 찾아뵙겠습니다.감사합니다.AMO 데이터 마켓 서비스 출시 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 10. 08

AMO x 이동의 자유 MOU 체결

AMO 가족 여러분, 안녕하세요.여러분, 노약자와 장애인을 포함한 “교통약자”가 국내에 몇 명이나 되는지 알고 계신가요? 국토교통부의 공식조사에 따르면 무려 1,500만 명으로 인구의 29%나 된다고 합니다!https://www.welfarenews.net/news/articleView.html?idxno=694142018년 교통약자 1,509만, 지난해 대비 26만↑… 전체 인구 29%교통약자가 이렇게나 많다보니 몇몇 지자체를 중심으로 교통약자를 위한 전용 모빌리티 서비스가 시작되고 있습니다. 그중 가장 확고한 발판을 다지고 있는 서비스가 “이동의 자유 (http://www.2u.or.kr/)” 입니다.왜 갑자기 교통약자와 이동의 자유에 대한 이야기를 하느냐? 바로! 저희 AMO가 교통약자(노약자, 장애인)를 위한 모빌리티 서비스인 “이동의자유”와 협력 협약(MOU)을 체결하였기 때문입니다!!이번에 MOU를 체결한 이동의 자유는 “부산 스마트시티 챌린지사업”에서 모빌리티 서비스를 담당할 정도로 인정받고 있는 모빌리티 서비스의 선두주자이고이고, Hu Graph는 데이터 분석에 선도적인 기술을 보유한 데이터 분석 전문업체입니다.본 협약을 통해 향후 이동의 자유에서 제공되는 모든 서비스의 보안은 “펜타시큐리티”가 담당하고, 모든 데이터는 AMO 블록체인에 수집/공유하며, 수집된 데이터는 Hu Graph에서 분석하는 완벽한 모빌리티 데이터 연합이 구축되었습니다.모빌리티 데이터 어벤져스 탄생!AMO의 형제회사인 Autocrypt는 여기에 그치지 않고 “이동의 자유”에 모빌리티 플랫폼을 제공하고 공동 사업을 추진하는 협약을 맺었으니 두 회사가 이끌어갈 교통약자 모빌리티 서비스의 미래가 기대되네요 :-)쇠뿔도 단김에 뺀다! 바로 사인이닷!관련 뉴스: http://www.datanet.co.kr/news/articleView.html?idxno=149973앞으로 AMO와 친구들이 펼쳐갈 모빌리티와 데이터의 미래를 지켜 봐주세요. 코로나가 다시한번 확산되고 있는 요즘 건강에 유의하시고 행복하시길 기원합니다.감사합니다.AMO x 이동의 자유 MOU 체결 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 08. 28

AMO Data Connector 베타 서비스 런칭

AMO 가족여러분 안녕하세요.AMO가 그리는 4차산업 사회는 개인과 기업이 제제공한 데이터에 대한 공정한 평가가 바탕이 되는 데이터가 중심 사회입니다.데이터 생태계 참여자들의 활발한 데이터 공유와 거래를 통해 데이터 경제가 활성화되고, 고도의 인공지능과 데이터 분석을 통해 더 나은 제품과 서비스를 제공하는 기업이 높이 평가받는 사회를 만들기 위해 최선을 다하고 있습니다.오늘, 그 첫걸음으로 기업 고객들이 기존에 보유하고 있는 방대한 데이터를 AMO 블록체인으로 손쉽게 이전할 수 있는 AMO Data Connector 서비스를 출시합니다.AMO Data Connector 구조도짧게는 수 년에서 길게는 수 십년간 축적된 방대한 데이터를 보유하고 있는 기업들은 각자의 데이터 금광을 보유하고 있다고 할 수 있습니다. 다만, 이를 적절하게 활용할 방법을 찾지 못해 수익화하지 못하고 있을뿐입니다. AMO에서는 IT와 블록체인 기술이 부족한 일반 기업이 보유하고 있는 고부가가치의 데이터를 AMO 데이터 마켓에 등록하고 수익화 할 수 있는 방안을 제공해드리고자 합니다.AMO 블록체인으로의 이전은 우선 기업의 데이터 현황과 가치 판단을 위한 비즈니스 컨설팅을 진행한 후 AMO 블록체인으로의 이전을 위한 기술적 컨설팅과 기술 지원을 제공해드리는 순서로 진행될 것입니다.지원 요청은 설문조사 (https://forms.gle/Y7dWrHzVz8UswTWV6) 또는 이메일 (support@amolabs.io)를 통해 접수받고 있으며 접수 순서에 따라 상담 일정을 고지드리겠습니다. 많은 관심과 지원을 부탁드립니다.감사합니다.AMO Data Connector 베타 서비스 런칭 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 06. 30

AMO Mainnet Technical Notes

AMO blockchain Mainnet was launched.You can run a blockchain node through the instructions in the quick start guide. We prepared a new AMO blockchain explorer and it’s in the staging server now and waiting internal review. It will move on to the production server on 3 Apr.Current block height is roughly 70,000 at the time of writing. There are just handful of transactions in the chain to prepare the stakes for the initial validators. All the initial coins are in the balance of the vault account. We transferred 2.1 billion AMO from the vault account to the 6 validator accounts. The matching amount will be burned in AMO ERC20 tokens in the token swap process.AMO 메인넷 기술 노트AMO 블록체인 메인넷이 실행됐습니다.빠른 실행 가이드에 나와 있는 안내에 따라서 블록체인 노드를 실행하실 수 있습니다. AMO 블록체인 탐색기도 새로 준비했으며 현재 staging 서버에서 내부 리뷰 중입니다. 4월 3일에 production 서버로 이관될 예정입니다.이 글을 쓰는 시점에서의 현재 블록 번호는 대략 70,000입니다. 체인 상에는 아주 적은 수의 거래만 기록되어 있으며 이들은 초기 validator 노드들을 위한 스테이크를 준비하기 위한 것들입니다. 모든 초기 코인은 금고 계정에 들어 있습니다. 이 중에서 21억 AMO를 6개의 validator용 계정으로 전송했습니다. 이와 정확히 같은 양이 토큰 스왑 과정에서 AMO ERC20 토큰에서 소각될 것입니다.AMO Mainnet Technical Notes was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 04. 02

AMO Mainnet 시작

AMO 가족여러분 안녕하세요.많은 분들이 오래기다렸던 AMO의 메인넷 2020년3월31일 16시에 시작되었습니다. 24시간 정도 네트워크 상황을 지켜보고 문제없이 안정화 된것으로 판단되면 block explorer와 노드 주소를 공개할 예정입니다.AMO 메인넷은 자동차 데이터를 시작으로 스포츠, 헬스케어, 사물인터넷 데이터를 아우르는 데이터 생태계를 이루어 나갈 예정입니다 .4월 중 대형 운수업체와의 협약을 통한 데이터 수집을 목전에 두고 있고, 6월 중에는 스포츠 데이터의 연동이 예정되어 있습니다. 저희 AMO Labs는 4차 산업혁명과 데이터 경제 시대에 꼭 필요한 서비스가 될 수 있도록 최선을 다할 것이며 프로젝트의 성공과 홀더분들의 이익이 하나 될 수 있도록 하겠습니다.2020년 한 해는 AMO에 있어 메인넷 출시, 데이터 거래소 오픈과 같은 핵심적인 이벤트가 포진한 중요한 한 해가 될 것으로 예상됩니다. 기존의 로드맵에 추가로 2020년을 위한 아래 상세 로드맵을 추가로 공지드립니다.AMO 2020 로드맵핵심적인 내용은 자동차, 스포츠, 보안, 공공 영역에서 방대한 데이터를 수집해서 4분기에 오픈할 데이터 거래소에서 거래가 가능하도록 하는 것입니다. 이를 위해 양질의 파트너 확보와 강건한 플랫폼 구축에 최선을 다하겠습니다.추가로, 스테이킹 신청을 기존보다 1주일 연장하여 4월 7일까지 받을 예정이오니 이점 양지부탁드립니다. 또한, 최초 검증자의 안정적인 확보를 위해 초기 보상 정책을 일부 변경하오니 변경된 보상안을 확인하시어 검증자 참여 여부를 결정해주십시오.감사합니다.스테이킹 보상 안기존 : 1 TX 당 0.15 AMO변경 : 1 TX 당 1.5 AMO (초기 검증자 확보를 위한 한시적 보상이며 차츰 보상을 낮춰 0.15로 수렴할 예정)스테이킹 정책 및 토큰 스왑 신청 방법https://medium.com/amo-blockchain/amo-staking-%EC%A0%95%EC%B1%85-ea1a4f0b4496AMO 메인넷 지갑 생성 방법https://youtu.be/WiFlNdyTa5UAMO Mainnet 시작 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 03. 31

Mainnet Launch Plan

Finally, it is scheduled to launch the Mainnet on 31 March, next Tuesday. The exact launch time is not decided, but it would be around noon. So, here I will explain what will be done in the course of the preparation, the launch, and the initial monitoring period. We will complete the preparation in this week, and there will be the final rehearsal for the launch in next Monday. And Tuesday is the D-Day.PreparationWe have some configuration parameters to be finalized before the launch, which includes:initial tendermint node configuration (config.toml)initial blockchain configuration (genesis.json)initial AMO configuration (genesis.json)amount of initial coins (genesis.json)vault account key pairgenesis validator key pairNotable options in the tendermint node configuration are the tx indexing and mempool settings. We will disable any tx indexing except some essential tags to reduce the burden of validator nodes. So, these nodes are not adequate to be an RPC node. This is intentional. We will also reduce the max tx bytes to a moderately small value in the mempool setting. Although the blockchain protocol and AMO protocol does not impose any limit in the tx size, there is no reason to allow several mega bytes for a single tx.In the blockchain configuration, we will tweak the max block size to be a relatively small value. In the early stages of the mainnet, it is not likely to process, say, million txs per second. For comparison, the Cosmos network shows very low average number of txs per block. This limit can be lifted off in the future.The initial AMO configuration will follow the numbers mentioned in the notice from the AMO planning team, including stake lock-up period, reward distribution ratio, tx reward rate, and etc.In order to run the initial blockchain nodes, we prepared a network of machines. There will be 6 validator nodes, 1 seed node, and an additional RPC node to feed the data to the blockchain explorer server. The exact addresses of the nodes will be announced on the launch day.The actual binary for the node software and a few of control scripts are released already.The launchWe will execute the launch process twice. One for the rehearsal in next Monday, and the other for the real launch in Tuesday.First of all, there shall be a initial genesis node having no staked coins at first. This node is the designated validator written in the genesis.json file, so it can produce new blocks even if it has no stake. Just after the first block, the initial vault account will transfer the pre-determined amount of coins to the initial staker address. The staker account will stake these coins and the initial genesis node can act as a proper validator node.Once the initial genesis node is up and running with the proper stakes, we launch a seed node, which is the helper node to construct a P2P network of upcoming nodes. This node is not a validator node. Every node coming after this node will designate this seed node as a persistent peer.To serve RPC requests from AMO blockchain explorer and other clients, a monitoring node will be launched next. This node is not a validator node either. Once this monitoring node is up and running, AMO blockchain explorer becomes functioning (we made a new version of the explorer, with much cleaner look and more added features). We will monitor the blockchain from the explorer.The rest of the validator nodes will come up via a similar process. Run a node; receive pre-determined amount of coins from the vault account; and stake those coins. Note that there will be a lot of empty blocks, due to the stake lock-up feature. That is normal in terms of the AMO protocol.StabilizationWe will monitor the chain for a while to check if there is any problem. We would perform test-purpose data parcel trade after the default AMO storage service is up.At this step, the launch is complete and we are ready to announce the node addresses to the public. The announcement may come after several hours from the genesis time. It depends how fast we are.See you next Tuesday.메인넷 실행 계획드디어 메인넷이 다음주 화요일인 3월 31일에 실행될 예정입니다. 정확한 실행 시간은 아직 정해지지 않았지만 정오 근처가 될 것입니다. 이에 사전 준비, 실행, 초기 관찰 기간에 어떤 일들이 일어나게 될 지 설명해 보겠습니다. 사전 준비는 이번주에 완료될 것이고 다음주 월요일에 마지막 예행 연습이 있을 예정입니다. 그리고 화요일이 D-Day입니다.사전 준비메인넷 실행 전에 다음과 같은 몇가지 설정값들을 확정해야 합니다:초기 tendermint 노드 설정 (config.toml)초기 블록체인 설정 (genesis.json)초기 AMO 설정 (genesis.json)초기 코인양 (genesis.json)금고 계정 키쌍최초 validator 키쌍Tendermint 노드 설정 중 주목할 것들은 tx 색인과 mempool 설정들입니다. 우선Validator node들에 대해서는 부담을 줄이기 위해 필수적인 태그들을 제외한 tx 색인을 비활성화할 예정입니다. 따라서 이 노드들은 RPC 노드로 사용하기에는 적당하지 않게 됩니다. 이것은 의도된 것입니다. 또한 mempool 설정에서 tx의 최대 크기를 적당히 작은 값으로 줄일 예정입니다. 블록체인 프로토콜과 AMO 프로토콜에서 tx 크기에 대한 제한은 특별히 하고 있지 않지만, 하나의 tx에 수 MB를 허용할 필요까지는 없기 때문입니다.블록체인 설정에서는 블록 최대 크기도 비교적 작은 값으로 변경할 것입니다. 메인넷의 초기 단계에서는 초당 엄청난 수, 예를 들어 백만개의 tx를 처리하게 될 가능성은 희박합니다. 참고로, Cosmos 네트웍의 경우에도 블록당 평균 tx의 수는 아주 낮은 값을 보이고 있습니다. 이 제한은 미래에 풀어 버릴 수 있습니다.초기 AMO 설정은 기획팀에서 공지한 글에 언급된 숫자들을 따라갈 것인데, stake 잠금 기간, 보상 분배 비율, tx 보상 비율 등등입니다.최초 블록체인 노드들을 실행하려면 네트워크로 연결된 서버들을 준비해야 합니다. 6개의 validator 노드와 1개의 seed 노드, 그리고 블록체인 탐색서비스에 데이터를 공급한 추가 RPC 노드가 준비됩니다. 이 노드들의 정확한 주소는 메인넷 실행일에 공지될 예정입니다.노드의 소프트웨어를 위한 바이너리 파일과 몇가지 제어용 스크립트들은 이미 릴리즈되어 있습니다.실행실행 과정은 두번 수행하게 됩니다. 한 번은 다음주 월요일 최종 리허설을 위해서이고, 나머지는 화요일의 출시를 위해서입니다.우선, 최초의 genesis 노드가 실행되는데 처음에는 스테이킹된 코인은 없는 채입니다. 이 노드는 genesis.json 파일에 최초 validator로 지정되어 있기 때문에 스테이크가 없어도 새로운 블록들을 생성할 수 있습니다. 최초 블록 이후에 금고 계정으로부터 최초 스테이킹용 계정으로 미리 정해진 수량의 코인이 전송됩니다. 이 스테이킹용 계정은 최초 genesis 노드를 위해서 코인들을 스테이킹하게 되고 이제부터 이 노드는 비로소 정당한 validator 노드로 동작하게 됩니다.일단 최초 genesis 노드가 실행되고 정당한 스테이크를 갖게 되면, 이제 seed 노드를 실행합니다. 이 노드는 이후에 실행되는 노드들을 위한 P2P 네트워크를 구성하는 것을 돕게 됩니다. 이 노드는 validator 노드는 아닙니다. 이 노드 이후에 실행되는 모든 노드는 이 seed 노드를 지정된 peer로 설정합니다.그 다음에는 AMO 블록체인 탐색기나 또는 다른 클라이언트로부터의 RPC 요청을 처리하기 위해서 모니터용 노드가 실행됩니다. 이 노드 역시 validator 노드는 아닙니다. 이 노드가 실행되고 나면 AMO 블록체인 탐색기가 동작합니다(탐색기는 새 버전이 제작되었고, 훨씬 깔끔한 외형과 추가 기능들을 포함하고 있습니다.) 이제부터는 탐색기를 통해서 블록체인을 감시합니다.나머지 validator 노드들도 비슷한 방식으로 실행됩니다. 노드를 실행하고, 미리 정해진 양의 코인을 금고 계정으로부터 수신하고, 이 코인들을 스테이킹합니다. 한가지 주목할 것은 이 시기에 아주 많은 빈 블록들이 생겨나는데, 이것은 스테이크 잠금 기능 때문이고 AMO 프로토콜에 근거한 정상적인 현상입니다.안정화여기까지 수행되고 나면 한동안 체인을 관찰하면서 문제가 없는지 확인합니다. 기본 AMO 저장소 서비스가 정상 동작한 이후에는 시험용으로 데이터 거래를 수행할 수도 있습니다.이 단계에 이르고 나면 메인넷 실행 과정은 완료되고 노드들의 주소를 일반에 공개할 수 있게 됩니다. 공지는 genesis 시간 이후 몇시간 이후가 될 것인데, 정확한 시간은 우리가 얼마나 작업을 빨리 하는가에 따라 달라질 수 있습니다.다음주 화요일을 기대합니다.Mainnet Launch Plan was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 03. 27

AMO Staking 정책

AMO 가족 여러분 안녕하세요.많은 분들이 기다려온 AMO의 메인넷이 곧 출시될 예정입니다.AMO 메인넷에는 코인을 주고받는 기능외에도 데이터를 공유하고 거래하는 기능이 포함되고, 계속해서 필요한 기능이 추가될 예정이오니 많은 관심과 애정 부탁드립니다.AMO 메인넷 출시에 앞서 향후 메인넷에서 블록을 생성할 블록 검증자 (Validator)의 선정이 필요합니다. 블록 검증자는 블록을 제안하고 검증하는, 타 프로젝트에서 말하는 “채굴자(miner)”의 역할을 수행합니다.DPoS 방식의 합의 알고리즘에서 검증자 역할을 수행하기 위해서는 일정량의 지분을 보증금의 형태로 묶어두는 Staking 이라는 과정이 필요합니다.본 공지에서는 AMO의 Staking 정책에 대해 설명드리도록 하겠습니다.AMO Staking 서비스 정책❏ Staking 이란 ?❏ AMO Staking 참여 방법❏ 先 토큰 스왑 신청❏ AMO Staking 보상 정책❏ 불성실 검증자 처벌 정책❏Staking 이란 ?DPoS, PoS 합의 알고리즘에서 지분 증명을 위해 일정량의 코인을 담보로 제 공하는 일종의 보증금과 유사한 제도입니다.Staking한 코인의 양에 따라 블록 생성의 기회가 주어지며 블록 생성 시 보상을 받을 수 있지만 반대로 블록 생성에 저해되는 행위를 할 경우 Staking된 코인이 소각되는 등 불이익을 받을 수 있습니다.검증자(Validator)는 Staking을 통해 블록 생성에 직접적으로 참여할 수 있고, 위임자(Delegator)는 자신이 선택한 검증자에게 코인을 위임(Delegation)함으로써 간접적으로 블록 생성에 기여하고 보상을 받을 수 있습니다.위임자가 선택한 검증자가 불성실한 블록 생성으로 인해 불이익을 받을 경우위임자 또한 같은 비율의 불이익을 받을 수 있으니 검증자 선택에 유의하셔야 합니다.❏AMO Staking 참여 방법I. AMO Staking은 2단계에 걸쳐서 이루어질 예정입니다.1단계 : 2020년 3월 31일 메인넷 출시 시점에 일정 조건을 만족한 신청자에 한 해 토큰 스왑 후 검증자 참여가 가능합니다.2단계 : 2020년 7월 이후 정식 토큰 스왑 후에는 누구나 검증자로 참여가 가능합니다.II.Staking 을 2단계로 진행하는 이유는 다음과 같습니다.1. 메인넷 출시 이후 초기 몇 달간은 시스템 안정성 및 보안성 향상의 이유로 하드포크 등이 발생 할 수 있습니다.2. 기존 거래소 연동, 지갑 지원 등의 기술적 이유로 이더리움 기반 토큰에서 AMO 코인으로 전환에 시일이 소요 됩니다.3. 이러한 혼란을 최소화하기 위해 메인넷 런칭 후 상당 기간 후에 토큰 스왑을 진행하는 것이 일반적입니다.4. 다만, 기존 AMO 홀더분들 중 최대한 빠르게 검증자로 참여하고자 하시는 분들이 있어 별도의 신청을 통해 先 스왑을 진행합니다.❏ 先 토큰 스왑 신청AMO 메인넷에서 검증자로 활동하기 위해서는 (기존 ERC-20 AMO Token이 아닌) AMO 메인넷 코인이 필요합니다.2. 검증자는 Staking 된 AMO 코인 수량을 기준으로 상위 100명으로 제한됩니다. (추가)3. 1천만 AMO 이상의 토큰 보유하신 분들 중 신청자에 한 해 메인넷 전환 시 先 토큰 스왑을 해드립니다.4. 스왑된 AMO 코인을 이용해 초기 검증자 참여가 가능하며 기술적인 방법에 대해서는 별도 안내를 드릴 예정입니다.5. 토큰 스왑 신청 시 주의 사항은 다음과 같습니다.1)10,000,000 AMO 토큰 (ERC-20) 이상을 보유2)토큰 스왑 신청서를 작성 (향후 구글 폼으로 배포 예정)3)AMO 메인넷으로 스왑 된 AMO 코인은 향후 정식 토큰 스왑 시점 (7월말 예정)까지 거래소에서 거래불가4)Staking 된 코인은 300,000 개의 블록(약 3일)이 생성될 때까지 사용이 불가능 합니다❏ AMO Staking 보상 정책I. AMO 블록체인에서 블록 생성에 기여하시는 분들께는 다음의 보상이 제공됩니다.블록이 생성될 때마다 블록을 생성한 검증자는 해당 블록 내 트랜잭션 당 0.15 AMO 코인을 지급 받습니다.1)검증자와 위임자가 최종적으로 얻게되는 보상수량은 네트워크 활용도와 스테이킹 비율에 따라 달라질 수 있습니다.2)향후 참여자들의 의견을 반영해 보상 비율은 변경 될 수 있습니다.2. 트랜잭션에 수수료(이더리움의 가스비와 유사)가 있을 경우 해당 블록 내 모든 트랜잭션의 수수료를 검증자가 지급받습니다.3. AMO 메인넷은 네트워크에 변동사항(코인 송/수신, 데이터 업/다운로드 등 )이 있다면 약 1초당 1개의 블록을 생성합니다.II.블록 생성 작업에 직접적으로 참여하는 검증자와 간접적으로 Staking만을 한 위임자는 차등 보상을 받습니다.현재 검증자와 위임자 간 보상 비율은 1.2:1 이며 향후 각 검증자가 보상비율을 설정 할 수 있도록 변경 할 예정입니다.블록생성 보상 예시❏ 불성실 검증자 처벌 정책I. AMO 블록체인 검증자로 등록하였으나 검증 활동에 불성실하게 참여하실 경우 페널티가 발생합니다.II. 불성실 참여는 다음과 같습니다.허위 또는 잘못된 블록 생성 시도검증자 등록 후 노드 운영을 하지 않거나, 통신 오류 등으로 블록 생성, 검증에 응답하지 않을 경우1)과거 생성된 100,000개의 중 80,000개 이상 참여하지 않았을 경우 불성실 노드로 판단합니다.III. 불성실 참여 시 처벌은 다음과 같습니다.Staking 된 AMO 코인의 5%를 소각검증자와 위임자가 Staking한 코인을 보상 비율과 동일하게 1.2:1로 소각불성실 검증자로 처벌되는 사태를 피하기 위해서는 반드시 검증자 노드를 우선 실행한 후 Staking을 수행해야 합니다.❏ 토큰 스왑 및 스테이킹 관련 일정토큰 스왑 및 스테이킹 일정상기 일정 및 내용은 AMO Labs의 사정에 따라 변경될 수 있습니다.이상으로 AMO 코인 Staking에 대한 설명을 마칩니다. 추가 문의사항 및 건의사항은 support@amolabs.io 또는 카카오톡 대화방의 1:1 대화를 통해 전달해주십시오.감사합니다.AMO Staking 정책 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 03. 25

AMO Blockchain Economy Simu...

ConclusionSee also- AMO Blockchain Economy Simulation #1- AMO Blockchain Economy Simulation #2- AMO Blockchain Economy Simulation #3- AMO Blockchain Economy Simulation #4한국어 판은 뒷부분에 있습니다.In this article, we will summarize what we can learn from the economy simulation, and discuss about the limitations and possible improvements of our simulation model.The paramount lesson we can learn from the economy simulation is that the size of the product market dominates the economy. While the amount of initial coins, another major simulation factor, may introduce discrepancies between simulation executions, they show similar settling phases in the long run. This is due to that the majority of the coins would be locked as stakes. The amount of product trades defines the money demand, and this determines the amount of free coins needed at the market. The conclusion can be considered to be natural. More active market leads to active economy. Therefore, we need to boost the product market, not the coin market, in order to get higher value for each coin. Any countermeasures which involves coin-only strategies, tends to have only short-term effects after all.Now, we will discuss about the limitations of our simulation model. Our simulation model uses rudimentary economics theories. So there is a lot of possibilities for improving the model. For now, we are concerning the following issues:external interventionimport and exportsophisticated financial systemeconomic policy changeinvestment demandFirst of all, our model lacks the mechanism to deal with external intervention. There may be various external factors which affect the simulation, such as global economy fluctuation affecting the interest rate of the outer world, economy output(GDP), money fluidity, technological breakthrough or retrogression, policy changes of the outer world, etc. We set our model as the isolated system except the currency exchange. We may be able to handle some of the factors in the future works however.As mentioned, we assume the economy in our simulation is isolated. We didn’t take account of the import and export mechanism. The goods produced in our artificial economy never leave the economy boundary. However there are a lot of theories about the effect of import and export activities. Changes in our economy model may stir the import or export activities, and these activities would affect the economy in turn, completing the feedback cycle. But, it is still unclear how to define import or export mechanism in our economy model.There are known to be several proposals for preliminary financial systems. But they are all in very early stages. We don’t know exact characteristics of those financial systems. Financial systems are essential in understanding the modern economy theories. One day we may be able to solve this problem also.Almost all of the economy textbooks include a section entirely dedicated to the economy policy. Government or central bank can adjust the major characteristics of the economy to countermeasure the downfall, or to encourage the boost. Since AMO blockchain has a governance mechanism to adjust the internal factors affecting major metrics of the economy, such as reward rate resulting in interest rate change. It is analogous to the policy change of the central bank in real-world economy.Lastly, money demand. We derived the money demand formula in our simulation based on market activities only. However, there are other kinds of demand for money, i.e. AMO coin in our case. While some of real-running businesses are planned to launch after the mainnet(Guys in the planning team would decide when and how to announce about this.), there is no running business based on AMO coin for now. But there seems to be an agreed coin value in the crypto-exchange market. (Rather low, but not zero.) According to our simulation, the value of the coin comes from the liveliness of the product market. Then isn’t it natural that the coin has zero value for now? No. Different story for the real world. It’s about human mind after all. Even if there is no running economy, people want AMO coin not for the current value, but for the value expected in the future. It’s an investment. Hopefully, there are theories about this kind of money demand already. We didn’t consider it in our simulation. But, it is meaningful. This issue is in the top place in our TODO list.So, this concludes the long series of our economy simulation. In the next article, let’s go back to the technological issue. According to the plan, it’s about on-chain protocol upgrade feature recently added in AMO blockchain protocol.AMO 블록체인 경제 시뮬레이션 #5맺음말이번 글에서는 우리의 블록체인 경제 시뮬레이션으로부터 무엇을 얻었는가를 정리하고, 이번에 사용된 시뮬레이션 모델의 한계점은 무엇인지 어떤 개선이 필요한지 이야기해 보도록 하겠습니다.이번 경제 시뮬레이션에서 얻을 수 있는 가장 중요한 소득은 상품 시장의 크기가 전체 경제를 지배한다는 사실입니다. 또 다른 주요 시뮬레이션 인자인 초기 코인양 등의 차이가 각각의 시뮬레이션 실행 결과에서 차이를 나타낼 수는 있지만 장기적으로 보면 모두 비슷한 안정화 과정을 거치게 됩니다. 이는 대다수의 코인들이 스테이크의 형태로 잠기기 때문에 발생합니다. 상품 거래량이 화폐 수요를 정의하고 이는 다시 시장이 필요로 하는 유통가능한 코인의 양을 결정합니다. 이런 결과는 꽤 자연스러운 것입니다. 보다 활기 있는 시장은 경제에도 활기를 불어넣습니다. 따라서 코인의 가치가 더 높아지기를 바란다면 코인 시장이 아닌 상품 시장을 부양해야 합니다. 코인에만 치우친 대책들은 결국은 단기의 효과만을 줄 것입니다.이제 우리의 시뮬레이션 모델의 한계점들이 무엇인지 살펴보겠습니다. 우리의 시뮬레이션 모델은 기초적인 경제학 이론들을 사용하고 있습니다. 그러니 아주 다양한 면에서 모델을 개선할 수 있습니다. 일단은 다음의 이슈들을 생각해 볼 만 합니다:외부 개입수출입정교한 금융 시스템경제 정책 변화투자 수요첫번째로 우리 모델에서는 외부 개입을 다루지 않고 있습니다. 시뮬레이션에 영향을 줄 수 있는 다양한 외부 요인을 생각해 볼 수 있습니다. 국제 경제의 변동으로 인해 외부 세계의 이자율이 영향을 받거나 경제의 생산량(GDP)이나 화폐 유동성 등이 변하거나, 기술적인 혁신이나 퇴보, 외부 경제체제에서의 정책 변화 같은 것들입니다. 이번에 우리는 외환 시장을 빼고는 고립된 경제를 가정했습니다. 이후에 이어질 연구에서는 이들 여러 요인들 중 일부를 다뤄 볼 수 있을 것입니다.언급한 바와 같이, 우리의 시뮬레이션 속의 경제는 고립돼 있다고 가정하고 있습니다. 수출이나 수입 체계 등은 고려하지 않고 있습니다. 우리의 가상의 경제 체제 내에서 생산된 제품은 경계선을 절대 벗어나지 않습니다. 하지만 수출과 수입 활동이 주는 효과에 대해 이미 많은 이론들이 있습니다. 우리 경제 모델에서의 어떤 변화들이 수출이나 수입 활동을 촉발하고, 이 활동들이 다시 우리 경제에 영향을 주는 방식으로 피드백 순환 고리를 만들게 될 것입니다. 하지만 우리 경제 모델에서 수출이나 수입 메커니즘을 어떻게 정의해야 하는지에 대한 분명이 답이 있지는 않습니다.블록체인 커뮤니티에는 이미 기초적인 형태의 금융 시스템에 대한 몇가지 제안들이 있습니다. 하지만 아직은 모두 굉장히 초기의 단계입니다. 그들 금융 시스템들의 정확한 특성이 무엇인지 아직 확실히 모릅니다. 현대 경제 이론을 이해하는 데에 금융 시스템은 아주 중요합니다. 언젠가는 이 문제도 풀 수 있게 될 것입니다.거의 모든 경제학 교과서들이 한 섹션을 통째로 할애해서 경제 정책에 대한 이야기들을 하고 있습니다. 정부나 중앙은행들은 경제의 주요 인자들을 조정해서 침체에 대응하거나 활성화를 북돋기도 합니다. AMO 블록체인에서도 거버넌스 메커니즘을 통해 주요 경제 지표에 영향을 줄 수 있는 내부 인자들을 조정할 수 있습니다. 예를 들면 이자율에 영향을 주는 보상 비율과 같은 것입니다. 이는 현실 경제에서 중앙 은행이 정책을 바꾸는 것과 마찬가지라고 볼 수 있습니다.마지막으로 화폐 수요에 대한 이야기입니다. 우리가 시뮬레이션에서 사용한 화폐 수요 공식은 시장 활동에만 근거하고 있습니다. 하지만 화폐 수요, 즉 AMO 코인의 수요에는 다른 여러가지가 더 있습니다. 메인넷의 출시에 이어서 조만간 실제 동작하는 비즈니스의 출시도 계획돼 있긴 하지만(이에 대한 구체적인 공지는 사업팀이나 기획팀에서 결정을 할 것입니다.), 아직은 AMO 코인에 기반해서 실제 동작하는 비즈니스가 없습니다. 하지만 암호화폐 시장에서는 합의된 AMO 코인 가격이 형성되어 있습니다. (낮긴 하지만 0은 아닙니다.) 우리의 시뮬레이션에 따르면 코인의 가치는 상품 시장의 활성도에 달려 있습니다. 그렇다면 코인의 가격은 0이 되어야 하지 않을까요? 그렇진 않습니다. 현실에서는 이야기가 좀 다릅니다. 결국은 인간 심리에 대한 이야기입니다. 동작하는 경제가 없는 상황에서도 사람들은 지금의 가치가 아니라 미래에 예상되는 코인의 가치 때문에 코인을 원하게 됩니다. 다행히 화폐의 투자 수요에 대한 이론들도 이미 있습니다. 이번 시뮬레이션에서 고려되지는 않았지만 고려해야 하는 이슈입니다. 그리고 개선점 목록의 가장 꼭대기에 적혀 있기도 합니다.이렇게 경제 시뮬레이션에 대한 긴 시리즈는 마무리를 합니다. 다음 글에서는 기술적인 이슈로 돌아가 보도록 하겠습니다. 최근에 AMO 블록체인 프로토콜에 추가된 on-chain 프로토콜 업그레이드 기능에 대한 글이 계획돼 있습니다.AMO Blockchain Economy Simulation #5 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 03. 17

AMO Blockchain Economy Simu...

ComparisonsSee also- AMO Blockchain Economy Simulation #1- AMO Blockchain Economy Simulation #2- AMO Blockchain Economy Simulation #3한국어 판은 뒷부분에 있습니다.In this article, we will explore some other simulation settings than used in the previous article. First, we will try different production output of the economy. This is due to confirm the argument that the economy output controls the overall trend. Second, we figure out how the interest rate affects the simulation, i.e. fixed and variable interest rates. Lastly, we will investigate the effect of the amount of initially deployed coins.Economy outputThe most important lesson learned from the previous article is that the production output of the economy dominates the overall trend of the economy. In a sense, it is very natural. High economy output means active product market and high traffic of economic trades. A lively market drives the major metrics of the economy in a good direction. It also draws the attention from the surrounding entities and results in the higher exchange rate. Let’s confirm this. We will try the following three different settings of the economy output:start feeble and stay feeble (left figure)start feeble but grows relentlessly (center)start very active and stay as it be (right figure)different economy output settingsWhen the economy output is too low (1k $ per month) and stays as it is, all the metrics stay low also. Since the reward level is low due to the scarce economic trades, people are less likely to stake coins. Due to this, there are enormous amount free coins in the market. Unnaturally high money supply compared to the low economy output drives the price level up and up, i.e. super inflation. This kills the economy simulation shortly. And it is natural to think that the economy breaks down also. Thus we need to encourage the economy output growth at all cost.The figure in the middle is the one seen in the previous article. We already discussed about this, so let’s move on to the next case.When the economy output is high enough from the start, the initial settling down completes very quickly, staking as much coins as possible and draining available free coins from the market. This has the similar effect as though there are very little initial coins in the market from the beginning. Since the amount of available free coins is low, the price level becomes low also. As we discussed in the previous article, this will push up the exchange rate rather early.Let’s confirm again that the economy output is important and the high output is generally a good sign for the economy.Reward rule and interest rateAMO blockchain has the reward rule as the following: a validator gets a fixed reward for each transaction processed by its own. The reward is neither for blocks nor for staked coins. However, there are other blockchain projects having different reward rules. Nobody has a clean answer for whether our rule is better or worse. So it might be meaningful to figure out how the simulation would go with different reward rules.In one hand, we have a rule having variable interest rate. On the other hand, a rule having fixed interest rate. Let’s think about the case when the reward is for blocks, not for transactions. With the TPS(transactions per second) rate above a certain threshold, the rate of blocks per second would become fairly constant even if there are only handful of transactions in each block. This means that the average reward level for a unit time stays steady also. It is the major difference from the case of AMO blockchain, where reward is for transactions. In AMO blockchain, even after the rate of blocks per second reaches the maximum, the actual reward amount would be still variable. This difference affects the amount of excess money supply after the stage where the exchange rate is clamped. However, at this stage, the simulation shows little dynamics, so the overall trend is quite similar to the case of AMO blockchain.A very different approach for a reward rule is to give a reward proportional to the amount of staked coins. For example, when a validator (or a miner) produces a block, it receives a reward r = a × S, where a is a fixed rate and S is the amount of staked coins. More money, more income. This gives a fixed interest rate. The problem is that we have no prior knowledge needed to decide this fixed interest rate before the launch of the mainnet. So, let’s take a look on three cases with different fixed interest rates.different interest ratesWhen we set the interest rate to be a pretty generous value, 10% yearly, the major apparent difference is that there is an observable increase in the total amount of coins with naked eyes. Worsley, the exchange rate settles down at a rather low level. It was too much.However, when we set to 1% yearly, the simulation shows a very similar trend to the case of AMO blockchain. This is mainly due to the fact that the interest rate in AMO blockchain becomes rather steady at the later stages of the simulation.When we set to 0.1% yearly, we could observe the rather interesting result: higher exchange rate. Then, is it good to set lower interest rate? People would be afraid that the chain becomes less attractive to the possible future validators from the outside. Then how to decide? It’s a difficult question.Initial coinsThe last topic is the effect of the amount of initial coins. The majority of the blockchain projects issued coins (or tokens in terms of ERC20) prior to launch their mainnet and, of course, running business. By selling these coins, a blockchain project collect fund to develop their business. These coins will constitute initial coins pre-issued outside of the protocol. The amount of issued coins tends to increase over time. But, what is the effect of these initial coins? We set three scenarios having the different amount of initial coins.It’s hard to say what exact value is abundant or moderate. So, in the first scenario we set the initial amount to be the same as the simulation described in the previous article. In the second scenario we set much lower amount of initial coins. And in the third, only a small amount, extremely low value.different settings of initial coinsThe first figure is the same as our standard simulation. Nothing to say more. So, let’s move on to the next figure.The second figure shows rather short fall line of the active coins, since the initial amount is relatively small. This results into lower price level in the beginning. But the price level settles down at roughly the same value as our standard simulation. This confirms again that the whole trend is controlled by the economy output. You can see the exchange rate also clamps at the similar point. But, we can learn that the economy reaches the equilibrium point faster.In the third figure, we can see that the amount of active coins does not fall at all in the beginning. It is obvious. And everything settles down in a few hundred days. It may seem good, but it’s not. The simulation assumes every trade takes place in a perfect manner, in a sense that everyone finds a peer to trade with immediately, and everyone is ready respond immediately. It’s not true in real world. You may consider this as one of limitations of our simulation. In order to bootstrap the economy in the beginning, there need to be abundant amount of active coins ready to be traded to the actual sellers and buyers in the product market. But which amount is moderate? Unfortunately, we don’t know yet.In the next article, we will discuss about another limitations of our simulation methodology, and how we can improve it.AMO 블록체인 경제 시뮬레이션 #4비교분석이번 글에서는 이전 글에서 사용했던 것과는 다른 시뮬레이션 설정들을 살펴보겠습니다. 첫번째로 살펴볼 것은 경제 생산량을 다른 경우입니다. 이는 경제 생산량이 전체적인 시뮬레이션 추세를 제어한다는 것을 확인해 보기 위한 것입니다. 두번째로 이자율의 차이, 즉 고정 이자율과 변동 이자율이 시뮬레이션에 미치는 영향은 어떤지 살펴봅니다. 마지막으로 코인의 초기 발행량이 어떤 차이를 보이는지 살펴봅니다.경제 생산량이전 글에서 얻은 가장 중요한 것은 생산량이 경제의 전반적인 트렌드를 좌우한다는 것입니다. 어떤 면에서는 매우 자연스럽습니다. 높은 생산량은 활발한 재화 시장을 의미하고 거래량 또한 높다고 볼 수 있기 때문입니다. 활발한 시장은 경제의 주요 지표들을 긍정적인 방향으로 유도하게 됩니다. 또한 주변의 경제 주체들의 주목을 끌게 되고 결과적으로는 높은 환율로 이어집니다. 이를 확인해 보기 위해서 다음과 같이 세가지 다른 생산량 설정을 사용합니다:미미하게 시작해서 계속 유지 (왼쪽 그림)미미하게 시작하지만 지속적으로 성장 (가운데 그림)아주 활발하게 시작해서 계속 유지 (오른쪽 그림)생산량 차이생산량이 너무 낮고 (월간 천 달러) 계속 유지될 때는 다른 지표들도 모두 낮습니다. 거래량도 미미해서 보상의 수준도 낮기 때문에 사람들이 코인을 잘 스테이킹하려 하지 않습니다. 이로 인해 시장에는 많은 양의 코인이 자유롭게 돌아다닙니다. 낮은 생산량에 비해서 비정상적으로 높은 화폐 공급량 때문에 물가는 높아지기만 합니다. 즉 슈퍼 인플레이션입니다. 곧이어 시뮬레이션이 망가집니다. 아마도 시뮬레이션 속 가상의 경제도 붕괴했을 것입니다. 이것을 보자면 어떤 일이 있어도 경제 생산량을 끌어올려야 한다는 것을 알 수 있습니다.가운데 그림은 이전글에서 자세히 설명했던 것과 같습니다. 그러니 다음 그림으로 넘어가겠습니다.처음부터 경제 생산량이 높으면 초기 안정화가 대단히 신속하게 일어나고, 가능한 많은 코인이 스테이킹되기 때문에 시장에는 유통가능한 코인이 급격히 줄어듭니다. 이는 최초 공급되는 코인의 양이 아주 적은 것과 유사한 효과를 일으킵니다. 유통가능한 코인의 양이 적으므로 물가도 낮습니다. 이전 글에서 살펴본 것처럼 이는 환율을 비교적 조기에 밀어올리게 됩니다.중요한 것은 경제 생산량이고 높은 생산량은 경제에 대채로 좋은 신호라는 것을 다시 확인할 수 있습니다.보상 규칙과 이자율AMO 블록체인의 보상 규칙은 validator는 자신이 처리하는 거래에 하나마다 고정된 보상을 받는다는 것입니다. 보상은 블록에 대한 것도 아니고 스테이킹 된 코인에 대한 것도 아닙니다. 하지만 다른 블록체인 프로젝트들은 다른 보상 규칙을 갖고 있습니다. 어떤 것이 좋고 어떤 것이 나쁜지에 대한 명확한 답은 누구도 가지고 있지 못합니다. 그러니 서로 다른 보상 규칙에 따라 시뮬레이션이 어떻게 되는지 확인해 보는 것은 나름대로의 의미가 있습니다.일단 변동 이자율을 갖는 보상 규칙이 있습니다. 그리고 고정된 이자율을 갖는 규칙도 생각해 볼 수 있습니다. 보상이 거래에 대해 주어지지 않고 블록에 대해 주어지는 경우를 생각해 보겠습니다. TPS(초당 거래 처리량 또는 발생량)이 일정량 이상이면, 각 블록에 포함되는 거래의 수는 아주 적을지라도 일단 단위시간당 만들어지는 블록의 수는 일정해집니다. 이는 단위시간당 발생하는 보상의 양도 일정해진다는 것을 의미합니다. 이것이 AMO 블록체인의 경우와 다른 점입니다. AMO 블록체인에서는 각 거래에 대해 보상이 주어지기 때문에, 초당 블록수가 최대값에 도달하고 나서도 블록 내의 거래의 수에 따라 실제 보상의 양은 달라질 수 있습니다. 이 차이 때문에 환율이 고점에서 꺾이고 난 이후에 추가되는 코인의 양이 달라집니다. 하지만 이 시점은 시뮬레이션에 변동성이 이미 작아진 이후입니다. 따라서 전체적인 추세는 AMO 블록체인의 경우와 크게 다르지 않습니다.꽤 다른 보상 방식으로 스테이킹된 코인의 양에 비례해서 보상을 주는 경우를 생각해 볼 수 있습니다. 예를 들어, validator가 블록 하나를 만들면 r = a × S에 해당하는 보상을 받는데, 이 때 a는 고정된 보상률이고 S는 스테이킹된 코인의 양인 경우입니다. 돈이 많으면 보상을 더 받습니다. 이런 경우 고정된 이자율을 갖게 됩니다. 문제는 이 고정 이자율을 결정하기 위해 필요한 사전 정보가 없다는 것인데, 아직 메인넷을 실행하기도 전이기 때문입니다. 일단은 서로 다른 이자율을 사용했을 때의 시뮬레이션을 살펴보겠습니다.이자율 차이이자율을 연 10% 정도로 꽤 후하게 정하면, 일단 맨눈으로도 확인할 수 있을 정도로 전체 코인양이 늘어나는 것을 볼 수 있습니다. 이에 더해 환율도 다소 낮은 값에 머무릅니다. 너무 후했습니다.그런데 연 1% 정도로 정하면 시뮬레이션은 AMO 블록체인의 경우와 매우 유사한 추세를 보입니다. 이렇게 되는 이유는 AMO 블록체인의 경우에도 시뮬레이션의 후기로 가면 이자율이 일정하게 유지되기 때문입니다.연 0.1% 정도로 정하면 좀 흥미로운 결과를 볼 수 있습니다. 환율이 높아지는 것입니다. 그렇다면 이자율을 낮게 잡을 수록 좋은 것일까요? 사람들은 아마도 오히려 우려하게 될 텐데, 외부에서 유입될 미래의 validator의 입장에서 매력이 떨어질 것 같기 때문입니다. 어떤 값으로 정해야 할까요. 어려운 숙제가 돼 버립니다.초기 코인 발행양마지막으로 살펴볼 것은 초기 코인 발행양이 주는 효과입니다. 대다수의 블록체인 프로젝트들은 메이넷을 실행하기 전에, 즉 실제 사업을 운영하기 전에 코인(ERC20 용어로는 토큰)을 발행합니다. 이 코인들을 판매해서 자금을 확보하고 실제 사업을 준비하기 위해 사용합니다. 이 코인들은 해당 블록체인의 초기 코인양으로 이관되는데 이들은 프로토콜 범위 바깥에서 발행된 코인들입니다. 전체 코인의 양은 이후 시간이 지남에 따라 계속 발행되기 때문에 점차 증가하게 됩니다. 그런데 이들 초기 발행된 코인의양은 어떤 효과를 주게 될까요? 서로 다른 초기 코인 발행양을 갖는 3가지의 시나리오를 살펴보겠습니다.정확히 어떤 값이 많은 것인지 적당한 것인지 정하기는 어렵습니다. 따라서 첫번째 시나리오에서는 초기 발행양을 이전 글의 시뮬레이션과 같은 양으로 정합니다. 두번째 시나리오에서는 이보다 훨씬 낮은 양으로 정합니다. 세번째 시나리오에서는 아주 소량만으로 정합니다.초기 코인 발행양 차이첫번째 그림은 계속 사용했던 표준 시뮬레이션과 같습니다. 더 설명할 것은 없으니 다음 그림을 살펴보겠습니다.두번째 그림에서은 일단 유통가능 코인의 양이 훨씬 적게 하락하는데 초기 물량이 상대적으로 적었기 때문입니다. 이는 초기 물가도 낮아지게 하지만 결국은 표준 시뮬레이션과 거의 같은 값에서 멈춥니다. 이를 보면 전체 추세는 경제 생산량에 의해 결정된다는 것을 다시 확인할 수 있습니다. 환율도 거의 같은 지점에서 고점을 만나게 됩니다. 단, 경제 상황이 평형점에 도달하는 시간이 빨라진다는 것에 주목할 필요가 있습니다.세번째 그림에서는 초기에 유통가능한 코인의 양이 전혀 하락하지 않습니다. 이는 당연합니다. 그리고 몇백일 정도 후에 모든 것들이 안정화됩니다. 이는 얼핏 아주 좋아보입니다. 하지만 그렇지는 않습니다. 이 시뮬레이션에서는 모든 거래가 완벽하게 이루어진다고 가정하고 있는데 모든 사람이 거래 상대를 즉시 찾아내고 모든 사람이 거래에 즉시 응한다고 가정하기 때문입니다. 현실에서는 그렇지 않을테지요. 이는 우리의 시뮬레이션의 한계점들 중에 하나로 볼 수 있습니다. 초기 경제에 시동을 걸기 위해서는 비교적 풍부한 양의 유통가능 코인들이 존재할 필요가 있는데, 재화 시장에서 실제 재화의 판매자와 구매자들이 필요로 하는 코인들을 공급하기 위해서입니다. 하지만 어느 정도 양이 적당한 것일까요? 안타깝게도 아직은 모릅니다.다음 글에서는 우리의 시뮬레이션 방법에 존재하는 다른 한계점들은 어떤 것이 있는지, 그리고 어떻게 개선할 수 있을지를 알아보도록 하겠습니다.AMO Blockchain Economy Simulation #4 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 03. 09

Last Testnet-200306

We’re preparing to launch the mainnet around the end of March. The exact D-day would be announced via various channels before the launch. To prepare and test the mainnet, we will release amod v1.5.0 and launch a new testnet with the following added features:Unified binary for tendermint and AMO abci appOn-line upgrade of blockchain protocolWe unified the tendermint and AMO abci app in order to ease the binary substitution upon on-line protocol upgrade. The upgrade of the blockchain protocol would be decided via governance mechanism add in the previous amod v1.4.x release. The actual protocol upgrade is orchestrated by an external monitoring tool. This tool will be released soon after the v1.5 release.This testnet is expected to be the last one until the mainnet. However, there need to be a testnet for the developers working on their business applications. This testnet is supposed to be launched just after the mainnet launch and will use the same protocol version as the mainnet.마지막 테스트텟 Testnet-200306AMO Labs에서는 3월 말 경에 메인넷 출시를 준비하고 있습니다. 정확한 출시일은 메인넷 런치 이전에 여러 채널을 통해 공지될 예정입니다. 이 메인넷을 준비하고 테스트하기 위해서 다음의 변경 사항을 포함하는 amod의 v1.5.0 release가 계획돼 있고 새로운 테스트넷도 실행될 예정입니다:tendermint와 AMO abci app을 통합한 하나의 바이너리온라인 블록체인 프로토콜 업그레이드Tendermint와 AMO abci app의 통합의 온라인 프로토콜 업그레이드 시점에 바이너리 교체를 수월하게 하기 위한 것입니다. 블록체인 프로토콜을 업그레이드 하기 위한 의사결정은 이전 amod v1.4.x 릴리즈에 포함됐던 거버넌스 메커니즘을 통해서 결정됩니다. 실제의 프로토콜 업그레이드는 별도의 외부 모니터링 도구에 의해서 관장하게 됩니다. 이 도구는 v1.5 릴리즈 직후에 공개될 예정입니다.이 테스트넷은 메인넷 이전 마지막 테스트넷으로 계획됐습니다. 하지만 각자의 비즈니스 응용프로그램을 만드는 개발자들을 위한 테스트넷 역시 필요합니다. 이 테스트넷은 메인넷 출시 이후에 실행될 예정이며 메인넷과 동일한 프로토콜 버전을 사용하게 될 것입니다.Last Testnet-200306 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 03. 06

AMO Blockchain Economy Simu...

Simulation detailSee also- AMO Blockchain Economy Simulation #1- AMO Blockchain Economy Simulation #2한국어 판은 뒷부분에 있습니다.Real world is much more complex than the simulation. Even if we define a closed system or environment, every element or metric is affected by one or more other elements or metrics within the system. The purpose of defining a closed environment is to eliminate unwanted complexity and make the problem simpler. In this article, we will explore some of the relations between key economic metrics assuming all else equal and constant.Before we begin, let’s look at the following graph first.Full simulation resultAs the caption says, it is a capture image of a full simulation over the range of 5,000 days. It encompasses changes of monetary assets, important metrics directly induced from them, and, most importantly, long-run and short-run exchange rates. As we mentioned in the previous article, the price level is the most important metric and drives the overall exchange rate change.Since the variables are affecting each other all the way, it is rather complex to explain why the graph is like this at a single shot. So we will begin our explanation from the relations between variables within the local money market.The first thing to note is the price level. It is a general indication of prices of goods traded in the local product market. The exact definition of the price level may vary in scale. So, just take this variable as a relative one, and focus on the relative change rather than the exact value. We take the price level as follows: P = (M × V) / (Y × (1 — R)), where V is a money velocity fixed at a constant and Y is a production output of the economy given as a simulation parameter, i.e. controlled outside the simulation. M is the money supply and R is the interest rate. They are simulation state variables and affected by the chain of relations between various variables, but we will talk about this later.The price level changeIf we fix M and R, you can see the price level P is almost the opposite of the economy (production) output (left figure). For a given money supply and interest rate, the price level decreases as the sum of products in the market increases. Since the price level is a sticky variable, it would change more slowly compared to other variables. In a full simulation the price level is affected by M and R also. So, the actual trend would be a little more complex (right figure).The local money marketNext, we will look at the local money market. In this market, we focus on 5 metrics: AMO coins, stakes, economy (production) output, interest rate, and the price level. To simplify the explanation, we fix the production output and the the price level at constant. You can see the two blue lines: one solid, and the other dashed. One resembles the other, since the interest rate is the result of direct calculation from stakes and reward. As we fix the output level, the amount of reward is fixed as a consequence. Therefore we can say that the interest rate depends only on the sum of stakes. It affects the money demand, the money demand affects the sum of excess money, and this affects the sum of stakes in turn. This completes a feedback loop. We used the different time scale to show the rapid change of the interest rate at the beginning of the simulation (left figure). If we put more freedom to the independent variables, things become more complex as in the right figure.The exchange rateOur ultimate interest is on the exchange rate of AMO coin. While the dynamics of the currency exchange market is complex, its apparent output is rather simple to explain. As explained in the previous article, there two kinds of exchange rate to be concerned: long-run exchange rate and current exchange rate. The long-run exchange rate is not a real metric. Rather it is an expected value in the future and directly calculated from the price level according to the PPP(purchasing power parity) condition. You can see the thick green line, almost the mirror image of the price level. The current exchange rate is a moving variable. It is adjusted from the IP(interest parity or interest rate parity) condition. It may change abruptly due to the difference between interest rates of USD and AMO. However, it follows the long-run exchange rate eventually.Now, we can return to the full simulation result again. Interesting thing is that even if we apply the same rule for every simulation step throughout the whole process, we can observe distinctive phases showing different trends. We will describe these phases as the initial settling down, the mid-term development, and the long-term phase. As you may see, there are spiky lines at the very beginning of the simulation. Let’s zoom into those area spanning about 2 weeks.Initial settling downThis is the same graph as the first one, but in different time scale. In the beginning, all the variables move very quickly since they are too far away from the equilibrium points and adjusting power is enormous. It takes several days for them to clear up this initial discrepancy. Notable changes are increasing price level and sum of stakes, decreasing interest rate, and short rise and fall of exchange rate. Since the interest rate is quite low, the price level approximately equals to MV/Y. V is fixed and M and Y are barely changed, compared to their scale. So, nearly unaffected by other factors, the price level just approaches to the equilibrium point determined by them. Unlike the 4th graph, this time the price level is moving, not fixed. Since the price level is increasing, the money demand increases rather sharply. In the beginning, the amount of excess money is huge and this excess money tends to transform into more profitable assets, stakes. The increasing stakes lowers the interest rate, and this will lower the increase rate of the money demand. So the money demand settles down to some local equilibrium point. At this stage, after one week or so, the initial settling down seems to be completed. Now the economy starts to adapt to these initial changes at a more relaxed pace.In this time scale, economy output shows an observable change. It triggers other chain reactions. Without it, the economy would stay steady after the initial settling down completes. Increasing economy output means more goods in the product market and more transactions to process the trade deals. It results to slightly decreasing price level and increasing interest rate. Recall that more transactions give more rewards and higher interest rate as a result. Decreasing price level and increasing interest rate both contribute to the decreasing money demand. Eventually, the sum of stakes rises past the point where it exceeds the sum of active AMO coins. As we discussed earlier, the long-term expected exchange rate is determined by the price level. The current exchange rate is quite quick, and it quickly follows the long-term expected exchange rate. This is because there is no sudden impact from the outside. If there is any, then we may observe the exchange rate overshooting.At last, we return to the first graph again. The pace continues until there is a ongoing significant gap between the money demand and money supply(sum of active AMO coins). This gap is a result of steadfast rewards from the transactions. At this stage, excess money supply hold up the price level which decreased so far. Now, the major driving force stops to change and the exchange rate also stops to change.Until this point, it takes roughly 1,700 days, about 4 and a half years. After this, the exchange rate stays at the level of several tens of dollars per AMO coin. Hooray! But really? Just cast the hats to the sky and rejoice? What about the period when the exchange rate is too low, even less than 0.001 USD/AMO? Suffer for 4 years with that? 😩 But wait. 20,000 times the value in 4.5 years! Wow! 😁 Should we smile or frown?We cannot be either simply happy or totally sad. Keep it mind that the simulation runs on relative variables, both in amount and time scale. So it is a good idea to forget about the absolute labels on x- and y-axes. There are two things important in this simulation result. One is that the long-term pace and trend is determined by the economy output, i.e. the sum of values of products in the product market. Another is that the majority of the AMO coins would be locked as stakes. The exact scale of values and time may change with different simulation settings. But these are our lessons. Output is the boss. Mostly stakes.Actual simulation source code and a technical paper describing concrete theoretical background of the simulation will be provided via our github repository. The paper would be published some journal or a public archive soon.In the next article, we will discuss about other economic settings than AMO blockchain.AMO 블록체인 경제 시뮬레이션 #3시뮬레이션 과정현실 세계는 시뮬레이션보다 훨씬 복잡합니다. 닫힌 시스템이나 환경을 정의하더라도 모든 요소들이나 지표들이 시스템 안의 또 다른 요소들이나 지표들에 영향을 받게 됩니다. 닫힌 시스템을 정의하는 목적은 원치 않는 복잡도를 제거하고 문제를 보다 간단하게 만들기 위한 것입니다. 이 글에서는 다른 모든 것이 그대로일 때 주요 경제 지표들 간의 관계가 어떻게 되는지를 살펴볼 것입니다.우선 첫번째 그래프를 보도록 하겠습니다.전체 시뮬레이션 결과이 그래프는 그림 설명에 있듯이 5,000일에 걸친 전체 시뮬레이션 결과의 캡쳐 이미지입니다. 여기에는 금전 자산들의 변화와 거기에서 바로 유도되는 주요 지표들, 그리고 가장 중요한 것으로 장기와 단기 환율이 나타납니다. 이전 글에서 언급한 것처럼 가격 수준(price level, 물가)이 가장 중요한 지표이고 환율의 전체적인 변화를 주도합니다.각 변수들은 끊임 없이 서로에게 영향을 주기 때문에 이 그래프가 왜 이런 모양이 되는지를 한 번에 설명하기는 쉽지 않습니다. 따라서 일단 지역화폐시장(local money market)의 변수들 사이의 관계부터 설명하기로 하겠습니다.제일 먼저 살펴볼 것은 가격 수준입니다. 이는 지역 상품 시장에서 거래되는 재화의 가격을 대략적으로 나타낸 것입니다. 가격 수준의 엄밀한 정의는 그 규모에서 차이가 날 수 있습니다. 따라서 이 변수는 상대적인 수준을 나타내는 것으로 간주하고, 정확한 값보다는 상대적인 변화에 주목하기로 합니다. 가격 수준은 다음 수식으로 나타냅니다: P = (M × V) / (Y × (1 - R)), 여기에서 V는 화폐유통속도(money velocity)라 하며 상수로 주어지고 Y는 이 경제체제의 생산량이며 시뮬레이션 인자로 주어집니다. 즉, 시뮬레이션 외부에서 제어하는 값입니다. M은 화폐 공급량이고 R은 이자율입니다. 이들은 시뮬레이션의 상태 변수들이고 여러 변수들 간에 꼬리를 무는 관계에 의해 영향을 받습니다. 이에 대해서는 뒤에 설명하겠습니다.가격 수준 변화만약 M과 R을 고정하면 가격 수준 P는 생산량(output)의 거의 반대 그림이 되는 것을 볼 수 있습니다(왼쪽 그림). 화폐 공급량과 이자율이 주어지면 생산량이 늘어나는 것에 맞추어서 가격수준이 낮아집니다. 가격 수준은 쉽게 변하지 않는 변수이기 때문에 다른 변수들에 비해 더 늦게 변화합니다. 전체 시뮬레이션 결과에서는 가격 수준이 M과 R에도 영향을 받습니다. 따라서 실제 변화 양상은 이보다 더 복잡하게 됩니다(오른쪽 그림).지역화폐시장다음으로 지역화폐시장(local money market)을 살펴보겠습니다. 이 시장에서 주목해야 하는 지표는 AMO 코인, 스테이크, 생산량, 이자율, 그리고 가격 수준 등 5가지입니다. 설명을 간단하게 하기 위해서 생산량과 가격 수준을 상수로 고정해 보겠습니다. 실선과 점선으로 된 두 개의 파란 선을 볼 수 있습니다. 서로 닮아 있는 모양인데, 이는 이자율이 스테이크와 코인 보상으로부터 바로 계산되는 값이기 때문입니다. 생산량을 고정하면 결과적으로 코인 보상도 고정됩니다. 따라서 이자율이 스테이크의 양에만 의존한다고 할 수 있게 됩니다. 이는 화폐 수요에 영향을 주고, 화폐 수요는 잉여 화폐의 양에 영향을 주고, 다시 스테이크의 양에 영향을 주게 돼서 되먹임 순환(feedback loop)이 완성됩니다. 위 그래프에서는 시간축의 축적을 다르게 했는데 시뮬레이션 초기에 급격하게 변화하는 이자율을 보다 잘 보여주기 위한 것입니다(왼쪽 그림). 독립된 변수들에 자유도를 주게 되면 오른쪽 그림과 같이 변화 양상은 더 복잡해집니다.환율우리가 종국게 궁금해 하는 것은 AMO 코인의 환율입니다. 외환시장을 변화하게 하는 원리는 다소 복잡하지만 결과적으로 보이는 모습은 의외로 간단히 설명할 수 있습니다. 이전 글에서 설명한 것과 같이 우리가 주목하는 환율은 장기 예상 환율(long-run expected exchange rate)과 현재 환율(current exchange rate)입니다. 장기 예상 환율은 실제의 지표는 아닙니다. 말 그대로 미래에 도달할 것으로 예상되는 환율이고, PPP(purchasing power parity, 구매력 평형) 조건에 의해서 가격 수준으로부터 직접 계산됩니다. 그림에서 두꺼운 녹색 선으로 나타나며 가격 수준과 거의 반대되는 모양입니다. 현재 환율은 IP(interest parity or interest rate parity, 이자율 평형) 조건에 의해서 조정되는 변수입니다. USD와 AMO의 이자율 차이에 의해 급격하게 변화하는 것도 가능합니다. 하지만 결국은 장기 예상 환율을 따라가게 됩니다.이제 다시 전체 시뮬레이션 결과로 돌아오겠습니다. 흥미로운 것은, 시뮬레이션의 전과정에서 모든 스텝에 같은 규칙을 적용하더라도 서로 다른 양상을 보이는 구분되는 영역으로 나뉘게 된다는 것입니다. 이들을 각각 초기 안정화, 중간 변화, 그리고 장기간 변화로 설명하겠습니다. 보이는 바와 같이 시뮬레이션의 초기에는 뾰족한 선들이 있습니다. 약 2주 정도 되는 이 기간을 확대해서 살펴보겠습니다.초기 안정화이 그림은 처음 그래프와 같은 것이지만 시간축만 다릅니다. 초반에 모든 변수는 대단히 신속하게 움직이는데, 이것은 이들이 평형점으로부터 많이 떨어져 있어서 이를 조정하려는 힘이 아주 크게 작용하기 때문입니다. 초기의 이 차이를 해소하는 데에는 며칠이 걸립니다. 주목할만한 변화는 가격 수준과 스테이크의 증가, 이자율의 감소, 그리고 짧게 상승했다가 하강하는 환율 변화입니다. 이자율이 아주 낮은 상황이기 때문에 가격 수준은 대략 MV/Y와 같다고 볼 수 있습니다. V는 고정돼 있고 M과 Y는 비율로 보면 거의 변하지 않습니다. 따라서 가격 수준은 이들 값에 의해서 정해지는 평형점을 향해 접근하게 되는데 이 때 다른 변수들의 변화에는 영향을 거의 받지 않게 됩니다. 네번째 그래프에서와는 다르게 가격 수준이 고정돼 있지 않고 변화합니다. 가격 수준이 증가하기 때문에 화폐 수요도 급하게 상승합니다. 초기에는 잉여 화폐의 양이 엄청나기 때문에 이 잉여 화폐들은 보다 이익이 높은 자산인 스테이크로 빠르게 전환됩니다. 증가하는 스테이크는 이자율을 낮추게 되고, 이는 화폐 수요의 증가율을 둔화시킵니다. 이를 통해 화폐 수요는 평형점에 도달해서 잠시 안정화됩니다. 대략 일주일 정도가 지난 시점이 되면 안정화도 적당히 완료됩니다. 이제부터 경제 상황은 이 초기의 변화에 적응하면서 변화하는데 훨씬 느슨한 속도로 진행됩니다.시간축을 이 정도로 바꾸면 생산량의 변화가 눈에 띕니다. 이는 다른 연쇄 반응들을 일으킵니다. 이것이 없었다면 경제 상황은 초기 안정화가 끝난 이후에 그대로 유지되었을 것입니다. 생산량의 증가는 상품 시장에서 더 많은 재화가 거래된다는 것을 의미하고 이를 위해 더 많은 거래가 처리돼야 합니다. 이 결과로 가격 수준(물가)도 다소 낮아지고 이자율을 상승합니다. 더 많은 거래가 처리되면 더 많은 코인 보상이 생기고 이것이 더 높은 이자율을 낳게 됩니다. 가격 수준의 감소와 이자율의 상승은 모두 화폐 수요를 감소시킵니다. 결국에는 스테이크의 양이 계속 증가해서 자유롭게 유통되는 AMO 코인의 양보다도 많아지게 됩니다. 이전에 살펴본 봐와 같이 장기 예상 환율을 가격 수준에 의해서 정해집니다. 현재 환율은 기민하게 움직여서 장기 예상 환율을 신속하게 따라가는데, 이는 외부로부터 유입되는 갑작스런 충격이 없기 때문입니다. 만약 있었다면 환율의 오버슈팅(overshooting) 현상을 볼 수도 있을 것입니다.이야기가 흘러서 우리는 다시 처음 그래프로 돌아옵니다. 지금까지의 양상은 화폐 수요와 공급(자유로이 유통되는 AMO 코인의 양) 사이에 지속적인 차이가 발생할 때까지 계속됩니다. 이 차이는 거래가 처리될 때 생기는 코인 보상도 계속해서 생기기 때문에 발생합니다. 이 단계에 이르면 지금까지 감소하던 가격 수준을 잉여 화폐 공급이 떠받칩니다. 전체적인 변화를 주도하던 변수가 이렇게 멈추고, 환율 변화도 멈춥니다.여기까지 대략 1,700일 정도, 즉 4년 반 정도의 시간이 소요됩니다. 이후에 환율은 AMO 코인당 수십 달러 정도의 수준에서 머물게 됩니다. 만세를 부를만 합니다. 그런데 정말일까요? 모자를 던지고 환호하기만 하면 되는 걸까요? 환율이 아주 낮은 기간, 그러니까 0.001 USD/AMO도 되지 않는 기간은 어떡할까요? 4년이 넘는 기간을 감내해야 할까요? 😩 그런데 잠깐 만요. 4.5년만 버티면 가격이 무려 20,000 배도 넘게 오릅니다! 우와! 😁 웃어야 할까요, 울어야 할까요?마냥 즐거워하거나 낙담할 필요는 없습니다. 이 시뮬레이션은 상대적인 변수들에 기대서 실행된 것입니다. 양적으로나 시간 면에서나 모두 말입니다. 그러니 x축과 y축의 절대값 레이블들은 잊는 게 좋습니다. 이 시뮬레이션에서 얻을 수 있는 중요한 점은 두가지입니다. 하나는 장기적인 변화의 방향과 속도는 경제시스템의 생산량에 의해서 좌우된다는 점입니다. 즉 상품 시장에서 거래되는 재화 가치의 총합을 말합니다. 또 다른 것은 AMO 코인의 대다수는 스테이크로 잠기게 된다는 점입니다. 개별 변수들의 스케일이나 시간축의 척도는 시뮬레이션을 어떻게 설정하는가에 따라서 달라지게 됩니다. 얻을 수 있는 바는 다음과 같습니다. 생산량이 관건. 대부분은 스테이크.실제 사용된 시뮬레이션의 소스코드와 이 시뮬레이션의 이론적 배경에 대한 보다 견고한 설명을 담은 논문은 저희의 github 저장소를 통해서 공개될 예정입니다. 해당 논문은 관계 저널이나 공개 아카이브 사이트에 공개될 예정입니다.다음 글에서는 AMO 블록체인 외에 다른 경제 체제에 대해서 알아보도록 하겠습니다.AMO Blockchain Economy Simulation #3 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 02. 06

AMO Blockchain Economy Simu...

Market dynamicsSee also- AMO Blockchain Economy Simulation #1- AMO Blockchain Economy simulation #3한국어 판은 뒷부분에 있습니다.World is changing. So is the economy. It’s hard to imagine a market in eternal equilibrium. It is not because we cannot rely on equilibrium. Actually, it is because the equilibrium point is also changing. If we eliminate all the varying external interferences, the market may stay in equilibrium state. This may include a state where some of the metrics affects each other and the market is oscillating around some static point. But we may consider this state as in equilibrium also. No external interference, then stays in equilibrium. However, as we stated earlier, the equilibrium point is changing, so the market moves towards a new equilibrium point, ever changing. In this article, we will explorer how we could set an equilibrium point in a given circumstances, and how the market should move towards this equilibrium point.We can set a basic principle regarding supply and demand: if the supply is higher than the demand, then the price would fall. The opposite is also true. We may develop full stories from the scratch, but we won’t. We can borrow some well-established classic economics theories for two markets we are interested: the local money market and the currency exchange market.Local money marketThe term local in local money market is not a regional concept. It means there is no other external currency than the native one. For AMO blockchain, there is only one currency, AMO coin. In local money market, money and other monetary assets are traded. As stated in the previous article, AMO coin constitutes M0 money(cash), and we have M2 money as stakes. There is neither M1 nor M3 money. According to the classic economics, local money market acts on M0+M1 assets and other interest-giving assets including M2+M3 assets. In our case, AMO coin and stakes are traded in the local money market.Since this is a “money” market, we consider supply and demand for money, not other goods or assets. Money supply is simple: total sum of AMO coins. However, it is rather complex for money demand.money demandIt is determined by the price level(P), the interest rate(R) and product output(Y). Here, the price level is for the product market, not money market. It means that if the price level is high, then more money is required to support the product market transactions. L(R, Y) is called a liquidity function and drives overall money demand. It shrinks when the interest rate of M2 asset is high. People would prefer to keep interest-giving assets, rather than to sell the M2 assets and acquire more liquid money. An opposite story applies when the interest rate is low. It is also a function of product output. It is comparable to GDP of the economic system, or simply the sum of product values in the product market. More deals in the market? Then more money is required to handle them. It is quite enough to state the relations for now, but we need a concrete formula for this liquidity function to run a simulation. For the exact formula, see our technical paper that would be published soon.The market reaches the equilibrium when the supply and the demand matches. But how to achieve this? With the money demand and supply at any given time, we can simulate how the local money market moves. If the demand is higher than the supply, the sum of AMO coins would grow in exchange of M2 assets. At the same time, the price level would be gradually reduced to match the lack of money in the market, though the rate of change is different. There is a long chain of dependency between the money supply and the interest rate, but not so direct. To make the story simple, we assume the money supply does not affect the interest rate.It might be strange to say, but the price level change is the most important driving force. It will determine the long-term change of the currency exchange market.Currency exchange marketFor the holders who bought AMO coins in early ICO stage and kept them until now, the paramount concern would be the expected value of AMO coin in the future. This market is closely related to this matter.In currency exchange market, more than one currency are traded for each other. As we said in the previous article, we take two currencies: USD and AMO coin. According to the modern economics theory, the currency exchange market is in equilibrium when the benefit(return rate) from acquiring USD is equivalent to that from AMO coin. But the story is not so simple. It involves the interest rates from each of the currencies and the long-term expected exchange rate between two currencies.interest parity conditionThe above equation is called the IP(Interest Parity) condition. The variable R is for the interest rate for each of USD and AMO coin. The variable E is for the current exchange rate and the superscript e designates a long-term expected exchange rate. The detailed description of the IP condition can be found in a textbook of international economics. Since we don’t have the control over USD market, R_dollar is considered as given and stays constant throughout the simulation. E is the target we want to figure out, but long-term E is not clear right now.The long-term expected exchange rate is determined by the PPP(Purchasing Power Parity) condition.purchasing power parity conditionOK, we got as in the above equation. But how? PPP condition assumes the purchasing power tends to be equivalent across the borders. The variable P is for the price level for each of USD and AMO product market. The condition states that the long-term value of a currency tends to link with the price level of the corresponding product market. The PPP condition is interesting on its own, but we are particularly interested because it completes the IP condition formula. And again, this condition is completed from the price level described in the previous section. In other words, the price level drives the overall value trend of AMO coin. The price level is determined in turn by the product output and the amount of liquid money as described when we talk about the local money market.Approach functionsSo, we have all the required chain of relations between various variables: from production output to the exchange rate. But it is not enough. Some variables are very quick to change, while some are rather sticky. An outstanding example of a quickly changing variable is the exchange rate. It dramatically changes in daily basis, or even in minute-by-minute. In contrast, the price level is considered rather sticky. It is true that the price level changes in enormous rate in extreme circumstances. However, it seems widely accepted that the price level is sticky compared to other economic factors. To simulate these differences, we introduced three different approach functions: short-run, mid-run and long-run changes. They have all the same shape, but different scales.So far, we described the major market dynamics. What shall we get if we combine those together? Let’s talk about that in the next article.AMO 블록체인 경제 시뮬레이션 #2시장 변화 원리세상은 변하고 경제도 그렇습니다. 영원히 평형 상태에 있는 시장이란 것은 상상하기 힘듭니다. 시장의 평형 상태란 것을 믿을 수 없기 때문에 그런 것은 아닙니다. 실은 이 평형 지점이란 것도 변할 수 있는 것이기 때문입니다. 만약 변화무쌍한 외부로부터의 간섭 요인을 모두 없앨 수 있다면 시장은 평형 상태에 머무르게 될 겁니다. 시장 지표들이 서로 영향을 줘서 시장이 어떤 지점 부근에서 공진할 수는 있겠지만 이마저도 일종의 평형 상태라 할 수 있을 것입니다. 외부 간섭이 없다면 평형 상태에 머무릅니다. 하지만 앞서서 이야기한 바와 같이 평형점도 역시 변합니다. 자연히 시장은 이 새로운 평형점을 향해 움직이고 결국 계속 변하게 됩니다. 이 글에서는 주어진 상황에서 평형점을 어떻게 정할 수 있는가 하는 것과 시장이 이 평형점을 향해 어떻게 움직일 것인가를 이야기하겠습니다.우선 수요와 공급에 대한 기본 원리를 세울 수 있습니다: 공급이 수요보다 높다면 가격은 떨어집니다. 반대도 마찬가지입니다. 물론 이 원리에서 출발해서 바닥부터 모든 이야기를 만들 수 있겠지만 그렇게 하지는 않겠습니다. 이미 잘 정립된 고전 경제 이론들을 빌려와서 우리가 관심을 갖고 있는 두 가지의 시장, 즉 지역화폐시장과 외환시장에 적용해 보고자 합니다.지역화폐시장“지역화폐시장”에서의 “지역”은 지리적인 개념은 아닙니다. 고유 화폐 한가지를 제외하고 다른 화폐가 없다는 의미입니다. AMO 블록체인에서는 AMO 코인이라는 하나의 화폐만 있습니다. 지역화폐시장에서는 이 화폐와 다른 금전 자산들이 거래됩니다. 이전 글에서 이야기한 것과 같이 AMO 코인은 M0 화폐(현금)가 되고, “스테이크”라는 M2 화폐도 있습니다. M1이나 M3 화폐는 없습니다. 경제학 이론에 따르면 지역화폐시장은 M0나 M1로 분류되는 자산과 M2나 M3로 구분되는 이자를 제공하는 자산들에 작용합니다. 우리의 경우에는 AMO 코인과 스테이크가 지역화폐시장에서 거래됩니다.우리가 다루는 것이 “화폐” 시장이기 때문에 주로 생각하는 것은 재화나 다른 자산이 아닌 바로 화폐의 공급과 수요입니다. 화폐 공급은 간단합니다. AMO 코인의 총량입니다. 하지만 화폐 수요는 조금 복잡합니다.화폐 수요화폐 수요는 가격수준(P, price level, 물가)과 이자율(R), 생산량(Y) 등에 의해 결정됩니다. 여기에서 가격수준은 화폐시장이 아니라 재화시장에 대한 것입니다. P가 관계하는 부분은, 가격이 높아지면 재화시장에서의 거래들을 떠받치기 위해 더 많은 화폐가 필요하다는 것입니다. L(R, Y)은 유동성 함수라고 부르며 전반적인 화폐 수요를 움직입니다. M2 자산의 이자율이 높아지면 줄어드는데, 사람들은 M2 자산을 팔아서 유동성 있는 화폐를 더 확보하기보다는 이자를 주는 자산을 더 유지하는 걸 더 선호하게 됩니다. 이자율이 낮아지면 반대가 됩니다. 유동성 함수는 또한 재화 생산량에도 영향을 받는데, 해당 경제체계의 GDP라고 볼 수도 있고 간단히는 재화시장에 있는 재화가격의 총합이라고 봐도 됩니다. 시장에서 더 많은 거래가 있다면 그것을 다 처리하기 위해 더 많은 화폐가 필요해집니다. 일단은 이들 사이의 관계만 설명하는 것으로 충분할 듯 합니다. 하지만 시뮬레이션을 돌리려면 이 유동성 함수에 대한 보다 명확한 수식이 있어야 합니다. 정확한 수식은 이후에 공개될 논문을 참고하시기 바랍니다.시장은 공급과 수요가 맞아떨어질 때 평형을 이룹니다. 하지만 어떻게 이런 일이 일어날까요? 어떤 순간에 화폐 수요와 공급이 주어지면 지역화폐시장이 어떻게 움직일 지 시뮬레이션할 수 있습니다. 수요가 공급보다 높으면 AMO 코인의 총량은 늘어나고 상응하는 양만큼 M2 자산이 줄어듭니다. 동시에 가격수준도 화폐양이 모자라는 시장에 맞추기 위해 점차 줄어들게 됩니다. 물론 변화하는 정도는 서로 다릅니다. 화폐 공급은 여러 단계를 거쳐 결국은 이자율에 영향을 주게 되지만, 직접 영향을 주진 않습니다. 일단은 이야기를 간단하게 하기 위해서 화폐 공급은 이자율에 영향을 주지 않는다고 가정하기로 합니다.조금 이상하게 들릴 수도 있긴 하지만, 가격 수준이 모든 것을 움직이는 가장 중요한 요소가 됩니다. 왜냐하면 외환시장의 장기 변화를 결정하기 때문이죠.외환시장초기 ICO 단계에서 AMO 코인을 구매해서 지금까지 보유하고 있는 사람들에게는 미래에 AMO 코인의 예상가격이 어떻게 될 것인지가 가장 중요한 관심사일 것입니다. 외환시장은 이와 아주 밀접환 관계가 있습니다.외환시장에서는 둘 이상의 화폐가 서로 거래됩니다. 이전 글에서 이야기한 바와 같이 USD와 AMO 코인이라는 두 가지의 화폐를 다룹니다. 현대 경제학에 따르면 USD를 보유할 때 얻는 이득(수익률)과 AMO 코인을 보유할 때 얻는 이득이 일치할 때 외환시장은 평형을 이룹니다. 하지만 이야기가 마냥 간단치만은 않습니다. 각 화폐로부터 발생하는 이자율과 두 화폐 사이의 장기 예상 환율 등이 영향을 줍니다.금리 평형 조건위 방정식은 금리 평형(IP, interest parity) 조건이라 부릅니다. 변수 R은 USD와 AMO 코인 각각의 이자율을 나타냅니다. 변수 E는 현재 환율이고 위첨자 e가 붙은 것은 장기 예상 환율입니다. IP 조건의 자세한 설명은 국제 경제학 교과서를 참고하시기 바랍니다. USD 기반의 시장은 제어할 수 없기 때문에 R_dollar는 주어지는 값으로 간주되고 시뮬레이션 내내 고정됩니다. E는 우리가 알고자 하는 값이고 장기 예상 E는 아직 어떻게 해야 할지 확실치 않습니다.장기 예상 환율은 구매력 평형(PPP, purchasing power parity) 조건에 의해서 결정됩니다.구매력 평형 조건위 방정식과 같이 구할 수 있습니다. 그런데 이건 어떻게 이렇게 된 걸까요? PPP 조건을 이야기할 때는 구매력이라는 것은 국경(경제체계 경계선)을 넘어서도 동등할 것이라고 가정합니다. 변수 P는 각각 USD와 AMO 코인에 기반하는 상품 시장의 가격 수준입니다. 이 조건이 이야기하는 것은 장기적으로 관측되는 화폐의 가치는 해당하는 상품 시장의 가격 수준에 연동된다는 것입니다. PPP 조건은 그 자체로도 인상적이지만, 우리가 주목하는 것은 앞서 설명했던 IP 조건을 완성해 주는 조각이기 때문입니다. 거기에 더해서, 이 PPP 조건은 이전 절에서 설명한 가격 수준에 의해서 완성됩니다. 다른 말로 하자면, 가격 수준이 결국 AMO 코인의 전반적인 가치를 움직입니다. 이 가격 수준도 재화 생산량과 유동성 화폐의 총량에 따라서 결정되는데, 이는 지역화폐시장에서 설명한 바와 같습니다.접근 함수이렇게 되면 재화 생산량에서 환율까지 이어지는 다양한 변수들 간에 연결이 이루어졌습니다. 하지만 아직 부족합니다. 어떤 변수는 대단히 빨리 변화하지만 어떤 것들은 좀 느긋하게 움직입니다. 재빠르게 변화하는 변수의 대표적인 예는 환율을 들 수 있습니다. 일 단위로, 어쩔 때는 분 단위로 엄청나게 변화합니다. 반면에 가격 수준은 상대적으로 느긋하게 변화한다는 게 중론입니다. 가격 수준, 즉 물가도 극단적인 상황에서는 엄청난 속도로 변화하는 게 사실이긴 합니다. 하지만 다른 경제 지표에 비한다면 훨씬 느리게 반응한다고 널리 받아들여지고 있습니다. 이런 변수들의 차이를 시뮬레이션하기 위해서 세가지의 근접 함수를 도입했습니다. 각각 단기, 중기, 장기 근접 함수들입니다. 모두 같은 “모양”을 하고 있지만 빠르기만 다릅니다.이렇게 해서 시장 변화에 대한 주요 사항을 살펴봤습니다. 이들을 다 합치면 어떻게 될까요? 다음 글에서 알아보도록 하겠습니다.AMO Blockchain Economy Simulation #2 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 01. 23

Testnet Schedule until Main...

According to the AMO Roadmap posted on the AMO Labs homepage, AMO blockchain mainnet is scheduled to launch in 1Q 2020. Since it is January now, we are very close to the boasted schedule. The exact launch date is not decided yet, but we set our internal deadline to be around February. Anyway, it is quite an appropriate timing to announce the testnet schedule.We expect two more testnet launches until the mainnet. The first one is supposed to launch around the end of January. The purpose is to test all the features we added so far. There would be a some runs of large-scale tests on the net. The second and the last one is supposed to launch right before the mainnet. Maybe 1–2 weeks before the mainnet. The purpose of the net is to test the safe protocol upgrade feature. The feature is to upgrade the AMO abci app’s protocol version smoothly without hard-fork. When you see this last testnet is up, you may consider all the technical preparation for the mainnet is ready. There would be only handful of wrapping-up jobs remaining.아모랩스 홈페이지에 올라와 있는 AMO 로드맵에 의하면 AMO 블록체인의 메인넷은 2020년 1분기 중에 출시하기로 계획돼 있습니다. 이제 1월이기 때문에 그 스케쥴에 아주 가까이 와 있습니다. 정확한 출시 날짜는 아직 미정이지만 내부적인 데드라인은 2월 중으로 돼 있습니다. 어쨌든, 지금이 그와 관련된 테스트넷 일정을 공지할 적절한 시기인 것 같습니다.계획상으로는 메인넷까지 두번의 테스트넷 출시가 있을 예정입니다. 첫번째는 1월의 마지막 언저리에 있을 것 같습니다. 목적은 지금까지 추가된 기능들을 시험하기 위한 것입니다. 아마도 대단위의 시험이 몇 차례 있을 것 같습니다. 두번째이자 마지막은 메인넷 직전이 될 것입니다. 아마도 메인넷 전 1–2주 전이 될 것입니다. 이 테스트넷의 목적은 안전한 프로토콜 업그레이드 기능을 시험하기 위한 것입니다. 이 기능은 AMO abci app의 프로토콜 버전을 하드포크 없이 부드럽게 업그레이드하기 위한 것입니다. 이 마지막 테스트넷이 올라온 것을 보시게 되면, 그 때는 메인넷을 위한 모든 기술적인 준비는 끝났다고 생각하셔도 될 것 같습니다. 몇가지 소소한 마무리 작업만 남게 될 겁니다.Testnet Schedule until Mainnet Launch was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 01. 20

AMO Blockchain Economy Simu...

Assets, markets and actorsSee also- AMO Blockchain Economy Simulation #2- AMO Blockchain Economy Simulation #3한국어 판은 뒷부분에 있습니다.We all want to predict the future somehow. Especially, we are desperate to know the future of our economy. But, humans are unpredictable. So, the economy is unpredictable too. Even if we have super-powerful computing devices and super-large memory to store all the state of every asset, it is not possible to predict the exact future. The same goes in the blockchain economy prediction. But, we cannot just give up. We do our best to grasp the nature of the economic change, if not exact forecasting formula. Fortunately, we don’t need to start from scratch. There are enormous number of books, articles and talks from economics field, all having different aspect, viewpoint and depth. We can borrow some of the economics theories to the blockchain economy study. In this series of articles, we use rudimentary theories only.Unlike the real-world economy, blockchain economy has some unique features. First, it is difficult to define boundaries of a nation, i.e. a closed economic system. Due to that, it is also difficult to define export and import mechanism. Second, it is difficult to define banking mechanism. Modern economics theories state that money can be defined in various ways: from M0 to M3. Aside M0(cash), money defined as M1, M2 or M3 are closely related to banking system or securities. There may be a cryptocurrency-based banking system in the future, but it is not the story for now. Third, (actually it is partly related to the second argument) it is difficult to define market interest rate. In addition to the banking system, modern economy is hugely dependent on financial system: a system that allows lending and borrowing money in a very complex manner. An interest comes from lending money. There may always be a private financial transactions(lending and borrowing). However, without systematic financial system and survey mechanism, it may be difficult to define a market-wide interest rate.So, we have three major obstacles to apply real-world economics theories to blockchain economy. This series of articles are our effort to overcome those obstacles. We tackle these in later articles explaining economic dynamics. Before that, let’s explain basic elements of our economy simulation: assets, markets and actors in the markets.Most obvious asset is AMO coin. It is natural to consider this as M0 money(cash). When considering money demand or money supply, we handle this M0 money only. In real world, demand deposits or checking accounts may constitute a part of exchange medium or M1 money. However, we don’t take account of this in our simulation due to the lack of banking system. The second category of assets is staked coin, or simply stake. In a DPoS-based blockchain, a stake is acquired by locking some of owned coins. The coins locked as stake are not freely disposable. In AMO blockchain, one cannot transfer his/her stake to another account, either cannot withdraw unless some conditions are met. In other words, they have low liquidity. These assets may be considered as M2 money and also give interests. We don’t take these assets as money when considering money supply or demand in a local money market, since they are not so liquid to be used as a exchange medium(neither M0 nor M1).Economy without market does not make sense. We can imagine various kinds of markets regarding trade of goods. We presume the existence of those markets, but we will not dig into these kinds of markets directly. The markets we focus on are money markets: local money market and foreign exchange market.The local money market is considered to exist within imaginary boundaries of AMO coin economy. In this market, monetary assets are traded. There are only two kinds of monetary assets, and they can be transformed into another. For example, one can lock AMO coins(staking) to acquire stakes. This will reduce the amount of AMO coins and increase the equivalent amount of stakes, and vice versa. However, since stakes are less liquid assets, it takes time to transform stakes into AMO coins. When money demand(demand for exchangeable money) is high, people want to withdraw stakes and change them into AMO coins.An foreign exchange market deals with multiple currencies. In our simulation, there are two kinds of currencies: AMO coin and US dollar. There is no special reason for selecting USD. It may be any other popular currency. It just need to be widely accepted and relatively stable compared to AMO coin. In a foreign exchange market, people spend USD to acquire AMO coin, or vice versa. Since USD is relatively stable, USD price per AMO coin is considered to be the value of AMO coin. In our simulation, we call this price as the exchange rate.So, we have assets and markets where the assets are traded. And there need to be actors in this market. We define two kinds of actors: general users and validators. General users are people who want to hold AMO coins in their account, spend AMO coins to buy some products, or accept AMO coins to sell the products. They are normal buyers and sellers in the product market. They may develop more complex trading mechanism, but we do not care. We consider these actors collectively. Just assume their should be an average price level in the product market. Validators, however, are special actors in this economy. They don’t buy or sell products. Their main reason for existence is to operate the blockchain itself. As per AMO blockchain, anyone should acquire stakes before participating in operating the blockchain. Validators receive reward from the action. In economic sense, this situation can be translated as they receive interest from locked coins (= stake). The reward is not dependent on the sum of stakes. It depends on the number of transactions processed per a block, and the number of blocks they produced. Naturally, we can define the interest rate to be the ratio between reward and the sum of stakes. In this way, we have a variable interest rate as in the real world.Here, we got basic elements constituting AMO blockchain economy. In the next article, we will describe the dynamics governing the market and actors’ behavior.AMO 블록체인 경제 시뮬레이션 #1자산, 시장, 주체우리 모두는 어떻게든 미래를 알고 싶어합니다. 특히나 우리 경제의 미래를 알고 싶어서 노심초사합니다. 하지만 경제주체인 인간은 예측불가능하죠. 따라서 경제도 역시 예측불가능합니다. 우리가 설사 초강력 컴퓨팅 장치를 보유하고 초대량 메모리에 모든 자산의 상태를 기록할 수 있다 하더라도, 정확한 미래를 예측할 수는 없습니다. 이것은 블록체인 경제의 예측에서도 마찬가지입니다. 그러나 그냥 포기해 버릴 수는 없습니다. 정확한 예측을 위한 수식은 없더라도, 경제 변화의 본질을 살펴보기 위해서라도 노력을 해야 합니다. 다행히도 바닥부터 다시 시작할 필요는 없습니다. 이미 경제학 분야에 많은 수의 책이나 기사나 강연이 있었고, 다양한 양상과 관점과 깊이에 걸쳐 있습니다. 이 중 몇몇 경제 이론들을 차용해 와서 블록체인 경제를 연구하는 데 활용할 수 있습니다. 이번 시리즈의 글들에서는 기초적인 경제이론들만을 사용합니다.현실 경제와는 달리 블록체인 경제는 몇가지 특이점이 있습니다. 첫째로 국가의 경계, 즉 닫힌 경제 시스템을 정의하기가 어렵습니다. 따라서 수출과 수입 메커니즘을 정의하는 것 역시 어렵습니다. 둘째로 은행 메커니즘을 정의하기가 어렵습니다. 현대의 경제는 화폐를 M0에서 M3까지 다양한 방식으로 정의합니다. M0(현금) 외에 M1이나 M2, M3 등으로 정의되는 화폐들은 은행 시스템이나 채권 시스템과 밀접한 관련이 있습니다. 미래에는 암호화폐 기반의 경제에 은행 시스템이 도입될 수도 있겠으나 현재는 그렇지 않습니다. 셋째로 (이는 두번째 이야기와 관련이 있음) 시장에서의 이자율을 정의하기가 어렵습니다. 은행 시스템 외에도 현대 경제는 다양한 금융 시스템에 의존합니다. 아주 복잡한 방식으로 돈을 빌려주고 빌리는 행위를 가능케 하는 시스템입니다. 돈을 빌려주는 행위에는 이자가 따라옵니다. 개인 간에 빌려주고 받는 금융 거래는 언제든 가능합니다. 하지만 체계적인 금융 시스템과 감시 체계가 없이는 시장 차원에서의 이자율을 정의하기는 어렵게 됩니다.이와 같이 현실 경제를 위한 이론들을 가져다가 블록체인 경제에 적용하는 길에는 장애물들이 있습니다. 이번 시리즈는 이 장애물들을 어떻게 극복할 것인지 알아보려는 시도입니다. 이 문제들은 이후의 글에서 몇가지 경제 원리들을 설명하면서 살펴볼 것입니다. 그 전에 우선 이번 경제 시뮬레이션에서 사용되는 기본 개념들부터 살펴보겠습니다. 바로 자산, 시장, 그리고 시장 참여자들의 이야기입니다.첫번째로 언급할 자산은 AMO 코인입니다. 자연스럽게 이 코인을 M0 화폐(현금)라고 생각해 볼 수 있습니다. 앞으로 화폐 수요나 화폐 공급 등을 이야기할 때 우리는 이 M0 화폐만을 가정합니다. 현실 경제에서는 요구불 예금(demand deposit)이나 결제 계좌(checking account) 등이 M1 화폐를 구성하지만, 이번 시뮬레이션에서는 은행 시스템의 부재 때문에 이들을 고려하지는 않습니다. 두번째 부류의 자산으로 스테이킹된 코인, 혹은 간단히 스테이크를 들 수 있습니다. DPoS에 기반하는 블록체인에서는 자신이 보유한 코인의 일부를 잠그는 행위로 이 스테이크를 획득합니다. 스테이크의 형태로 잠긴 코인들은 자유롭게 거래될 수 없습니다. AMO 블록체인에서는 자신의 스테이크를 다른 계좌로 전송할 수 없고, 일정한 조건이 맞지 않으면 인출(잠금해제)할 수도 없습니다. 다른 용어로는 유동성(liquidity)이 낮다고 합니다. 이 자산들은 M2 화폐로 간주될 수 있고 이자를 제공하게 됩니다. 그런데, 지역화폐시장(local money market)에서 화폐 공급이나 수요를 논할 때의 화폐로 취급하지는 않는데, 이는 교환수단으로 사용되기에는 유동성이 낮기 때문입니다. 즉 M0도 M1도 아닙니다.시장이 없는 경제는 생각할 수가 없습니다. 우리는 재화 등이 거래되는 다양한 형태의 시장을 상상해 볼 수 있습니다. 이번 글들에서는 이런 시장의 존재는 암묵적으로 가정하고 있지만, 이를 직접 깊이 다루지는 않습니다. 대신 우리가 주목하는 시장은 지역화폐시장과 외환시장이라고 불리는 화폐시장들입니다.지역화폐시장(local money market)은 AMO 코인 경제가 미치는 가상의 경계 내에 존재한다고 간주합니다. 이 시장에서 거래되는 것은 화폐자산입니다. 이번 시뮬레이션에는 두가지의 화폐 자산만 존재하는데 이들은 서로 변환 가능합니다. 예를 들어, 누군가가 보유하고 있는 AMO 코인을 잠가서(스테이킹 하기) 스테이크를 얻습니다. 이 때 AMO 코인의 양은 줄어들고 같은 양만큼 스테이크의 총량도 늘어납니다. 반대도 마찬가지이지만 스테이크는 유동성이 낮은 자산이라서 이를 AMO 코인으로 변환하는 데에는 시간이 듭니다. 화폐 수요(교환 수단에 대한 수요)가 높으면 사람들은 스테이크를 인출하여 AMO 코인으로 바꾸게 됩니다.외환시장(foreign exchange market)은 복수의 통화를 다룹니다. 이번 시뮬레이션에는 두가지의 통화를 다루는데 AMO 코인과 US 달러화입니다. USD를 선택한 특별한 이유는 없습니다. 흔히 통용되는 어떤 통화여도 됩니다. 단, 널리 통용되어야 하고 AMO 코인에 비해서 상대적으로 안정적이어야 합니다. 사람들은 외환시장에서 USD를 소비하여 AMO 코인을 얻거나 혹은 반대의 행위를 할 수 있습니다. USD가 상대적으로 안정적이기 때문에 AMO 코인의 달러가격은 AMO 코인의 가치 척도라고 생각해도 무방합니다. 이번 시뮬레이션에서는 이를 간단히 환률(exchange rate)이라고 부르기로 합니다.이렇게 해서 자산을 설명했고 그들이 거래되는 시장에 대해 설명했습니다. 이제 그 시장의 참여자들을 설명해야 합니다. 여기에서는 두가지의 참여자들을 정의합니다. 하나는 일반 사용자들이고 다른 하나는 validator들입니다. 일반 사용자들은 계좌에 AMO 코인을 보유하거나 AMO 코인을 사용해서 어떤 재화를 구입하거나, 또는 재화를 판매하고 AMO 코인을 받는 사용자들을 말합니다. 다시 말해 재화시장에서 보이는 일반적인 구매자와 판매자들을 한꺼번에 부릅니다. 물론 이들이 복잡한 거래 체계를 만들어낼 수도 있겠지만 여기에서는 별로 상관하지는 않습니다. 이들을 뭉뚱그려서 다루기 때문인데, 단지 거기에 평균 시세(price level)가 정해져 있을 거란 가정만 합니다. 반면에 validator들은 특별한 역할을 하는 참여자들입니다. 이들은 재화를 사거나 팔지는 않습니다. 이들의 주요한 존재이유는 블록체인 자체를 운영하는 것입니다. AMO 블록체인의 경우를 보면 누구든 블록체인의 운영에 참여하려면 스테이크를 사전에 보유해야 합니다. Validator들은 이런 행위로부터 보상(reward)를 받습니다. 경제적인 면에서 보면 이 상황은 잠긴 코인들(= 스테이크)로부터 이자를 받는다고 할 수도 있습니다. 이 보상은 스테이크의 양과는 무관합니다. 오로지 블록에서 처리되는 거래(transaction)의 수와 만들어낸 블록의 양에만 관계합니다. 자연히 이자율이라는 것을 스테이크의 양에 대비한 보상의 양으로 정의할 수 있습니다. 이로써 현실에서처럼 변동 가능한 이자율을 얻게 됩니다.여기까지 AMO 블록체인 경제의 기본적인 구성요소들을 설명했습니다. 다음 글에서는 시장과 참여자들의 행위를 관장하는 작동원리에 대해서 이야기하도록 하겠습니다.AMO Blockchain Economy Simulation #1 was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 01. 17

AMO Testnet Page Archive

Oh, this is not a new story actually. It is for backing up dev notes originally posted on https://testnet.amolabs.io . The testnet site might be renovated and not host the short notes in near future.Welcome to AMO testnet!AMO testnet has two main purposes:Test functionality and stability of latest S/W snapshot of AMO blockchain.Test third-party business integration.For the first purpose, AMO testnet shall be periodically purged and restarted (about once a month).To see how to connect to the AMO testnet, visit this page.To see blocks the AMO testnet creates, visit AMO blockchain explorer.To see the internals of the AMO blockchain, visit our github.com page.2019–08–30: Dev Story Series in MediumWe’re preparing a new series of stories in AMO Official Blog in Medium. So, this is the last announcement posted in this site. It is still possible to post some emergency notices here, but we will not post any regular notices here any more. You can visit AMO Official Blog to see announcements related testnet operation schedule from now on.2019–08–23: Testnet-190823 readyIt’s up and running now! You can see the validator quick start guide in English version and Korean version.2019–08–22: Testnet-190823 is comingA new testnet will be launched tomorrow. This testnet will begin with 20 billion AMO as its initial faucet account balance. This amount matches the total AMO coins issued before the public AMO ERC20 token sale event. Around 10 billion AMO was sold in the event. Unlike the real world token sale, we will put all the AMO coins to a faucet account, and any user can request AMO coins to the faucet account. Since the user guide documents describing how to launch a validator node have been complete now, we expect some of validators from outside the AMO Labs. These participants need to contact AMO Labs personel to acquire enough amount of AMO coins to stake. Detailed notice will be posted on various channels.2019–07–26: Testnet-190724 readySome of the initial blockchain nodes were launched on Wednesday, but there was a problem with the newly added nodes. We added 3 new validator nodes, and incorporated enlarged storage disks to the back-end storage cluster of AMO storage service. All blockchain nodes and storage nodes are now online. However, AMO storage API server is not ready yet. It complies to AMO storage service spec and undergoing final polishment. It will be online soon. When it is online, there will be a slight change in explorer page to use official storage API.2019–07–22: Testnet-190724 and AMO v1.0It’s getting deeper into the summer, and it’s time to release AMO software version 1.0 (AMO blockchain node software). According to the original plan, the software v1.0 should be feature-complete, and it’s supposed to be polished and optimized until the end of this year. Although there is much room for change in the underlying data structures and internal architecture, the current version(v1.0-beta1) is feature-complete in view of the AMO blockchain protocol spec and AMO storage service spec. We’re planning to release v1.0 on 24th July, this week, and another testnet will be launched on the same day.2019–07–02: Testnet-190617 and faucet serverIt’s been a while since the testnet-190617 with the storage service launched silently. Yes, without any notice. We were waiting for the faucet server to be working properly, and now it IS up and running now. Along with the faucet server, new demo page has been setup. With the faucet feature, now you can try some operations with actual test money. And the demo page and parcel page can handle encryption keys. Try out on the AMO blockchain explorer site now.2019–06–10: Testnet-190527 recoveredAfter days of inconsistency and downtime, the testnet has been fully recovered. It was not a problem in the blockchain node software. Rather it was an operational problem in running master seed node. The seed node has been freshly started. After all, this is a blockchain, and all the necessary blockchain data had been copied in other nodes.Anyway, we are preparing to release ABCI software v1.0-beta1. Along the process, we will restart the testnet several times without notification. This is for testing the crash recovery feature in the blockchain node software. So, the data may or may not be retained.The new strategy for storage service has been set. We are not sticked to PAUST-DB, and new AMO storage service adapter will be introduced. In this strategy, any storage service can be incorporated in AMO infrastructure. With v1.0-beta1 software, we will launch a testing storage service.2019–05–28: Testnet-190527 launchedNew testnet launched with the ABCI software v1.0-alpha6. Now, we have new Demo Page in AMO blockchain explorer. In order to test data parcel trade and see the flow of payment, you need some AMO coins for test purpose. There is a Ask for coin button in the demo account view, but this faucet link is not working right now. It will be working shortly.2019–05–21: Next testnet and native storage serviceWe are undergoing an import discussion about the native storage service of AMO blockchain. Our original plan was to use PAUST-DB, but there is an opinion gaining popularity, which insists that we must use a long-lived and well-tested distributed storage software such as Ceph.Regarding the ongoing discussion, the data upload feature shall be delayed to come, which had been planned to come last week. Until the discussion is resolved, we will provide a demo page showing basic trading feature set, which of course uses generic Data parcel IDs, rather than associated with the actual storage service.In addition, there is a change in digital signature format. So, new testnet will be launched on Friday this week, or Tuesday next week.2019–05–09: Testnet-190509 launchedNew testnet launched. This time, with paust-db as a default storage service. Paust-db supports basic functions including upload, download and delete. According to AMO Storage Service Requirements, any AMO-compliant storage service should implement an access control feature, but there is no user authentication or access control feature yet. Access control will be applied in the next testnet, coming in about two weeks from now.Client features regarding data transfer will be provided next week with the current testnet.2019–05–07: Upcoming testnet with data upload featureTestnet-190509 will be launched on 2019–05–09 13:00 KST. This testnet will implement data upload feature, but with limited size. Users will be able to upload any data, but the upload feature is not tightly bound with the encryption feature. We are currenty finalizing AMO storage service specification, and this document will specify the data parcel format and requirements to support data encryption and key custody handling. Note that data upload feature is not part of AMO blockchain protocol. It shall be handled by clients and AMO storage services, not the blockchain nodes themselves. So, more precisely, this testnet will come along with the default storage service ( PAUST-DB).2019–04–23: Testnet-190423 launchedThe launch was delayed about 3 hours in order to fix a bug in validator update mechanism. Now it’s online (15:00 KST). Unfortunately, there wasn’t enough time to setup a faucet site. It will come soon.2019–04–22: Testnet-190423 launchesThe second testnet will open on 2019–04–23 13:00 KST, using software version v1.0-alpha4. The genesis file can be retrieved from this location. It will come along with a simple faucet site.2019–04–17: Raindrop generator is comingRaindrop script is a low-profile transaction generator. Due to the fix introduced on Apr. 16, blocks are not generated when there is no transactions to process. To stir up some activities in the testnet blockchain and nodes, we are planning to launch a transaction generator. This transaction generator has two P256 private keys †associated with two test accounts. These acounts were given some AMO coins to spend. The transaction generator will occasionally transfer small amount of AMO coins from one account to the other. These transfer transactions are scheduled to be generated once in several tens of minutes. Since this is not a heavy load, we do not call this a load generator. Rather we call this a raindrop generator.† To figure out why we used P256 keys, see this note.2019–04–16: Hot fix for testnet-190415The press release has been postponed until the weekend and there is no serious traffic to this testnet yet. So, there is a chance to update the software before public notice. One noticeable change is that blocks will be created only if there is any transaction to include. Currently a block is created every second even if there is no transaction to process. Technically, this is due to the block reward mechanism and the appHash handling in the tendermint layer. Original configuration was that validators shall receive a reward even for an empty block. Since the tendermint layer records the ABCI app's state change in the NEXT block, not the CURRENT block, a state change coming from the block reward for the block n must be recorded in the next block n+1. This NEXT block n+1 may contain no transactions, but even if the block is empty there shall be a state change due to the reward for the block n+1. And, this state change must be recorded in the block n+2 again. And, another block. And another state change, and another block, and so on...To remedy this problem, block reward for an empty block will be changed to be ZERO. And the block progression will stop if there is no transaction to process.2019–04–15: Testnet-190415 launchesThe first testnet will open on 2019–04–15 12:00 KST, using software version v1.0-alpha2. The genesis file can be retrieved from this location.Thank you for your interest.Originally published at https://testnet.amolabs.io.AMO Testnet Page Archive was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

20. 01. 06

Governance Mechanism in AMO...

From time to time, there would be an occasion where the majority of the users express they are deeply unhappy with the current configuration of the blockchain. They say it could be better if a certain rule is changed, but this change might be impossible without hard-fork of the chain. If it is really a big issue, then hard-fork may be inevitable. But, for a small, emerging project such as AMO blockchain, there should be delicate tending gestures to encourage users in the early stages of the business, and this would be quite frequent. It is highly probable that these gestures include tweaking some crucial configuration of the blockchain. There are a number of configuration parameters that affect the benefit and cost of the validators and users in AMO blockchain: such reward rate, reward distribution ratio, max number of validators, penalty rate, stake lock-up period and etc. If we do hard-fork every time we need to change these configurations, there might be huge confusion.So, we need some method to change these configuration parameters without hard-fork. Many blockchain projects introduced a decentralized governance mechanism. In generic terms, this governance mechanism decides things via a semi-democratic way. Of course, there is no generally acceptable universal standard for this. There are votings and consensus(different from the consensus algorithm in blockchain protocol) or verdicts, but not everybody has the same votes. Some projects have voting mechanisms woven into the blockchain protocol, but some do this totally outside the protocol. Sometimes, the coverage of the governance mechanism is so broad, that they even decide subjects outside the blockchain protocol, for example whether they should start a hard-fork or not. And sometimes the coverage is restricted to a small area of parameter adjustment. It is up to their goals from this governance mechanism. For AMO blockchain, we need to set a clear goal for this.First, we don’t take the “decide everything” approach. Crowd decisions based on stakes or effective stakes may play a role in various situations, but it’s hard to state a clear rule for that. The crowd may improvise on occasions outside the protocol, but we restrict the role of voting powers to adjusting blockchain protocol parameters. For a detailed list of adjustable parameters, see AMO blockchain protocol specification document.Second, the crowd decides something based on voting powers. Recall that the blockchain consensus algorithm depends on voting powers of validators, and the voting power of a validator is proportional to its effective stakes. The same rule applies here too. The more effective stake, the more power. The effective stake is the sum of own stake and delegated stakes. For the delegated stake, consider a typical voting process for political decision making or election. Most of the modern democratic societies take representative system. People elect relatively small number of representatives, and these representatives take part in most of the important decision making process personally. We take a similar approach. Although anyone can have stakes, a person must acquire validator status in order to take part in a governance process in AMO blockchain. Validator status is acquired by staking more coins or collecting more delegated stakes. A delegator is a kind of supporter for the validator. So this is similar to the representative system in modern democracy.And third, the decision making via voting process is woven into the AMO blockchain protocol. So, some of the voting process is automatic, such as counting yeas and nays, closing the voting period, deciding approval or rejection, and applying changes into the blockchain protocol parameters. In order to start a voting, someone having enough effective stakes posts a proposal onto AMO blockchain via a special transaction. A proposal has a list of parameter values which would be applied to the chain, but the voting process is operated according to the current parameters. However, these parameters are also a part of the whole set of adjustable blockchain parameters. So it is also possible to change voting rule in the future decision making. The parameters related to the voting process are voting period, grace period before actual application of the change, required sum of voting powers for quorum and approval, and etc.Now, let’s describe an example decision making scenario. Suppose some of the users in the chain concluded that they are not satisfied by the current tx_reward rate. They decided to launch a change proposal and found a suitable validator. There might be a series of negotiations between the original users and the selected validator, but those are taken care of totally outside of the blockchain protocol. They reached a conclusion and a final draft of the change was made. Using this draft, the validator formed a propose transaction including the detailed list of protocol parameter changes. Now, the process took place in the protocol. The validator sent the tx to other nodes or included the transaction in the chain when it got the change to produce a block. A propose tx is a kind of notice announcing the upcoming voting process. Until the actual voting started, users and validators might launch a public discussion or a lobbying process to get support from other users, but this is a political or social process and not part of the protocol. Once the chain reached the designated starting block number, validators other than the proposer may cast a vote to or against the proposal(yea or nay) by sending vote transactions. It is assumed that the proposer already voted as yea via the proposal. When the chain reached the designated closing block number, any vote transaction to or against this proposal is not allowed. The protocol count the votes and calculated the sum of voting power of all casts and sum of approving voting power. Now the crowd could reach a conclusion from the protocol: approval or rejection. If the result was approval, the stated parameter change is applied after the given grace period. And the whole process ends and the original proposal can be deleted from the state DB safely(note the history remains anyway). There may be multiple proposals at the same time with varying status, but their changes must not be conflicting with any other live proposals.The decision making process described above may not be perfect. However, it reduces the possibility of hard-fork greatly, resulting into more reliable blockchain.AMO 블록체인의 거버넌스 메커니즘공개형 블록체인에서 사용되는 영어 용어인 governance에 대해서 현재는 널리 인정되는 적절한 번역어가 없는 상태임. 많은 글에서 단순히 “거버넌스”로 표기하고 있기 때문에 이 글에서도 그 방식을 따르기로 함.때때로 다수의 사용자들이 현재 블록체인의 설정에 대한 불만을 표출할 때가 있게 마련입니다. 어떤 규칙 하나를 이러 저러하게 바꾸면 좋겠다고 말할 수 있겠지만, 하드포크 없이는 변경할 수 없을 수 있습니다. 물론 아주 중요한 이슈라면 하드포크를 통해서라도 변경해야겠지요. 그런데, AMO 블록체인과 같이 이제 막 시작하는 프로젝트에서는 사업 초기에 사용자들을 독려하기 위한 미세한 부양책들을 시행해야 합니다. 그리고 꽤 자주 하게 될 수 있습니다. 이런 부양책들은 블록체인의 주요 설정을 만져줘야 하는 것일 가능성이 농후합니다. AMO 블록체인에는 validator들과 사용자들의 이득이나 비용 등에 영향을 주는 다수의 설정들이 존재합니다: 예를 들면 보상 액수, 보상 분배 비율, validator 최대 수, 벌칙 액수, 스테이크 잠금 기간 등등입니다. 이러한 설정들을 바꿀 필요가 있을 때마다 하드포크를 하게 되면 엄청난 혼란이 오겠지요.그래서 하드포크 없이 이런 설정들을 변경할 수 있는 방법이 요구됩니다. 많은 블록체인 프로젝트들이 탈중앙화된 거버넌스 체계를 도입하고 있습니다. 일반적인 용어로 말한다면, 이런 거버넌스 체계는 어느 정도 민주적인 절차에 의해 여러가지 사안들을 결정하는 것입니다. 물론 모두가 동의하는 우주공통표준이 존재하는 것은 아닙니다. 투표와 합의(블록체인 프로토콜의 합의 알고리즘과는 다름)와 결정 등이 있겠지만 모두가 같은 투표권을 가지지도 않습니다. 어떤 프로젝트는 투표 과정을 블록체인 프로토콜 자체에 포함시키지만, 어떤 프로젝트는 투표 과정을 전적으로 블록체인 바깥에서 처리하기도 합니다. 어떤 경우는 거버넌스 체계의 영향 범위가 대단이 넓어서 블록체인 프로토콜의 범위를 넘어서기도 합니다. 예를 들면 하드포크를 수행할 것이냐 말 것이냐를 결정하는 것을 들 수 있습니다. 또 어떤 경우에는 아주 제한된 범위에서 일부 설정 변수들을 조정하는 정도에 머물기도 합니다. 모두 그들이 거버넌스로 얻고자 하는 목표에 따라 다르게 됩니다. AMO 블록체인을 위해서도 방향과 목표를 확실히 정할 필요가 있습니다.첫번째로, AMO에서는 “모든 것”을 결정하는 방식은 취하지 않습니다. 지분이나 유효 지분에 기반해서 군중이 의사결정을 하는 것은 다양한 상황에서 나름의 역할을 할 수 있겠지만, 이에 대한 명확한 규칙을 미리 정하기는 어렵습니다. 따라서, 프로토콜 바깥의 영역에서 군중 스스로가 지분율 등을 활용할 수는 있겠지만 프로토콜에서는 지분율 등의 역할을 블록체인 설정을 조정하는 부분에 제한합니다. 조정 가능한 설정들의 목록은 AMO 블록체인 프로토콜 명세를 참조하시기 바랍니다.둘째로, 군중이 어떤 사안을 결정하는 것은 투표 영향력(voting power, 투표권)에 기반하도록 합니다. 블록체인 합의 알고리즘도 바로 이 영향력에 기반하며, 영향력은 validator가 보유한 유효지분(effective stake)에 비례합니다. 여기에도 같은 규칙이 적용됩니다. 유효지분이 높을 수록 영향력도 높아집니다. 유효지분은 자기지분과 위임받은 지분(delegated stake)의 합입니다. 위임받은 지분과 관련해서는 정치적인 의사결정이나 선거에서 사용되는 투표 과정을 생각해 볼 필요가 있습니다. 대부분의 형대 민주주의 사회에서는 대의제 시스템을 도입하고 있습니다. 사람들은 상대적으로 아주 적은 수의 대표자들을 선출하게 되고, 이 대표자들이 실제 주요 의사결정 과정에 직접 참여합니다. AMO에서도 유사한 접근법을 사용합니다. 지분(stake)은 누구나 가질 수 있지만 AMO 블록체인의 거버넌스 과정에 참여하기 위해서는 validator 지위를 획득해야 합니다. Validator 지위는 코인을 스테이킹하거나 위임을 받아서 획득합니다. 위임자는 해당 validator에 대한 일종의 지지자가 되는 것이고, 이런 방식은 현대 민주주의의 대의제 시스템과 유사하다고 할 수 있겠습니다.세번째로, 투표에 의한 의사결정은 AMO 블록체인 프로토콜 자체에서 지원합니다. 따라서 투표과정에서 찬반을 집계하고, 투표 기간을 열고 끝내고, 가결 및 부결을 결정하고, 블록체인의 설정 변경 사항을 실제로 반영하는 과정 등은 자동으로 수행됩니다. 투표를 시작하기 위해서는 충분한 지분을 확보한 누군가가 제안서를 게시해야 하고, 이는 AMO 블록체인에 특별한 transaction을 전송함으로써 이루어집니다. 제안서에는 변경하고자 하는 설정들의 세부 목록이 기록돼 있지만, 실제 투표 과정은 현재의 설정을 기준으로 실행됩니다. 하지만 이 설정들도 변경 가능한 블록체인 설정 중 일부입니다. 따라서 미래의 의사결정에서 사용될 투표 규칙을 수정하는 것도 가능합니다. 투표 과정과 관련된 설정들에는 투표기간, 설정 적용 전 유예기간, 의결 정족수, 가결 정족수 등이 있습니다.이제 의사결정이 이루어지는 예시를 들어보겠습니다. 사용자들 중 일부가 현재의 tx_reward 설정에 불만을 가지고 있다고 가정하겠습니다. 이들은 변경제안을 하기로 결정하고 적절한 validator를 물색합니다. 원래의 사용자들과 선택된 validator 사이에 몇 번의 협상 과정이 있을 수 있지만, 온전히 블록체인 프로토콜 영역 밖에서 이루어집니다. 이들은 결론에 이르고 변경안의 최종본을 작성합니다. Validator는 이 제안서를 이용해서 propose transaction을 생성하고 여기에는 변경할 설정의 세부사항이 기록됩니다. 이제부터는 블록체인 프로토콜에서 과정을 진행합니다. Validator는 이 tx를 다른 노드에게 전송하거나, 혹은 자신이 직접 블록을 생성할 기회가 됐을 때 직접 체인에 포함시킵니다. 이 propose tx는 앞으로 있을 투표를 공지하는 역할을 합니다. 실제 투표가 시작되기 전까지 변경을 원하던 사용자들이나 validator는 공개 토론을 열거나 로비 등을 벌여서 다른 사용자들로부터 지지를 확보할 수 있습니다. 하지만 이는 정치적/사회적 과정이며 프로토콜의 일부는 아닙니다. 일단 체인의 블록번호가 정해진 투표개시 시점에 이르고 나면 제안자가 아닌 validator들은 vote tx를 전송해서 찬성이나 반대 의사를 표시합니다. 제안자였던 validator는 이미 찬성 의사를 표시했다고 간주됩니다. 체인의 블록번호가 정해진 투표종료 시점에 이르고 나면 더 이상 투표를 할 수 없습니다. 프로토콜은 표를 집계해서 의결 정족수 만족 여부나 가결 여부 등에 대한 결론을 냅니다. 이렇게 집단적인 의사 결정이 가결 혹은 부결로 결론납니다. 가결이었다면 정해진 유예기간 이후에 변경된 설정이 적용되고 전 과정이 종료됩니다. 이후 원래의 제안은 블록체인 상태DB로부터 안전하게 삭제될 수 있습니다(기록은 어찌 됐든 남습니다). 동시에 여러 개의 제안이 활성화 될 수 있으며 각자 단계도 다르고 변경하려는 설정도 다를 수 있습니다. 하지만 이들의 변경 사항이 서로 충돌해서는 안 됩니다.위에 설명된 의사결정 과정이 완벽할 수는 없습니다. 그러나, 이는 하드포크의 가능성을 대단히 많이 줄이게 됩니다. 결국 AMO 블록체인은 보다 안정적인 블록체인이 될 것입니다.Governance Mechanism in AMO Blockchain was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

19. 12. 27

Old Transactions and Replay...

A blockchain is a decentralized system which has no central authority to ensure or guarantee the delivery of each transaction generated by a user. Although there is a broadcast mechanism to propagate transactions across the P2P network of blockchain nodes, it is completely up to the node whether the transaction would be delivered or not. A node might decide to discard all of the transactions in its mempool(a collection of received transactions) due to the computing resource problem, or just due to the operator’s whim. Sometimes, a transaction might be held in the mempool indefinitely since there is less benefit from processing it(due to low transaction fee, for example). No one can say for sure about the lifetime of a yet unconfirmed transaction. For this reason, a transaction might be getting older and older sitting in the mempool and catch no chance to be included in a block. Say you are an operator of a validator node and have lots of too old transactions in your mempool. A transaction may be valid in the ancient context, but it may be invalid in the current context. For example, let’s think about this situation: Alice decided to transfer some of her 100 AMO coin to Bob. Alice sent a transaction at block height 1,000 depicting the recipient as Bob. But due to some reason(there may numerous possible reasons for this) the transaction was not processed, and remains in the mempool until the block height 100,000 (Wow!). Alice saw no hint of her transaction in the blocks and concluded that the transaction was lost somewhere in the timeline. But the transaction survived! And finally, a node decided to process the transaction after so long a time since the transaction was generated. Alice found it shocking for she didn’t expect the transaction to be processed! Is this situation fair? Some may say it’s perfectly ok for the sake of the protocol. But some may say it’s unnatural or unfair. So, it’s arguable. Someone needs to draw the line in the playground.In AMO blockchain, we address this problem with block-binding mechanism of a transaction. When a transaction is to be generated, the sender should inspect the blockchain and figure out the last block height of the chain. He/she writes this block height as the last seen height in the body of the transaction. It’s like the sender declares the birthdate of a transaction. The protocol says the blockchain nodes must respect this birthdate. If a transaction is older than the threshold agreed among the validators, then every node shall decide that it’s too old and discard the transaction immediately. In this manner, an unconfirmed transaction has finite lifetime.However, please note that the block-binding is rather loose, since the sender is free to choose the birthdate of a transaction. When the last seen height field(birthdate in the previous statement) is chosen to be 10,000, for example, validity of the transaction is not tightly bound to the blockchain state at the block height 10,000. If a blockchain node received it at block height 11,000, it won’t check the validity of the transaction against the blockchain state at height 10,000, but against that of height 11,000 or later. For this matter, it is possible that the sender chooses a transaction to be born in the future. He/she may choose the last seen height to be 12,000 even if current block height is 11,000. What will happen to this transaction then? Or what if the last seen height is chosen to be 11,001? There may be some natural delay in broadcasting process, and this transaction happens to arrive the mempool at the height of 11,100. The last seen height of 11,001 will be considered to be valid, but not the case for the last seen height 12,000. Choosing the last seen height to be in the future is a tricky game for the sender. So, it is recommended to choose the last seen height to be the current block height at the time of constructing the transaction.And one more thing to note is about replayed transactions. Generally speaking, there should be no multiple transactions with the same transaction hash in entire blockchain, including past and future ones. When a transaction is broadcasted among the nodes even if it was processed already, we call this a replayed transaction. If the chain permits this, a user’s asset can be spent multiple times although it is not the intention of the sender. Most straightforward and naive method to prevent this is to keep a list of all the transaction hashes processed in the entire chain. Every time a new transaction is arrived, a node would search in the list with the same transaction hash. Simple to describe, but the performance penalty is huge. But due to the block-binding previously described, sufficiently old transactions cannot be replayed, since they will be discarded on sight. So, we only need to keep the list of transaction hashes which are relatively fresh(younger than the agreed threshold). It’s still a simple rule with a small modification of aging of transactions. It is simpler to implement than the sequence mechanism used in Ethereum, for example. And this is a side effect of the block-binding mechanism.오래된 거래와 재전송되는 거래블록체인은 탈중앙화된 시스템으로서, 사용자들이 생성한 거래들이 제 때 처리되도록 보장하거나 책임져 주는 중앙화된 기관 같은 것이 없습니다. 물론 블록체인 노드들로 이루어진 P2P 네트워크에서 거래들을 여러 노드에 전파하는 메커니즘은 있지만, 그 거래들을 처리할 것인지 무시할 것인지는 전적으로 해당 노드의 판단에 달려 있습니다. 노드가 컴퓨팅 자원 문제 같은 피치 못할 이유 때문에, 혹은 그냥 관리자의 기분에 따라서 거래풀(mempool, 수집한 거래들의 대기열)의 모든 거래들을 날려 버릴 수도 있습니다. 또 어떤 거래들은 처리를 해도 그로부터 얻는 이득이 적어서(예를 들면 수수료가 적게 책정되어서)노드의 거래풀에서 무한정 대기할 수도 있습니다. 대기 중인 거래의 운명에 대해서는 아무도 확실하게 얘기할 수가 없습니다. 이런 일들이 일어나다 보면 어떤 거래는 거래풀에서 대기만 하면서 블록체 포함될 기회도 없이 시간만 보내게 될 수도 있습니다. 여러분이 validator node 중 하나의 운영자인데 거래풀에 너무 오래된 거래들이 잔뜩 쌓여 있다고 해 보겠습니다. 이 때, 특정 거래는 아주 오래전에는 합당한 상태였으나 현재 시점에 와서는 그렇지 않게 될 수도 있습니다. 예를 들어서 다음과 같은 상황을 생각해 보겠습니다: Alice는 Bob에게 100 AMO를 전송하기로 결정합니다. 그리고 1,000번째 블록까지 관찰한 시점에 Bob을 수신자로 하는 거래를 전송합니다. 하지만 어떤 이유에서인가(아주 다양한 이유가 있을 수 있음) 이 거래는 제 때 처리되지 못하고 100,000번째(!) 블록까지 체인이 진행될 때까지 거래풀에 그대로 남아 있습니다. Alice는 자신이 보낸 이 거래가 이 때까지 블록에 포함되지 못한 것을 보고 결국 이 거래는 어딘가에서 유실돼 버렸을 것이라고 판단해 버립니다. 하지만 반전은 이 거래가 살아 있었다는 것입니다. 그러다가 결국 어떤 노드가 자신의 거래풀에 들어 있던 이 거래를 그 오랜 세월 뒤에 드디어 처리하기로 결정합니다. Alice는 이것을 보고 놀랍니다. 이 거래가 처리될 것이라고 전혀 예상하지 못했기 때문입니다! 이 예시에 든 상황은 정말 괜찮은 걸까요? 누군가는 프로토콜에 이렇게 해도 된다고 돼 있으니 정당하다고 주장할 수도 있습니다. 그러나 누군가는 이건 자연스럽지도 못하고 공정하지도 않다고 주장할 수 있습니다. 논란의 여지가 생깁니다. 누군가는 운동장에 선을 그어줘야 합니다.AMO 블록체인에서는 이 문제를 거래 항목의 블록 결속(block-binding)을 이용하여 해소합니다. 송신자는 거래 항목을 생성할 때 먼저 블록체인 상태를 점검하여 체인의 마지막 블록 번호를 알아냅니다. 이 블록 번호를 거래 항목의 내용에 마지막 블록 번호(last seen height)로 적게 됩니다. 이는 송신자가 자기가 보낼 거래의 출생일을 지정하는 것과 유사합니다. AMO 블록체인 프로토콜을 따르는 노드들은 각 거래의 출생일에 따라 적절한 처리를 하도록 되어 있습니다. 만약 거래 항목의 나이가 validator들 사이에 합의된 특정 임계치보다 더 많다면 모든 노드들은 이 거래는 너무 오래 되었다고 판단해야 하고 거래 항목은 즉시 폐기됩니다. 이런 방식을 사용하면 아직 체인에 포함되지 않은 거래들은 정해진 기한 동안만 살아 있게 됩니다.하지만, 이런 블록 결속은 대체로 느슨한 방식입니다. 거래의 출생일을 어떻게 정하든 송신자의 마음이기 때문입니다. 마지막 블록 번호를(이전 문장에서의 출생일) 10,000으로 정했다면, 이 거래의 정합성까지 10,000번째 블록의 블록체인 상태정보에 맞춰지는 것은 아닙니다. 블록체인 노드가 블록 번호 11,000까지 진행한 상태에서 이 거래 항목을 수신했다면 거래의 정합성을 10,000번째 블록의 상태에 맞춰서 점검하는 게 아니고 11,000번째 블록이나 혹은 더 뒤의 상태에 맞춰서 점검하게 됩니다. 이런 면에서 보면, 송신자가 거래 항목의 출생일 미래로 정하는 것도 불가능하진 않습니다. 블록체인이 11,000번째 블록까지만 진행했는데도 송신자가 거래의 출생일을 12,000으로 정하면 이 거래는 어떻게 처리될까요? 또는 출생일을 11,001로 정하면 어떻게 될까요? 거래의 전파와 처리에는 자연적으로 어느 정도 시간이 걸리게 됩니다. 블록체인이 11,100번째 블록까지 진행한 시점에 이 거래가 블록체인 노드에 도착했다고 해 보겠습니다. 출생일이 11,001이면 정당한 것으로 취급될 것이지만 출생일이 12,000이면 그렇지 않습니다. 이런 딜레이까지 감안하면서 출생일을 미래로 조절해서 정하는 것은 까다로운 일입니다. 그러니 정상적인 상황에서는 거래의 출생일을 생성 시점의 블록체인의 마지막 블록 번호로 정하는 것이 권장됩니다.한가지 더 언급할 것은 재전송되는 거래에 관한 것입니다. 일반적으로 말해서, 전체 블록체인에서 같은 해쉬값을 갖는 거래가 여러개가 되면 안됩니다. 과거든 미래든 안됩니다. 어떤 거래가 이미 처리된 이후에 또 노드들 사이에 새 거래인 것처럼 전파되고 있다면 우리는 이것을 재전송되는 거래라고 부릅니다. 만약 체인이 이것을 허용하면 사용자의 자산은 소유주의 의사에 반하여 여러번 소비될 수 있습니다. 이런 것을 해결하는 가장 직관적이고 순진한 방법은 전체 체인에서 처리되었던 거래들의 해쉬를 모두 목록으로 저장해 놓고 비교하는 것입니다. 블록체인 노드들은 새 거래가 도착할 때마다 이 목록에서 같은 해쉬를 갖는 거래가 있었는지를 검사합니다. 규칙은 단순하지만 이를 실제 구현하면 성능 문제가 심각합니다. 하지만 앞서 설명한 블록 결속 기능으로 인해서 나이가 오래된 거래들은 발견 즉시 폐기되기 때문에 재전송될 수 없습니다. 따라서 이 경우 비교적 나이가 어린(미리 합의된 나이 이하인) 거래들에 대한 해쉬 목록만 유지하면 됩니다. 이전 규칙에 거래의 나이에 대한 약간의 수정만 있는 것이니 규칙은 여전히 꽤 단순합니다. 이러한 방식은 구현 상에서도 Ethereum 등에서 사용되는 일련번호 방식보다 단순합니다. 블록 결속 기능의 부대효과라고 볼 수 있습니다.Old Transactions and Replayed Transactions was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

19. 12. 10

A Story of Empty Blocks

One of the most important characteristics of modern blockchain technology is that it serves as a distributed ledger system, where a ledger is an ordered list of transactions. So it is an important role of a blockchain node, to collect a bunch of candidate transactions and weave them into a block and broadcast it. With this in mind, it is natural to think that every block in a blockchain contains a list of transactions, i.e. non-empty. But it is not. There are a lot of empty blocks in famous blockchain systems such as Bitcoin and Ethereum. You can find that people already asked why it is so [1][2].One major reason for empty blocks is that blockchain protocols such as Bitcoin or Ethereum does not prohibit empty blocks. Empty blocks are allowed by the protocols. They are not mysterious anomalies. They are perfectly normal, and other nodes in a blockchain network would be content if you may make an empty block and broadcast it to be included in a chain.What is an empty block? The term “empty” means there is no user-supplied transactions in the block. But empty blocks are not so empty. There are some data even in an empty block. It must have proper block headers at least. Even more, every block in Bitcoin contains one transaction(UTXO) to record a reward given to the miner. But empty blocks contain no transactions supplied from the users. So the miner who made an empty block processed no transactions and also made no contribution to the chain in viewpoint of recording transactions in the chain.Then what are they good for, and why does the protocol allow them? You may find many good answers in the internet, but we give the following three reasons:strengthen security of the chainrepresent the progress of timesupply newly generated coins to the chainA blockchain is an ever-growing chain of blocks. It weaves a new layer(new block) of facts stacked upon existing reality(existing blocks). It is harder to forge a certain fact if there are more layers of reality based on the fact. You may find enormous number of internet posts out there about this property. So let’s skip this explanation.A blockchain is an ever-changing database. So it is essential to constantly change as time passes. Every new block represents one unit time passed since the last block. We don’t worry when there are plenty of newly generated transactions to be included in a block. But what if there is no new transaction in the network for a certain amount of time period?(If there is no new transaction for a very long time, people may consider the chain is collapsed. We must worry about even bigger problems then.) Say the chain is configured to create a block in every second but there is no new transactions for 10 seconds, for example. If the chain protocol is irrelevant to exact time progress, the chain may lay dormant until there are any new transactions to process. But many blockchain systems introduce time-dependent properties, as is the case for AMO blockchain. A chain may introduce a time-locked stakes or expiration mechanism based on the progress of time, and it is measured in blocks in many cases, for it is tricky to handle clock-time in blockchain protocols. No blocks? Then no means to measure time progress.It might be a controversial argument that a public blockchain requires an incentive mechanism to encourage miners or validators. But, given that a blockchain system is a kind of closed economy system based on its own currency, it is inevitable to devise some kind of minting mechanism into it. Some of the early blockchain systems such as Bitcoin or Ethereum have very simple philosophy about minting. “You made a block? Then you get a reward from newly generated coins.” No matter what number of transactions in the block. It is a reward mechanism and a minting mechanism at the same time.Modern blockchain projects give their own reward or minting mechanism. We also provide our own: newly generated coins for every transaction processed. It is notable that reward is for a transaction, not for a block. Since the reward is for transactions, validators don’t get reward for an empty block. In this way the coupling between reward and minting get loosened. However, empty blocks are still required in some cases in AMO blockchain. As per a story about stake lock-up, when a validator stakes a coin, it is initially locked and cannot be withdrawn. It will unlock after a certain number blocks. Validators expect their stakes being unlocked after some period of time, not number of non-empty blocks. They don’t care if there are enough number of transactions to fill the blocks. They expect blocks being created with appropriate interval even if the blocks are empty. But since there is no direct incentive for an empty block, so nobody is willing to create an empty block. For this matter, AMO blockchain introduced a penalty mechanism for lazy validators. If they don’t work, then they will be punished. So, even if they are not willing to create an empty block, they are forced to do so.And that concludes a story about empty blocks in AMO blockchain.빈 블록 이야기현재의 블록체인 기술의 가장 큰 특징은 이들이 분산 원장을 제공한다는 것입니다. 여기에서 원장이란 순서대로 기록된 거래의 목록을 말합니다. 따라서, 블록체인 노드의 중요한 역할은 거래 항목들을 수집하고 이를 짜맞추어서 블록을 생성하고 전파하는 것이 됩니다. 이런 면에서 보면 블록체인의 모든 블록은 최소한 몇 개씩의 거래 항목을 포함하고 있다고 생각하기 쉽습니다. 그런데 그게 그렇지가 않습니다. 실제로 Bitcoin 과 Ethereum과 같은 유명 블록체인을 보면 많은 수의 블록들이 비어 있습니다. 이미 많은 사람들이 이걸 발견하고 어떻게 된 것인지 질문하고 있는 것을 찾아볼 수 있습니다 [1][2].거래 항목을 하나도 포함하지 않는 이런 빈 블록들이 생기는 것은 Bitcoin이나 Ethereum 같은 블록체인 프로토콜이 빈 블록을 막고 있지 않고 있기 때문입니다. 빈 블록들은 프로토콜에 의해 허용된 존재들입니다. 신기한 이상현상이 아니고 아주 정상적입니다. 여러분이 validator로서 빈 블록을 생성해서 체인에 포함시키기 위해 전파해도 다른 노드들은 이를 흔쾌히 허용합니다.그래서 빈 블록이란 무엇일까요? “비어 있다”는 의미는 사용자가 생성한 거래 항목이 없다는 뜻입니다. 그러나 빈 블록이라고 완전히 비어 있는 것은 아닙니다. 빈 블록에도 몇가지 정보들이 포함됩니다. 최소한 정상적인 블록 헤더가 있어야 합니다. 이에 더해서 Bitcoin의 경우 모든 블록은 마이너에게 주는 혜택을 기록하기 위한 거래(UTXO)를 반드시 하나 포함해야 합니다. 그러나 어쨌든 정상적인 사용자가 생성한 거래들은 포함하지 않습니다. 그러니 빈 블록을 만드는 마이너는 거래를 아무것도 처리한 것이 없게 되고, 거래의 기록이라는 관점에서 보면 체인에 기여한 게 아무것도 없습니다.그러면 이런 빈 블록은 도대체 무슨 소용이 있고, 블록체인 프로토콜들은 왜 이걸 허용하는 걸까요? 이에 대해서는 인터넷 상에서도 많은 좋은 답변들을 찾을 수 있지만, 이 글에서는 다음의 세가지를 이야기하고자 합니다:체인의 보안 강화시간의 흐름을 표현체인에 새로 생성된 코인을 공급블록체인이란 끊임없이 이어지는 블록들의 체인입니다. 이는 이미 존재하는 현실(기존 블록들)의 기반 위에 새로운 사실들(새 블록)을 만들어 쌓는 것으로 볼 수 있습니다. 어떤 사실에 기반하는 아주 많은 층의 또다른 사실들이 있다면 현실을 조작하는 것이 훨씬 어렵게 됩니다. 이러한 특성에 대한 글들은 많은 인터넷 글을 찾을 수 있으니 이 글에서는 이쯤으로 줄입니다.블록체인이란 또한 시간에 따라 끊임 없이 변화하는 데이터베이스입니다. 따라서 시간이 지나면 지속적으로 변하는 특성이 있습니다. 모든 블록은 마지막 블록 이후에 하나의 시간 단위 만큼의 변화를 의미합니다. 블록체인에 포함될 신규 거래들이 꽤 많이 있을 때는 별로 걱정할 것이 없습니다. 그런데 일정 기간 동안 신규 거래가 없다면 어떻게 될까요?(아주 긴 기간 동안 신규 거래가 없다면, 대중은 체인이 붕괴했다고 생각할 것이고 그런 상황이 오면 빈 블록보다 훨씬 심각한 문제들에 직면할 것입니다.) 예를 들어 체인이 1초에 하나의 블록을 생성하도록 설정되었는데 10초 동안 새로운 거래가 없다고 해 보겠습니다. 체인의 프로토콜이 엄밀한 시간의 진행과 상관이 없도록 만들어졌다면, 체인은 새로운 거래가 생길 때까지 그냥 잠든 상태로 대기하면 됩니다. 그러나 최근 많은 블록체인들이 시간 변화에 의존하는 특성들을 도입하고 있고, 그건 AMO 블록체인도 마찬가지입니다. 체인 시스템에 시간에 묶이는 스테이킹 기능이나 시간 진행에 따라 만료되는 특성이 도입될 수도 있는데, 이 때 시간의 진행은 많은 경우 블록의 수로 측정합니다. 왜냐하면 실제 시간을 블록체인에서 처리하는 것이 꽤 까다롭기 때문입니다. 그런데 신규 거래가 없어서 블록이 안 생긴다면? 시간의 진행을 측정할 방법도 없게 됩니다.공개형 블록체인에서 마이너나 validator를 독려하기 위한 인센티브 체계가 반드시 필요한가 아닌가는 논란의 여지가 있을 수도 있습니다. 그러나 블록체인 시스템이 자체 통화에 기반하는 온전한 경제 체계라는 점에서, 어떠한 방식이든 통화가 신규로 발행되는 메커니즘은 갖추어져야 합니다. Bitcoin이나 Ethereum 같은 초창기 블록체인 시스템에서는 이와 관련해 아주 단순한 접근을 합니다. “블록을 만들어냈는가? 그러면 신규 코인으로 보상을 한다.” 블록 안에 몇 개의 거래가 포함됐는지는 상관이 없습니다. 이는 보상 체계이면서 동시에 화폐 발행 체계이기도 합니다.현대의 블록체인 프로젝트들은 그들 자신만의 보상과 화폐 발행 체계를 갖추고 있습니다. AMO도 그렇습니다: 처리되는 거래마다 새로 발행된 코인을 보상합니다. 주목할 것은 보상이 블록 생성에 주어지는 것이 아니라 거래 처리에 주어진다는 점입니다. 보상이 거래 처리에 주어지다보니 빈 블록, 즉 거래가 포함되지 않은 블록을 만든 validator는 보상을 받지 못합니다. 이 방식은 전통적 블록체인들과는 다르게 보상과 화폐 발행 사이의 긴밀함이 감소하게 만듭니다. 그러나, AMO 블록체인에서도 경우에 따라 빈 블록이 필요해지게 됩니다. Stake 잠금 기능 소개라는 글에서 설명한 것과 같이, validator가 새로 스테이킹을 하면 일단 잠기게 되고 당장은 빼낼 수가 없습니다. 이후 정해진 수의 블록만큼 블록체인이 진행을 하면 잠금이 풀립니다. 이 규칙이 validator들에게 받아들여질 때는 일정 시간이 지나면 잠금이 풀린다고 이해될 개연성이 아주 큽니다. 비어 있지 않은 블록이 몇개냐 같은 것은 관심이 없을 것입니다. 또한 블록을 지속적으로 채울 만큼의 수의 거래가 있는지도 별 관심이 없을 것입니다. 빈 블록이든 아니든 정해진 간격으로 블록이 만들어지는 것만 기대할 것입니다. 하지만 빈 블록에 대한 직접적인 보상이 없다 보니 아무도 자발적으로 빈 블록을 만들지는 않을 것입니다. 이 문제에 대해서는 AMO 블록체인에 도입된 게으른 validator에 대한 페널티 체계가 도움이 됩니다. 일을 안 하면 벌칙을 받습니다. 따라서 자발적으로는 빈 블록을 만들고 싶지 않을지라도 그렇게 하도록 강제됩니다.이상으로 AMO 블록체인과 빈 블록의 관계에 대한 이야기였습니다.A Story of Empty Blocks was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

19. 11. 21

Penalty Mechanism in AMO Bl...

In the previous post “Incentive and Blockchain Economy”, we discussed about how validators get monetary benefit from participating in running AMO blockchain node network. The basic principle is to give a reward for a helpful action. But, we also need a penalty for a misbehavior.While a blockchain based on a PoW-like consensus mechanism is run by a massive crowd of peers, a blockchain based on a BFT-like consensus mechanism, such as AMO blockchain, is run by a clockwork protocol among the selected peers having a certain level of privileges (PoS or DPoS defines this level privileges). If someone in this selected peers behaves maliciously, or a non-negligible portion of this group just cast out their duty, the protocol cannot run smoothly. This is the thing different from PoW-like consensus mechanisms. For this reason, many blockchains based on BFT or similar consensus mechanism introduce a penalty mechanism. Sometimes, the penalty mechanism comes with a force-out or banish policy. However, the goal is one thing: to keep the group of operators as healthy as possible.In AMO blockchain, we have also a penalty mechanism for malicious or lazy validators. A validator is considered malicious when he/she supports two or more different facts. Technically speaking, this malicious behavior is detected as duplicate votes for different blocks in the same height and round(a round is a tendermint term). If we do nothing for this behavior, there may be a fork of the chain, and it is not desirable.A validator is considered lazy when he/she does not participate in the consensus protocol. Technically speaking, this lazy behavior is detected as absence of votes(a vote is a tendermint term) from this validator for a certain number of recent blocks. If we do nothing for this behavior, the health of the chain is compromised.A punishment itself is simple enough: to burn a certain amount of stakes. For delegators, it is to burn a certain amount delegated stakes. Interestingly, this punishment has something with the meaning of the word stake. Their coins are at stake if the validators do not act right, or if the delegators entrust their coins to unreliable validators. This kind of punishment is called slashing.In AMO blockchain, there are two blockchain parameters for the punishment: the slash ratio m for malicious behavior and the ratio l for lazyness. The numbers are rational numbers between 0 and 1. When it is decided to punish a validator for his/her malicious behavior, calculate the amount of stakes to burn: coins_to_burn = amount_of_effective_stake × m, and distribute this penalty among the validator and his/her delegators. As we use the weighted distribution when calculate individual incentive, we use the same weight for the penalty. So a validator shall pay the price as twice as a delegator.One thing that is not certain is how we should determine this slash ratios m and l. They will be determined at the last-minute protocol adjustment phase, based on the simulation results.AMO 블록체인의 벌칙(penalty) 메커니즘이전 포스트인 “Incentive and Blockchain Economy”에서 우리는 validator들이 AMO 블록체인의 운영에 참여함으로써 금전적인 이득을 얻는 방식에 대해서 설명했습니다. 기본적인 원칙은 도움이 되는 행위에 보상을 준다는 것인데, 사실 여기엔 비행(非行)에 대한 벌칙도 있어야 합니다.PoW와 같은 합의 메커니즘에 기반하는 블록체인은 다수의 군중에 의해서 운영되는데 반해서, AMO 블록체인과 같이 BFT 류의 합의 메커니즘에 기반하는 블록체인은 선택받은 정해진 수의 운영자들 사이의 정교한 프로토콜에 의해서 운영됩니다. (여기에서 운영자들을 선택하는 방식이 PoS, 혹은 DPoS 원리입니다.) 만약 이 선택된 운영자들 중 누군가가 악의적으로 행동하거나, 이 그룹에서 무시할 수 없는 정도의 비율의 운영자들이 의무를 저버리고 프로토콜에 참여하지 않는다면, 이 프로토콜은 제대로 동작할 수가 없습니다. 이것은 PoW 류의 합의 메커니즘과는 분명 다른 점입니다. 이 때문에 BFT나 유사한 합의 메커니즘에 기반하는 많은 블록체인에서 페널티 메커니즘을 도입하고 있습니다. 때로는 이 패널티 메커니즘에 제명이나 추방 정책이 포함되기도 합니다. 하지만 목적은 한가지입니다. 운영자들의 그룹을 가능하면 건전하게 유지하기 위한 것입니다.AMO 블록체인에서도 악의적이거나 게으른 validator들에 대한 페널티 메커니즘이 있습니다. 어떤 validator가 두 가지 이상의 서로 다른 사실을 지지할 때 이를 악의적이라고 간주합니다. 기술적인 표현으로는, 이 악의적인 행위는 같은 height와 round에 대해서 서로 다른 블록들에 대한 서명을 하는 행위로 나타납니다(여기에서 round는 tendermint 용어임). 여기에 대해서 아무것도 안하면 결국 체인에 분기(fork)가 발생하게 될 텐데 결코 바람직하지가 않습니다.어떤 validator가 합의 프로토콜에 제대로 참여하지 않을 때 이를 게으르다고 간주합니다. 기술적인 표현으로는, 이 게으름은 정해진 숫자의 최근 블록들에 이 validator의 서명(여기에서 서명은 tendermint 용어임) 이 존재하지 않는 것으로 나타납니다. 여기에 대해서 아무것도 안하면 결국 체인의 건전성을 해치게 됩니다.처벌 자체는 간단합니다. Stake 중 일부를 소각하는 것입니다. Validator가 아닌 delegator에 대해서는 위임된 stake 중 일부를 소각합니다. 재미 있는 것은 stake라는 단어의 의미입니다. 영어에서 “at stake”라는 표현은 위험에 처해 있다는 의미가 되는데, validator가 제대로 일을 안하거나 delegator가 믿음직하지 않은 validator에게 코인을 위임하게 되면 그들의 코인도 위험에 처해 있다(at stake)고 할 수가 있습니다. 이와 같이 stake의 일부를 소각해 버리는 처벌 방식을 흔히 slashing이라고 부릅니다.AMO 블록체인에는 이런 벌칙에 관련된 두가지의 인자가 있습니다: 악의적인 행위에 대한 slash 비율 m과 게으름에 대한 slash 비율 l이 있습니다. 이 숫자들은 0과 1 사이의 실수로 표현됩니다. 어떤 validator에게 악의적인 행위에 대한 처벌을 하기로 결정되었다면, 일단 소각해 버릴 스테이크의 양을 계산합니다: coins_to_burn = amount_of_effective_stake × m. 그리고 이 벌칙을 validator와 delegator들 사이에 분배합니다. 인센티브를 분배할 때 validator와 delegator에게 서로 다른 가중치를 두었던 것처럼 이 때에도 같은 방식으로 가중치를 둡니다. 따라서 validator는 delegator보다 두 배의 벌칙을 받게 됩니다.이 slash 비율 m과 l은 아직은 확정되지 않았으며, 적절한 시뮬레이션 결과를 기반으로 메인넷 출시 전 마지막 프로토콜 조정 단계에서 확정될 예정입니다.Penalty Mechanism in AMO Blockchain was originally published in AMO Labs Official on Medium, where people are continuing the conversation by highlighting and responding to this story.

AMO

19. 11. 07

Transaction History
Transaction History Address
Bithumb Short cut
Coinone Short cut
IDEX Short cut
Security verification

There is security verification of the project
Why security verification is necessary?

Read more

comment

* Written questions can not be edited.

* The questions will be answered directly by the token team.

Information
Platform ERC20
Accepting
Hard cap -
Audit -
Stage -
Location -