精华内容
下载资源
问答
  • COMP的分发计划中,每个以太坊区块都会转出0.5COMP(也就是每天约2880 COMP),但这计划是根据以太坊网络上15秒的期望出块时间制定的,而当前以太坊网络的出块速度为13.1秒,这就导致每天产出的COMP远高于2880...

    社区已向去中心化借贷协议Compound的治理模块中提交治理提案010,该提案共有两个内容:

    1. 调整COMP产出速度,从每个以太坊区块转出0.5 COMP降至转出0.44 COMP。COMP的分发计划中,每个以太坊区块都会转出0.5个COMP(也就是每天约2880个 COMP),但这一计划是根据以太坊网络上15秒的期望出块时间制定的,而当前以太坊网络的出块速度为13.1秒,这就导致每天产出的COMP远高于2880个,约为3297个。通过将每个区块转出的COMP下调至0.44个,可以将每日COMP的产出控制在原计划的2880个左右。

    2. 将抵押BAT、REP、ZRX借出其他资产的系数由10%提高至50%。如果该投票通过,用户可将BAT、REP、ZRX作为抵押物借出其价值最多50%的其他资产。
      原文链接:https://www.tuoluocaijing.cn/kuaixun/detail-123234.html

    展开全文
  • 处理和Ghost协议 1.Ghost协议的引入 为了利于区块链出现分叉后快速合并,不会影响到区块链的共识 ,以太坊引入...以太坊中的时间是15秒,在15秒内这3号区块并没有完全扩散到整个区块链网络中,因此其他没...

    叔块处理和Ghost协议

    1.Ghost协议的引入

    • 为了利于区块链出现分叉后快速合并,不会影响到区块链的共识 ,以太坊引入了Ghost协议

    2.Ghost协议详情

    img

    • 在上图中,假设一个大型矿池A打包了一个黑色的3号区块,并将3号区块flooding发送出去,告知其他矿工3号区块已经被A挖掘出来了。
    • 以太坊中的出快时间是15秒,在15秒内这个3号区块并没有完全扩散到整个区块链网络中,因此其他没有收到这个区块的节点会继续挖掘3号区块。 所以产生了3A-3D。
    • A在正在挖掘的4号区块中添加上了2笔铸币交易(为什么是2笔,因为以太坊规定每个区块最多包含2个对叔父区块的奖励)
    • 将3A和3B的叔块头hash赋值给4区块中头hash中的uncle的位置,同时奖励机制如上图所示。
    • 如果接下来的7个区块没有应用之前产生的叔块,此叔块将作废,没有奖励。

    3.Ghost协议是如何尽快招安分叉区块以组成统一的区块链

    img

    • 值得注意的是,这些叔父区块后面继续挖掘出来的区块不会得到任何奖励,这是为了激励其他区块在发现最长的区块链之后尽快进行合并。

    4.总结

    • 叔块第一处理是招安,进入主链获得奖励,叔块的区块头hash引入到主链的区块头,里面的交易打回交易池重新打包交易。

    • 以太坊区块链中7代及其以内的叔父区块都能得到奖励,超过7代的叔父区块将不会得到奖励,这样是为了避免有些矿工专门在之前的链上制造分叉后坐等被后面的节点招安情况。

    • 以太坊中的出块奖励不会随着区块数量的增多而减少,以太坊中无论何时出块都会获得出块奖励,而比特币中区块的树目超过两千一百万以后就没有出块奖励,此后矿工挖矿的动力来自于交易费了。

    展开全文
  • 以太坊概述

    2021-02-07 21:15:21
    比特币被称为区块链1.0,以太坊被称为区块链2.0,以太坊的设计上针对比特币的运行过程中出现的一些问题进行了一些改进,比如说出块时间,比特币的区块时间是十分钟,以太坊出块时间大幅度降低到了十几秒,而且为了...

    十三、以太坊概述

    比特币和以太坊是两种最主要的加密货币

    比特币被称为区块链1.0,以太坊被称为区块链2.0,以太坊的设计上针对比特币的运行过程中出现的一些问题进行了一些改进,比如说出块时间,比特币的区块时间是十分钟,以太坊的出块时间大幅度降低到了十几秒,而且为了适应这种新的出块时间,以太坊还设计了一套基于Ghost的共识机制。以太坊的另一个改进就是挖矿使用的mining puzzle,比特币的mining puzzle是计算密集型的,比拼的是计算哈希值的算力,这样造成的结果是挖矿设备的专业化,这样跟以前宣扬的去中心化是不符合的,所以以太坊设计的mining puzzle对内存的要求就是很高的,叫mining hard mining puzzle,这样设计的目的是限制了ASIC芯片的使用,管它叫做ASIC resistance,将来以太坊还会有些革命性的改变,用权益证明(proof of stake)来替代工作量证明(proof of work)。

    权益证明:不挖矿,而是按照类似于股票投票的方法决定下一个区块怎么产生。

    除此之外,以太坊还增加了一个重要的功能,对智能合约(smart contract)的支持。

    BitCoin:decentralized currency(去中心化的货币),符号是BTC,叫比特币,最小计量单位是Satoshi,也就是一聪

    decentralized currency:货币本来是应该由政府发行的,货币的价值建立在政府公信力的基础上,然后政府通过一些司法手段来维护货币的正常运行,比特币的出现用技术手段把政府的这些职能给取代了,通过密码学,共识机制,来维护加密货币的体系的正常运行

    比特币成功之后,人们思考了一个问题,如果货币可以去中心化,还有什么是可以去中心化的。

    Ethereum:decentralize contract(去中心化的合约),符号是ETH,它的币通俗地叫做以太,也叫Ether,最小计量单位是Wei。

    decentralize contract:现实生活中,合约的重要性也是应该通过司法手段,通过政府来维护的,比如和人签一个合同,这个合同如果出现纠纷,通过打官司,法院判决,法院先看一些这个合同是谁签的,有没有当事人的合法签名,合同当中如何规定,是谁违反了合同,看看哪一方有错,对于违约方,按照合同中的条款,应该给予什么样的处罚,这就是现实生活中的合同,通过司法手段维护合同的有效性,类似于去中心化的货币,那么我们也能不能也用技术手段那这些司法手段给取代了,这就是以太坊智能合约的设计目的。

    如果合同中的内容是可以通过程序代码来实现出来的,那么就可以把代码放到区块链上,通过区块链的不可篡改性来保证代码的正确运行,当然,不是所有的合同内容都用编程语言来实现,也不是所有的合同条款都是可以被量化的,但是有一些逻辑比较简单,比较清晰的合同是可以写成智能合约的形式的。

    decentralized currency的好处

    跟法币相比,像美元,人民币这些都属于法币。

    应用场景:

    跨国转账,比如说从美国转一笔钱到埃及,用法币是很麻烦的,时间很长,要办很多手续,交易费也贵,如果用比特币转账,就会好很多,这是比特币的一个优势,虽然说比特币每十分钟才出一个区块,有各种各样不是很完美的地方,但是用比特币跨国转账还是比法币要快很多。

    decentralize contract的好处

    现实生活中的合同体系已经运行得很好了,干嘛要搞一个去中心化的合同。

    智能合约也有与比特币类似的应用场景

    如果合同的签署方是来自世界各地的,没有一个统一的司法管辖权,这个时候用司法手段来维护合同的有效性比较困难,就像在网上弄一个众筹,众筹的这些参与方来自全国各地,彼此之间不认识,打官司也不知道到哪儿去打,如果这种情况下,通过事先写好的程序代码来保证每个人都只能按照规则来执行,这是一种比较好的解决方法,就算合同的参与方都在同一个司法管辖权之内的,想通过司法手段来维护合同的执行也是一个比较费时费力的过程,打官司要花好多时间和精力,就算官司赢了,也不一定能拿到钱,还得申请冻结对方资产,申请强制执行之类的。

    所以最好是用技术手段保证合同的参与方从一开始就不能违约。

    智能合约的好处

    智能合约的好处就在于这个代码一旦发布到区块链上,那么区块链的不可篡改性,只能按照代码中制定的规则来执行。

    展开全文
  • 比特币出块时间是平均10分钟,而以太坊约是15秒。 2.奖励。 以太币奖励为5以太币,并且每次出块奖励不减少,大都会后改为了3以太币。比特币是每次减半,第块的是50比特币。之后每块都减半 3.区块记录量。 ...
    想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】
    链客,有问必答!!
    

    1.以太币(Ether)产生规则和比特币有哪些区别?

    1. 出块时间。
      比特币出块时间是平均10分钟,而以太坊约是15秒。
      2.奖励。
      以太币奖励为5以太币,并且每次出块奖励不减少,大都会后改为了3个以太币。比特币是每次减半,第一块的是50个比特币。之后每一块都减半
      3.区块记录量。
      以太币记录量远高于比特币
      4.有叔块(uncle block)奖励。
      因为以太坊的出块时间很短,很容易出现两个节点同时出块的情况,为了使得所有同时出块的节点都可以得到奖励,减少无用矿工。

    2.智能合约是什么?目前应用到什么行业?有什么特点?
    在区块中传递的合约,或者说是传递的字符串,不过不是单纯的字符串和信息,而是一段可执行的脚本,比如说,有触发条件,有交互能力

    应用:第一个成功应用的就是电子猫,发布方一旦发布出去,后面自己都不能修改;之后应用最多的就是电子赌场了,1:公信力好,代码是公开透明的,庄家是不能作弊的(也可以说没有庄家),而且没有中央服务器;2:赌博过程很难被监控被追踪,一旦入局不可逆转,而且金额走向无法追踪

    特点:1、公开透明的策略,任何人都可以检查其代码逻辑可靠性;2、即时与区块链代币支付结合,典型如以太坊。3、去中心化和持续生命力,代码发布后,即便发布方倒闭,解散,其产品依然会在链上运行。
    3.以太坊虚拟机 EVM和JVM有什么差别?JVM能做以太坊虚拟机吗?
    虚拟机都是跨平台的
    以太坊实现了一个叫Ethereum Virtual Machine(EVM)的运行时环境,类似JVM,它的主要工作是执行智能合约的字节码,EVM“位于区块链之上”,而JVM主要是执行目标代码(字节码),内存回收机制好像也不一样。

    可以,银行私有链用JVM,安全机制高。

    4.Solidity编程语言有哪些特点?和Javascript、Python有什么区别?
    以太坊的软件开发语言是其最大特性之一,因为对区块链进行编程是一项首要目标。以太坊具有四种专用语言:Serpent (受Python启发)、 Solidity (受JavaScript 启发)、 Mutan(受Go 启发) 和 LLL (受Lisp 启发),都是为面向合约编程而从底层开始设计的语言。

    Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。
    Solidity是以太坊的首选语言,它内置了Serpent的所有特性,它的语法接近于Javascript,是一种面向对象的语言,这降低了学习门槛,易于被掌握和使用,因为JavaScript是Web开发者的常用语言。因此,Solidity充分利用了现有数以百万程序员已掌握JavaScript这一现状。
    但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些:
    以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。
    由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付,而且超级简单。
    存储是使用网络上的区块链,数据的每一个状态都可以永久存储,所以需要确定变量使用内存,还是区块链。
    运行环境是在去中心化的网络上,会比较强调合约或函数执行的调用的方式。因为原来一个简单的函数调用变为了一个网络上的节点中的代码执行,分布式的感觉。
    最后一个非常大的不同则是它的异常机制,一旦出现异常,所有的执行都将会被回撤,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。

    5.Serpent和Python有什么区别?有什么缺陷?
    Serpent与Python之间的主要区别有:
    Python中的数字类型没有大小限制,Serpent的数字类型则会在2256溢出。例如,在Serpent中计算3(2254)的结果是1,虽然事实上这是一个天文数字。
    Serpent没有Decimal类型。
    Serpent没有list comprehensions (例如[x**2 for x in my_list]这样的表达式),字典(Hash/Map),和其它一些高级特性。
    Serpent没有first-class函数的概念。虽然合约中可以定义函数, 合约也可以调用这些函数,但是在两次函数调用之间变量(除了持久变量)是会丢失的。
    Serpent有一个被称作”持久变量“(persistent storage variables)的概念。
    在Serpent中可以使用extern语句来调用其他合约中定义的函数。

    缺陷: 最近Zeppelin Solution团队发现其编译器有一个严重的bug

    提示:升级Serpent的时候,需要先pip uninstall ethereum-serpent然后python setup.py install。避免使用pip install ethereum-serpent,因为pypi上的包八成已经过时了。

    6.Vyper比Solidity有哪些优势?
    提升以太坊上应用程序的安全性
    谈着之前需要了解以太坊目前需要解决的难题有哪些?未来的需求是什么?
    Vitalik Buterin:目前的挑战主要是技术性问题,大体分为以下三类:
    第一,可扩展性。我们要增加区块链的容量,这一性能主要反映在每秒可处理的原始交易数。目前以太坊每秒钟可处理15笔交易左右,但要满足主流采用,还需要数千倍的提升。
    第二,隐私性。我们需要努力确保在使用区块链应用时不会泄露个人隐私数据。
    第三,安全性。 我们需要在技术上帮助社区最大程度地降低数字资产被盗的风险,私钥遗失、智能合约代码漏洞等风险也要最小化。
    在实用性方面也存在着一些挑战,但相较于核心协议和平台本身,每个单独应用的开发团队对实用性有着更大的影响 。
    但目前我们已经有很多可靠的解决方案来应对以上所有的挑战 。例如,我们有专门的团队在研究状态通道技术,分片技术和Plasma技术来解决可扩展性方面的问题。拜占庭硬分叉已经完成,而且它的加密功能也达到可用状态,但在构建基础设施以及利用它们的方面还有很多细节工作要做。
    安全性分为两个方面。首先,要保证以太坊本身是安全的。这将通过Casper权益证明算法(PoS)得到改进。目前算法已经接近完成,测试网已经运行,而且其他语言的算法实现也已经在编写。 其次,是以太坊上应用程序的安全性。这将通过一系列技术手段来解决,包括以太坊上编程语言的创新,比如Vyper(https://vyper.online),以及形式化验证的改进,和更完善的智能合约开发标准

    7.Transaction 交易技术实现步骤有哪些?
    1.部署一个合约,合约地址为:
    0x2bda4364bb076187f0ef0067a61ccb95d636e383
    2.通过 geth js 交互控制台从 coinbase 账户转 1 个 ether 给合约地址
    查看合约地址中 ether 数量:
    web3.fromWei(web3.eth.getBalance(“0x2bda4364bb076187f0ef0067a61ccb95d636e383”),“ether”) 0
    3.解锁 coinbase 账号
    personal.unlockAccount(eth.coinbase, “account_pwd”, 10000000000)
    4.转账
    eth.sendTransaction({from:eth.coinbase,to:“0x2bda4364bb076187f0ef0067a61ccb95d636e383”,value:web3.toWei(1,“ether”)})
    5.当 geth 中的地址发生交易时,geth 服务的日志(请查看Ethereum 私有链和 web3.js 使用如何设置 geth 日志) 会打印出类似下面这样的日志:
    I1112 11:51:15.338680 eth/api.go:1185] Tx(0xb3515f0245f0f14f2756e45f402a8dd058b387e596ca50fb3ec9213390596c17) to: 0x2bda4364bb076187f0ef0067a61ccb95d636e383
    6.此时说明交易已经发生了,等待被区块链确认状态(pending)
    7.可以开启挖矿 miner.start(1) 来确认这笔交易
    8.确认后关闭挖矿 miner.stop()
    9.此时再查看合约地址上的 ether 数量,你就可以发现增加了一个

    不管什么类型的交易,都包含:
    nonce:发送者发送交易数的计数
    gasPrice:发送者愿意支付执行交易所需的每个gas的Wei数量
    gasLimit:发送者愿意为执行交易支付gas数量的最大值。这个数量被设置之后在任何计算完成之前就会被提前扣掉
    to:接收者的地址。在合约创建交易中,合约账户的地址还没有存在,所以值先空着
    value:从发送者转移到接收者的Wei数量。在合约创建交易中,value作为新建合约账户的开始余额
    v,r,s:用于产生标识交易发生着的签名
    init(只有在合约创建交易中存在):用来初始化新合约账户的EVM代码片段。init值会执行一次,然后就会被丢弃。当init第一次执行的时候,它返回一个账户代码体,也就是永久与合约账户关联的一段代码。
    data(可选域,只有在消息通信中存在):消息通话中的输入数据(也就是参数)。例如,如果智能合约就是一个域名注册服务,那么调用合约可能就会期待输入域例如域名和IP地址

    8.合约能够向其他合约发送消息,那么如何理解这个消息?

    在以太坊状态全局范围内的合约可以与在相同范围内的合约进行通信。他们是通过“消息”或者“内部交易”进行通信的。我们可以认为消息或内部交易类似于交易,不过与交易有着最大的不同点—它们不是由外部拥有账户产生的。相反,他们是被合约产生的。它们是虚拟对象,与交易不同,没有被序列化而且只存在与以太坊执行环境。
    当一个合约发送一个内部交易给另一个合约,存在于接收者合约账户相关联的代码就会被执行

    9.以太坊客户端是钱包吗?目前常用的有哪些?各有什么优缺点?

    1. Mist
      说到以太坊钱包,第一个要说的当然就是Ethereum官方钱包+浏览器 Mist。Mist是一个钱包(全节点钱包通俗的来说就是同步了全部的以太坊区块信息的钱包)。也就是说打开钱包后,电脑会自动同步全部的以太坊区块信息,如果设备和网络的条件过关的情况下,目前(17年9月8日)大概需要半天左右的时间。
      优势:
      安全度高,不需要经过第三方发起交易
      节点未同步完成之前无法查看地址余额
      劣势:
      无法调整Gas Price
      对网络要求高,需要连接节点,才能发起交易

    2. Parity
      原以太坊基金会部分成员,开发的钱包。功能强大,也是一个全节点钱包。 PS:主要掌握这个钱包就行了
      优势:
      安全度高,不需要经过第三方发起交易
      劣势:
      对网络要求高,需要连接节点才能发起交易
      下载地址: http://ethfans.org/wikis/Ethcore-Parity-Mirror

    3. MyEtherWallet
      MyEtherWallet 作为一个轻钱包,上手难道不大,无需下载,在直接在网页上就可以完成所有的操作。在MyEtherWallet上生成的私钥由用户自我保管,平台方并无备份。
      优势:
      方便快捷,连网即可发起交易
      劣势:
      交易时需要上传私钥(使用时认准唯一网址: https://www.myetherwallet.com 谨防钓鱼网站 )

    4. imToken
      移动端钱包,操作简便,容易上手,功能齐全,在imToken上生成的钱包私钥保存在手机本地,平台方并无备份。
      优势:
      移动端钱包,操作界面十分友好,连网即可发起交易
      中国团队,客服好沟通,反应速度快
      劣势:
      未开源
      下载地址: https://token.im/

    5. MetaMask
      MetaMask的钱包属性偏弱,更多的是起到使Chrome浏览器兼容以太坊网络的作用
      优点:
      通过添加钱包插件将Chrome变成兼容以太坊的浏览器
      (公司的狐狸logo很可爱)
      缺点:
      不支持自动显示Erc20代币。(需要用户自己添加代币的智能合约地址)
      下载地址: https://metamask.io/

    6. Legder
      硬件钱包,安全性颇高的钱包,官方提供的软件功能较为局限。可以配合MyEtherWallet使用。
      优点:
      安全性高
      缺点:
      官方软件功能差,无法调整gas limit 和 gas price
      价格贵并且较难买到

    10.Geth是什么?有哪些命令?
    以太坊客户端Geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具。

    命令用法
    geth [选项] 命令 [命令选项] [参数…]
    版本:
    1.7.3-stable
    命令:
    account 管理账户
    attach 启动交互式
    JavaScript环境(连接到节点)
    bug 上报bug Issues
    console 启动交互式JavaScript环境
    copydb 从文件夹创建本地链
    dump Dump(分析)一个特定的块存储
    dumpconfig 显示配置值
    export 导出区块链到文件
    import 导入一个区块链文件
    init 启动并初始化一个新的创世纪块
    js 执行指定的JavaScript文件(多个)
    license 显示许可信息
    makecache 生成ethash验证缓存(用于测试)
    makedag 生成ethash 挖矿DAG(用于测试)
    monitor 监控和可视化节点指标
    removedb 删除区块链和状态数据库
    version 打印版本号
    wallet 管理Ethereum预售钱包
    help,h 显示一个命令或帮助一个命令列表

    11.Parity是什么?有什么命令?
    是以太坊钱包
    这个钱包的特点有几个,一个是它因为是重新写的代码,所以跑起来更快,占用系统的资源更少。第二个特点是它的同步功能做得更好,所以其他钱包很久不能同步的的时候,它还是能够很快同步。第三个特点,它虽然是一个全节点钱包,但是它把那些很早的区块只留下了区块头,其他内容删减了,所以同步好的区块的大小也就几个G,而如果是用以太坊的官方全节点钱包,光区块大概就得有40个G。第四个特点,这个对ICO特别有用,就是它能够设置定时发送交易,能够在到达某个区块数的时候自动发送转账交易。

    12.web3.js是什么?有什么优缺点?
    web3.js是以太坊提供的一个Javascript库,它封装了以太坊的JSON RPC API,提供了一系列与区块链交互的Javascript对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等,其中最重要的就是与智能合约交互的API。
    Web3.js 在 npm 里作为一个节点模块,在 bower 和 component 里作为一个可嵌入的 js 和一个 meteor.js 包。

    优缺点 ?这个我暂时还不是很清楚,先留这里

    13.Gas是什么?在以太坊上有什么作用?和智能合约有什么关系?
    ps:gas可以有效的防止恶意攻击,因为拥有gas的大部分都是以太坊的内部人员。

    智能合约,就是一些代码,运行整个分布式网络中。由于网络中的每一个节点都是一个全节点。这样的好处是容错性强,坏处是效率低,消耗资源与时间(译者注:原来只在一个节点执行一次就行,现在所有节点中每一个,都要执行一模一样的运算)。因为执行计算要花钱,而要执行的运算量与代码直接相关。所以,每个在网络运行的底层操作都需要一定量的gas。gas只是一个名字,它代表的是执行所需要花费的成本(注:由于以太坊是图灵完备的,随便一个死循环就将导致网络不可用,所以引入了gas的概念)。整个分布式网络引入了强制限制,来避免停机问题。因此如果你写一个死循环,当gas耗尽后,网络就会拒绝执行接下来的操作,并且回滚你之前的所有操作。
    gas的价格由市场决定,类似于比特币的交易费机制。如果你的gas价格高,节点则将优先因为利益问题打包你的交易。
    一般来说,在Ethereum中计算和存储东西比在传统环境中做的更为昂贵,但是,Ethereum为您的代码提供了上述我们讨论过的那些好的属性,这可能是一样有价值的。
    一般来说,在以太坊网上读取状态是免费的,只有写入状态是收费的

    在以太坊中一个比较重要的概念就是费用(fees),由以太坊网络上的交易而产生的每一次计算,都会产生费用—没有免费的午餐。这个费用是以称之为”gas”的来支付。
    gas就是用来衡量在一个具体计算中要求的费用单位。gas price就是你愿意在每个gas上花费Ether的数量,以“gwei”进行衡量。“Wei”是Ether的最小单位,1Ether表示10^18Wei. 1gwei是1,000,000,000 Wei。
    对每个交易,发送者设置gas limit和gas price。gas limit和gas price就代表着发送者愿意为执行交易支付的Wei的最大值。
    例如,假设发送者设置gas limit为50,000,gas price为20gwei。这就表示发送者愿意最多支付50,000*20gwei = 1,000,000,000,000,000 Wei = 0.001 Ether来执行此交易。

    记住gas limit代表用户愿意花费在gas上的钱的最大值。如果在他们的账户余额中有足够的Ether来支付这个最大值费用,那么就没问题。在交易结束时任何未使用的gas都会被返回给发送者,以原始费率兑换。

    在发送者没有提供足够的gas来执行交易,那么交易执行就会出现“gas不足”然后被认为是无效的。在这种情况下,交易处理就会被终止以及所有已改变的状态将会被恢复,最后我们就又回到了交易之前的状态—完完全全的之前状态就像这笔交易从来没有发生。因为机器在耗尽gas之前还是为计算做出了努力,
    所以理论上,将不会有任何的gas被返回给发送者。

    这些gas的钱到底去了哪里?发送者在gas上花费的所有钱都发送给了“受益人”地址,通常情况下就是矿工的地址。因为矿工为了计算和验证交易做出了努力,所以矿工接收gas的费用作为奖励。

    通常,发送者愿意支付更高的gas price,矿工从这笔交易总就能获得更多的价值。因此,矿工也就更加愿意选择这笔交易。这样的话,矿工可以自由的选择一笔交易自己愿意验证或忽略。为了引导发送者应该设置gas price为多少,矿工可以选择建议一个最小的gas值他们愿意执行一个交易。
    存储也有费用
    gas不仅仅是用来支付计算这一步的费用,而且也用来支付存储的费用。存储的总费用与所使用的32位字节的最小倍数成比例。
    存储费用有一些比较细微的方面。比如,由于增加了的存储增加了所有节点上的以太坊状态数据库的大小,所以激励保持数据存储量小。为了这个原因,如果一个交易的执行有一步是清除一个存储实体,那么为执行这个操作的费用就会被放弃,并且由于释放存储空间的退款就会被返回给发送者。
    费用的作用是什么?
    以太坊可以运作的一个重要方面就是每个网络执行的操作同时也被全节点所影响。然而,计算的操作在以太坊虚拟机上是非常昂贵的。因此,以太坊智能合约最好是用来执行最简单的任务,比如运行一个简单的业务逻辑或者验证签名和其他密码对象,而不是用于复杂的操作,比如文件存储,电子邮件,或机器学习,这些会给网络造成压力。施加费用防止用户使网络超负荷。
    以太坊是一个图灵完备语言(短而言之,图灵机器就是一个可以模拟任何电脑算法的机器。对于图灵机器不太熟悉的人可以看看这个 和这个 )。这就允许有循环,并使以太坊受到停机问题 的影响,这个问题让你无法确定程序是否无限制的运行。如果没有费用的话,恶意的执行者通过执行一个包含无限循环的交易就可以很容易的让网络瘫痪而不会产生任何反响。因此,费用保护网络不受蓄意攻击。
    你也许会想,“为什么我们还需要为存储付费?”其实就像计算一样,以太坊网络上的存储是整个网络都必须要负担的成本。

    14.etherbase是什么?有什么用?
    为了赚取以太币,你必须有etherbase(或coinbase)地址。这个etherbase默认为你生成的第一个账户。如果你没有etherbase地址,geth –mine就不会开启。

    15.coinbase和etherbase相同吗?
    不同 coinbase是指本地账户,意思是你设置的 etherbase是默认给你生成的

    16.balance(余额)最多可以显示小数点后几位?
    18位

    17.GHOST协议是什么?有什么作用?
    不论什么时候只要多个路径产生了,一个”分叉“就会出现。我们通常都想避免分叉,因为它们会破坏系统,强制人们去选择哪条链是他们相信的链。

    为了确定哪个路径才是最有效的以及防止多条链的产生,以太坊使用了一个叫做“GHOST协议(GHOST protocol.)”的数学机制。
    GHOST = Greedy Heaviest Observed Subtree
    简单来说,GHOST协议就是让我们必须选择一个在其上完成计算最多的路径。一个方法确定路径就是使用最近一个区块(叶子区块)的区块号,区块号代表着当前路径上总的区块数(不包含创世纪区块)。区块号越大,路径就会越长,就说明越多的挖矿算力被消耗在此路径上以达到叶子区块。使用这种推理就可以允许我们赞同当前状态的权威版本。

    18.梅克尔帕特里夏树(MPT:Merkle Patricia Tree)如何散列?作用是什么?
    一种数据结构,它会存储每个帐户的状态(存储键值对关系)。这个树的建立是通过从每个节点开始,然后将节点分成多达16个组,然后散列每个组,然后对散列结果继续散列,直到整个树有一个最后的“根散列”。

    19.Frontier(前沿)是什么?
    「前沿」是以太坊的最初版本, 只有命令行界面,主要使用者是开发者

    20.Homestead(家园)是什么?
    「家园」增加了类似 Windows系统那样的图形界面普通用户也可以方便地体验以太坊的功能

    21.Metropolis(大都会)是什么?
    「大都会」加入了—个像谷歌浏览器那样的浏览器,除了使用方便之外,它还拥有一个强大的应用商店,可以安装插件实现更多功能。第三个版本在2017年年底发布了出来

    22.拜占庭是什么?在以太坊上如何解决怎么问题?
    拜占庭硬分叉在第437万个区块高度发生,时间是2017年10月16日,引入了zk-Snarks 及 抽象账户等。

    23.君士坦丁堡是什么?能够解决什么问题?
    预计在2018年实施, 主要的特性就是平滑处理掉所有由于"拜占庭"所引发的问题,并引入 PoW 和 PoS 的混合链模式。

    24.Serenity(宁静)是什么?
    「宁静」目前还没有确定发布时间,预计它会将前三个版本采用的工作量证明(Pow) 共识机制切换到混合的共识机制

    25.零知识证明是什么?有哪些零知识证明的例子?
    简单说就是,在不透露交易细节的情况下验证了交易记录。零知识证明可以有效保护交易隐私,隐藏交易来源并防止追溯,同时也能保证交易是安全的,因为任何试图修改交易的行为都无法通过验证。

    例子:零知识证明应用最广的就是洗钱和跨境支付。
    1)A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:
    ①A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
    ②B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。
    后面的②方法属于零知识证明。好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。

    2)A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。
    ①B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。
    ②A给出一个随机值,并使用B的公钥对其加密,然后将加密后的数据交给B,B用自己的私钥解密并展示给A,如果与A给出的随机值相同,则证明对方是B。后面的方法属于零知识证明。

    3)有一个缺口环形的长廊,出口和入口距离非常近(在目距之内),但走廊中间某处有一道只能用钥匙打开的门,A要向B证明自己拥有该门的钥匙。采用零知识证明,则B看着A从入口进入走廊,然后又从出口走出走廊,这时B没有得到任何关于这个钥匙的信息,但是完全可以证明A拥有钥匙。

    25.PoS是什么?和POW有什么区别?缺点是什么?
    POS 就是基于拥有的数量和时间获得证明的共识算法,它不像POW注重算力竞争,而是强化了拥有的意义,比如在银行存的钱越多,存的越长 则收益越大

    缺点:POS也存在一些问题,比如马太效应,最后系统决策和收益依然会集中在少数寡头手里,除此之外,当矿工热潮退却后,如何保证有效的工作节点数量来完成运算,也是值得观察的
    26.Casper 的共识算法是什么样的?
    以太坊中PoS协议的实现, 刚开始每100个区块将有一个采用PoS协议挖出

    25.抽象账户是什么?有什么作用?
    在的以太坊有两类账户:即外部账户和合约账户,以太坊正在试图模糊二者的界限,即你可以同时拥有合约账户和外部账户,这种做法本质上就是让用户按照合约账户的格式来定义外部账户。

    26.难度炸弹是什么?有什么作用?
    为了确保以太坊的矿工能加入到新链条中来,开发团队引入了"难度炸弹"机制。它会使难度系数呈指数增加以至于让挖矿变得几乎不可能的。

    27.以太坊硬分叉是什么?能解决什么问题?有什么缺点?
    所谓硬分叉是分叉方约定,在某个区块节点开始,启用新的系统架构继续前进,不再和主链保持一致,但同时继承了该节点前的所有区块。在这个节点之后,双方各自挖各自的矿,各自爆各自的区块,各走各的路。比如:公司有一本对公账本,有一本内部账本,两个账本完全独立

    能解决什么问题:在我看来有两点:1.黑客发起针对The DAO智能合约多个漏洞的攻击,其中也包含了递归调用漏洞,并向一个匿名地址转移了3600万个以太币,导致以太坊选择硬分叉启用新的系统架构;2.很多人为了发行ICO通过以太坊割点韭菜的钱

    缺点:硬分叉不需要主链允许或通过,任何人都可以发起硬分叉,都可以基于自己的理解和判断发起一个新的分支,但对于信仰者来说,每个分叉都是对共识的撕裂,是在破坏共识。共识算法本身就是防范故障或者恶意分叉的,而人为强行分叉显然是算法所不能处理的。

    28.ERC-20是什么?在什么地方会用到?
    代币合约标准,一系列通过以太坊智能合约发布的代币制定了代币发放的通用规则。该标准是目前通过ICO发行代币的基础准则。
    该标准能够确保基于以太坊的代币在整个生态系统中以一种可预测的方式进行,使去中心化应用程序和智能合约可以在整个平台上彼此协作,所有代币都遵循一个固定的安全标准。

    ERC-20 标准是在2015年11月份推出的,使用这种规则的代币,表现出一种通用的和可预测的方式。简单地说,任何 ERC-20 代币都能立即兼容以太坊钱包(几乎所有支持以太币的钱包,包括Jaxx、MEW、imToken等,也支持 erc-20的代币),由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币。这就意味着,在很多情况下,这些代币都是可以立即进行交易的。

    ERC20 是各个代币的标准接口。ERC20 代币仅仅是以太坊代币的子集。为了充分兼容 ERC20,开发者需要将一组特定的函数(接口)集成到他们的智能合约中,以便在高层面能够执行以下操作:
    获得代币总供应量
    获得账户余额
    转让代币
    批准花费代币

    ERC20 让以太坊区块链上的其他智能合约和去中心化应用之间无缝交互。一些具有部分但非所有ERC20标准功能的代币被认为是部分 ERC20兼容,这还要视其具体缺失的功能而定,但总体是它们仍然很容易与外部交互。

    ERC-20标准还有待完善。其中一个障碍是,将令牌直接发送给令牌的智能合同将导致资金损失。这是因为一个令牌的合同只会跟踪和分配资金。例如,当您从钱包中向另一个用户发送令牌时,该钱包将调用令牌的合约来更新数据库。所以如果您试图将令牌直接传输到令牌的合约中,那么由于该令牌的合约无法响应,所以金钱就“丢失”了。

    ERC223要解决的首要问题是什么?
    自从引入ERC20令牌标准以来,几乎所有的基于以太坊的令牌都成功的接受了这个新标准。然而其自身的缺点需要及时解决,这便是ERC223令牌诞生的原因。

    ERC20标准无法通过接收方合同处理传入的交易。这是该令牌存在的最大问题,也是开发者一直希望改进的地方。ERC20令牌无法将令牌发送给一个与这些令牌不兼容的契约,也正因为这样,部分资金存在丢失的风险。

    Reddit上的一篇文章指出,由于被发送到“错误”的合同上,大约价值40万美元的ERC20令牌被困,这对整个以太坊生态系统而言是一个巨大的威胁。幸运的是,ERC223令牌可以解决这一难题,前提是该令牌能够获得批准并被引入。

    ERC223令牌标准将向现有的ERC20标准引入一个新功能,以防止意外转移的发生。ERC223令牌标准可以防止令牌在以太坊网络上丢失。
    假设 ERC223 令牌标准能够取代ERC20成为新的标准,现有令牌的发行方需要做一些艰难的决定。因为,从现实情况来看,不管用何种方式,从ERC20转换到ERC223是不可能的,同样的,所有ERC20令牌都需要在ERC223标准下重新部署。这也意味着任何交易平台的上市都需要更新他们的信息和地址。这是一个艰苦的过程,这也就意味着,在未来很少有现有的令牌被有效地转换为ERC223。

    正如Alex van de Sande在Reddit上指出的那样,“更方便”的过程可能是创建新的令牌,它们是通过持有旧令牌的合同支持的。这可能是大多数项目最合理的选择,但只有时间才能确定哪些选项将被实施

    29.EIPs是什么?比原有旧协议有哪些改进?
    Ethereum Improvement Proposals - 以太坊改进协议
    2017年10月16日下午1点22分,全球市值排名第二的加密货币以太坊执行了第5次硬分叉。这次硬分叉将带来一系列的以太坊改进提案(EIPs)。

    具体而言:硬分叉带来的改变包括以下方面:
    1、增加‘REVERT’操作符,允许处理错误不需要花费掉所有的gas(EIP 140)
    2、现在交易接收方可以包括一个状态字段,用以指出交易成功还是失败(EIP 658)
    3、在alt_bn128 (EIP 196)和配对检查上 (EIP197)增加椭圆曲线和标量乘法,允许ZK-Snarks和其它加密数
    4、支持大数模幂 (EIP 198),实现RSA签名验证和其它加密应用。
    5、支持可变长度返回值 (EIP 211)
    6、增加‘STATICCALL’操作符,允许对其它合约进行非状态改变调用(EIP 214)
    7、修改难度调整公式,将叔块计算在内(EIP100)
    8、冰河期/难度炸弹延期一年,区块奖励从5个以太坊降到3个以太坊 (EIP 649)

    30.Ommer是什么?有什么缺点?
    是一个区块的父区块与当前区块父区块的父区块是相同的。
    由于以太坊区块生产时间(大概15秒左右)比比特币(大概10分钟左右)要快很多。更短的区块生产时间的一个缺点就是:更多的竞争区块会被矿工发现。
    这些竞争区块同样也被称为“孤区块”(也就是被挖出来但是不会被添加到主链上的区块)
    Ommers的目的就是为了帮助奖励矿工纳入这些孤区块,Ommer区块会收到比全区块少一点的奖励。

    31.预言机是什么?有什么作用?
    通过向智能合约提供数据,它现实世界和区块链之间的桥梁

    32.公有链是什么?
    公有链是目前我们熟知的比特币,以太坊,瑞波币这些,每个人都可以参与,每个人都可以在上面进行交易,如果支持智能合约,每个人也都可以发布自己的应用。

    33.联盟链是什么?
    联盟链是指一些愿意彼此实现共信的机构和组织共同组建的,为各自机构提供共识信用和价值传递的平台,这样只要联盟不存在一家独大的情况,还是可以实现共识基础,而且相对来说可能价值更大一些,我其实觉得联盟链是有一些市场机会的。

    34.私有链是什么?
    私有链目前是很多金融机构正在考虑的,在自己的体系内搭建一套区块链系统极速快三源码出售(www.1159880099.com)QQ1159880099,不公开对外服务,但是提供内部的共识网络,解决诸如信用证书,合同管理等问题。但私有链缺乏共识,也需要公权机构背书,与传统中心化相比价值有限,只能说防黑客篡改可能略微有点意义。

    35.测试网络有哪几种?各自在什么情况下使用?如何使用?
    以太坊用来测试功能的网络,比如拜占庭分叉之前先在测试网络(Ropsten)上运行一段时间,稳定后再发布到公有链(正式网络)。
    以太坊测试网络有:
    Olympic测试网络 - 早期的一个测试网络,已不再使用
    Ropsten测试网络 - 使用Pow,和当前的公有链环境一致,2016/11发布。
    Kovan测试网络 - 仅parity钱包支持,使用PoA共识
    Rinkeby测试网络 - 仅parity钱包支持,使用PoA共识

    36.DAO(decentralized autonomous organization)去中心自治组织作用是什么?有什么局限性?
    这是一个组织(就像,一群人),其中,使用代码来保证最终的强制执行,而不是使用传统的法律文件。这群人使用智能合约来做常见组织做的所有的事情,比如在某件事上进行投票,比如决定是否对什么进行投资等等。
    副作用是决策,管理,以及对什么进行投资的结果将会不可改变的存储在区块链上。
    之前slock.it创建了标准的DAO框架来说明这个理念。在这里有对DAO概念的总览,以及如何使用框架来实现一个自己的DAO(注:这个项目由于bug被黑客攻击了)。

    展开全文
  • 以太坊中的Ghost协议

    2019-12-05 14:57:17
    为了确定哪个路径才是最有效的以及防止多条链的产生,以太坊使用了一个...以太坊中将出块时间提升到了15秒,差别很大,因此也会导致一个问题,就是在这15秒内,并不是所有的节点都收到了某一个区块是新区块的信息...
  • 以太坊难度调整算法

    2021-01-08 01:00:35
    比特币每个2016个区块会调整挖矿难度,目的是维持出块时间在10分钟左右,以太坊是每个区块都有可能调整挖矿难度,调整方法比较复杂,也改过很多版本,很多来源出入,包括以太坊黄皮书和实际代码都有冲突,我们遵循以...
  • 以太坊基础概念

    2020-11-03 14:42:53
    1.以太币(Ether)产生规则和比特币有哪些...因为以太坊出块时间很短,很容易出现两节点同时出块的情况,为了使得所有同时出块的节点都可以得到奖励,减少无用矿工。 2.智能合约是什么?目前应用到什么行业?有什
  • 以太坊-GHOST协议

    2018-12-15 14:17:09
    为什么要引入GHOST协议? 在区块链中为了提高交易速度,需要减少出块时间...关于为什么出块时间缩短后,会出现安全性下降和对小矿池不利可以参考《以太坊原理简介》中叔块部分内容。 另外,在以太坊中,区块分叉...
  • 18 以太坊的共识机制

    2021-01-08 04:26:18
    以太坊出块时间降低到十几秒,但是这样也带来了很多问题,较频繁的出现分叉,这对于共识协议来说有什么影响呢? 在比特币中,只有最长合法链的中才是合法链, GHOST协议:假如条区块链没有成为最长合法链,就会...
  • 目的是维持出块时间在十分钟左右,以太坊是每个区块都有可能调整挖矿难度,调整的方法也比较复杂也改过好几个版本,网上的一些资料,像论坛,博客对这些介绍也有很多不一致的地方包括以太坊的黄皮书和实际代码也有...
  • 比特币的出块时间 比特币的区块平均产生时间是10分钟,每个区块的大小限制在1M左右 一个交易有了6个确认,我们就认为这个交易已经确定了,所以一个交易要1小时左右才能保证成功(最快),不过也不是所有的系统都这样...
  • 以太坊挖矿奖励规则

    千次阅读 2018-08-08 15:03:44
    但在以太坊网络中,由于出块时间短会有更多的叔块被挖出来,为了避免这种大量的无用功,以太坊制定了自己的挖矿奖励规则。 挖矿奖励分为三种: 1,区块奖励,每挖出一个区块奖励3eth。 2,叔块奖励,每引用一个叔...
  • 11月21日以太坊官方博客发文称:以太坊网络将按计划在区块高度9,069,000处进行升级,时间预计在2019年12月8日星期日发生。具体升级日期和时间可能会因出块速度有所变化。本次伊斯坦布尔升级要实现的功能包括引入分片...
  • 以太坊核心开发者在电话会议中达成一致,...目前以太坊出块时间,也在被难度炸弹逐步延长。 什么是难度炸弹? 难度炸弹(Difficulty bomb)指的是随着挖矿难度增加,在以太坊快链上挖一个新区块所需的时间会随之...
  • 以太坊官网消息,以太坊网络将在区块高度 9,069,000 进行【伊斯坦布尔】升级,预计升级时间为 2019 年 12 月 8 日,即本周日,确切时间取决于网络的出块情况。 升级筹备数据 Ethernodes.org 提供了支持...
  • 以太坊五之GHOST协议

    2020-02-10 11:19:30
    正在学习区块链,如果我哪里有...这地方在比特币中就句话:最长合法链,但是在以太坊中因为以太币的出块时间只有几十秒,分叉现象特别频繁,这方法就不能用了。这里的标准就是GHOST协议。 5.1叔父区块 比特币...
  • 在创建filter的时候,如果我们把fromBlock和toBlock设置的间隔特别长,比如从第一个块到最新,那么启动程序之后要么会等待很久很久,要么直接抛超时异常。 针对超时异常在可容忍的区块区间之中为了避免异常出现...
  • 以太坊共识DAG笔记

    千次阅读 2018-12-30 21:02:03
    在DAG中,没有区块的概念,他的组成单元是笔笔的交易,每单元记录的是单个用户的交易,这样就省去了打包出块时间。 验证手段则依赖于后一笔交易对前笔交易的验证,换句话说,你要想进行笔交易,就必须要...
  • 我们知道,当我们进行数字货币的交易时,可以通过区块链浏览器了查询自己的交易信息。但是每一条区块链都有...区块链可以简单理解为一个新区按照时间顺序连接到旧的区块上,依次排序。 高度:表示这个区块是这...
  • 区块链实际应用中痛点

    万次阅读 2018-08-09 11:07:21
    区块链的原理就不多说了,想了解的可以直接百度有非常多的答案。...比如比特币区块链大概每10分钟挖出一个区块,而以太坊区块链的出块时间约14秒。那么和应用结合会存在一个什么问题呢?在当前大数...
  • ETH-18 GHOST

    2020-04-19 22:04:18
    对于比特币十分钟的出块时间来说,这个时间足够一个区块传播到其他节点,但即使这样也有可能出现两个矿工同时获得记账权,同时发布区块,这种情况会带来临时性的分叉。对于以太坊来说,因为出块时...
  • 试想一下地球上任何一个角落的人根据自己的喜好,创建属于自己的音乐屋,让有相同喜好的人聚在一起实时听歌、分享、互动是多么有趣的事 - 更多介绍 2020年6月5号添加 ZhongYuanDong (佛山) - Github, 博客 ...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

以太坊一个区块出块时间