EOS EOSIO DApp 개발 – '나도 백서 읽는다' 시리즈 6. Token Model and Resource UsagesteemCreated with Sketch.

in #eos6 years ago (edited)

내용 중 현재 시점에서 알려진 것과 다른 것도 있고, 이해하는데 방해가 되는 것들도 있습니다. 이런 부분들은 현재 시점에 알려진 것을 반영하고 이해하는데 도움이 되지 않는 것들은 제거하거나 이해될 수 있는 내용으로 바꾸었습니다.

Token Model and Resource Usage

PLEASE NOTE: CRYPTOGRAPHIC TOKENS REFERRED TO IN THIS WHITE PAPER REFER TO CRYPTOGRAPHIC TOKENS ON A LAUNCHED BLOCKCHAIN THAT ADOPTS THE EOS.IO SOFTWARE. THEY DO NOT REFER TO THE ERC-20 COMPATIBLE TOKENS BEING DISTRIBUTED ON THE ETHEREUM BLOCKCHAIN IN CONNECTION WITH THE EOS TOKEN DISTRIBUTION.

EOS가 ERC-20 기반으로 ICO를 했으니, 암호화 토큰이라고 하면 ERC-20을 생각할 수 있으니 주의를 주는 것.

All blockchains are resource constrained and require a system to prevent abuse. With a blockchain that uses EOS.IO software, there are three broad classes of resources that are consumed by applications:
1.Bandwidth and Log Storage (Disk);
2.Computation and Computational Backlog (CPU); and
3.State Storage (RAM).

희소성이 있는 자원은 잘 관리해야 해. 블록체인에도 자원들이 있고 당연히 자원 낭비를 막아야 하지. EOS는 네트워크 기반 운영체제를 표방하니 대역폭, 저장소, CPU, 램을 관리해야 해.

Bandwidth and computation have two components, instantaneous usage and long-term usage. A blockchain maintains a log of all Actions and this log is ultimately stored and downloaded by all full nodes. With the log of Actions, it is possible to reconstruct the state of all applications.

대역폭과 연산은 일시적으로 사용되는 것과 장기간 사용되는 것으로 구분 돼. 블록체인은 상태를 재구축하기 위해 모든 액션들의 로그를 관리 해. 로그는 블록체인의 모든 풀 노드들에 의해 기록되고 다운로드 되지.
앞으로 연산이라고 하면 CPU를 떠 올리면 돼.

The computational debt is calculations that must be performed to regenerate state from the Action log. If the computational debt grows too large then, it becomes necessary to take snapshots of the blockchain's state and discard the blockchain's history. If computational debt grows too quickly then it may take 6 months to replay 1 year worth of transactions. It is critical, therefore, that the computational debt be carefully managed.

로그를 가지고 블록체인 상태를 재구축하려면 연산이 필요한데 그것을 연산부채라고 해. 굳이 부채라는 개념을 도입한 이유는? 어느 정도 있으면 괜찮지만 너무 많으면 안 좋다 이런 거?

Blockchain state storage is information that is accessible from application logic. It includes information such as order books and account balances. If the state is never read by the application, then it should not be stored. For example, blog post content and comments are not read by application logic, so they should not be stored in the blockchain's state. Meanwhile the existence of a post/comment, the number of votes, and other properties do get stored as part of the blockchain's state.

모든 앱 정보를 블록체인에 저장해야 하는 것도 아니고, 그렇게 하면 안 되는 경우도 많아. 블록체인에 정보를 저장한다는 것이 어떤 의미인지를 잘 알고 해야 해. 블록체인에 저장되는 정보는 모두에게 공개되고 변경이 불가능 해. 뭐 피해가는 방법을 만들어서까지 하고 싶다면 어쩔 수 없지만.
블록체인 입장에서 앱들이 무분별하게 정보를 블록체인에 저장한다면 자원을 낭비하는 게 되지. 뭔가 조치가 필요해. 아무 생각 없이 했을 때 비용을 지불하게 한다면?

Block producers publish their available capacity for bandwidth, computation, and state. The EOS.IO software allows each account to consume a percentage of the available capacity proportional to the amount of tokens held in a 3-day staking contract. For example, if a blockchain based on the EOS.IO software is launched and if an account holds 1% of the total tokens distributable pursuant to that blockchain, then that account has the potential to utilize 1% of the state storage capacity.

자원 공급은 BP의 몫. BP는 어느 정도의 자원을 가용할 수 있는지를 알려줘야 해. 토큰을 예치(stake)한 계정은 예치한 토큰 양에 비례해서 자원을 사용할 수 있게 돼. 예를 들어, 어떤 계정이 전체 토큰의 1%를 가지고 있으면 1%의 상태 저장 용량을 사용할 수 있게 되는 거야.
예치된 자원은 회수하는데 3일 걸려.
*여기서 자원은 대역폭과 CPU를 말해. 로그 저장소는 토큰 보유자가 자신의 토큰을 걸고 뭘 할거는 아니고. 램은 예치하면 주는게 아니고 사서 보유해야 해. *

