Author [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] Topic: Approval Voting 同意投票/赞同投票  (Read 1924 times)

0 Members and 1 Guest are viewing this topic.

Offline muse-umum

  • Hero Member
  • *****
  • Posts: 717
  • BitShares everything
    • View Profile
Approval Voting 同意投票/赞同投票
« on: June 25, 2014, 10:25:50 AM »

大家的怒气消了一点没?我再来转移大家的注意力吧,来看看DPOS中投票方式的改进:Approval Voting,中文叫同意投票/赞同投票,三俗称AV。

维基百科中对AV的定义:
中文 http://zh.wikipedia.org/zh/%E5%90%8C%E6%84%8F%E6%8A%95%E7%A5%A8
英文 http://en.wikipedia.org/wiki/Approval_voting

英文版的讨论:
https://bitsharestalk.org/index.php?topic=4009.msg67618#msg67618
https://bitsharestalk.org/index.php?topic=5164.0
https://bitsharestalk.org/index.php?topic=5205.0

参与测试的朋友应该知道之前的投票大概是这样的:你在钱包里选择受托人或候选人(delegate/candidate),给予信任(trust level >0)或者不信任(trust level<0),当然不选择也可以(trust level =0),然后在转账的时候,你的赞成票(vote for)或反对票(vote against)就会投出去他(给自己转账或者给别人转账都是投票的过程,其思想就是需要用股份/权益(Stake)来表达你的意见,这其实很好理解,POS嘛)。经过对赞成票和反对票的计算后,得分排名在前101的受托人才有出块的权力。这个过程有人会出局,有人会入局。

这个投票方法的弊端:
某个受托人作恶被逮到之后,几乎只有1个办法能把他赶出局,那就是靠投反对票来把他赶出top 101。问题一,大部分人是不会整天开着客户端来投票的(lazy voters),只有要转账时才会打开客户端,很难保证大部分人能一起联合起来投反对票;问题二,作恶者被赶出局之后,他可以通过注册新的受托人继续作恶,我们又要投反对票了,这样子会变成无穷无尽的打地鼠游戏(whack-a-mole game)。

Agent86提出了Approval Voting这种投票方式,经过他和toast的努力游说,BM接受了这种投票方式。它是这样的:
对于某个受托人你只有选择信任(trust level >0),或者不选择(trust level =0),而没有不信任这一选项, 也就是说没有反对票了。得赞成票数排名在前101的受托人有出块的权力。这样子的投票方式可以规避上面提到的两个问题,因为你对你所信任的受托人投了赞成票,实质上相当于对其他所有的受托人投了‘反对票’; 在任何时候你只需要关心你所信任的受托人,如果你觉得你信任的某个受托人在干坏事,很简单,不信任他并叫别人也这么做就可以了。

目前的测试版本里已经实施了这种投票方法,如果你信任了4个受托人,当你转账的时候就会把你的‘票’投给这4个人之中的某几个(应该是1--3个)。选择这几个人是随机的过程,你可以选择一直用某个随机组合(这样子投的话,别人可以通过对投票的分析知道某几个地址是属于同一个人的,匿名性有所降低),或者每次投票都用不同的组合。每次最多只能给33个受托人投票。

Edit:在dry run 6里,这个数字改变了,每次最多可以投给101个人。

大家觉得这样子的投票方法如何?

P.S 拜托大家,我希望这个帖子纯粹一点,就单单讨论这个话题,不要扯到其他的,例如“BM又乱想了,一天一个想法” “能不能先做出1个产品再说?”之类的。谢谢!
感谢cgafeng帮助我理解这种投票方法。



« Last Edit: June 26, 2014, 05:35:29 AM by heyD »

Offline h99t1

  • Full Member
  • ***
  • Posts: 66
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #1 on: June 25, 2014, 10:35:05 AM »
似乎这样更合理!!

Offline zhao150

  • Hero Member
  • *****
  • Posts: 606
  • 老子早就不想当代表了
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #2 on: June 25, 2014, 10:50:08 AM »
Approval Voting这种投票方式好,想当代表搞了一天 还是没搞定
老子早就不想当代表了

