二维码

2.7 区块时间 - 数据结构 - 机器学习

1456 人阅读 | 时间:2021年01月15日 01:12
2.7 区块时间 - 数据结构 - 机器学习 #daohang ul li t,.reed .riqi,a.shangg,a.xiatt,a.shangg:hover,a.xiatt:hover,a.shang,a.xiat,a.shang:hover,a.xiat:hover,.reed-pinglun-anniu,span.now-page,#daohangs-around,#caidan-tubiao,#daohangs,#daohangs li,#btnPost{background-color:#D10B04;} .dinglanyou1 h3{border-bottom:3px solid #D10B04;} #dibuer{border-top:2px solid #D10B04;}.cebianlan .rongqi h3{border-bottom:1px solid #D10B04;} #edtSearch{border:1px solid #D10B04;} #daohang .zuo ul li{border-right:1px solid #;} #daohang ul li t a{border-top:1px solid #;border-right:1px solid #D10B04;} #daohang ul li t a:hover{border-right:1px solid #;} #daohang .you ul li a:hover,#daohang .zuo ul li a:hover,.reed-pinglun-anniu:hover{background-color:#;} a:hover,.reed h6 a:hover,#dibuer a:hover,.reed .riqiding,.cebianlan .rongqi li a:hover,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.shu a,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.huifuliuyan a:hover,.reed-biaoti h6 span{color:#D10B04;} .reed .kan a{color:#0A0AF5;}.reed .kan a:hover{color:#D10101;} @media screen and (max-width:1492px){a.shang,a.xiat{background:none;} a.xiat:hover,a.shang:hover{background-color:#f9f9f9;background-image:none;text-decoration:none;}} var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2d748c9763cfc72fb7d1ccab29f0770d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f6d451f3f1be23f3abf240c64c469c1b"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();

当前位置:首页 » 区块链精品文章 » 正文

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646201", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646162", container: s }); })();

2.7 区块时间

1084 人参与  2018年09月18日 09:51  分类 : 区块链精品文章  评论

我们看到的区块难度值公式使用了一个长达10s的阈值,以确保挖出父区块和子区块的时间差在10s和20s之间。但为什么是10~20s,而非其他数值呢?为什么时间差是恒定的,而非难度值是恒定的?

假设有一个恒定的难度值,矿工只需要发现一个随机数使得区块的哈希小于等于该难度值即可。假设该难度值大,且在此情况 下,用户又无法估算用户间发送以太币的时间延迟。如果网络算力不足,计算随机数需要较长时间,那么用户需要等待很长时间来确定交易。有时网络算力充足,可 能很幸运,很快就发现了随机数,用户交易确认就比较快。这类系统延迟不确定的特点自然很难受到用户青睐,因为用户总想知道需要多长时间完成交易,就像我们 从一个银行账户向另一个银行账户汇款,银行会告诉我们在多长时间之内会完成汇款。如果设定的难度值小,它将影响区块链的安全,因为大矿工可以比小矿工更快 挖出区块,网络中最大的矿工就会拥有控制DApp的能力。不可能发现一个可以使网络稳定的恒定难度值,因为网络算力并非恒定值。

现在我们知道了,为什么总是需要有一个相对稳定的生成区块的平均时间(即区块时间)。问题是最合适的平均时间是多长。 它可以短至1s,长至几乎无限多秒。降低难度值可以使平均时间较短,反之增加难度值可以使平均时间较长。但是,平均时间的长短各有什么优缺点呢?在讨论之 前,首先需要知道无效无效块(stale block)是什么。

如果两个矿工用几乎相同的时间挖下一个区块,会发生什么呢?两个区块肯定都是合法的,但是区块链不能包含区块序号相同 的两个区块,而且两个矿工都得不到回报。尽管这是个常见问题,解决方法却很简单,最后难度值较高的区块链将被网络接受。所以最后被忽略的合法区块叫作无效 无效块。

网络中生成的无效无效块总数与生成新区块所需的平均时间成反比。更短的区块生成时间意味着新挖出来的区块向整个网络广 播的时间更短,矿工发现问题解决办法的概率更大,所以当区块向整个网络广播时,其他一些矿工可能也解决了问题并进行了广播,由此产生了无效块。但是如果生 成区块的平均时间长一点,多个矿工能解决问题的概率就小一点,而且即使它们都解决了问题,也很可能存在时间差,在这个时间差里,第一个被解决的区块就可以 进行广播,另一个矿工就可以停止挖那个区块并继续挖下一个区块。如果无效块在网络中经常出现,就会出现大问题;如果仅是偶尔出现,就对网络没有损害。

