Q. 블록을 생산하는 노드(BP)운영에 대한 조건 및 등급 분류 기준이 있는지 궁굼합니다.

장석만 2019. 04. 02.


해당 코인에 대한 블록을 생산하는 노드는 체인운영에 있어 가장 중요한 역할을 맏고 있는 만큼 체인생성의 권한을 부여시 신중해야 할 것으로 생각이 듭니다.

노드 운영에 있어 본연의 역할에 충실한 노드가 있는 반면 기본적 조치를 소흘히 하여 문제를 야기 시키는 노드도 있을 것입니다.

따라서 블록을 생산하는 노드(BP)의 운영 필수 조건이나 추가임무가 있는지, 노드의 등급 분류 및 해택 및 불아익 기준이 있는지 알고 싶습니다.

공유하고 보상받기 ♥︎

2개의 답변이 있습니다.

질문자 채택
곰탱이지만 답변자인증
우편물류, 운송, 우편마케팅 2019. 04. 03

EOS BP의 서약서에 질문자님께서 말씀하신 조건들이 나열되어 있습니다. 참고하시면 좋을 듯 하여 올려드립니다.

원문 :

https://github.com/EOSIO/eos/blob/37ce45c0b60d2710569c2d1a9229945cc0e855a9/governance/bp_agreement.md#the-block-producer-agreement


The Block Producer Agreement

BP 서약


As a Block Producer (BP), I/we promise to:

BP로서 나는/우리는 다음을 약속합니다.

1. Produce exactly the authorized number of blocks faithfully, accurately, at the appointed time in the rotation

정확하게 승인된 수의 블록들을 성실하게, 정확하게 관할 지역에서 지정한 시간에 생성한다.

2. Never produce and sign two or more blocks with the same block height or block interval

동일한 블록 높이 또는 블럭 간격을 가진 둘 이상의 블록을 생성하고 승인하지 않는다.

3. Never censor governance related transactions such as votes or Arbitration related transactions

투표 또는 트랜잭션과 연관된 중재 같은 트랜잭션과 관련된 거버넌스를 검열하지 않는다.

4. Only add "good" transactions from the transaction pool to the block

트랜잭션 풀에서 오직 'good (본연의 목적에 맞는 트랜잭션)' 트랜잭션만 블록에 추가한다.

5. Make a good faith effort to include as many "good" transactions as possible to the block without undue discrimination

지나친 차별 없이 가능한 많은 "good" 트랜잭션을 블록에 넣으려는 선의의 노력을 한다.

6. Exclude "bad" transactions from the block, and publish why they were excluded

블록에서 "bad" 트랜잭션을 제외하고, 왜 제외되었는지 공표한다.

7. Show no favoritism among transactions, ordering them in a FIFO fashion or using some other ordering mechanism that is declared publicly in advance,

including the default ordering provided by the unmodified software

트랜잭션들에서 편파성을 보이지 말고, FIFO 방식으로 배열하거나 (수정불가 소프트웨어의해 제공되는 기본 배열을 포함해서) 사전에 공개적으로 밝힌 배열 매카니즘을 사용한다.

* FIFO (first-in, first-out) : 선입선출(先入先出)

8. Refrain from using my/our superior information to "front run" transactions nor enabling anyone else to “front run”

나의/우리의 우수한 정보로 "선두 주행" 트랜잭션에 사용하는 것이나 어느 누구든 "선두 주행"을 가능하게 하는 것을 금한다.

9. Accept as valid any Arbitrator’s order that’s

다음 항목은 어느 중재자의 오더든 유효한 것으로 받아들인다.

i. signed by an Arbitrator

ii. that the chain shows was assigned to a Case,

iii. such that the order affects only the Accounts named in that Case, and

iv. the Arbitrator is in good standing with their Arbitration Forum, and

v. the original Transaction that gave rise to the Case names that Arbitration Forum as the venue for dispute resolution

i. 중재자에 의해 승인된

ii. 체인이 나타내는 것이 (분쟁?)사건으로 할당된 것.

iii. 해당 사건에 지명된 어카운트만 영향을 주는 오더, 그리고

iv. 중재 포럼에서 신용있는 중재자, 그리고

v. 분쟁 해결의 장소로써 중재 포럼에 사건 명을 생성하는 오리지널 트랜잭션

* 'and'로 iii, iv, v 조항이 조건으로 묶여 있는 것 같은데 법을 잘 아시는 분 조언 감사합니다.

10. Only freeze accounts when authorized to do so by a valid Arbitrator’s order

유효한 중재자 오더에 의해 그렇게 하라고 승인했을 때 어카운트 동결

11. Always file a dispute against myself/ourselves after taking initiative to act on an emergency

비상시 행동에 솔선수범한 후 스스로에 대해 분쟁을 항상 정리하기(문서화 하기?)