Offline metalallen

  • Sr. Member
  • ****
  • Posts: 262
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #3 on: June 25, 2014, 10:51:47 AM »
AV这种方式显然更合理一些。
随着时间的推移,101名受托人都会是稳定出块且不可能作恶的人,对于网络的稳定和安全是很有好处的。
但是,也需考虑到负面因素:1、你信任的受托人不一定是稳定出块的人,也许只是因为你投给了你的朋友,这样很可能会出现”买票“行为;2、受托人一旦被多数人持续肯定,那么就意味着他需”永远“开动服务器出块,这等于变相绑架了受托人的选择权。建议在客户端给受托人留有”quit“选项。
浮壹白的微博:http://weibo.com/u/2279693077
BTSX Account:metalallen

Offline Overthetop

Re: Approval Voting 同意投票/赞同投票
« Reply #4 on: June 25, 2014, 11:24:46 AM »
支持新方案,更加简单易行。

而且,这样的方案会让“行善”的 受托人更加重视自己信誉的积累,而想“作恶”的受托人他“干坏事儿”的门槛提高了。

个人微博账号: Overthetop_万里晴空
“块链创新与创业”交流群: 330378613

Offline urbanpauper

  • Full Member
  • ***
  • Posts: 112
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #5 on: June 25, 2014, 11:30:28 AM »
似乎很完美了。
btsx: urbanpauper

Offline Yao

  • Sr. Member
  • ****
  • Posts: 470
  • QQ/WeChat(微信):664349247
    • View Profile
  • BTS: yao
  • Witness: witness.yao
  • GitHub: imYao
Re: Approval Voting 同意投票/赞同投票
« Reply #6 on: June 25, 2014, 11:37:05 AM »
大家的怒气消了一点没?我再来转移大家的注意力吧,来看看DPOS中投票方式的改进:Approval Voting,中文叫同意投票/赞同投票,三俗称AV。

维基百科中对AV的定义:
中文 http://zh.wikipedia.org/zh/%E5%90%8C%E6%84%8F%E6%8A%95%E7%A5%A8
英文 http://en.wikipedia.org/wiki/Approval_voting

英文版的讨论:
https://bitsharestalk.org/index.php?topic=4009.msg67618#msg67618
https://bitsharestalk.org/index.php?topic=5164.0
https://bitsharestalk.org/index.php?topic=5205.0

参与测试的朋友应该知道之前的投票大概是这样的:你在钱包里选择受托人或候选人(delegate/candidate),给予信任(trust level >0)或者不信任(trust level<0),当然不选择也可以(trust level =0),然后在转账的时候,你的赞成票(vote for)或反对票(vote against)就会投出去他(给自己转账或者给别人转账都是投票的过程,其思想就是需要用股份/权益(Stake)来表达你的意见,这其实很好理解,POS嘛)。经过对赞成票和反对票的计算后,得分排名在前101的受托人才有出块的权力。这个过程有人会出局,有人会入局。

这个投票方法的弊端:
某个受托人作恶被逮到之后,几乎只有1个办法能把他赶出局,那就是靠投反对票来把他赶出top 101。问题一,大部分人是不会整天开着客户端来投票的(lazy voters),只有要转账时才会打开客户端,很难保证大部分人能一起联合起来投反对票;问题二,作恶者被赶出局之后,他可以通过注册新的受托人继续作恶,我们又要投反对票了,这样子会变成无穷无尽的打地鼠游戏(whack-a-mole game)。

Agent86提出了Approval Voting这种投票方式,经过他和toast的努力游说,BM接受了这种投票方式。它是这样的:
对于某个受托人你只有选择信任(trust level >0),或者不选择(trust level =0),而没有不信任这一选项, 也就是说没有反对票了。得赞成票数排名在前101的受托人有出块的权力。这样子的投票方式可以规避上面提到的两个问题,因为你对你所信任的受托人投了赞成票,实质上相当于对其他所有的受托人投了‘反对票’; 在任何时候你只需要关心你所信任的受托人,如果你觉得你信任的某个受托人在干坏事,很简单,不信任他并叫别人也这么做就可以了。

