DPOS system for Steem ?

in #kr7 years ago (edited)


Img src

DPOS 의 특징과 장점을 잘 설명한 글이 있습니다.
EOS 도 DPOS 를 사용한다고 하니, DPOS 에 대한 관심이 더 많아질 것 같군요.

https://steemit.com/eos/@iang/seeking-consensus-on-consensus-dpos-or-delegated-proof-of-stake-and-the-two-generals-problem

이글에 대한 댓글로 DPOS 에 대한 저의 댓글을 달았습니다. 글 내용이 길어져서 한글로 따로 올려 봅니다.
DPOS 에 대한 일반적인 내용이라기 보다는, 주로 스팀에서 사용된 DPOS 룰에 대한 것입니다.

===========================

DPOS 합의 메카니즘의 키 포인트는 어떻게 블록을 생산하는 대표자(또는 증인)을 선출하는가이다. 본문의 저자는 이 메카니즘을 "오픈 커뮤니티 투표"로 묘사했지만, 이 투표를 어떻게 조직하는냐에 따라 매우 다른 거버닝 구조가 나올 수 있다.

The key point in DPOS consensus mechanism is how to elect the representatives(or witness) producing the blocks. You described the mechanism as "open community poll", but how to organize the poll can result in a very different governing structure.

예를 들어, 스팀은 20명의 증인과 한명의 타임 쉐어링 증인이 있는데, 각 쉐어당 다른 증인들에게 30 번을 투표할 수가 있다. 재미있는 부분은 왜 각 쉐어가 30번의 투표권을 가져야만 하는가이다.

For example, Steem has 20 witnesses plus 1 time-sharing witness, and each share can vote 30 times on different witnesses. The interesting part is why each share should have 30 times voting chances.

이러한 규칙하에서는, 증인이 되기 위해서 반드시 다수의 "커뮤니티의 지지"에 의존할 필요가 없다. 대신 최상의 10명 또는 20명 정도 고래들의 상호투표 구조가 가장 중요한 결정력을 가지게 된다. 20% 의 투표를 받으면, 증인자리를 유지하는 것은 매우 안전하다고 볼 수 있는데, 이 정도의 투표를 받기 위해서, 최소 2% 이상의 지분율을 가진 다른 10명 정도의 고래의 동의만을 받아도 된다. 나머지 커뮤니티 전체의 투표를 전혀 고려할 필요가 없다. 그렇기 때문에 최상 고래들이 상호 교차 투표를 하기 위한 협약을 맺고, 서로 배반하지 않기로 합의하는 것은 자연스러운 일이 될 수 있다. 반드시 하나의 파워 블럭만이 존재할 필요는 없다. 내부 멤버들에게 주로 투표하는 2-3개의 파워블럭이 생길 수도 있다. 만일 멤버 하나가 배반을 하면, 이 멤버를 배제하는 것은 매우 쉬운 일이 된다.

Under this rule, to become a witness does not necessarily depend on the majority of "community support". Instead, cross-voting structure among top 10 or 20 whales becomes the most important decision factor. If you get 20% voting, it is pretty safe to maintain the witness position and to get that amount of voting, you need just 10 other whales supports with at least 2% of the total Steem shares. You don't need to worry about all other community members' voting at all. So for the top whales, it is very "reasonable" to make agreements to do cross-voting each other and not to "betray" each other. There may not be a just one power block, there can be two or three different power groups voting internal members mostly. If one member betrays, it is very easy to pull down his seat.

만일 시스템이 쉐어당 오직 1번의 증인 투표권만을 부여한다면, 이런 식의 교차투표는 불가능해진다. 대형고래가 자신의 지분을 분할해 몇개의 증인 자리를 차지할 수 있을지는 모르겠지만, 50% 이상의 지분을 가지지 않고서 다수의 증인 자리를 차지 하기는 매우 어려울 것이다.

If the system allows only one voting chance per share, this kind of cross-voting is impossible. Maybe one big shareholder can divide up his shares to multiple accounts and can occupy multiple witness seats, but it is very difficult to hold more than several unless he has more than 50% of the total shares.

전체 증인수가 작고(예를 들어 100명이하), 쉐어당 여러번의 증인 투표권을 부여하게 되면 최상의 고래들이 협약해서 자신들의 (수익이 매우 좋기도 한) 지위의 유지를 목표로 하는 파워블럭을 만들기가 쉬워진다.

When the number of representatives(or witness) is small (such as less than 100), and having multiple voting chances per share, it is easy for the top whales to collude to make a power block whose main goal is to maintain their prestige (and very profitable) positions.

이러한 방식의 DPOS 투표 시스템은, 제한된 수의 기존의 파워 플레이어들이 이미 있는, 예를 들어 대기업들간의 컨소리움 체인에는 별 문제가 없을 수는 있지만, 퍼블릭 체인, 특히 스팀과 같은 컨텐츠 네트워크 체인 (여기서는 증인이 어떤 포스팅이 좋은지 나쁜지 까지도 결정할 수 영향력이 있다)에는 이상적이지 않다. 이 문제에 대해서는 이전에 포스팅한 글이 있다.
https://steemit.com/steemit/@atomrigs/net-neutrality-and-curation-rewards
Korean
https://steemit.com/kr/@atomrigs/net-neutrality-curation-rewards