12. Provide at least four (4) public endpoints running full nodes (the Minimum Configuration)

전체 노드를 운영하면서 최소 4 공공 종점 제공(최소 배열 or 배치)

13. Not requesting my/our daily Vote Bonus pay on days when I/we don’t have the Minimum Configuration running,

and repaying any Vote Bonus income collected while the Minimum Configuration wasn’t running

나/우리가 최소 배열하지 않았을 때 나의/우리의 일일 투표 보너스 요청하지 않기.

최소 배열하지 않은 동안 모인 어떤 투표 보너스 수입도 반환하기.

14. Disclosing all ownership of my/our organization greater than 10%

10%보다 큰 나의/우리 조직의 모든 소유권 밝히기.
15. Not sharing more than 10% ownership with another BP

다른 BP와 10% 이상 소유권 나누지 않기.

출처 : 우리나라 최고의 EOS 커뮤니티 KOREOS.IO 에서 참조하였습니다.

BP들이 방만운영을 할 때, 계정동결 및 투표를 통해서 BP의 자격을 뺏을 수도 있습니다. 이오스 거버넌스의 장점이죠.

스스로의 자산을 지키기위한 커뮤니티 및 홀더들의 자발적인 공부와 참여가 건전하고 올바른 BP선출의 방법이 아닐까 생각합니다.

DannyKim 답변자인증
Analyst 2019. 04. 03

프로젝트마다 상이한 부분입니다만,

코스모스 프로젝트의 경우 검증인 처벌에 대한 기준이 있습니다.

검증인의 기준과 처벌에 대한 부분만 백서에 있는 내용을 소개합니다.

검증인 (Validators)

전형적인 비잔틴 장애 허용 알고리즘들(BFT: Byzantine fault-tolerant algorithms)에서는 각 노드가 동일한 가중치를 갖는다. 텐더민트에서는 노드들이 ‘0이상’의 투표권(voting power)을 가지며, 양(+)의 투표권을 갖는 노드들을 검증인(validators)라고 부른다. 검증인들은 다음 블록에 동의하는 암호서명(cryptographic signature), 즉 투표(vote)를 전파(broadcast)함으로써 합의 프로토콜에 참여한다.

검증인(validator)들의 투표권은 제네시스(genesis) 당시에 결정되거나 블록체인에 의해 결정론적으로(deterministically) 변경되기도 한다. 예를 들어, 코스모스 허브와 같은 지분증명 애플리케이션에서는 투표권이 담보물로서 본딩된(bonded) 지분 토큰(staking token)의 양에 의해 결정될 수도 있다.

주: ⅔, ⅓과 같은 분수들은 모든 검증인들이 동등한 가중치를 갖지 않는 한, 검증인들의 총수가 결코 아니라 총 투표권에서 차지하는 비중을 가리킨다. 주: +⅔는 " ⅔ 초과"를 의미하며, ⅓+은 "⅓ 이상"을 의미한다.

검증인에 대한 처벌 (Penalties for Validators)

고의든 아니든 검증인이 정해진 프로토콜을 어길 때에는, 처벌이 주어져야 한다. 동일한 높이(height) 및 라운드에서의 이중 서명이나 ‘prevote-the-lock’(텐더민트 합의 프로토콜의 규칙)의 위반 같은 행위는 증거를 통해 즉시 인정된다. 이 경우, 검증인은 유효한 지위(good standing)를 상실하게 되며, 본딩된 아톰과 ‘지급준비금 풀(reserve pool)’내 토큰의 비례분 즉, 통칭하여 ‘지분(stake)’을 상당수 잃을 것이다.

때로는 지역 네트워크 단절, 전원 장애나 그 밖의 이유들로 인해 검증인이 단절될 수 있을 것이다. 만일 ‘과거 어느 시점의 ValidatorTimeoutWindow 블록’에서 검증인의 커밋 투표가 이루어지지 않은 횟수가 ValidatorTimeoutMax Absent 횟수 이상인 경우, 해당 검증인은 비활성화 되고 지분의 ‘Validator TimeoutPenalty(디폴트 1%)’만큼 잃게 될 것이다.

어떤 ‘악의적’ 행위는 블록체인에 명확한 증거를 남기지 않을 수 있다. 이런 경우, 압도적 다수의 합의가 존재한다면, 검증인들이 외부에서 합의한 뒤 악의적인 검증인을 강제로 타임아웃(timeout) 시킬 수 있다.

‘투표권 ⅓+’이 악의적으로 연합하여 코스모스를 중단시키거나, 이들이 악의적 행동의 증거가 블록체인으로 들어오지 않게 검열하여 삭제하는 경우, 허브는 하드포크를 통한 블록재조정(reorg) 프로포잘로 복구(recover)되어야 한다.