目前的测试版本里已经实施了这种投票方法,如果你信任了4个受托人,当你转账的时候就会把你的‘票’投给这4个人之中的某几个(应该是1--3个)。选择这几个人是随机的过程,你可以选择一直用某个随机组合(这样子投的话,别人可以通过对投票的分析知道某几个地址是属于同一个人的,匿名性有所降低),或者每次投票都用不同的组合。每次最多只能给33个受托人投票。

大家觉得这样子的投票方法如何?

P.S 拜托大家,我希望这个帖子纯粹一点,就单单讨论这个话题,不要扯到其他的,例如“BM又乱想了,一天一个想法” “能不能先做出1个产品再说?”之类的。谢谢!
感谢cgafeng帮助我理解这种投票方法。


+5%
测试-改进-测试-改进-……
相信经过否定和自我否定之后的 Bitshares X 会越来越完美!
Keyhotee Founder, PTSer, AGSer
BTS witness: witness.yao
BTS Proxy: yao

Offline 当年很厉害

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #7 on: June 25, 2014, 11:43:50 AM »
都好 8)
BTS粉里有SB!

Offline freedom

  • Sr. Member
  • ****
  • Posts: 295
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #8 on: June 25, 2014, 12:12:29 PM »
不懂,如果排名头几名的突然反水作恶,或者被攻击,怎么及时把他们换下来?

Offline gyhy

  • Hero Member
  • *****
  • Posts: 851
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #9 on: June 25, 2014, 01:12:34 PM »
不懂,如果排名头几名的突然反水作恶,或者被攻击,怎么及时把他们换下来?
所以,还是投认识的,靠谱的代表

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2850
  • 丑,实在是太丑了 !
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #10 on: June 25, 2014, 01:27:10 PM »
楼主辛苦 :P
MUSE witness:mygoodfriend     vote for me

Offline ripplexiaoshan

  • Moderator
  • Hero Member
  • *****
  • Posts: 2043
    • View Profile
  • BTS: xiaoshan
Re: Approval Voting 同意投票/赞同投票
« Reply #11 on: June 25, 2014, 02:14:31 PM »
 理念不错,现在就缺发布win版钱包,然后大规模测试了。


Sent from my iPad using Tapatalk
BTS ID:xiaoshan

Offline muse-umum

  • Hero Member
  • *****
  • Posts: 717
  • BitShares everything
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #12 on: June 25, 2014, 02:45:39 PM »
但是,也需考虑到负面因素:1、你信任的受托人不一定是稳定出块的人,也许只是因为你投给了你的朋友,这样很可能会出现”买票“行为;2、受托人一旦被多数人持续肯定,那么就意味着他需”永远“开动服务器出块,这等于变相绑架了受托人的选择权。建议在客户端给受托人留有”quit“选项。

1. 这种行为是肯定会发生的,但慢慢地大家就会发现选择表现好的人才能最大程度保障自己的利益。2. 我不觉得有绑架这一说。受托人要退出时关掉客户端不出块就可以了,给他投了票的人自然会取消对他的信任。但如果要退出的话一般都会在社区上先打个招呼吧。

不懂,如果排名头几名的突然反水作恶,或者被攻击,怎么及时把他们换下来?

取消对他们的信任即可,之后你的票就再不会投给他们了,大家都这么做的话他们很快就会被淘汰。除非他们拥有大部分投票权,这就涉及到DPOS攻击的问题了。

Offline Nimrod

  • Full Member
  • ***
  • Posts: 133
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #13 on: June 25, 2014, 03:17:29 PM »
泼个冷水,如此复杂的记账系统,潜在漏洞攻击的可能会大到可怕,攻击成本也会比目前所有的记账方式(POS POW 透明锻造)都低。

Offline Nimrod

  • Full Member
  • ***
  • Posts: 133
    • View Profile
Re: Approval Voting 同意投票/赞同投票
« Reply #14 on: June 25, 2014, 03:34:41 PM »
这样的话,如果一个拥有超过1%币的人是否永远无法被踢出(就算它做恶)?因为只要自己投自己就能确保在前100名,如何踢出这类代表?


Sent from my iPhone using Tapatalk

 

Google+