Adopting the EOS.IO software on a launched blockchain means bandwidth and computational capacity are allocated on a fractional reserve basis because they are transient (unused capacity cannot be saved for future use). The algorithm used by EOS.IO software is similar to the algorithm used by Steem to rate-limit bandwidth usage.

대역폭과 계산 용량은 부분지급준비( fractional reserve basis)에 따라 할당 돼. 스팀잇에서 대역폭 사용 비율 제한과 비슷해. 부분지급준비? 갑자기 뭔 소리. '부분지급준비'는 은행에서 사용하는 용어잖아. 예금액의 일부분만을 고객에게 지급할 수 있게 남겨 두고, 만일 그 금액 이상을 인출하려고 하면 인출을 통제하는.
아~~~. 이렇게 하면 사용자들이 예치한 대역폭과 계산 용량 보다 적은 용량으로도 블록체인을 운영할 수 있겠구나! 만약 보유한 것보다 더 많은 용량이 요구될 때는 제한을 걸면 되고.
이렇게 하면 BP들이 초기부터 많은 자원을 확보하지 않아도 돼. 차츰 상황을 봐 가면서 늘려가면 되니까.
그래서 할당된 용량이 영구적이지 않고 일시적이라는 거지. 상황에 따라 변하잖아. 지금 남았다고 아껴두고 나중에 사용할 수도 없어.

Objective and Subjective Measurements

As discussed earlier, instrumenting computational usage has a significant impact on performance and optimization; therefore, all resource usage constraints are ultimately subjective, and enforcement is done by block producers according to their individual algorithms and estimates. These would typically be implemented by a block producer via the writing of a custom plugin.

연산 사용량 계측은 성능과 최적화에 중요한 영향을 주겠지. 그래서 BP들이 결정하게 하는 거야. BP들이 자원 공급자니까. BP들은 자체적인 알고리즘과 예측에 따라 자원 사용을 제한 해. BP들은 이를 위해 보통은 플러그인을 만들어 사용하지. BP들은 이를 위해서도 노력해야 겠네. BP자리를 유지하려면 표를 받아야 하니까. 이러한 부분도 토큰 보유자들에게 잘 노출될 수 있게 해야 겠네.

That said, there are certain things that are trivial to measure objectively. The number of Actions delivered, and the size of the data stored in the internal database are cheap to measure objectively. The EOS.IO software enables block producers to apply the same algorithm over these objective measures but may choose to apply stricter subjective algorithms over subjective measurements.

물론 객관적으로 측정 가능한 사소한 것들(측정하는데 비용이 적게 드는)도 분명히 있을거야. 전달되는 액션 수나 데이터베이스에 저장된 데이트 크기와 같은 것들.
BP들은 이러한 것들에도 주관적인 알고리즘을 사용할 수 있어. 그런데 이러한 것들에는 좀 엄격한 주관이 필요하지.

Receiver Pays

Traditionally, it is the business that pays for office space, computational power, and other costs required to run the business. The customer buys specific products from the business and the revenue from those product sales is used to cover the business costs of operation. Similarly, no website obligates its visitors to make micropayments for visiting its website to cover hosting costs. Therefore, decentralized applications should not force its customers to pay the blockchain directly for the use of the blockchain.

전통적으로 사업을 하려면 비용이 들지. 제품을 팔아 돈을 벌어 비용을 충당하고. 제품을 구경만 했을 때 돈을 내라고 하지는 않지. 웹 사이트도 비슷해. 방문자에게 호스팅 비용을 내야 하니 '적은 돈이라도 내'라고 하지는 않아. 블록체인이라고 다르지 않아. 블록체인을 사용했다고 돈을 내라고 할 수는 없어. 그런데 기존의 블록체인들은 그래왔다는 거지.

A launched blockchain that uses the EOS.IO software does not require its users to pay the blockchain directly for its use and therefore does not constrain or prevent a business from determining its own monetization strategy for its products.

블록체인 사용에 추가적인 돈이 들어간다면 그 위에서 돌아가는 앱을 개발해야 하는 개발자는 부담이 될 수 밖에 없다. EOSIO는 분산앱 OS로 그러한 짓을 하지 않겠다는 것.

While it is true that the receiver can pay, EOS.IO enables the sender to pay for bandwidth, computation, and storage. This empowers application developers to pick the method that is best for their application. In many cases sender-pays significantly reduces complexity for application developers who do not want to implement their own rationing system. Application developers can delegate bandwidth and computation to their users and then let the “sender pays” model enforce the usage. From the perspective of the end user it is free, but from the perspective of the blockchain it is sender-pays.

분산앱도 마찬가지야. 사용자에게 사용 비용을 청구하는 순간 망하게 될거야. 아니 청구하지도 못하고 망할거야. 우리가 경쟁하려고 하는 것은 지금도 많은 돈을 지불하고 사용하는 앱이 아니거든. 사용자가 늘상 공짜로 사용한 것들이야. '그게 사실은 공짜가 아니었다' 이런 것은 중요하지 않아.
중앙화된 앱들이 걸어 왔던 사업 전략을 따라 가야 해.

Delegating Capacity