This kind of DPOS poll system may be okay for a consortium chain with a limited number of established pre-existing power players such as a big enterprise consortium network, but not idealistic for a public chain, in particular for a public contents network where those witnesses can decide which content is good or bad.
Regarding this issue, I wrote a post several months ago,
https://steemit.com/steemit/@atomrigs/net-neutrality-and-curation-rewards

만일 내가 다시 스팀 시스템을 만든다면 다음과 같이 셋팅하고 싶다.

  • 최소한 100개의 풀타임 노드
  • 각 쉐어당 한번의 증인 투표권
  • 증인은 큐레이션 보팅을 할 수 없다.
  • 달러기준 증인의 봉급의 상한성이 정해져 있어야 한다.

If I have a chance to design a new Steem system, I would do these things;

  • At least 100 full-time witness nodes
  • Only one witness vote chance per share
  • Witness should have no curation voting power
  • Witness rewards in terms of dollar amount should be capped.
Sort:  

제가 스티밋을 하면서 가장 문제라고 생각했던 부분에 대한 글을 올리셨네요.
저는 기술적인 부분을 몰랐는데 자세히 알려주셔서 감사합니다
무엇보다 증인의 활동을 모니터링하고 보고를 하도록 해야 한다고 생각합니다
앞으로 스팀파워가 분산되면 각각의 계정이 투표를 잘 해야하는 것이라고 생각합니다.
마치 민주주의 국가에서 국회의원 투표하는 것과 같지요.
각각이 직접 증인이 어떤 사람인가를 분명히 알고 투표하지 않으면 지금 우리가 겪고 있는 엉터리 국회처럼 될거 같다고 생각합니다

좋은 의견이십니다.

저도 동의하는 부분입니다. 하지만 100명은 조금 많다고 생각되기도 합니다. DPOS는 각 증인에 대한 모니터링과 이상한 행동을 하는 증인을 바로 떨궈낼 수 있는지 여부가 중요한데요, 100명이 되면 모니터링과 증인퇴출이 쉽지가 않습니다. 30-50명 정도가 개인적으로는 적당해 보이네요.

그리고 1번 투표보다는 5번 정도가 좋지 않나 싶습니다. 30회 투표의 문제는 각 개인이 30명의 증인을 모두 모니터링하는게 쉽지 않다는 것입니다. 1명은 선택의 폭을 너무 좁히는 것 같고요.. 5명 정도를 하면 어느 정도 밸런스가 맞지 않나 싶습니다.

좋은 의견이십니다.

계속 개선하다보면 보다 바람직한 구조가 정착되지 않을까 싶습니다.

증인수를 네트워크 사이즈 또는 마켓캡에 연동해서 상향시키는 것도 방법일 것 같습니다. 지금은 50명 정도도 나쁘지 않아 보이네요. 증인투표는 역시 1회에서 3회 정도가 적절하다고 봅니다. 하지만 만일 증인그룹을 세그먼트로 분리한다면, 여러차례의 투표도 의미가 있을 것 같아요. 예를 들어 개발자 그룹, 마켓팅 그룹, 국가별 지역그룹 등 증인그룹을 나누어서 각각의 그룹에 대해서는 투표권을 행사하는 것이지요. 국회 의석 배분에 있어서 직능 또는 연령별 안배를 두는 유럽식 의회 개념처럼요.
증인 투표의 요체는 교차투표를 해서 권력을 유지하는 파워블럭의 형성을 가능한 막아야 기득권 유지를 위한 정책이 아닌 전체 네트워크의 이해를 대변하는 의사결정이 쉬워진다는데 있는 것 같습니다.

잘보고 갑니다~^^

감사합니다.

Your ideas sound awesome! Thanks for sharing this post, @atomrigs!
Upvoted & Followed you as well!

Thank you for your upvote, I followed you too.

멋진 아이디어입니다

세부적인 셋팅은 여러가지 모델이 가능할 것 같습니다.

어떻게 돌아가는지 전~혀 몰랐던 부분이네요
쉽고 자세한 설명 감사드립니다
제가 제대로 공부하지 않은 것도 있지만
스팀이 지향하는 바를 생각한다면 이런부분을 초보들이
알기가 힘들다는 점은 별로 좋지 않다고 보네요

단순 명쾌한 시스템이 가장 좋은 시스템이라고 생각합니다.

역시 안목이 남다르십니다.
제 나름대로 DPOS가 스팀과 궁합이 맞나에 대한 의문은 있었습니다.
좋은 참고자료가 되었습니다.
이렇게 쉽고 자세하게 피력해주시니 저도 한층 업그레이드 된거 같습니다.

DPOS 가 빠르고 효율적이기는 한데, 용도에 맞는 대표를 뽑는게 쉽지 않아 보입니다.

좋은 의견 감사합니다

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63281.14
ETH 2674.11
USDT 1.00
SBD 2.79