Augur:我们为什么选择以太坊?

当决定创建Augur时,我们所面临的设计挑战之一是:我们应该使用哪个工具建立Augur?

许多程序员喜欢从头做起。这样做需要分叉比特币(forking Bitcoin),修改它使它包括所有Augur所需的交易,然后与比特币一起进行联合挖矿。在9月和10月,Jack和我创建一个被称为 Sidecoin的项目。它通过为每个比特币地址复制未花费交易,并将它们放到新区块链的第一个区块中,创建出一条新的区块链。从编程的角度而言,这似乎 一项容易的任务,你需要做的是写一个函数,允许人们证明他们拥有特定地址所对应的比特币,然后允许他们索回自己的比特币。你也需要在第一个区块中存储这些未花费交易。

事实证明,比特币的代码库(Bitcoin’s codebase)真的没写好:如果你修改某一部分,就破坏了其它几个部分。一般而言,一个良好抽象的代码库允许你在不破坏其它部分的情况下修改某些东西,而比特币是紧密耦合的。本应该一周就可以完成的项目最后花费了好几个月才最终搞定。从头做起的效果并不好,特别是当有一个替代方案时更没有必要这样做 了,Netscape就是一个例子。

实现Augur的另一种可能方式是在Counterparty上写Serpent(以太坊的编程语言之一)合约。然而,在Counterparty 上建立Augur有一些问题。他们没有任何支持侧链的明确计划。然而,另一种可能是使用Counterparty“比特币”资产,但是出于监管的考虑,我们不再考虑这一可能。最后一种选择是从我们的合约中发行一种Counterparty资产,然后允许用户在Counterparty上以固定的汇率用比特 币网络上的比特币购买Augur平台上的比特币(译者注:需要理解Counterparty的资产发行方式,才能理解)。我一点也不反对 Counterparty(事实上,我还持有一些Counterparty币),但是这些限制加上它们网络上可怜的存储性能,使得我们没有选择使用Counterparty。

一开始,我真的不喜欢以太坊。它似乎太令人费解和太复杂。他们用不同的编程语言写了不止三个客户端。在以太坊平台上不能使用比特币,另外它有一个通胀的内置货币(不是很好,如果你习惯于持有像比特币这样的东西)。当我深入了解它时,我发现自己错了。同时开发三个客户端是一个好想法,因为它这限制了错误(bug)。比特币的协议有许多错误,如果人们从第一天起就必须跨多个客户端和编程语言进行通信,这些错误就不会存在。我问Vitalik,当侧链发布以后,以太坊是否有意向成为一条侧链,他向我保证只要侧链准备就绪,他会将一支开发团队投入相关开发。开发者在以太坊上也能够利用智能合约创建去中心化交 易所,以太币通胀是好的,因为以太坊不是比特币的竞争对手。以太币没被期望像比特币那样被人们使用:在以太坊网络上,它是一种为计算支付费用的方式。如果它是通胀的,那么计算将变得便宜(这对我们有利)!

所以,当我更加深入了解以太坊时,我发现了它更多的优势,利用以太坊创建Augur是一个正确的选择。有了以太坊,我们不必处理底层网络或者安全问题,这些都是以太坊项目的工作。我们当然仍然需要在我们的合约和协议中考虑安全问题,但是范围小多了。它也比在比特币核心上开发更加容易。我们能够使用像 Serpent或者Solidity这样的编程语言写智能合约,编译成以太坊虚拟机(EVM)操作码(它也比比特币的操作码更加强壮)。最后,在以太坊上创建Augur也允许极为快速的迭代:与需要花费数周或数月时间才能进行小变动不同,我们可以在数天内作出变动并测试变动。这意味着我们能够比其它方式更 快地创建和提高软件,经过足够多的迭代开发以后,我们能够为预测市场创建最好的平台。

本文转载自以太坊爱好者:http://ethfans.org/2015/07/augur%EF%BC%9Awhy-ethereum/作者:Joey Krug译者:少平责编:薄荷凉幼

极客网企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。