EOS EOSIO DApp 개발 – '에브리피디아 백서 읽기' 시리즈 8.Slashing Conditions
Slashing Conditions
Editing articles can be a fairly contentious activity. However, there must be sybil-resistant economic incentives to have token holders arrive at the common, salient answer of the edit proposal. That is, there must be incentives for each individual agent to arrive at what they believe to be the common response - the correct one. Likewise, there should be disincentives proportional to arriving at the minority response - the incorrect one. Unlike proof of stake based consensus methods which slash/burn the staker’s tokens for voting on incorrect blocks, the EPN slashing condition does not permanently burn tokens for voting incorrectly (voting on the minority side).
글 편집은 상당한 논쟁이 있을 수 있는 활동이지. 어떤 사람들은 편집 내용에 대해 찬성할 수도 있고 어떤 사람들은 반대할 수도 있지. 결국 논쟁은 투표로 결론지을 수 밖에 없다는 거고.
다수가 원하는 쪽으로 가겠다는 거? EOS나 에브리피디아나 토큰을 많이 보유한 사용자가 토큰 만큼 투표권을 행사하기 때문에 다수가 원한다고 말하는 것은 옳지 않지. 영향력이 큰 사용자의 손을 들어준다는 하는 게 더 맞는 이야기겠지.
찬성과 반대로 투표를 하게 되면 어느 한 쪽으로 의미 있는 비율이 나오지 않는 수도 있어. 한 쪽으로 의미있는 비율이 나오게 하려면 가능한 다수의 의견을 따르도록 해야겠지. 어떻게? 소수의 의견에 투표한 경우 벌칙을 주겠다는 거.
소수의 의견을 채택했다고 토큰을 소각하는 것은 좀 너무하다고 생각했나봐. 토큰 잠금 기간을 늘리는 선에서 벌칙을 정했어.
Slashing increases the staking lock-up period inversely proportional to the minority voting ratio. If a user’s account is slashed, their lock-up period for withdrawing their IQ tokens increases by some amount. This solves two issues: 1. Repeatedly voting on the minority side effectively burns IQ tokens since the lock-up period consistently increases so that repeated attacks on the network de facto remove the attacker’s IQ tokens from circulation (since they will not be able to withdraw and re-stake their tokens for a very long duration). 2. Participation in genuine contentious discussions (“edit wars”) is not discouraged since losing sides do not get their tokens burned permanently. Additionally, the more contentious an edit is, the less penalty there is for voting on the minority side (since the minority is almost as large as the majority).
왜 이런 벌칙이 필요하지? 네트워크에 대한 공격을 막기 위해서
편집자의 토큰을 소각시키는 방법? 편집자가 예치금 소각 구간에 속하도록 반대표를 던지는 것. 이것은 소수에 투표한다기 보다는 무조건적으로 반대표를 던지는 경우에 해당하는 것 아닌가.
소수에 투표를 자주하게 되면 더 긴 기간 토큰이 잠금되어 공격자가 쉽게 이러한 공격을 하지 못하겠지.
편집 전쟁이 일어났을 때 패배자 쪽의 토큰이 소각된다면 전쟁 참여자로서 승리가 의미가 있을 수도 있겠지. 그런데 잠금 기간 만 늘리잖아. 굳이 전쟁의 승리를 위해서 피튀기게 싸울 필요가 있겠어?
그럼에도 불구하고 편집 전쟁이 일어나 많은 사람들이 논쟁에 참여하게 되면 두 편의 수는 비등비등해질거야. 전쟁이 일어났을 때 양상은 아마도 힘 있는 몇명과 힘 없는 다수의 싸움이 될거니까. 이렇게 되면 패배한다고 해도 큰 손해를 보지는 않게 되지. 투표에 비례해서 벌칙을 주니까.
Voters in the majority are given a proportional amount of the IQ inflationary token reward allotted for content. Voters that vote in the minority have their token lock-up period increased for an extended amount of time, inversely-proportional to the minority stake. The slashing ratio can be modeled with the following:
다수에 속한 투표자들은 편집 제안에 할당된 토큰에 비례해서 보상을 받게 되고, 소수에 속한 투표자들은 투표율에 반비례해서 토큰 잠금 기간이 늘어나지. 편집 제안에 대한 보상이 없더라도(찬성 쪽에 표를 던지지 않았다고 해도) 다수에 속할 경우 투표자들은 보상을 받는다는 건가? 이 부분을 좀 더 명확히 할 필요가 있겠네.
벌칙은 다음 계산식에 따라 결정 돼.
(Total Majority BP Votes - Total Minority BP Votes) / (Total BP Votes) = Slashing Ratio
Ex: User has 200 Brain Power and votes “No” using all their BP for an edit proposal. Total votes equal 2000 Brain Power with 1500 BP votes “Yes” and 500 total BP votes “No.” Because the user voted on the minority side, the slashing ratio is calculated as: ((1500) - (500)) / (2000) = (.5) then multiplied by (21 days) to get the increased lock-up time.
The 200 IQ that generated the 200 BP is locked up for an additional 10.5 days. Note: The more contentious the voting, the less the penalty is for voting in the minority.
다수의 투표수에서 소수의 투표수를 빼고, 전체 투표수로 나누면 벌칙 비율이 나오겠지. 여기에 예치 기간인 21일을 곱하면 추가적인 잠금 기간이 나오지.
*예를 들어 다수의 브레인파워가 1500이고, 소수의 브레인파워가 500이면, 벌칙 비율은 (1500-500)/2000으로 0.5가 되지. 0.5에 21을 곱하면 10.5의 추가적인 잠금 기간이 나오지.
Identity, Reputation, and Account Histories
It is possible to leverage upcoming on-chain identification and reputation systems to incorporate into the validation algorithm and edit approval process such that previous edit histories and identities of editors can be measured in the consensus process. Such identity systems could include uPort or native EOS.IO user ID/reputation systems. Since edit proposals (and their approval/disapproval) are already stored on-chain, this user history can be incorporated into new updates to the validation algorithm coupled with the identification/credentials of the user.
어떤 계정이 어떤 편집 제안을 했고, 제안에 대한 결과가 어떠했는지(승인/불승인)는 블록체인에 저장돼. 이러한 이력을 사용하면 검증 알고리즘에 사용자 평판을 결합할 수도 있을거야.
Delegating Votes
Users who do not wish to personally vote using their BP can delegate their BP to another entity or “pool” for consensus voting. Pools will be operated by the community and vote on behalf of their users according to transparent principles published in a constitution, wiki, or similar document. This could form a secondary market for the price of BP if there is sufficient demand similar to how secondary markets are likely to form over EOS.IO bandwidth, RAM, and storage. Additionally, this could allow for passive earning of IQ tokens if delegates pass back some amount of the IQ earned by curating content to the original delegator.
직접 투표하지 않고 브레인파워를 위임하는 방법도 지원하겠다는 거지.
Building a delegate layer on top of the base voting protocol would allow a market to form over article narratives as “thought leaders” pledge curation ideals they would follow should they be delegated votes. For example, an anti-censorship staking pool could state that they will vote in favor of any edit that adequately cites its sources regardless of the specifics of the content. Users who believe in this vision for the encyclopedia network could delegate their votes to the staking pool.
위임한다는 것은 내 대신 권리를 행사할 대표를 뽑는 거잖아. 대표 후보는 공약을 가지고 있을거고. 뜻이 맞는 사람들과 함께 할 수 있는 방법이 되겠지.
민감한 주제 영역을 잘 찾아 공약을 만드는 후보들이 있겠군. 이런 영역에서는 편집 전쟁이 일어날 가능성이 상당히 높겠군.
Staking by Article or Topic
It is possible to explore per article or per topic staking such that staking IQ tokens to a specified subsection of the network’s content gives the staker more BP authority over such article/topic but only allows them to partake in voting for that specified article/topic. The validation algorithm which computes BP votes would need to check for the type of stake (general vs. per article/topic) and weight the vote accordingly. This feature would allow users to “own” a certain jurisdictional authority over certain topics proportional to their stake in that area of the network’s content.
특정 글이나 주제에만 투표할 수 있도록 설정할 수도 있게 하겠다는거지. 검증 알고리즘은 이 부분을 체크해야 겠지. 이 기능은 사용자에게 지분만큼 특정 글이나 주제에 대한 관할권을 "소유"하도록 해 주지.