A holder of tokens on a blockchain launched adopting the EOS.IO software who may not have an immediate need to consume all or part of the available bandwidth, can delegate or rent such unconsumed bandwidth to others; the block producers running EOS.IO software on such blockchain will recognize this delegation of capacity and allocate bandwidth accordingly.

대부분의 토큰 보유자는 앱 개발자가 아니니 이러한 자원을 사용할 필요가 없어. 그들을 위해 준비했어. 위임하거나 대여해 주면 돼.

Separating Transaction costs from Token Value

One of the major benefits of the EOS.IO software is that the amount of bandwidth available to an application is entirely independent of any token price. If an application owner holds a relevant number of tokens on a blockchain adopting EOS.IO software, then the application can run indefinitely within a fixed state and bandwidth usage. In such case, developers and users are unaffected from any price volatility in the token market and therefore not reliant on a price feed. In other words, a blockchain that adopts the EOS.IO software enables block producers to naturally increase bandwidth, computation, and storage available per token independent of the token's value.

앱에서 사용할 대역폭 양은 토큰 가격과 상관 없어. 개발자에게는 토큰 수가 중요해. 전체 토큰 수에 대한 비율이니까. BP는 토큰 가치보다는 자원 사용량에 따라 자원을 늘린다는 것. 늘려야 한다는 것.

A blockchain using EOS.IO software also awards block producers tokens every time they produce a block. The value of the tokens will impact the amount of bandwidth, storage, and computation a producer can afford to purchase; this model naturally leverages rising token values to increase network performance.

블록을 생산할 때마다 BP에게 토큰이 보상 돼. 당연히 토큰 가격은 BP가 구매할 수 있는 자원의 양에도 영향을 주지. 도 영향을 미치게 되지. 이 모델은 토큰 가격이 올라가는 것을 자연스럽게 이용해 네트워크 성능을 향상시킬 수 있어.

State Storage Costs

While bandwidth and computation can be delegated, storage of application state will require an application developer to hold tokens until that state is deleted. If state is never deleted, then the tokens are effectively removed from circulation.

대역폭과 연산은 위임할 수 있지만, 앱 상태 저장소는 상태가 삭제될 때가지 토큰을 보유하도록 요구 해. 앱 상태 저장소는 램에 하는데 이건 좀 특별 해. 대역폭과 연산은 토큰으로 구매하는 게 아니고 토큰을 예치해 두면 그 만큼에 비례해서 주지만, 램은 토큰으로 구매해서 보유하고 있어야.

Block Rewards

A blockchain that adopts the EOS.IO software will award new tokens to a block producer every time a block is produced. In these circumstances, the number of tokens created is determined by the median of the desired pay published by all block producers. The EOS.IO software may be configured to enforce a cap on producer awards such that the total annual increase in token supply does not exceed 5%.

매년 새로 발행되는 토큰은 총 발행량의 5%, 이 중에서 1%는 BP들에게 주어지고, 4%는 아래에서 설명되는 worker proposal에 주어 져. BP에게 주어지는 1%는 블록 생산에 대한 보상으로 주어지는 블록보상과 투표율에 따라 주어지는 투표보상으로 나누어지지.

Worker Proposal System

In addition to electing block producers, pursuant to a blockchain based on the EOS.IO software, token holders can elect a number of Worker Proposals designed to benefit the community. The winning proposals will receive tokens of up to a configured percent of the token inflation minus those tokens that have been paid to block producers. These proposals will receive tokens proportional to the votes each application has received from token holders, up to the amount they request for performing their work. The elected proposals can be replaced by newly elected proposals by token holders.

토큰 보유자들은 BP를 선출하는 거 외에도 커뮤니티에 도움이 될 worker proposals을 선정하는 것도 해. 이것도 우리말로 표현하기 좀 뭐하네. BP 선출이나 worker proposals 선정은 모두 토큰 보유자들의 투표에 의해 이루어져.

The system contracts that implement Worker Proposals may not be in place at initial launch in June 2018, but the funding mechanism will. It will begin to accumulate funds at the same time block producer awards start. Since the Worker Proposal System will be implemented in WASM it can be added at a later date without a fork.

worker proposals에 대한 사항은 현재 진행 중.

Sort:  

안녕하세요.

스팀잇을 처음시작하는 초보 justafeeling입니다.

팔로우와 보팅해주시면 저도 항상 찾아오겠습니다.

오늘 하루도 즐겁게 보내시고 화이팅입니다 사랑해요 ><

Good morning.

It is just beginning to start Steam It.

Follow me and I will always come to visit you.

I am happy to spend the day with you today>

토큰 보유 자체를 부동산과 유사한 구조로 짠 EOS... 과연 이더리움의 GAS 모델보다 성공적인 모델로 자리잡을 수 있을가요?

EOS의 성공 가능성은 매우 높다고 판단 됩니다. EOS에는 성공을 위한 여러 장치들이 있거든요. 저 같은 경우는 백서를 꼼꼼히 읽어 보면서, '정말 잘 돌아갈 수 밖에 없게 만들었구나!'라고 감탄합니다.

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.029
BTC 63788.86
ETH 2476.31
USDT 1.00
SBD 2.66