EOS EOSIO DApp 개발 – '나도 백서 읽는다' 시리즈 7. GovernancesteemCreated with Sketch.

in #eos6 years ago (edited)

Governance

Governance is the process by which people in a community:

  1. Reach consensus on subjective matters of collective action that cannot be captured entirely by software algorithms;
  2. Carry out the decisions they reach; and
  3. Alter the governance rules themselves via Constitutional amendments.

모든 것을 소프트웨어 알고리즘으로 할 수 있으면 좋겠지. 그런데 그게 가능해? 알고리즘이란 것도 사람이 작성하는 거고. 문제가 생길 수 있지. 그럴 때는 결국 사람이 개입해야 해. 그런데 사람이 개입하게 되면 문제가 복잡해져. 왜? 사람이라는게 자기 주관적이잖아. 같은 문제에 대해서도 서로 다른 주장을 하잖아. 이럴 때 필요한게 거버넌스라는 거지.
거버넌스는 커뮤니티 사람들이 따르는 절차. 이것에 따라 사람들은 합의에 도달하고 결정을 내려. 마치 세상의 헌법과 같은거야. 개정이 필요하면 개정절차를 통해서 바꾸지.

An EOS.IO software-based blockchain implements a governance process that efficiently directs the existing influence of block producers. Absent a defined governance process, prior blockchains relied ad hoc, informal, and often controversial governance processes that result in unpredictable outcomes.

거버넌스가 없는 블록체인은 문제가 생겼을 때 즉흥적이고 비공식적인 결정을 할 수 밖에 없지. 이런 결정은 당연히 예측할 수 없는 거고 논란을 일으킬 수 있지.
블록체인에서 블록을 생산하는 BP가 힘을 갖는 거는 당연해. 이들을 효과적으로 통제할 방법이 필요해.

A blockchain based on the EOS.IO software recognizes that power originates with the token holders who delegate that power to the block producers. The block producers are given limited and checked authority to freeze accounts, update defective applications, and propose hard forking changes to the underlying protocol.

국민에게 권력이 있는 것과 마찬가지로 실제적인 힘은 토큰 보유자들이 가지는 거야. 국민이 국회의원을 투표로 선출하는 것처럼 토큰 보유자들이 BP를 선출해 권력을 위임하는 거지.
BP들의 제한되고 확인된 권한 만을 가지지. 문제가 있는 계좌를 동결하고, 결함있는 앱을 업데이트하고, 중요한 프로토콜을 변경하는 하드 포크를 제안할 수 있지.

Embedded into the EOS.IO software is the election of block producers. Before any change can be made to the blockchain these block producers must approve it. If the block producers refuse to make changes desired by the token holders then they can be voted out. If the block producers make changes without permission of the token holders then all other non-producing full-node validators (exchanges, etc) will reject the change.

BP는 토큰 보유자들의 투표에 의해 선출 돼. 블록체인에 어떠한 변경을 하려면 먼저 승인을 받아야 해. 만약 PB가 토콘 보유자들에 이해 요구되는 변경을 거절한다면 투표를 통해 퇴출 시킬 수 있어. 만약 어떤 BP가 토큰 보유자들의 승인 없이 변경을 가한다면 다른 non-producing full-node validators (exchanges, etc)들은 변경을 거부하지. non-producing full-node validators는 블록을 생산하지는 않지만 원장 전체를 가지고 검증 역할을 해.*

Freezing Accounts

Sometimes a smart contact behaves in an aberrant or unpredictable manner and fails to perform as intended; other times an application or account may discover an exploit that enables it to consume an unreasonable amount of resources. When such issues inevitably occur, the block producers have the power to rectify such situations.

스마트 컨트랙트는 프로그램이니 버그가 있을 수 있어. 또는 악의적인 의도를 가지고 작성될 수 있지.

The block producers on all blockchains have the power to select which transactions are included in blocks which gives them the ability to freeze accounts. A blockchain using EOS.IO software formalizes this authority by subjecting the process of freezing an account to a 15/21 vote of active producers. If the producers abuse the power they can be voted out and an account will be unfrozen.

BP들은 블록에 포함될 트랜잭션을 선택할 수 있는 권한을 가지고 있어. 특정 계좌의 트랜잭션을 의도적으로 선택하지 않으면 계좌는 동결된 것과 같지.
이 권한이 공식화 되려면 블록을 생산하기로 선출된 BP들의 합의가 있어야 해. 합의는 언제나 전체의 2/3에 1을 더한 수 이상이 되어야 성립되지. 선출된 BP가 21이면 15 이상이 합의해야.