但是无效块有什么问题呢?它们延迟了交易确认。当两个矿工几乎同时挖一个区块时,它们可能有不同的交易,因此如果交易出现在其中,就不能说交易已经确认了,因为交易中出现的区块可能是无效块。我们应该等待再挖出几个区块。无效块导致平均确认时间不等于生成区块的平均时间。

无效块会影响区块链安全吗?答案是肯定的。我们知道网络安全由网络中矿工的全部算力衡量。当算力增长时,难度值也要增 加,以确保区块不是在平均时间之前生成的。所以更高的难度值意味着更安全的区块链——节点想篡改区块链将需要更多算力,使篡改区块链更困难,因此区块链被 认为是更安全的。当几乎同时挖出两个区块时,我们将把网络分成两部分,在两个不同的区块链上工作,但是其中一个将成为最终区块链。所以在无效块上工作的网 络是在无效块上挖下一个区块,结果是网络算力损失,因为算力用在了没有用的事情上。网络的两个部分很可能用比平均时间更长的时间去挖下一个区块,因为它们 损失了算力。所以,在挖出下一个区块之后,难度值将降低,原因是用于挖区块的时间比平均时间更长。难度值降低会影响整体区块链安全。如果无效块率太高,将 在很大程度上影响区块链安全。

以太坊用ghost协议解决无效块带来的安全问题。以太坊使用这个真实ghost协议的一个修正版本。ghost协议 仅仅把无效块添加到母链上,掩盖了安全问题,由此增加了区块链的整体难度值,因为区块链的整体难度值还包括无效块的难度值之和。但是如何才能在不产生交易 冲突的情况下把无效块添加到母链中呢?事实上,任何区块链都可以接纳零个或者多个无效块。为了激励矿工接纳无效块,矿工接纳无效块将得到回报。此外,发现 无效块的矿工也将得到回报。无效块中的交易不用于计算确认,无效块矿工也不向无效块接纳的交易收取交易费。注意,在以太坊中,无效块称为“叔块 (uncle block)”。

矿工接纳无效块得到的回报计算公式如下。其余回报归侄块(nephew block),即包含孤块(orphan block)的区块:

2.7 区块时间 - 数据结构 - 机器学习

你肯定在奇怪为什么要给无效块矿工回报。即便不给它们任何回报,也不会影响安全。这是因为无效块经常出现在网络中会导 致另一个问题,而这个问题可以通过给无效块矿工回报解决。矿工应当得到一定比例的回报,大致相当于它为网络贡献的算力比例。如果两个不同的矿工几乎同时挖 出一个区块,则算力比较大的矿工挖出的区块更有可能被添加到最终区块链中,因为该矿工挖下一个区块的效率会比较高,所以小矿工将失去回报。如果无效块比例 低,就不是大问题,因为大矿工增加回报的概率不大。但是,如果无效块比例高,就会产生大问题,也就是说,大矿工在网络中最终将得到比它应得的更多的回报。 ghost协议通过回报无效块矿工找到平衡。由于大矿工不拿走全部回报,但是仍比它们应得的多,我们不能对无效块矿工和侄块给予同等回报,而是给得少一 点。前面的公式很好地解决了问题。

ghost协议会限制一个侄块可以指向的无效块总数,这样矿工不会只挖无效块并使区块链生成速度变慢。

所以一旦无效块出现在网络中,它会或多或少地影响网络。无效块出现得越频繁,网络受到的影响越大。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=598

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdPic":"","bdStyle":"0","bdSize":"16"},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"},"selectShare":{"bdContainerClass":null,"bdSelectMiniList":["qzone","tsina","tqq","renren","weixin"]}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646186", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646175", container: s }); })();
搜索

网站分类

标签列表

最近发表

    (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https'){ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else{ bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!

jQuery(document).ready(function($){ /* prepend menu icon */ $('#daohangs-around').prepend('
'); /* toggle nav */ $("#caidan-tubiao").on("click", function(){ $("#daohangs").slideToggle(); $(this).toggleClass("active"); }); });

©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
  • 验证码
◎已有 0 人评论
搜索
作者介绍
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×