精华内容
下载资源
问答
  • 一个量分别和两个量成正比,怎么推理出和他们乘积成正比? 以前初中物理课,老师经常这么说。 总是有疑问,为什么。但是闪而过。今天搞清楚了。 k 是一个变量, k1是系数 同理 c c1 同上。 等式a z=k1 * k ...

    从一个量分别和两个量成正比,怎么推理出和他们乘积成正比?

    以前初中物理课,老师经常这么说。 总是有疑问,为什么。但是一闪而过。今天搞清楚了。

    k 是一个变量, k1是系数

    同理 c   c1   同上。

    等式a  z=k1 * k     此时 c应该为单位1 

    等式b  z=c1 * c     此时 k应该为单位1 

     

     

     

    当, c, k  也为,1时。 自然的证。(因为z*z = k1c1 1 * 1 . 1开方还是自己)

    事实上等式a 等式b 的系数 k1  ,c1 应该是相等的.(因为,全都是单位1阿。 这个才是重点。 否则两个z 不相等,怎么相乘。但是又怕把人搞混淆了。所以分开写)

     

    则  z* z = k1 c1  c  k 

    ----------------------------- 当  等式a 的c不为单位1时,例如为2.  此时可看作:k1*k保持不变。c翻倍了。那么z也应该翻倍。 所以等式a的公式系数应该变成k1*2. 并且z翻了2倍

    假设等式b k翻了3倍。 那么公式b的系数就应该变成c1*3. 并且z翻了3倍

    当  c,k 也分别为2,3 时。 则等式两边 z 就会相等。

    自然得证。并且系数保持不变。 此时 z* z = k1*2 c1*3  c  k

    完毕。 

    ------------- 将每一种情况,都证明一边, 就得出成比例的关系。

     

    ------------- 将每一种情况,都证明一边, 就得出成比例的关系。

     

    将无数种情况 都证明一边。  完毕。

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

    第二种方法: 假设z=c*k *系数, 那么其中一个量不变。另一个量成正比。 必要性证明成功。

    充分性证明: 反证法:  z 和 c ,k 分别成比例。  假设z 和 c,k 乘积不成比例。

    则  z=系数c*k  + m   这种情况,不能推出z和 c,k分别成比例。 假设失败。

    则  z=系数(c*k )n次方  这种情况,不能推出z和 c,k分别成比例。 假设失败。

    等等。将所有的可能性试一边,都是是失败,推出矛盾。 所以z 和c,k 的乘积,成比例。

    完毕

     

    转载于:https://www.cnblogs.com/delphi-xe5/p/10735158.html

    展开全文
  • 工作证明生态的现状运行原理

    万次阅读 2019-05-14 10:04:27
    工作证明生态的现状和运行原理,Part-1 2019 年是密码学货币的 51% 攻击之年,因为 51% 攻击曾经似乎只是一些市值微不足道的密码学货币面临的问题,然而我们发现如今那些拥有比较高的知名度和市值的密码学货币...

    工作量证明生态的现状和运行原理,Part-1

    1

    2019 年是密码学货币的 51% 攻击之年,因为 51% 攻击曾经似乎只是一些市值微不足道的密码学货币面临的问题,然而我们发现如今那些拥有比较高的知名度和市值的密码学货币也在面临因 51% 攻击而产生的 “双花” 问题,而交易所首当其冲成为这些攻击的受害者。

    随着密码学货币攻击事件日趋频繁和严重,交易所开始采取针对的防御措施来防范风险。通常,提高密码学货币转账的区块确认数可以防御 51% 攻击,然而,攻击已经能够从影响数十个区块扩大到影响上百个区块,通过提高区块确认数来抵御 51% 攻击的有效性已无法保证。

    如果没有重大的协议升级,我们预期攻击事件将会越来越多,甚至可能导致交易所无法正常经营下去。这些 51% 攻击之所以能成功是因为这些被攻击的密码学货币底层的基础协议存在弱点,因此交易所最终在选择和支持新的密码学货币方面也会越来越保守。

    博弈论与风险模型

    2

    许多去中心化的协议都假设至少 51% 的网络协议参与者都是诚实可靠的。比特币之所以成功是因为协议的设计者意识到这样的假设不足以支撑真实世界中去中心化协议的有效运转。在一个匿名且不受监管的互联网世界,每一个网络参与者都扮演着经济主体的角色,即使他们采取和既定的协议规则不相符的“越轨”的行为,也不会有什么后果。与其假设 51% 的协议参与者都诚实可靠,比特币假设超过 51% 的参与者都会按照符合自己经济利益最大化的规则行事。

    比特币开发者假设所有的比特币协议参与者都会积极寻找能够获利的方式方法,即使这种方法违背协议本身规则也在所不惜,(比特币)这种风险模型的假设条件宽松度(相比于假设 51% 参与者诚实可靠的模型)大幅降低,但这种假设也会限制协议设计的灵活性,但却是在开放网络取得成功的必然要求。.

    比特币开发者努力寻求的是激励的相容性,即意味着每一个协议参与者自身的最优决策也就是整个系统的最优决策。当一个协议具有激励相容性时,所有参与的个人可以做到完全利己,因为这样利己的行为对整个系统来说也是有利的。

    比特币能够安全稳定运行,其背后的博弈论理论是复杂而巧妙的。许多尝试模仿比特币协议设计的密码学货币都因为不适当地改变而破坏了这种激励相容性,因此,这些密码学货币并不安全,近期 “双花” 攻击的泛滥很好的向我们展示了一个道理:这个世界并不是所有的事情都像我们想象的那么有序。

    尽管竞争币的设计者在花式改变原本比特币协议的激励协调性,但造成近期 “双花” 攻击频发更重要的一个原因是很多竞争币决定使用更为通用的硬件作为保证区块链安全的手段。当一个挖矿硬件能够挖多种的密码学货币,那么关键的激励协相容性就会被破坏。

    使用多链硬件挖矿模式的密码学货币主要有两类:第一种也是最著名的是抗 ASIC 挖矿的密码学货币,抗 ASIC 挖矿的密码学货币一般都用多链硬件挖矿,支持抵抗 ASIC 挖矿的人认为更低的挖矿门槛,更通用的挖矿设备,将使得算力更加分散和去中心化;第二种使用多链硬件挖矿的密码学货币虽然也是 ASIC 挖矿,却与个别其他密码学货币使用一样的挖矿算法。当多种密码学货币使用一样的挖矿算法时,同样的挖矿硬件(即使是专用挖矿硬件)一样可以将任何一个密码学货币作为目标,对其进行攻击并导致激励相容性被破坏,就像我们看到抗 ASIC 挖矿的密码学货币被攻击的情形那样。

    2017 年以来的变化

    多链硬件挖矿多年来一直是密码学货币领域的讨论热点,然而 51% 攻击是最近才开始频繁出现的,诚然,引起这些攻击发生的一个简单原因是更便捷的工具开始出现,更聪明的攻击者涌现,行业的基础设施越来越完善,行业发展越来越复杂和多样。行业的快速发展给诚实的参与者带来更多好处的同时,也在另一方面方便了攻击者的攻击,使得一些经验丰富但别有用心的人来攻击不安全的密码学货币变得更加容易。

    下面我们来看一些对 51% 攻击非常重要的新生事物,但我相信,即使没有这些,我们依然会看到越来越多高调的 51% 攻击发生在使用多链挖矿设备的密码学货币上。在防御 “双花” 攻击上,多链挖矿设备从根本上来说就是一个不安全的方法。

    算力市场

    算力市场的成熟是导致最近密码学货币攻击事件频发的关键催化剂之一,对于使用多链挖矿设备的密码学货币,知道每个时段挖矿利润最高的密码学货币需要一定的技巧和经验。而算力市场则提供了这么一个市场,让矿机所有者可以把矿机租赁给更有经验的矿工,增加了算力市场所有参与者的利润,创造了一个双赢的局面。然而,算力市场的负面效果在于为攻击者实施攻击提供了一个可以快速租借大量算力的平台。比如在算力市场出现以前,攻击一个全网拥有 10 万个 GPU 挖矿的密码学货币,攻击者或多或少也要拥有 10 万个 GPU,这就要求攻击者必须拥有千万美元的资金量才能发动攻击,攻击门槛很高也就意味着 GPU 挖矿的密码学货币相对安全。但随着算力市场的发展,同样的 10 万个 GPU 被攻击者租借几个小时,付出的成本可能只有几万美元,算力市场让使用多链挖矿设备的密码学货币安全边际下降了几个数量级。

    我们不得不假设未来多链挖矿设备的算力市场会持续增长,因为这样的算力市场能够让挖矿设备的使用效率更高,同时让挖矿设备所有者以及矿工等各个群体利益最大化。

    然而算力市场对使用专用挖矿设备的密码学货币远没有那么大影响,算力市场的好处是它能够让多链挖矿设备所有者无需为考虑挖什么密码学货币最赚钱而绞尽脑汁,而对于使用专用挖矿设备的密码学货币,一种矿机只能挖这一种密码学货币,这也意味着即使矿机所有者参与算力市场也没有什么超额收益。

    从博弈论的角度讲,算力市场中,还有另一个层面比较重要的因素需要考虑,当一个矿工把多链挖矿设备放到算力市场以供租赁时,他的挖矿设备就有可能被租赁用于发动对密码学货币的攻击,但是矿机的所有者并不关心他的设备被用于攻击密码学货币还是普通挖矿,因为只要攻击者愿意支付一定的溢价给所有者(攻击者同时租赁大量相同的挖矿设备,挖矿设备的租赁价格也会上升),他们就愿意出租自己的挖矿设备,并且即使该多链矿机所挖的某一种密码学货币遭遇严重攻击,也不影响该矿机的价值,因为多链挖矿设备不只能挖这一种币。

    相比之下,专用挖矿设备所有者只能从它所挖的唯一一种密码学货币中获利,租赁专用挖矿设备给攻击者就非常冒险了,因为攻击者对该密码学货币的成功攻击将对其专用矿机有非常直接的负面影响。一旦有人成功发起攻击,所有在算力市场出租该币种专用挖矿设备的矿工都将面临失去唯一收益来源的风险,因此专用挖矿设备所有者有足够的动力远离算力市场,从而使他们所挖的密码学货币保持足够的安全边际。

    大矿场

    大矿场的出现同样减少了多链挖矿设备所挖的密码学货币的安全边际,许多大型矿场拥有超过 1 万台 GPU,多个矿场拥有超过 10 万台 GPU,甚至最大的几个矿场拥有超过 50 万台 GPU。

    从安全的角度讲,一个 GPU 挖矿的密码学货币如果没有 50 万台 GPU 所对应的算力,那么从理论上来讲,它是可能被最大的几个矿场所攻击的。一个 GPU 挖矿的密码学货币没有 10 万台 GPU 对应的算力,则不仅仅可能受到一个普通矿场的攻击,很多大型矿场都能够独立对它发动 51% 攻击并造成 “双花”,而一个密码学货币如果少于 1 万台 GPU 对应的算力,是非常脆弱并容易遭到攻击的。

    许多 GPU 矿场都是盈利驱动的,几乎毫不关心密码学货币领域的价值追求,对于这些 “唯利是图” 的矿场,只要他们能够赚取更多的利润,他们便会通过各种方式去实现,哪怕对密码学货币底层生态造成破发,也在所不惜。

    专用挖矿设备从两个途径解决了网络攻击的问题。首先,专业挖矿设备所挖的密码学货币,基本上只可能有最大的一家矿场有能力对网络发动 51% 攻击,尽管这听起来不是什么了不起的保障,但使用专用矿机的密码学货币最多只需要信任这么一家矿场。但这已经与大部分抗 ASIC 挖矿的密码学货币形成了鲜明对比,大部分抗 ASIC 挖矿的密码学货币在任何时候都有可能被不同的矿场攻击。

    使用专用挖矿设备的密码学货币最重要的优势是激励相容,对于一个追逐利润的(专用矿机)矿场而言,攻击其密码学货币网络通常无法获利,因为那样会造成矿场挖矿硬件设备价值下降。即时一个矿场拥有全网 51% 的算力,这个矿场也没有动力去执行 51% 攻击,因为攻击所获利并不能超过攻击导致的专用挖矿设备价值的损失,这是一个 “得不偿失” 的举动。

    Part-2:行业的成熟与攻击

    攻击——更多的资源,更高的复杂度

    相较 2017 年,密码学货币在 2019 年的重要改变之一便是这一行业保有了更高的价值,更多人开始理解相关理论,专家也变得更多。

    在 2017 年,懂得密码学货币存在这些漏洞的人并不是很多。此外,通常某一密码学货币也并没有很高的市值,这也意味着即使你懂得如何攻击密码学货币,也没法从中捞取很多利润。

    而在 2019 年,懂得密码学货币如何运作的人变得更多,懂得如何攻击那些具有重大缺陷的密码学货币的人也变得更多。同时,对密码学货币一次成功的攻击带来的回报水涨船高,这意味着更多有能力进行攻击的人正在尝试发动攻击。更高的回报也意味着攻击者们会投入更多的时间、金钱以及资源,来发起一次攻击。

    这种情况会日趋严重。如今 51% 攻击大行其道正是由于其带来的高额回报唾手可得。然而,许多主流 dApp 都存在着致命漏洞,并且随着它们的价值增长,攻击者也愈加有经验,这些漏洞将进一步地被攻击者们利用。我个人尤其担心这些问题(担心程度由高到低):涉及新的共识算法、区块链链上治理机制、预言机、稳定币、预测市场以及一些其他的概念的密码学货币项目。通常来说,并非核心概念本身具有可乘之隙,而是它们具体的设计模式和实施方案存在问题。这一行业目前缺乏同行的评审;有很多已经部署的高曝光度项目并未经历充分的审查,因此它们可能存在未被修复的重大漏洞。

    硬件熊市

    硬件熊市不论是对使用多链硬件还是使用专用硬件的密码学货币都会产生影响。如果矿机的价值下降到让挖矿变得无利可图时,攻击者们将能够以低廉的价格获取这些硬件。由于目前正处于密码学货币熊市中,许多矿机的价值一落千丈,也就是说,密码学货币用于抵抗攻击的有效算力现在更少,同时意味着攻击者们可以以更加低廉的成本租贸或购买硬件以进行攻击。

    GPU 市场正遭受另一重影响:现在有专用于以太坊和 Zcash 挖矿的 ASIC 了。以前这两种密码学货币是驱动 GPU 算力的主力,而现在这部分算力正逐渐转移到 ASIC 算力上了,这使得租用 GPU 以攻击更低价值密码学货币的成本大大降低。随着 ASIC 逐渐占领原本使用 GPU 的高价值密码学货币市场,不难看出这种情况会加剧,同时,51% 攻击也会变得更加普遍,成本更加低廉。即使新的抗 ASIC 手段出现,我也不认为这样的趋势会缓和或停滞。

    面对硬件熊市,比特币也不能幸免于难。据估计,多达三分之一的比特币算力被已经破产的矿场甩卖。如今,S9 矿机的价格已经远远低于其制造成本,尽管现在这似乎不能算作比特币的安全隐患,如果价格继续下跌这个幅度的二到四倍,它将成为悬在比特币头上的一把达摩克利斯之剑。

    熊市对制造商造成的影响尤为严重。据估计,比特大陆、芯动科技、台积电,甚至三星都因硬件价格突然下跌遭受重大损失,因此在未来我们不太可能看到这些公司的过度生产——我们现在知道,大量生产带来的风险非常高,而现在比特币的硬件风险高到许多公司不愿承担了。我认为,比特币现在正处于有史以来最严峻的硬件熊市中。

    然而,其他使用专用硬件的密码学货币并没有比特币那么大的规模,因此硬件生产商可能更愿意承担过度生产这类矿机的风险,而这会使得那些密码学货币经历价格突然下跌或其他动荡时引发硬件熊市。

    区块奖励的影响

    由于硬件的获取和操作成本非常高昂,密码学货币对 “双花” 攻击的抵御很大程度上取决于其区块奖励。密码学货币抵御攻击的能力与其挖矿硬件数量成正比,因此,如果区块奖励低到没有大量硬件用于该货币的挖矿,这种货币受到的保护将变得微乎其微。

    总之,谈到密码学货币的安全性,我们必须考虑发起一次 51% 攻击所需的美元成本。如果一种密码学货币的所有矿机总价值是一百万美元,那么显而易见,任何超过一百万美元的交易都极易遭受 51% 攻击,因为交易对手只需要花一百万美元来购买或制造矿机,就能发动 “双花” 攻击。

    评估一种密码学货币的矿机总价值难乎其难,评估制造一套足够发动 51% 攻击的硬件设施的成本亦是如此,但根据一般经验,该成本应该等同于 6 到 24 个月的区块奖励。通常矿机市场的开放竞争会确保其价值处于这个范围。

    这一经验有助于我们确定密码学货币的最大安全交易额,但在确定这一数值之前,我们需要先谈谈 “双花”。事实上,双花还有可能成为三花、四花甚至攻击者可能达到的最大倍数的多花。单次双花攻击可以同时在多个不同的交易所发起。因此,在应对双花攻击时,仅仅考虑一次交易实际上是远远不够的,我们还需要考虑其他可能同时发动的攻击。

    实际的最大安全交易额通常视密码学货币种类而定,并且取决于包括区块奖励的多重因素。但根据一般经验,对于使用专用矿机的密码学货币,超过一个月区块奖励价值的交易会让我感到不安,而对于已有大型算力市场的密码学货币而言,也许一个小时的区块奖励价值的交易就足以引发攻击了。

    密码学货币空头

    本质上来说,做空就是借贷。当你做空一种密码学货币时,你其实正在借一些代币,而这些代币是你在将来需要等额偿还的(通常来说,也许会附带一些利息)。一般来说,当有人做空一种货币时,他们会立刻出售这些借来的代币,并祈祷这种密码学货币随后会贬值,以让他们随后能够低价买入并偿清借贷,从而从中获利。

    空头交易需要有两方参与。其中一方借入,另一方借出。而对于密码学货币而言,借入方和借出方存在着矛盾:借入方可能利用这笔钱攻击该密码学货币本身,使其价格崩溃。攻击可能是不同类型的:双花攻击、或是拒绝服务器攻击(攻击者一直挖空块)。根据密码学货币的种类,攻击者可能还会发动其他更高级的攻击。

    有两个原因让我提出空头这一论题。第一个原因是为了警告交易所和市场参与者,反对空头市场。如果你正提供密码学货币借贷,你可能正在为攻击者们提供资金,从而导致你之后收回的资产贬值。较传统市场而言,密码学货币市场的空头借出方承担的风险要高得多。

    另一个原因是,大型空头市场可能会增加其他依赖该密码学货币安全性的参与方的风险。如果一种密码学货币拥有大型空头市场,潜在的攻击者有充足资源来筹措用以发动攻击的资金,并且一旦攻击成功,他们需要偿还的资金将大大降低。因此,交易所和用户应谨慎小心或避免持有拥有大型空头市场的密码学货币。


    Part-3:解决方案

    现有防御方法的不足之处

    增加确认时长的不足之处

    增加充币确认时长以应对网络波动,这在大部分情况下行之有效,能大幅降低某些类型的风险。但另一些时候,这种方法却毫无建树,无法提供切实保护。

    在 P2P 网络出现波动的时候,增加确认时长确是最有效的措施之一。当遇到区块传输变慢、网络暂时分叉、节点扣块攻击,或者发生路由层攻击等情况时,增加确认数非常有效。把确认时长从 60 分钟延长到 24 小时,则有更充裕的时间来稳定最长链、修复分叉、或解决路由攻击。

    增加确认时长,也能有效应对自私挖矿和总算力不足 50% 的欺诈挖矿。当自私挖矿严重,或大矿场开挖非正常区块时,区块大规模重组的几率会大大增加。和通常 2-3 个区块的重组不同,大规模重组的区块个数有可能达到十几个。当然,如果并非 51% 攻击,重组区块数量也不太可能超过几十个。此时,区块链仍将大概率保持单一方向增长。

    然而,当遭受真正的 51% 攻击时,增加确认时长的效果则不甚显著。把确认时长从 60 分钟延长到 6 小时,需要攻击者租用更多的算力,或者需要攻击矿场耗费更多的时间,但也仅限于此,因此只有当攻击某币种的攻击门槛足够高时,这一策略(校注:通过增加租用算力成本或增长攻击时间造成攻击无利可图)才会有效。

    很重要的一点,当加密货币遭受 51% 攻击时,攻击者将把所挖区块的奖励都收入囊中。如果攻击过后币价下跌有限,那么攻击者足以靠这些获利以战养战。这也是为什么对依靠 GPU 挖矿的规模较小的币种来说,增加确认时长的方法作用不大的关键原因之一。如果币种规模较小或区块奖励较低,攻击者可能只需租用几个小时的算力,便能获得整整一周的区块奖励。

    地址黑名单的不足之处

    之前,交易所曾用紧急添加黑名单的方法阻止攻击。攻击者实施双花时需要提币,通常会将币转移到其它交易所以供后续交易,因此,交易所之间可以互相知会那些参与双花的问题地址,并将他们列入黑名单,以此来阻止盗币和双花,挽回损失。

    尽管地址黑名单有时候很有效,但攻击者也会逐渐掌握应对方法。这些方法包括使用匿名币、先行转移被盗货币到多个钱包后再发起双花、或使用去中心化交易所进行提币。复杂的攻击手段使得地址黑名单这一防护方式力不从心。

    当然,交易所也不该就此弃用地址黑名单,从曾经追回过大量损失的角度看,这是个不错的方式。只是现在不该完全依赖它来挽回攻击遭受的损失,毕竟大多数情况下这将徒劳无功。

    降低风险的一些建议

    尽管处境糟糕,特别是那些交易所,我们依然可以采取些措施,来降低规模较大且使用多链矿机挖矿的币种的风险。不过,随着攻击方式复杂化以及基础设施(如去中心化的交易所和去中心化的算力市场)的改进,最终这些措施可能会失效。因此,唯一的一劳永逸的解决方案是,让所有的加密货币使用专有矿机,且它们的算法必须是独有且可以使用 ASIC 的。不过,在根本地解决问题之前,可以靠一些降低风险的措施来争取时间。

    措施一,监控全球矿机的可用性

    措施之一,是监控每一种加密货币矿机的使用情况,以帮助交易所管控风险。通过某一币种矿机的开机率,能较好地预测该币种的安全状况。

    对于使用专用矿机的币种,只需要关注挖矿奖励情况以及矿机市场是否处于熊市。比如,当某币种因为挖矿利润太低,导致绝大部分矿机关机时,攻击者的攻击成本就会比较低,因为购买攻击用矿机的成本很低。除此之外,这一类币种在面对算力攻击时相对安全。

    对于那些使用 ASIC 或其他专用矿机但有相同算法的币种来说,则需要关注每个币种的算力与该类矿机总算力的占比。一般地,当某一币种的算力占比超过 70% 时,我认为它是安全的;如果算力占比在 10% 和 70% 之间,可能需要将确认时间延长到 24 小时才安全。因为即便算力占比达到 70%,大矿场还是有可能发动算力攻击并获得成功,而 24 小时的确认时长,会使攻击的可行性大幅降低;如果某个此类加密货币算力占比小于 10%,则很不安全。交易所是否停止充提币,取决于自身的抗风险能力等因素,但我建议只有当这类币种改用更安全的挖矿算法时,才允许充提。

    对于使用 GPU 挖矿的币种,风险管理着实依赖于对算力交易市场和大矿场运行情况的了解。

    虽然没有进行大量严谨的调研,但据我估计,当前 GPU 算力交易市场的规模在 1 亿-2.5 亿美元之间。这个数字的关键之处,是它能够表明某个币种是否容易遭受 51% 攻击。当然,仅关心算力交易市场是不够的。曾有报道指出,一些大的矿场对一些小规模的币种发起过 51% 攻击。特别地,至少有一个 GPU 算力规模约在 1千万-1 亿美元之间的矿场,被指乐于参与攻击。

    综上所述,我建议对那些硬件成本在 5 千万到 2 亿 5 千万美元之间的 GPU 挖矿币种,使用 24 小时的交易确认时长。对于那些规模更小的币种,则应该禁止充币,因为当硬件成本低于 5 千万时,攻击它们的难度和成本不是很高。

    随着加密货币生态的演进,大矿场和算力交易市场会发生变化,针对不同规模和算法类型的加密货币的风险分析同样也会变化。交易所们只有紧跟变化,才能作出更精确的风险分析和最合适的商业决定。

    措施二,和大矿场及算力交易市场保持良好关系

    交易所和大矿场及主要算力交易市场保持良好关系,有助于减少整体风险。

    算力交易市场是大部分攻击的源头。算力市场的中心化特点,有助于降低小规模币种遭受攻击的风险。降低风险的手段包括限制单次出租的算力总量,或者通过 KYC 等手段获取用户信息,特别是正在大规模采购算力的用户信息。最差情况下,当算力市场察觉到针对某币种算力的大规模突击采买时,可以及时对交易所示警。

    当然,有经验的攻击者,可以通过女巫攻击或者盗用账号,来躲避交易市场的监控。随着中心化算力市场监控的深入,也会驱使用户寻找去中心化的解决方案,以躲避监控。因此,监控最多只是个临时方案,但在加密货币寻找到更好的解决方案前,它或许能争取足够时间。

    同样,和大矿场建立关系也大有裨益。至少,通过了解当前不同币种的挖矿情况,交易所能够预判它们是否易受攻击。从降低风险的角度,我相信这种良好的关系会事半功倍。

    自动停止交易以及地址黑名单

    当交易所检测到加密货币会发生重大的重组时,该加密货币的交易应该自动停止,当检测到有双花交易时,相关的地址都应该自动列入黑名单中。越多交易所实行这样的措施越好,不应仅仅在受到双花交易攻击的交易所实行。

    尽管暂时性的停止交易无助于资金被盗的事实,但这样确实大大减少了攻击者处理被盗资金的选择余地。同时,攻击者总是可以通过预测大规模攻击后币价的走势,并针对走势进行大规模的交易来获利。如果交易被冻结,攻击者潜在的利益来源就会减少。

    地址黑名单也有相似的功效:它减少了攻击者的选择余地。减少攻击者更多的选择余地意味着我们有更多的机会来收回资金,也意味着即使攻击者有办法规避所有的控制,他们也不愿进行攻击了。

    根据我们以往的经验,攻击者往往不是那么技艺高超,也总会犯下大错误。即使理论上来说当你面对一个完美的攻击者时是无能为力的,但现实就是攻击者并非完美。积极追捕攻击者来迫使他们犯下严重错误可能会非常有效。

    焦土式反击

    现在有一种更加高级同时更加有风险的选择来处理双花攻击,即发动反击。当一个攻击者在加密货币上创建了一笔双花交易时,受影响的交易所可以通过购买一定的算力来延长原始的链(即保证理论上正确的链有足够多的算力来成为“最长的链”),从而稳固原始交易不被攻击者覆盖。

    当然,攻击者也可以反击这样的攻击,通过对于延长攻击链来应对交易所对于原始链的延长。这里的难点在于,对于每个时间点来说,交易所花费更多的钱去延长原始链和攻击者花费更多的钱去延长攻击链都是有意义的。即使攻击者和交易所所花费的已经超过了被盗窃的币的价值,他们仍然需要通过延长自己的那条链来收回投入的资金。

    击者花了 10,000 美元买工作量证明算力,从交易所盗取了 50,000 美元。此时攻击者赚了 40,000 美元,交易所亏了 50,000 美元。此时交易所最佳措施就是也花费 10,000 美元将原始链恢复为最长的链,于是攻击者就变成了亏 10,000 美元,同时交易所也亏了 10,000 美元。如果我们继续下去,会得到以下结果:

    轮次:               攻击者             交易所
    
    第一轮攻击:    +$40,000       -$50,000
    
    第一轮防守:    -$10,000       -$10,000
    
    第二轮攻击:    +$30,000       -$60,000
    
    第二轮防守:    -$20,000       -$20,000
    
    第三轮攻击:    +$20,000       -$70,000
    
    第三轮防守:    -$30,000       -$30,000
    
    第四轮攻击:    +$10,000       -$80,000
    
    第四轮防守:    -$40,000       -$40,000
    
    第五轮攻击:    +$0            -$90,000
    
    第五轮防守:    -$50,000       -$50,000
    
    第六轮攻击:    -$10,000       -$100,000
    
    第六轮防守:    -$60,000       -$60,000

    当攻击者在整个攻击中不再获利时,交易所也已经损失了与面对攻击不作为会损失的同样金额。以该策略,在任何时候交易所都会亏损,而且只会亏损越来越多。

    并且,这个博弈实际上没有结束状态。在任何时候,每一方都有动机继续尝试收回原本的 50,000 美元,因为每一次你花费 10,000 美元都是为了收回 50,000 美元。这就是为什么这个策略被称为 “焦土” ——没有哪一方会获胜,还会伴随着大量的资金被销毁。

    这种策略的价值在于,至少从理论上说,交易所可以阻止攻击者(借此)赚钱。如果攻击者提前知道交易所会实行焦土策略,那么攻击将会变得没有意义,同时交易所在受到最初几次攻击之后将不会再受到攻击。

    这个策略有另一个比较大的痛点。攻击者在准备方面有很大优势。一个攻击者可以花费数周或者数月来准备一次攻击,但是交易所必须几乎立即响应这次攻击。并且,如果攻击者愿意这样和交易所交战,很可能是因为攻击者有很大的优势。例如,如果攻击者优化了自己的代码,使得每轮只需要花费 5,000 美元,但是交易所每轮还是要花费 10,000 美元。在这样情况下,交易所也无法判断攻击者是否具有优势。

    如果多个交易所同时使用这样的策略,也可能会出现问题。交易所最终可能会和彼此(并非攻击者)产生一场算力的战争,根据不同交易所的预算,代价可能会非常高昂。

    这个策略的最后一个考虑因素在于,这可能会对生态系统造成巨大的连带损害。许多密码学货币并不能真正处理大量的连续重组。节点可能会宕机,其他交易可能会丢失或者在(算力)战争中可能会发生双花交易,一般来说,用户在这场焦土战争中可能会面临更大的风险。

    综上所述,我并不推荐交易所使用上述策略来抵抗双花攻击

    开发者决断

    我提出的最后一种策略则是开发者决断,因为这在某些加密货币对抗攻击中成功过。当发生了一起盗币事件时,开发者总是可以通过提出一个硬分叉来收回被偷窃的币。但是这又会导致开发者的高度集中化,并且由于开发者也并非完美,他们可能被欺骗导致对攻击判断错误,最终误将用户账户上的合法代币转给攻击者而不是返还被盗窃代币。

    开发者也可以对区块进行签名。一旦一个区块被开发者签名了,这个区块就是永久确定了,并且区块内的交易不可能是双花交易。这已经通过历史上无数次的密码学货币所证明,但这种做法本身非常危险。如果开发者的密钥被盗了,会发生大量问题。并且,一旦开发者事实上可以决定哪些交易能够上链,他们也就将受到金融监管机构的无情监管

    开发者应该对这样的事情保持相当的谨慎,因为如果一个开发者在找回资产的时候做了一个错误的决策,签署了一个错误的块,或者允许了某个已知的恐怖组织进行交易,就会引发严重的法律后果。特别是现在监管机构对这个领域相当重视,我并不推荐这个方案,至于对中心化的担忧我也就不再提了。

    结论

    7

    随着加密货币领域的不断发展,我们将会看到更加复杂的攻击手段。在接下来的 6-12 个月里,大部分攻击可能会集中在对于工作量证明保障较弱的加密货币的双花攻击上,但是我认为攻击种类会随着开发漏洞的显现而增加。安全的加密货币设计非常困难,大多数加密货币和 dApp 都无法确保他们项目的安全性。

    由于多链矿机的算力攻击导致的价值数百万美元的币被盗事件让我们深有感触,但是这些只是对加密货币社区的第一波大规模攻击。

    为了防止进一步的损失,我们需要在短期采取措施来防止交易所被多链矿机算力攻击。某些情况下,将确认时间增加至 24 小时是有效的,而在其他情况下,我建议锁定账户余额,直到该加密货币能分叉到一条安全的链上。从长期看,交易所需要对加密货币的风险模型采取更保守的措施,并对上交易所的代币进行更深入的调查。

     


    参考链接: 

     https://blog.sia.tech/fundamentals-of-proof-of-work-beaa68093d2b

     https://blog.sia.tech/fundamentals-of-proof-of-work-beaa68093d2b

     https://blog.sia.tech/fundamentals-of-proof-of-work-beaa68093d2b

     

    展开全文
  • 区块链作为一个去中心化的分布式账本系统,然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任的个体之间就交易的合法性达成共识的共识...

    什么是共识机制

    所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。

    区块链作为一个去中心化的分布式账本系统,然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任的个体之间就交易的合法性达成共识的共识机制。

    共识机制的目标

    区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。共识机制是区块链技术的重要组件。区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图,同时满足两个性质:
    1)一致性。所有诚实节点保存的区块链的前缀部分完全相同。
    2)有效性。由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。

    为什么需要共识机制?

    在分布式系统中,各个不同的主机通过异步通信方式组成网络集群。为了保证每个主机达成一致的状态共识,就需要在主机之间进行状态复制。异步系统中,可能会出现各样的问题,例如主机出现故障无法通信,或者新能下降,而网络也可能发生拥堵延迟,类似的种种故障有可能会发生错误信息在系统内传播。因此需要在默认不可靠的异步网络中定义容错协议,以确保各主机达成安全可靠的状态共识。所以,利用区块链构造基于互联网的去中心化账本,需要解决的首要问题是如何实现不同账本节点上的账本数据的一致性和正确性。

    这就需要借鉴已有的在分布式系统中实现状态共识的算法,确定网络中选择记账节点的机制,以及如何保障账本数据在全网中形成正确、一致的共识。

    如何评价一个共识机制的优劣:

    安全性:能否有效防止二次支付,私自挖矿
    扩展性:当系统成员和待确认交易数量增加时,所带来的系统负载和网络通信量的变化,通常以网络吞吐量来衡量
    性能效率:每秒可以处理的交易数量
    资源消耗:达成共识过程中,所要消耗的CPU、内存等计算资源

    区块链分类

    在开始进行共识机制梳理前,首先需要对目前的区块链进行一个简单的了解。目前市面上根据共识算法及应用场景把区块链分为三类:公有链、联盟链和私有链。

    1. 公有链

    公有链是一个完全开放的分布式系统。公有链中的节点可以很自由的加入或者退出,不需要严格的验证和审核,比如比特币、以太坊、EOS等。共识机制在公有链中不仅需要考虑网络中存在故障节点,还需要考虑作恶节点,并确保最终一致性。

    2. 联盟链

    联盟链是一个相对开放的分布式系统。对于联盟链,每个新加入的节点都是需要验证和审核的,比如Fabric、BCOS等。联盟链一般应用于企业之间,对安全和数据的一致性要求较高,所以共识机制在联盟链中不仅需要考虑网络中存在故障节点,还需要考虑作恶节点,同时除过确保最终一致性外,还需要确保强一致性。

    3.私有链

    私有链是一个封闭的分布式系统。由于私有链是一个内部系统,所以不需要考虑新节点的加入和退出,也不需要考虑作恶节点。私有链的共识算法还是传统分布式系统里的共识算法,比如zookeeper的zab协议,就是类paxos算法的一种。只考虑因为系统或者网络原因导致的故障节点,数据一致性要求根据系统的要求而定。

    共识机制有哪些?

    常见的共识就机制包括:POW(工作量证明机制)、POS(权益证明机制)、POW+POS(混合共识机制)、DPOS(股份授权证明)等等,另外还有Pool验证池、Ripple瑞波共识协议、PBFT(使用拜占庭容错算法)等等。今天先介绍POW共识机制。

    POW工作量证明共识机制

    一、前言

    PoW(Proof of Work),即工作量证明,闻名于比特币,俗称"挖矿”。PoW是指系统为达到某一目标而设置的度量方法。简单理解就是一份证明,用来确认你做过一定量的工作。监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。PoW是按劳分配,算力决定一起,谁的算力多谁记账的概率就越大,可理解为力量型比较。以下内容基于比特币的PoW机制。

    工作量证明(PoW)通过计算一个数值( nonce ),使得拼揍上交易数据后内容的Hash值满足规定的上限。在节点成功找到满足的Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播打包区块,会立刻对其进行验证。

    如何才能创建一个新区块呢?通过解决一个问题:即找到一个nonce值,使得新区块头的哈希值小于某个指定的值,即区块头结构中的“难度目标”。

    如果验证通过,则表明已经有节点成功解迷,自己就不再竞争当前区块打包,而是选择接受这个区块,记录到自己的账本中,然后进行下一个区块的竞争猜谜。网络中只有最快解谜的区块,才会添加的账本中,其他的节点进行复制,这样就保证了整个账本的唯一性。

    假如节点有任何的作弊行为,都会导致网络的节点验证不通过,直接丢弃其打包的区块,这个区块就无法记录到总账本中,作弊的节点耗费的成本就白费了,因此在巨大的挖矿成本下,也使得矿工自觉自愿的遵守比特币系统的共识协议,也就确保了整个系统的安全。

    在了解pow共识机制前,我们先了解下比特币区块的结构,下图是比特币区块的结构图:
    在这里插入图片描述

    从图上可知,比特币的结构分为区块头和区块体,其中区块头细分为:

    • 父区块头哈希值:前一区块的哈希值,使用SHA256(SHA256(父区块头))计算。占32字节
    • 版本:区块版本号,表示本区块遵守的验证规则。占4字节
    • 时间戳:该区块产生的近似时间,精确到秒的UNIX时间戳,必须严格大于前11个区块时间的中值,同时全节点也会拒绝那些超出自己2个小时时间戳的区块。占4字节
    • 难度:该区块工作量证明算法的难度目标,已经使用特定算法编码。占4字节
    • 随机数(Nonce):为了找到满足难度目标所设定的随机数,为了解决32位随机数在算力飞升的情况下不够用的问题,规定时间戳和coinbase交易信息均可更改,以此扩展nonce的位数。占4字节
    • Merkle根:该区块中交易的Merkle树根的哈希值,同样采用SHA256(SHA256())计算。占32字节
    如此,细心的同学会发现,区块头总共占了80字节。

    区块体除了筹币交易记录(由一棵Merkle二叉树组成)外,还有一个交易计数。

    比特币的任何一个节点,想生成一个新的区块,必须使用自己节点拥有的算力解算出pow问题。因此,我们先了解下pow工作量证明的三要素。

    二、POW工作量证明的三要素

    工作机制

    为了使区块链交易数据记录在区块链上并在一定时间内达到一致(共识),PoW提供了一种思路,即所有区块链的网络节点参与者进行竞争记账,所谓竞争记账是指,如果想生成一个新的区块并写入区块链,必须解出比特币网络出的工作量证明谜题,谁先解出答案,谁就获得记账权利,然后开始记账并将将解出的答案和交易记录广播给其他节点进行验证,自己则开始下一轮挖矿。如果区块的交易被其他节点参与者验证有效并且谜题的答案正确,就意味着这个答案是可信的,新的节点将被写入验证者的节点区块链,同时验证者进入下一轮的竞争挖矿。

    这道题关键的三个要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法,区块决定了这道题的输入数据,难度值决定了这道题的所需要的计算量。

    • 1 工作量证明函数
      在比特币中使用的是SHA256算法函数,是密码哈希函数家族中输出值为256位的哈希算法。

    • 2 区块
      区块头在前言中已经做详细介绍,这里我们就介绍下区块体的 Merkle树算法:
      在这里插入图片描述

    如上图所示,首先对4个交易记录L1–L4,分别计算hash(L1)–hash(L4),然后计算hash0=hash0-0+hash0-1和hash1=hash1-0+hash1-1,最后计算出根节点的hash值top hash。

    • 3 难度值
      关于难度值,我们直接看公式:
      新难度值=旧难度值(过去2016个区块花费时长/20160分钟
      tips:难度值是随网络变动的,目的是为了在不同的网络环境下,确保每10分钟能生成一个块。
      新难度值解析:撇开旧难度值,按比特币理想情况每10分钟出块的速度,过去2016个块的总花费接近20160分钟,这样,这个值永远趋近于1。

    目标值=最大目标值/难度值
    目标值解析:最大目标值为一个固定数,若过去2016个区块花费时长少于20160分,那么这个系数会小,目标值将会被调大些,反之,目标值会被调小,因此,比特币的难度和出块速度将成反比例适当调整出块速度。

    那如何计算呢?SHA256(SHA256(Block_Header)),即只需要对区块头进行两次SHA256运算即可,得到的值和目标值进行比较,小于目标值即可。

    区块头中有一个重要的东西叫MerkleRoot的hash值。这个东西的意义在于:为了使区块头能体现区块所包含的所有交易,在区块的构造过程中,需要将该区块要包含的交易列表,通过Merkle Tree算法生成Merkle Root Hash,并以此作为交易列表的摘要存到区块头中。

    至此,我们发现区块头中除过nonce以外,其余的数据都是明确的,解题的核心就在于不停的调整nonce的值,对区块头进行双重SHA256运算。

    介绍完pow工作量证明的三要素后,我们就可以讲解下工作量证明的流程。

    三、POW工作量证明流程

    在这里插入图片描述

    从流程图中看出,pow工作量证明的流程主要经历三步:

    • 1.生成Merkle根哈希
        生成Merkle根哈希在第二章节中的第2要素中已经有讲解,即节点自己生成一笔筹币交易,并且与其他所有即将打包的交易通过Merkle树算法生成Merkle根哈希,所以为什么说区块是工作量证明的三要素之一。

    • 2.组装区块头
        区块头将被作为计算出工作量证明输出的一个输入参数,因此第一步计算出来的Merkle根哈希和区块头的其他组成部分组装成区块头,这也就是为什么我们在前言中大费周章的去提前讲解比特币的区块头。

    • 3.计算出工作量证明的输出
        下面我们直接通过公式和一些伪代码去理解工作量证明的输出:

    i. 工作量证明的输出=SHA256(SHA256(区块头))

    ii. if(工作量证明的输出<目标值),证明工作量完成

    iii.if(工作量证明的输出>=目标值),变更随机数,递归i的逻辑,继续与目标值比对。
      注:目标值的计算见第二章节的要素3的难度值。

    上面的流程图及解析即pow工作量证明的整个过程。

    四、POW共识记账

    前面三部分中讲解的是单节点工作量证明流程,有了这个计算流程,我们就得将其使用起来,在比特币平台中,中本聪就是运用的pow工作量证明来使全网节点达到51%及以上的共识记账,以下将介绍pow工作量证明共识是如何记账的?

    首先,客户端产生新的交易,向全网广播

    第二,每个节点收到请求,将交易纳入区块中

    第三,每个节点通过第三章中描述的pow工作量证明

    第四,当某个节点找到了证明,向全网广播

    第五,当且仅当该区块的交易是有效的且在之前中未存在的,其他节点才认同该区块的有效性

    第六,接受该区块且在该区块的末尾制造新的区块

    大概时序图如下:
    在这里插入图片描述

    五、POW的优缺点

    通过上面的描述,PoW优点很明显:

    1. 完全去中心化(任何人都可以加入);

    2. 节点自由进出,容易实现;

    3. 破坏系统花费的成本巨大;

    关于破坏系统成本巨大可以分两层意思理解:

    1. 在指定时间内,给定一个难度,找到答案的概率唯一地由所有参与者能够迭代哈希的速度决定。与之前的历史无关,与数据无关,只跟算力有关。

    2. 掌握51%的算力对系统进行攻击所付出的代价远远大于作为一个系统的维护者和诚实参与者所得到的。

    缺点也相当明显:

    1. 对节点的性能网络环境要求高;

    2. 浪费资源;

    3. 每秒钟最多只能做七笔交易,效率低下;

    4. 矿场的出现违背了去中心的初衷;

    5. 不能确保最终一致性;

    6. 比特币产量每4年减半,利益驱动性降低导致旷工数量减少从而导致比特币网络瘫痪。

    六、网络攻击和链分叉

    • 1)网络攻击
      假定一个恶意节点试图双花之前的已花费的交易,攻击者需要重做包含这个交易的区块,以及这个区块之后的所有的区块,创建一个比目前诚实区块链更长的区块链。只有网络中的大多数节点都转向攻击者创建的区块链,攻击者的攻击才算成功了。由于每一个区块都包含了之前的所有区块的交易信息,所以随着块高的增加,之前的区块都会被再次确认一次,确认超过6次,可以理解为无法被修改。

    考虑交易T包含在区块b1中。每个后续区块b2,b3,b4,……bn会降低交易T被修改的可能性,因为修改这些后续的区块需要更多的算力。中本聪用概率理论证明,六个区块后攻击者追赶上最长链的可能性降低到0.0002428%。在过4个或更多区块后这个可能行会降到0.0000012%。每新增一个区块bn,攻击的可能性就会以指数形式下降,很快整个攻击的可能性就会低到可以忽略的程度。

    • 2)链分叉
      所谓的链分叉,主要是由于在计算hash时,每个人拿到的区块内容是不同的,导致算出的区块结果也不同,但都是正确结果,于是,区块链在这个时刻,出现了两个都满足要求的不同区块,那旷工怎么办呢?由于距离远近、网络等原因,不同旷工看到这两个区块的先后顺序是不一样的,通常情况下,旷工会把自己先看到的区块链复制过来,然后接着在这个区块上开始新的挖矿工作,于是就出现了链分叉。

    ** PoW解决方案:**
    从分叉的区块起,由于不同的矿工跟从了不同的区块,在分叉出来的两条不同链上,算力是有差别的。由于解题能力和矿工的算力成正比,因此两条链的增长速度也是不一样的,在一段时间之后,总有一条链的长度要超过另一条。当矿工发现全网有一条更长的链时,他就会抛弃他当前的链,把新的更长的链全部复制回来,在这条链的基础上继续挖矿。所有矿工都这样操作,这条链就成为了主链,分叉出来被抛弃掉的链就消失了。

    能够让区块链保证唯一性的前提是:所有矿工都遵从同样的机制。当旷工遵从不同的机制时,就会出现硬分叉,这种分叉会导致资产增加,且两条链同时存在,比如BBC。

    本文转载来自:区块链-工作量证明算法

    展开全文
  • 一般来说,PV 来访者的数量成正比,但是 PV 并不直接决定页面的真 实来访者数量,如同一个来访者通过不断的刷新页面,也可以制造出非常高的 PV。 :IP、PV、UV 的计算 对 IP 计算 1.分析网站的访问日志,去除...

    PV(page view):即页面浏览量,或点击量,PV 是网站分析的一个术语,用以衡量网站用户 访问的网页的数量。一般来说,PV 与来访者的数量成正比,但是 PV 并不直接决定页面的真 实来访者数量,如同一个来访者通过不断的刷新页面,也可以制造出非常高的 PV。

    一:IP、PV、UV 的计算

    对 IP 计算

    1.分析网站的访问日志,去除相同的 IP 地址

    2.使用第三方统计工具

    3.在网页后添加多一个程序代码统计字段,然后使用日志分析工具对程序代码字 段进行统计。

    对 PV 的计算

    1.分析网站的访问日志,计算 HTML 及动态语言等网页的数量

    2.使用第三方统计工具

    3.在网页后添加多一个程序代码统计字段,然后使用日志分析工具对程序代码字 段进行统计。

    对 UV 的计算

    1.分析客户端的 HTTP 请求报文,将客户端特有的信息记录下来进行分析。若能 满足共同的特征将会被认为是同一个客户端,那么此时将记录为一个 UV。

    2.通过 cookie 当客户端访问一个网站时,服务器会向该客户端发送一个 Cookie,Cookie 具有独 一性,所以当客户端再次使用 cookie 访问网站时,会附带此 Cookie,那么此时 服务器就会认为是同一个客户端,那么只会记录一次的 UV 缺点:使用 Cookie 方法比分析客户端 HTTP 请求头部信息更为精准,但是会有缺 点,那就是用户可能会关闭了 Cookie 功能。或者自动删除了 cookie 等操作,所 以获取的指标也不能说是完全准确。

    每秒并发数预估:(计算一下你公司的pv量吧)

    1. 假如每天的 pv 为 6000 万;

    2. 集中访问量:24*0.2=4.8 小时,会有 6000 万*0.8=4800 万(二八原则);

    3. 每分并发量:4.8*60=288 分钟,每分钟访问 4800/288=16.7 万(约等于);

    4. 每秒并发量:16.7 万/60=2780(约等于);

    5. 假设:高峰期为平常值的二到三倍,则每秒的并发数可以达到 5560~8340 次。

     110592*0.8/288/60=5 总pv10万   集中8万 每分并发300 每秒并发5

    展开全文
  • 3.6.3 获取分区的读取偏移

    千次阅读 2021-04-15 22:52:32
    读取分区的偏移涉及日志存储,这里我们先给出一些简单的结论(具体细节会在第6章详细分析):一个分区有多片段文件(Segment),每片段文件都包含全局有序的片段基准偏移(segmentBaseOffset)。客户端调用...
  • exchange数据库和日志容量成长太很快|exchange数据库日志压缩。我公司的exchange数据库和日志的容量增长的很快,我不知道有哪些原因造成容量增长过快的原因,...数据库和日志容量的增长是邮件流量的大小成正比。如果在E
  • 当买家在阿里巴巴中文站上找到您的供求信息以及公司介绍后,您的信息被展示在页面上,都会被计算入曝光。常见的有: 1)买家通过关键词搜索,您的信息展示在搜索结果页面中,即会被统计进入曝光, 2)当买家查看...
  • Hadoop3.2.0 YARN 容量调度程序

    千次阅读 2019-02-20 10:57:08
    队列的限制与其队列容量和用户限制成正比。这是一个硬限制,当达到此限制时提交的任何应用程序将被拒绝。默认值为10000.可以使用yarn.scheduler.capacity.maximum-applications为所有队列设置此值,也可以通过...
  • 模型参数数量计算

    千次阅读 2019-07-15 17:47:07
    参数数量(params)理论计算(FLOPs) 1.参数数量 关系到模型大小,单位通常为M,通常参数用float32表示,所以模型大小通常是参数数量的四倍 2.计算公式 假设卷积核大小为,输入通道数为,输出通道数为,输出...
  • MySQL删除大批数据

    万次阅读 2016-12-29 10:55:51
    一个表有1亿6000万的数据,有一个自增ID。最大值就是1亿6000万,需要删除大于250万以后的数据,有什么办法可以快速删除? 看到mysql文档有种解决方案:http://dev.mysql.com/doc/refman/5.0/en/delete.html If...
  • 1.辐射度学以及四基本

    千次阅读 2019-07-05 10:39:35
    考虑照射的表面无穷小,这时候光源某个方向就一个理想的光束,照射的是一个理想的点,那么这单独点上面的辐射亮度确实是一样的!!但是宏观的亮度确实有不一样,为什么呢?我认为是密度的问题。当垂直照射,...
  • [转载]吞吐量与响应时间的关系

    万次阅读 2012-06-25 17:43:42
    原文地址:吞吐量与响应时间的关系作者:Icey 计算机系统的总体性能标准是吞吐和响应时间。   吞吐是对单位时间内完成的工作的量度。示例包括:  每分钟的数据库事务  每秒传送的文件千字节数  每...
  • wifi吞吐测试

    千次阅读 2019-04-17 23:12:35
     带宽应该吞吐量成正比或正相关,可以作为直接的衡量标准,有说一般 带宽 * 0.8 = 吞吐量。  信道带宽单位的问题,有的地方单位是HZ, 有的地方单位是bps,百度百科上是这么写的:   测试结果: ...
  • 区块链作为一个去中心化的分布式账本系统,然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任的个体之间就交易的合法性达成共识的共识...
  • Android App耗电测试

    千次阅读 2019-08-09 17:47:30
    U为电池供电电压,I为电流值,t为测试时间,通常来说U可以认为不变,因此A = I * t (mAh)可以作为消耗能量的值,对于平稳的测试过程,耗电量与测试时间成正比,因此可以通过平均电流 I = Q / t来评价耗电水平 ...
  • WeTest —— 手游耗电测试

    千次阅读 2015-07-24 11:57:52
    传统的APP相比,手游的耗电那可不是盖的,手机还有10%的电,玩局游戏吧,正玩着HIGH呢,马上就要破记录了,无情的手机提示电量耗尽30秒后强制关机,欲哭无泪~,这电到底去哪儿了呢? 工具准备 要想省电先...
  • 角速度ω=2π/T=2π·​​​​​​​f,单位是rad/s,这里T为周期,f为频率。 ...波速一定,波矢的大小角速度成正比。 回顾行波的方程:​​​​​​​,可知波数反映的是波的空间频率,角速...
  • Unity3d轻渲染管线(LWRP)民间文档

    万次阅读 2018-11-21 15:27:51
    所以,干脆自己在研究学习源码之余,写了份文档,既加深自己的理解,也方便后继的学习者。目前只完成了轻管线部分的文档,先发布初版,欢迎指正。后续还有Core库、高清管线和ShaderGraph的文档正在编写中。 ...
  • 在2016年年末的时候,百家号的收益是完胜头条号的,但是那个时候,我的心中就有所担忧,因为一个月赚好几万的情况大有人在,即便是像百度这样的帝国公司也承担不起,然而对于今日头条而言,就显得有理有据,比较踏实...
  • 代码评估

    千次阅读 2012-08-08 16:49:04
    软件的规模和其外延成正比 外延包括: 功能, 数据, 用户操作界面数, 显示界面数等等 不同的功能点实现的困难度不同, 但从整个项目来说, 平均的困难度差不多 规模估算的目标:是决定工作的大小。对于成本模型,...
  • 在第节中,我们探讨了拜占庭将军问题的概念,如何实现拜占庭容错,以及二者区块链之间的关系。 上篇文章中提到的算法实际上是实现拜占庭容错的种解决方案。然而,该方案还不够有效,其变化方案又存在局限性...
  • 以控制一个直流电机转速为例,假设转速s(t)电机两端电压y(t)成正比。PID控制器输出为u(t)。 理解1: u(t)就是实际施加到电机两端的电压y(t); 理解2: u(t)作为本次速度调整前的电机两端电压的一个变化...
  • 系统吞吐

    千次阅读 2016-01-24 15:32:23
    、系统吞吐的定义 系统吞吐指的是系统在单位时间内可处理的事务的数量,是用于衡量系统性能的重要指标。例如,在网络领域,某网络的系统吞吐指的是单位时间内通过该网络成功传递的消息包数量,通常可以使用...
  • 对于分布式数据并行训练, 通信开销模型中的参数数目成正比 (Iandola 等, 2016)。简而言之, 小模型由于需要较少的通信而得以快速地训练。 · 向客户端导出新模型时的开销更小。 为了优化自主驾驶技术, 特斯拉...
  • 样本容量的确定

    万次阅读 2018-03-15 08:46:29
    、估计总体均值时样本容量的确定1.重复抽样一旦确定了置信水平(1-α),Zα/2的值就确定了,对于给定的的值和总体标准差σ,就可以确定任一希望的允许误差所需要的样本容量。令E代表所希望达到的允许误差,即:...
  •  一个系统的吞度量(承压能力)request对CPU的消耗、外部接口、IO等等紧密关联。 单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐重要参数:QPS...
  • 人力投入:在那些不产生有形的终端产品的支持性活动...分摊型投入:是另一种分配在项目工作上的投入,这种投入对工作而言已不容易再分解可分立的投入,但可测量的可分立型工作投入成正比。比如质量保证和检查活动。
  • 电容容抗如果不考虑电容器本身存在的泄露电阻影响,可以认为电容器是一个纯电容负载。当电容器两端接在交流电压上,在电压由零增至最大时,对电容器充电,有充电电流。在电压由最大值降低至零时,电容器放电,有...
  • MySQL删除大批数据优化

    千次阅读 2019-08-24 09:48:58
    每次删除记录,数据库都要相应地更新索引,查询MySQL官方手册得知删除数据的速度和创建的索引数量是成正比的;这是很慢的IO操作,而且后面索引碎片越来越多,就更慢,这就是为什么开始只花1.5小时,后面要3小时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,058
精华内容 19,623
关键字:

一个量与另一个量成正比