LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 区块链民主:面向智能合约开发者的操作指南(三)

区块链民主:面向智能合约开发者的操作指南(三)

2020-06-10 DuoBaaa 来源:区块链网络

每天19:19,多巴和你,不见不散

多巴导读:

当你为某件事投票时,你怎么知道事情会真的完成呢?你怎么知道承诺会兑现呢?在本文中,我将简要介绍区块链如何改变民主。在区块链民主程序下,承诺变成了行动。我并不是说我们可以或应该废除政客,建立一个技术专家政治,但我将展示如何运行一个投票系统,在这个系统中,如果投票通过,提案就会自动生效。

文章分三部分翻译,今天是第三部分。

原文地址:https://hackernoon.com/blockchain-democracy-a-how-to-guide-for-smart-contract-developers-md4532ru

原文作者:@albertocuestacanada

译者:DuoBaaa

(接上一部分)

让一个合约调用另一个合约上的函数的方法要简单得多。到目前为止,很难看出我们为什么要用这种过于复杂的方式来做事情。

继续往下读,现在我们要把这个提议变成民主的。只有在投票成功后,合约才能生效。

一票一投

您可以在HQ20知识库中找到该合约,你可以任意玩味它,但不要将其作为实际用途使用。为了便于理解,我们没有关闭一些漏洞,例如针对Flash贷款攻击的漏洞。

在这个OneTokenOneVote.sol中:

投票是在部署时选择的ERC20合约的代币。

投票意味着使用vote()将代币转移到OneTokenOneVote

如果在任何点OneTokenOneVote持有的比例高于流通中的所有代币的阈值,则建议被通过。

一旦提案通过,它就永远处于通过状态。

选民可以在任何时候取消他们的投票并取回他们的代币,但是如果他们想要提案通过,他们应该在提案通过后再做。

任何人都可以通过调用validate()触发投票计数。如果达到阈值,这将使投票通过。

有几种实现投票的方法。有更安全的投票方式,包括要求达到法定人数。OneTokenOneVote.sol是我们可以想到的最简单的示例,但这足以说明区块链民主的原则。

部署投票后,它接受带有参数编码的targetContract和targetFunction作为建议。如果投票通过,则任何人都可以调用enact()函数来执行提案。

这意味着投票合约包括投票通过时要采取的行动。不可能忽略投票结果。那是在区块链之前不可能做到的一点,想一想吧。

智能合约民主

我们还可以给这个区块链民主的概念提供另一个转折。到目前为止,我们知道如何部署一个合约来执行投票过程,然后执行结果。

我们可以编写一个合约,其中所有函数只有在被投票通过后才能执行。这就是DAO的精神,它比听起来容易。

在库中,我们包含了第三份合约Democlic.sol,我觉得使用它真的很令人兴奋。它允许任何合同对是否执行其任何功能进行表决。

Democratic.sol被设计为被其他合约继承,允许将其中的任何函数标记为可执行的,只有当它们通过了投票。你可以通过使用唯一的建议修改器来做到这一点。

Democratic.sol允许任何人提出提案进行投票。任何人都可以使用propose()函数,其目标函数是用web3.eth.abi.encodeFunctionCall编码的。

所有提案的投票代币都是一样的,从而在MakerDAO中创建一个类似于MKR代币的社区。Democratic.sol将所有投票都实现为基于代币的,但是可以很容易地将其更改为基于帐户的。

所有提案都存储在提案寄存器中,并且只有由同一合同创建的提案才能执行标记为onlyProposal的功能。

如果考虑到这一点,则可以使用Demoric.sol和OneTokenOneVote.sol作为完整民主系统的基础。如果你不觉得那很刺激,我不知道还能告诉你什么。

结论

区块链有潜力以我们一生中从未见过的程度改变民主进程。

使用区块链可以实现不可阻挡的投票,一旦投票通过,任何人都无法避免被制定。随着越来越多的世界可以从区块链访问,民主的力量将会增长。

在本文中,我们展示了如何实现能够触发智能合约执行的投票过程,并对其进行了改进,以生成只能通过民主程序执行功能的智能合约。

这些在区块链生态系统中都不是新的,自从以太坊被构思以来,这些概念就已经被研究和实现了。然而,在这些合约中,我们认为我们提供了易于使用的基础设施,使民主向前迈进了一步。

(全文完)

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

区块链中文字幕组

致力于前沿区块链知识和信息的传播,为中国融入全球区块链世界贡献一份力量。

如果您懂一些技术、懂一些英文,欢迎加入我们,加微信号:w1791520555。

点击查看项目GITHUB,及更多的译文...

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

本文源自hackernoon,有做编辑及删减,如有侵权,请联系译者删除。

译文版权所有,转载需完整注明以上内容

—-

编译者/作者:DuoBaaa

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...