Changing Account Code

When all else fails and an "unstoppable application" acts in an unpredictable manner, a blockchain using EOS.IO software allows the block producers to replace the account's code without hard forking the entire blockchain. Similar to the process of freezing an account, this replacement of the code requires a 15/21 vote of elected block producers.

다른 해결 방법이 없는 예측할 수 없는 방법으로 동작하는 "멈출수 없는 앱"이 있을 때 BP들은 하드 포크 없이 해당 계정의 코드를 대체할 수 있어. 계정을 동결하는 것과 유사해. 합의도 같은 방법으로.

Constitution

헌법? 정말 헌법이야? 인정해 줄 만한 스케일이네. 헌법을 가지고 있는 블록체인이라~

The EOS.IO software enables blockchains to establish a peer-to-peer terms of service agreement or a binding contract among those users who sign it, referred to as a "constitution". The content of this constitution defines obligations among the users which cannot be entirely enforced by code and facilitates dispute resolution by establishing jurisdiction and choice of law along with other mutually accepted rules. Every transaction broadcast on the network must incorporate the hash of the constitution as part of the signature and thereby explicitly binds the signer to the contract.

헌법이 다른 모든 법에 우선하는 것 처럼 계약에 분쟁이 생겼을 때 헌법이 우선하지. 트랜잭션에는 헌법의 해시가 서명의 일부로 포함 돼. 계약을 작성해서 블록체인에 배포하는 것에는 헌법을 따르겠다고 약속이 포함되어 있는 거야.

The constitution also defines the human-readable intent of the source code protocol. This intent is used to identify the difference between a bug and a feature when errors occur and guides the community on what fixes are proper or improper.

헌법은 소스 코드(프로토콜)로만 작성하면 되는 것이 아냐. 사람이 그 의도를 읽을 수 있어야 해. 그래야 에러가 생겼을 때 기능과 버그의 차이를 알 수 있고, 수정사항이 적합한지 커뮤니티가 판단할 수 있도록 할 수 있지.

Upgrading the Protocol & Constitution

The EOS.IO software defines the following process by which the protocol, as defined by the canonical source code and its constitution, can be updated:

  1. Block producers propose a change to the constitution and obtains 15/21 approval.
  2. Block producers maintain 15/21 approval of the new constitution for 30 consecutive days.
  3. All users are required to indicate acceptance of the new constitution as a condition of future transactions being processed.
  4. Block producers adopt changes to the source code to reflect the change in the constitution and propose it to the blockchain using the hash of the new constitution.
  5. Block producers maintain 15/21 approval of the new code for 30 consecutive days.
  6. Changes to the code take effect 7 days later, giving all non-producing full nodes 1 week to upgrade after ratification of the source code.
  7. All nodes that do not upgrade to the new code shut down automatically.

헌법을 개정할 때는 BP들의 합의가 성립되야 하고, 30일 동안(연속적) 합의가 유지되어야 해.
모든 사용자는 향후 처리 될 트랜잭션 조건으로 새로운 헌법을 받아들일 것을 표명해야 해.
BP들은 새로운 헌법의 내용에 따라 변경된 소스코드를 채택하고, 새로운 헌법의 해시를 사용해서 블록체인에 이것을 제안 해.
BP들은 새로운 코드를 30일 동안(연속적) 합의를 유지해야 해.
7일 후에 코드의 변경은 효력을 발휘 해. 모든 non-producing full nodes들은 소스 코드 비준 후 1주일 내에 업그레이드 해야 해.

By default, configuration of the EOS.IO software, the process of updating the blockchain to add new features takes 2 to 3 months, while updates to fix non-critical bugs that do not require changes to the constitution can take 1 to 2 months.

EOSIO 소프트웨어는 새로운 기능을 추가하는 업데이트는 2~3달 걸리고, 헌법 개정이 필요 없는 치명적이지 않는 버그 수정에 따른 업데이트는 1~2달 걸릴 수 있어.

Emergency Changes

The block producers may accelerate the process if a software change is required to fix a harmful bug or security exploit that is actively harming users. Generally speaking it could be against the constitution for accelerated updates to introduce new features or fix harmless bugs.

비상 사태가 발생하면 그 만큼 빠르게 대응하고. 비상 사태도 아닌데 비상 사태가 발생한 것처럼 해도 안 되지.

Coin Marketplace

STEEM 0.28
TRX 0.12
JST 0.032
BTC 61672.72
ETH 2996.85
USDT 1.00
SBD 3.78