区块链技术

根据例子学习Solidity-Solidity官方文档(3)

拟墨画扇 提交于 2021-01-12 18:07:31
写在前面:HiBlock区块链社区成立了翻译小组(以太坊中文社区),翻译区块链相关的技术文档及资料,本文为 Solidity官方文档翻译的第三部分《根据例子学习Solidity 》,特发布出来 邀请solidity爱好者、开发者做公开的审校 ,您可以添加微信baobaotalk_com,验证输入“solidity”,然后将您的意见和建议发送给我们,也可以在文末“留言”区留言,有效的建议我们会采纳及合并进下一版本,同时将送一份小礼物给您以示感谢。 1 投 票 以下的合约相当复杂,但展示了很多Solidity的功能。它实现了一个投票合约。 当然,电子投票的主要问题是如何将投票权分配给正确的人员以及如何防止被操纵。 我们不会在这里解决所有的问题,但至少我们会展示如何进行委托投票,同时,计票又是 自动和完全透明的 。 我们的想法是为每个(投票)表决创建一份合约,为每个选项提供简称。 然后作为合约的创造者——即主席,将给予每个独立的地址以投票权。 地址后面的人可以选择自己投票,或者委托给他们信任的人来投票。 在投票时间结束时,winningProposal() 将返回获得最多投票的提案。 pragma solidity ^0.4.16; /// @title 委托投票 contract Ballot { * // 这里声明了一个新的复合类型用于稍后的变量* * // 它用来表示一个选民* *

TrueBit白皮书解读

[亡魂溺海] 提交于 2021-01-03 16:24:43
以太坊可以被描述为一个使用区块链的分布式全球计算机。它允许开发者把代码上传到区块链中,矿工共同执行并确保结果的正确性,作为报酬,开发者需要付出一定量的以太币,称为gas。以太坊通过全网验证的办法保证智能合约的正确执行,保证了安全性,作为代价,需要付出大量的算力,驱动这么一台巨型机器,所需gas价值不菲。 TrueBit是区块链链外扩容的方案之一,正如它的口号Fuel your imagination一样,其设计初衷是解决以太坊智能合约的gas限制。 TrueBit基本原理很简单: 用户上传自己所需执行的代码,某个外包商代为执行并赚取佣金,其它人监督代码执行的正确性,以太坊通过智能合约作为终极仲裁,奖善罚恶。造假者会获得经济惩罚,所以在绝大多数情况下,外包商会诚实的执行代码并提供正确的结果,链上节点无需完整验证,从而大大减轻了链上的计算负担,也就节省了用户的gas消耗。 流程如下: 1. 用户(下文称为Task Giver)上传需要执行的代码(下文成为任务),并提供佣金。 2.链外第三方(下文称为Solver)发现这个任务,认为佣金可以接受,执行计算任务并答公示运算结果,同时提供一笔保证金。 3.另外的第三方验证者(下文称为Verifier)重新执行任务,如果发现Solver造假,可以发起挑战,同样需要提供一笔保证金。 4