SwissBorg系统实现在区块链上举行公投
在SwissBorg的经验领域中,每个代币持有者都有一个投票,整个系统都是围绕着包容性建立的:向人们征求他们的意见,并鼓励他们参与技术决策过程。
为此,我负责创建一个满足以下要求的系统:
· 应用无关。每个人都可以参加他们喜欢的钱包。
· 无双倍投票。代币计数必须在时间或基于特定的块上被冻结。
· 直接ETH分配。每个参与者一旦提交了投票,就会得到一份可用的ETH。
应用程序无关
在智能合约上可以用模糊或奇偶性校验来调用一个函数,但它不是一个用户友好的界面,而不是我信任普通用户成功执行的任务。
所有用户都支持的唯一功能是传递函数。但我们不希望用户实际转让他们的CHSB代币以提交投票。
双重投票问题
如果一个代币=一次投票,投票周期持续超过一个区块,那么就很难确保在投票期间不发送代币,并多次使用作为表决权。考虑以下过程:
· Alice给主题发送她的投票
· Alice将她所有的代币给Bob
· Bob现在可以根据他的代币+Alice的进行投票
直接ETH分布分配
为了奖励参加投票的参与者,每一个 CHSB代币持有者参加投票都将获得了一个比例份额的ETH池被分配给一个特定的投票数。
参与者不应该等待所有其他参与者完成投票,以得到他们的奖励。直接获得直接回报是非常令人满意的。
解决方案:瑞士公投和代币投票
显而易见的解决方案是,两者都创建一个专门的代币投票:RSB。一个易于理解且易于使用的过程:
· RSB代币的初始选票分配给CHSB代币持有人。在用户帐户上每个CHSB对应一个RSB。
· 同时一个ETH池设置来奖励参与者的意见。
· 每个答案会分配一个Ethereum地址,网页上已经公布。
· 当参与者将他们的代币发送到指定的应答地址时,他们会得到发送到用于参与地址的部分奖励。
· 最终投票期间,未使用RSB代币会被销毁,避免累积投票权。
· 如果最终投票结束时奖励池还包含ETH,它既可以保留在那里,也可以添加到下一个问题的奖励金额中,或者分配给参与者。
投票系统的组成部分
该系统由一个 oracle、一组智能合约和一个网页页面组成。网页只会通知用户智能合约的地址。
代币分配
为了分配这些代币,我们使用一个 oracle,它循环通过所有持有CHSB代币和信用 RSB代币的地址。
一旦分配过程完成,只涉及到智能合约。
智能合约重新计票
投票系统是围绕着一个核心的智能合约建立起来的,它把ETH和一个智能合约保存在每个问题上。
为了提交投票,用户只需将RSB发送到所选的地址。一旦投票结束,每个问题的RSB余额决定它的受欢迎程度。
一个网页页面来管理它们
建立一个包含问题的简单网页和可能答案的地址列表,通过常用社交媒体渠道获知社区的新投票情况。
结论
该系统是防篡改的,易于使用的。参与者可以使用智能手机应用程序或桌面浏览器,甚至是命令行来参与,并立即获得奖励。
这是减轻区块链投票问题最简单的过程,因此,第一个将由我们实施,并在2018年初进行第一次投票。
领取专属 10元无门槛券
私享最新 技术干货