区块链技术指南女巫攻击6
⑴ 区块链为什么有分叉分叉会发生什么情况
区块链的分叉(fork)的形成原因可能有多种。
当两个结点几乎在同一个时间挖到了矿并同时发布区块,此时就出现临时性的的分叉(state fork),
本质上是对比特币这个区块链当前的状态产生了意见分歧,
当人为的发起分叉攻击(forking attack),也就是故意造成这类分叉(deliberate fork)还有一类分叉是,当比特币的协议发生了改变的时候,软件需要升级。而在分布式系统中不能保证所有节点同时升级软件,假设存在部分节点未升级,会导致协议分叉(protocol fork)。对协议修改的内容的不同,又可以将分叉分为硬分叉(hard fork)和软分叉(soft fork);
比特币协议增加新协议,扩展新功能,未升级软件的旧节点会不认可这些修改,会认为这些特性是非法的。这也就是对比特币协议内容产生分歧,从而导致的分叉叫 硬分叉 。此时,就出现了新节点永远沿着新节点产生的链挖矿,旧节点永远沿着旧节点链挖矿,由于新节点算力足够强,所以形成两条永远都在延伸且平行的链。只要这部分旧节点永远不更新,则旧链将一直延续,可见这种分叉是持久性的。
出现hard fork后,便变成了两条平行的链,也就造成了社区分裂。社区中有一部分人,会认为下面的链才是根正苗红,各个链上的货币独立。以太坊历史上的一件大事就是硬分叉事件。以太坊称为ETH,但目前看到的ETH已经不是最初的ETH了,以太坊在历史上发生过硬分叉,另一个链称为ETC。实际上,ETC才是以太坊设计原本的协议,而ETH是黑客攻击ETH上一个智能合约THE DAO后,进行回滚的协议链(将黑客攻击偷取的以太币采用硬分叉方式回滚回到另一智能合约,然后退还给真正拥有者)。
分叉之初,由于两个链分叉造成了互相影响,产生了很多麻烦。比如:在ETH链上有一笔转账B->C,有人便在ETC链上回放,将ETC链上的货币页转给了C(C收到两笔钱)。后来,对两条链各添加了一个chainID,将两个链区分开,才使得这两条链真正分开。
如果对BTC协议添加限制,使得原本合法交易在新交易中不合法,便会形成软分叉。
当大多数节点已经更新完毕之后,旧节点认可新节点挖出的区块,因此发布自己挖出的区块,但新节点不认可旧结点挖出的区块,便沿着上一个新节点发布的区块继续挖矿,当新节点拥有大部分算力的时候,新链会越来越长,从而旧节点挖出并发布的区块一直被抛弃,无法获得出块奖励,最终倒逼旧节点升级软件,实现所有节点认可新协议并进行升级。可见,只要系统中拥有半数以上算力节点更新软件,此类分叉不会出现永久性分叉。比特币脚本中的P2SH就是通过软分叉方法加进去的。
这一部分我并没有查到太多的资料,但是在绝大多数共识协议之中我们都假设需要过半算力;
在理论上,如果掌握了50%以上的算力,就拥有了获得记账权的绝对优势,可以更快地生成区块,也拥有了篡改区块链数据的权利。因此,当具有过半的算力,也就是51%都是诚实可靠的,能保证整一个区块链在合法有序的进行运行。
但是为什么选择过半的算力,而不是过半的用户?比特币系统,任何人都可以加入,且创建账户及其简单,只需要本地产生公私钥对即可。只有转账(交易)时候,比特币系统才能知道该账户的存在。这样,黑客可以使用计算机专门生成大量公私钥对,当其产生大量公私钥对超过系统中一半数目,就可以获得支配地位(女巫攻击)。因此,比特币系统中很巧妙的使用算力作为投票的依据。
⑵ 区块链中女巫攻击问题
何为女巫攻击?
解释一: 大规模的p2p系统面临着有问题的和敌对的节点的威胁,为了应付这种威胁,很多系统采用了冗余。然而,如果一个有恶意的实体模仿了多个身份,他就可以控制橘虚核系统的很大一部分,破坏了系统的冗余策略。我们把这种模仿多个身份的攻击定义为女巫攻击(Sybil Attack)。
解释二: 女巫攻击是在P2P网络中,因为节点随时加入退出等圆掘原因,为了维持网络稳定,同一份数据通常需要备份到多个分布式节点上,这就是 数据冗余机制 。 女巫攻击是攻击数据冗余机制的一种有效手段。誉锋 如果网络中存在一个恶意节点,那么同一个恶意节点可以具有多重身份,就如电影里的女主角都可以分裂出16个身份,那么恶意节点比它还能分。这样,原来需要备份到多个节点的数据被欺骗地备份到了同一个恶意节点(该恶意节点伪装成多重身份),这就是女巫攻击。
总而言之就是 分身诈骗术
如何解决这种攻击?
1.干活 你即便分身千千万,唯有真心能干活。分心是虚幻的,没有力气,pow证明。
2.发身份证 可靠第三方公安局给你发身份证,没有身份证都是分身妖怪(根据某一个可靠的第三方进行身份验证)
3.熟人社会 你迁户口到一个新的村子里,必须得到村子里,大部分人的认证,这就是中国传统社会的身份认证方法。群众的眼睛就是火眼金睛,照出一切妖魔鬼怪。(新加入的节点都需要获得当前网络中所有可靠节点的认证,这种方法采用了随机密钥分发验证的公钥体系的认证方式,需要获得网络中大多数节点的认证才能加入)
⑶ 女巫攻击与双花攻击
女巫攻击 的名字源于1973年由小说《Sybil》改编的同名电影。电影中的女主人公Sybil Dorsett患有分离性身份认同障碍,本身兼有16种人格。
区块链底层是 P2P网络 。网络中各个节点可以随时加入或退出,为了维持网络的有效性,一般一份数据常常需要部署在若干个分布式节点上。如果一个恶意节点伪装有多个身份就存在可获得全部数据的几率,下面我打个比方:
假设神龙造出了七颗龙珠,并且要将它们分别投放到地球的各个角落。于是神龙昭告天下,让每个洲来一个人领取龙珠。此时,精通乔装易容术的我分别假扮出七个不同地域的人来神龙这拿到了龙珠。本来神龙将龙珠放到世界不同的地方基配圆就是为了平衡各地方力量,但是由于我伪造了身份,成功地拿到了全部龙珠,控制了地球。
以上比喻就是女巫攻击的本质体现。
双花攻击是大多区块链加密数字货币都要面对的一种攻击手段。顾名思义,双花攻击就是一笔有效的钱被先后花了两次。
双花攻击的可行性完全是由于区块链的共识机制导致。拿比特币举例,由于比特币的POW共识机制属于最终一致性共识,一笔交易从发布到全网所有节点都达成统一确认需要一定时间,而攻击者就是利用这个时间间隙进行攻击。举个生活中的例子:
假如银行A有两个支行B和C。但是,这个银行的账目系统比较低效,支行B和C每过1个小时才会去主行A那里同步账本。我在主行A中存了100块钱,过了一个小时后支行B和C同步了账本,于是我在B和C中都可以查到我拥有100块钱。之后,我通过支行B用我的账户买了100块钱的好吃的,随即又通过支行C用我的账户卖唯买了100块钱好玩的。由于支行B和C之间做不到账目的随时同步,所以支行C在我去买好玩的时候依然认为我拥搏塌有100块钱。
以上就是双花攻击,并且“双花”永远是一种 流通货币 所要解决的首要问题。
⑷ 全球首次关于FileCoin集群挖矿和矿池技术分享
Filecoin 自问世就备受瞩目,而 Filecoin 挖掘更是一个全新的机会,矿工可以在 Filecoin 网络上存储和检索客户信息直接获利。Filecoin 是如何奖励矿工,底层技术的工作原理是什么?如何成为 Filecoin 矿工获得更多利润?
这篇文章 星链 核心开发工程师币圈外星人杰克从 Filecoin 的背景,原理,底层技术,挖矿逻辑,矿场矿池等方面进行了详细的分享,为你带来全球首套Filecoin矿池解决方案。
01Filecoin背景
时间回溯到2017年,Filecoin在短短一小时内便募集到了1.86亿美元的融资,最终总共募集到了2.57亿美元,是区块链 历史 上最大规模的融资之一。在当年的融资中,Filecoin得到了红杉资本、文科沃莱斯资本等多个知名机构的投资。Filecoin 总数为20亿枚,其具体分配和价格如下:分配 & 价格
总数:20亿
矿工:70%
Protocol Labs:15%
投资者:10%
Filecoin基金会:5%
成本:$0.75
奖励:每个块153个*$3=$459,每天1920个块*$459=$881,280。
02
Filecoin原理
Filecoin工作方式的描述
用户将数据文件的储存委托给Filecoin
网络内的矿工提供储存
矿工凭借储存空间大小获得奖励
需要解决的核心问题
女巫攻击:矿工作弊,多个节点读取同一份存档,或者用一份文件申领多份奖励。解决方法 - 零知识证明在不暴露文件内容的条件下就可以证明存储了一份文件。
解决方案 - PoRep & PoSt算法
这两个算法组合使用有以下特点:
能够证明矿工存储了特定文件
原始文件加入矿工信息后进行编码,证明存储的独特性
编码很慢解码很快,方式矿工作弊
编码后的文件则为用户的“有效存储”
有效存储越多生成区块概率越大,获取奖励的概率越高
- PoRep
不能进行并行计算,多核、多线程技术无法提高速度
正常一份有效存储需要计算8小时,优化后也需要2小时
一份有效存储是32GB
占用内存上百GB
临时存储达到大几百GB,硬件要求高
- PoSt
系统每45秒抽查一次
抽到后要计算出证明并上传,否则就要接受惩罚
对矿工的存储稳定性、随机读速度等都有较高要求
03
Filecoin挖矿
打破了矿工原有的惯性思维
现有的挖矿机制的物理属性中没有“状态”,挖矿 历史 不重要
矿机等硬件插电就开始,停电就结束,转换币种无成本
投资矿业相当于购买相应币种期货期货,相当于“做多”,随时间慢慢收回成本
投资矿机,随时间慢慢收回成本
Filecoin挖矿改变了矿业的金属属性
一层期货变为两层期货
投资算力和存储设备 - 期货1
算力设备挖出有效存储 - 期货2
有效存储随时间推移收回成本
Filecoin挖矿改变了矿业的物理属性
参与Filecoin挖矿需要较高的维护成本
大规模储存的部署在技术上有难度
矿工需要在本地做文件的冗余备份,防止无法提供证明被惩罚
需要保证文件读写速度的保证
需要保证网络稳定性
存储容量扩容
04
Filecoin矿场
集群化部署
存储
存储的可扩容性
存储的稳定性
存储的安全性
存储需要人工维护工作
计算
优化后的计算程序
计算的可扩容性
网络
网络的吞吐性
网络的稳定性
05
星链 提供的解决方案
矿池产品
我们对Filecoin矿池产品的实现方式有三个方向的设想:
云算力 - 全部硬件租赁
用户租赁计算资源,存储资源根据挖到的有效存储自动调整;
按租赁规模和时间收费。
矿场方案 - 全部硬件购买
提供计算型矿机,存储型矿机和网络等硬件方案;
提供挖矿的软件方案;
提供部署和维护服务。
矿机托管 - 买算力,租存储
用户购买计算型矿机,托管在我方矿场;
我方负责网络和存储设备的接入;
按租赁存储的规模和时间收费。
06
星链后续规划
近期,星链矿池,进入Top矿工磅。与此同时,全方位广泛收集用户对于矿池的需求,调整提供服务的方式和计费方法。
星链负责提供Filecoin挖矿相关的硬件和软件。
⑸ 在公链项目早期,为什么PoW是一个更好选择
在传统的互联网公司或金融机构中,如果一家公司,在一年之内,被委托的交易结算的总量为万亿美元的话,这家公司要么拥有可靠的技术和雄厚的资本,要么就是其它大公司及政府为其信用来做背书。而比特币却在没有政府或公司背书的情况下,在过去一年内支持了相当于一万亿美元的交易。这是因为比特币的工作量证明(PoW)机制确保了全世界的比特币矿工以点对点的方式去分布式地维护账本,且保证了其正确性和不可篡改性。
实际上,PoW 协议并不完美,它在运行过程中需要消耗大量的能量来计算哈希函数的结果,以保护区块链系统不被攻击。很多人认为这是一种“无用的能源消耗”。为了避免这种消耗,股权证明协议(PoS)便作为替代方案被提出。包括以太坊在内的几个著名的项目也开始探索股权证明协议(PoS), 甚至有人认为,PoS协议在未来将完全取代PoW协议。
但是,在对PoS 协议进行了深入的技术剖析之后,我们会发现:在一个公链项目的早期阶段,PoS 协议会带来很多问题,而这些问题在PoW协议下是可以避免。首先,使用PoS协议启动主网的公链项目,会不可避免地存在共识中心化的问题,因为主网上线的时候股权分布往往是相对集中的。此外,纯 PoS 协议还面临着远程攻击(Long Range attack)的威胁。最严重的远程攻击会导致新加入的节点必须信任一些中心化的网站给出的信息,而这会导致 PoS 公链成为一个本质上中心化的网络。去使用PoW协议启动主网的区块链则可以实现分散的共识,从而避免这些问题。当PoW公链经过一段时间的发展,股权分布相对分散以后,还可以选择PoW/PoS复合机制。
除此之外,还有一点值得注意的是,很多人误以为比特币的扩容问题是PoW机制的局限性造成的。我们经常在媒体网站或白皮书中看到这样的句子,“比特币因为使用了PoW机制,所以只能处理每秒3-7笔交易”。而事实上,经过适当的设计,例如,GHOST, Conflux 这样的PoW算法可以显著提高出块效率,达到每秒处理数千笔交易,且每笔交易都能得到全网节点的验证。
PoW v.s. PoS:如何确定投票权
关于PoW和PoS之间的主要区别,就是在于如何确定区块链共识中的投票权。 在PoW中,系统中的投票权与节点的计算能力成正比。每秒可以计算哈希函数次数越多,节点就越有可能赢得区块链中下一个区块的出块权。而在PoS中,系统的投票权与持有的股权比例成正比。节点拥有资金越多,能为确定的下一个区块投的票数就越多。
在公链早期阶段,股权中心化将导致共识中心化
对于一个公有链来说,其上线初期往往是股权最集中的时候。在主网上线伊始,创始块中分配的币绝大多数属于项目方和私募投资人,而这些人的数量往往非常有限。对于PoW共识机制,初始股权的集中不会带来安全性问题,因为它的出块和安全性不依赖于股权持有的分散,而是依赖于算力的分散。对于使用反 ASIC 矿机的挖矿算法的公有链来说,任何人只要拥有显卡和网络就可以成为矿工,这有助于促进更多人参与挖矿,实现早期算力的分散。只要超过50%的算力来自于诚实的矿工,区块链中的交易就是安全不可逆转的。
然而,在PoS共识机制下,股权集中会导致共识协议的参与者集中。区块链的出块权只能由少数在创世块中拥有股权的玩家决定。如果这些人合谋对区块链进行攻击,则完全可以成功的实现双花攻击(Double spending attack). 尽管开发者和投资人出于利益考虑不会进行这样的攻击来摧毁他们自己的公链,但PoS公链也无可避免的在主网上线后就被这些人垄断和支配。更糟的是,如果出块可以获得大量奖励和交易费用,这些垄断者就会将大量股权牢牢控制在自己的手里,使得PoS公链成为一个本质上由巨头控制的网络。
我们不要忘了,区块链的核心价值是什么?是去中心化的共识协议,保证了区块链系统中每笔交易的正确性、不可篡改性。如果共识协议无法保证参与者的分散,区块链就无法做到无需信任的安全性,那么区块链和传统的分布式系统相比就没有任何优势了,甚至传统的分布式系统能做得更经济更高效。因此,公链项目在早期使用PoW, 是避免共识中心化,保护区块链核心价值的明智选择。
“长程攻击”与“主观依赖”问题
在一个公有链中,一个攻击者如果拥有当下足够多的算力或股权,无疑是可以打破公有链安全性完成攻击的。但是在PoS 公链中,如果攻击者获得了一些账户的私钥,这些私钥在历史上某一时刻控制了超过51%的股权,也可以完成攻击,这种攻击的方式被称为长程攻击(Long Range Attack)。
在长程攻击中,攻击者首先获得一些私钥,只要这些私钥在历史上曾经获得了足够多的股权,便可以从这一时刻开始分叉进行51% 攻击,制造一条分叉链出来。而 PoS 的出块不需要进行工作量证明,攻击者可以短时间内让重写历史的分叉链追赶上原本的主链,从而造成PoS链的分叉和防篡改性被打破。
攻击者能够取得这些私钥不是天方夜谭。如果PoS公链的早期投资人在二级市场将持有的代币卖掉后,将账户私钥卖给攻击者,攻击者就可以从创世块进行长链攻击,从而可以打破一个链的安全性。如果一些投资者追求短期收益而非价值投资,攻击者从他们手里获得私钥就成为了一个可能的事情。
而为了应对长程攻击,则有各种各样的解决方案被提出:例如使用密钥演化算法更新密钥,以避免密钥被盗。但是如果早期投资者一开始就决定通过出售私钥获利,那么他完全可以保留密钥种子以绕开这一限制。还有一些解决方案基于这样一个事实:如果攻击者挖了一条完全不同的链,长期在系统中运行的节点或许有能力探测出这种异常。但是,这些方案依然存在如下问题:
PoS 长程攻击造成的分叉与 PoW 的分叉有所不同。PoW 的分叉链难以获得比特币全网算力,比特币矿工很容易从总算力中辨别谁是真正的比特币。鉴于PoS共识协议在实际运行时,绝大多数股权持有者只是区块链的使用者,并不会一直运行一台服务器。攻击者只要在一个历史节点拥有了相当与PoS实际参与者的股权比例,就可以制造出一条难以辨别的分叉链出来。配合女巫攻击(Sybil Attack),攻击者可以从区块历史和节点数量上都获得和被攻击主链接近的水平,令新加入的节点无法区分,只能通过人工指定的方式选择。这样新参与者必须咨询受信任节点来安全地加入系统,这一问题被称为“主观依赖”(Weak Subjectivity)
无利害攻击
无利害攻击(Nothing at Stake)是另一种PoS攻击方式。当一个 PoS 链因为网络延迟、长程攻击或其他原因出现分叉时,PoS 矿工可以选择在两个分叉的链上同时出块,以获取最大收益。而这违反了共识协议。
在PoW 链中,如果一个矿工想同时在多个分叉上挖矿,就必须将自己的算力分散在多个分叉上,所有分叉上分配的算力总和不会超过矿工拥有的总算力。对于多数矿工而言,将自己的全部算力投入到协议指定的链上是最优的选择。
然而,在PoS 多个分叉上同时出块所带来的额外成本可以忽略不计,而选择同时出块可以保证无论哪一条分叉链最终胜出都可获得收益。如果矿工遵守共识协议,只在协议指定的链上挖矿。一旦这个链被丢弃,矿工将会失去挖矿奖励。只追求挖矿收益最大化的矿工会在两边同时参与,不惜因此打破协议——这会导致链长时间维持分叉的状态。
与长程攻击不同,精巧的激励机制设计可以避免这一攻击。但无利害攻击依然表明让PoS链正确地运行是一件很困难的事情。
总结
虽然PoS 具有节省能源等优势,从而很多项目表示将采用PoS。但我们在分析区块链安全性假设后发现,避免了计算“无用的哈希”之后会引入很多攻击情形,而且目前没有很完美的解决方案。诚然PoS有能源效率的优势,但也带来了很多安全性威胁。在PoS很好地解决这些威胁之前,PoW消耗的能源,就像和平时期国家军队用掉的军费一样,阻挡了很多潜在的威胁。最重要的是,其中许多威胁在区块链项目早期显得尤其致命。这也是我们为什么相信新的公链项目应该从PoW开始。
⑹ 女科学家段斯斯:在区块链“江湖”背后“双手互搏”
段斯斯在清华大学高等研究院。(受访者供图)
段斯斯在清华大学高等研究院担任研究员。她工作的地方摆放的东西很少,装备不过是三台电脑。奇崛险怪的攻防进退,只在脑海里酝酿,在键盘上推演,找不到任何“硝烟”的痕迹。
她的研究方向是“拜占庭容错算法”,旨在防范分布式系统内各节点因“敌人破坏”导致的网络崩溃。形象地说,她在进行一场高智商的“双手互博”。第一步,假想一个可能的漏洞或“敌人”;第二步,找到让“敌人”失效的办法;第三步,让同行们相信她解决的是个“真问题”。
段斯斯这样定义自己:介于科学家与工程师之间。她不像网络工程师那样直接同黑客“斗法”,她用数学和逻辑的力量设下让“敌人”无能为力的规则。
“我们中间有匪。”段斯斯用“杀人 游戏 ”用语比喻她研究的“拜占庭将军问题”。“匪传递假消息,误导好人的判断,仗自然就打输了。我要做的是制定一个协议,确保即便有匪,好人也不会输。”
上世纪八十年代初提出“拜占庭将军问题”时,还没人知道什么是区块链。正是对这一问题不断地务虚研究,才撑起如今的区块链技术。现在,中国已把区块链视作核心技术自主创新的重要突破口。
一开始,段斯斯选择的方向有点冷门,不明就里的人以为那是在解奥数题,她也遭遇过科学期刊的拒稿。区块链兴起后,人们看到网络安全协议的重要性,她的学术成就才被更多人看到。
今年1月,段斯斯入选《麻省理工 科技 评论》2021年中国区“35岁以下 科技 创新35人”,获奖理由是她提出多个业界指标性拜占庭容错协议,在分布式系统、区块链和应用密码学领域取得突出成果。
搭上新兴技术的快车,段斯斯说自己挺走运的,可运气的解释力毕竟有限。她硕博阶段本就不多的女同学,多数没有继续搞学术。支持她不放弃的原因,是“这挺有意思的”。
让段斯斯觉得有意思的正是她自己想出来的各种刁钻问题。在她看来,发现问题有时比找到答案更重要。
“女巫攻击”“硬分叉”“梅克尔树”“非对称加密”……被要求科普这些区块链圈的“黑话”时,段斯斯就像在智力竞赛节目中按下抢答器,思维很快,语速也很快,且很快就把问题说明白了。
段斯斯本科就读于香港大学电机电子工程系,2014年获美国加州大学戴维斯分校计算机博士学位,毕业后曾就职于美国橡树岭国家实验室和马里兰大学,2020年举家回国。
“我觉得国内发展快,工作节奏也快,我比较向往发展这一点,尤其在计算机领域,尽管会比较累。”她说。
年轻有为、事业有趣、家庭圆满,周围人说她是“人生赢家”,她却认为自己的生活“一地鸡毛”。她是两个男孩儿的妈妈,一个6岁,一个4岁。她曾经一手抱娃,一手写代码。
她打小不服输,想做的事就停不下来,这也反映在工作风格中。“别人写代码可以零敲碎打,可我习惯一口气写下去。”
解决一个段斯斯式的问题要写上万行代码,至少得花个把月工夫。现在这位“带娃科学家”最渴望的是大块的时间。“一旦被打断,再回来就忘记自己当时是怎么想的了。”她说。
段斯斯分享了一条有关“时间管理”的经验:如果你遇到5分钟之内可以解决的事,那么现在就解决它,拖到后面做肯定不止5分钟。
⑺ 九种常见的攻击区块链的方式
九种常见的攻击区块链的方式,很多人都知道区块链这个东西,也都知道区块链是会被人攻击的,很多人不知道有哪链腊些可以攻击区块链的方式,下面跟着小编一起来看看吧,希望能帮到你。
九种常见的攻击区块链的方式
1、日蚀攻击-一个节点将选择“x”个节点作为访问区块链的基础,该节点从这“x”个节点获取区块链的数据。
如果攻击者可以使得此节点选择的“x”个节点都为攻击者可控制的节点,就可以使得被攻击节点处在一个“孤立”的状态。被攻击节点将从主网中被隔离出来,完全由攻击者控制。
2、女巫攻击-这里的“女巫”并不是指拥有魔法的女人,而是出自一部美国电影《Sybil》,剧中的主人公拥有16重人棚亮滑格,扮演着16个不键好同的角色。而女巫攻击就是指同一节点伪装成不同节点发起的一种攻击。
攻击者通过伪造的身份,使少量节点伪装成大量节点,进而影响整个网络。攻击者可能利用女巫攻击进行双花、实现51%攻击等,并且要实施日蚀攻击,一般都会先进行女巫攻击。
3、异形攻击-异形攻击又称为“地址污染”。
当不同公链使用兼容的握手协议时,我们称这些公链为同类链。攻击者将同类链的节点数据加入被攻击的公链节点中,当被攻击的公链节点进行通信并互换地址池时,就会污染其他正常节点的地址池,并持续污染整个公链网络,导致公链通信性能下降,最终造成节点阻塞等现象。
4、自私挖矿_区块链的共识机制决定着节点会认同最长链才是真实有效的。攻击者可以在当前最新区块上持续挖矿但不进行广播,从而隐藏自己挖出的区块。
当攻击者节点隐藏的区块长于已在链上的公布的最长区块时再进行广播,从而成为最长链,使得原先的最长链进行回滚,从而实现双花等攻击。
5、挖矿木马_攻击者通过上传恶意程序到公开网络或者制作蠕虫病毒等方式将挖矿程序传播到他人计算机上。
利用他人计算机资源和电力进行挖矿,获取挖矿利益。被攻击的计算机会消耗大量的资源,导致电脑卡顿,使用寿命减短。
6、51%算力攻击_51%算力攻击是区块链最著名的攻击方式之一。
在一个POW共识的区块链网络中,算力即是权力。当超过50%的算力都由一人控制时,此人就可以任意的撤销和阻止交易,进而实现双花。
7、时间劫持攻击_一个节点是通过其他节点时间的中位值来确定时间的。
如果攻击者将一个恶意的节点列表置入被攻击节点的对等节点列表中,就可以控制此节点的时间,例如通过日蚀攻击。
8、芬尼攻击_如果攻击者可以隐藏一个包含自己交易的区块,就可能实现一笔双花。
当一个交易所或其他机构接受0确认的交易时,攻击者可以向其进行转账,花费其隐藏区块中已经花费的资金,在新交易的区块广播前,将隐藏的区块广播。
因为所隐藏的区块时间更早,所以在后面进行的花费将被回滚,从而实现双花。
9、种族攻击_此类型攻击是“芬尼攻击”的分支,攻击者将同时进行两笔交易,花费同一笔资金,一笔转给支持0确认的商家进行提现;一笔转账给自己,并给予更高的gas。
节点会优先处理gas更高的交易,所以后一笔交易将不会被执行。通常攻击者会连入与被攻击商家较近的节点进行操作,使得商家优先收到最终不被执行的交易。
⑻ 比特币钱包
比特币(bitcoin)诞生于2008年的一篇论文。
一个署名为中本聪的人,提出了革命性的构想:让我们创造一种不受政府或其他任何人控制的货币!这个想法堪称疯狂:一串数字,背后没有任何资产支持,也没有任何人负责,你把它当作钱付给对方,怎么会有人愿意接受?
Merkle tree
跟二叉树长得很像,只是这个是下面两个节点取哈希值得到上面节点。只需要记住根节点,就可以检测整棵树有没有被篡改。
根哈希值存在block header里,交易过程存在block body里。全节点包括block header和block body,但是轻节点(比如手机上比特币钱包)只包括block header。这棵树可以证明包含某个交易已经被写进了区块链。
3.共识协议
去中心化的货币要注意的两个问题:
1.谁能发行数字货币:挖矿。
2.怎么验证交易的合法性:区块链。
双花攻击(double spending attack)
双花攻击是数字货币的一个主要挑战。
比特币中的交易都要有输入和输出,币从哪来,花到哪去。
正常情况也可能有两个分叉,因为两个节点同时获得记账权,两个节点打包的区块,同时计算出了那个随机数。此时会暂时两个分叉共存,直到其中某一个区块抢先找到了下一个区块,这条就成了最长合法链,另一个分叉就被丢弃。
女巫攻击(sybil attack)
某恶意节点不停产生账户,账户总数超过总账户的一半,则取得了区块链的控制权。
比特币中的共识协议(Consensus)
一些节点是有恶意的,大部分节点是好的。
想法1:把一些交易打包到区块里作为候选区块,让每个区块投票,如果通过就写入区块链。
不行,因为有的恶意节点一直发布一些含有恶意交易的区块,则一直投票,占用资源。而且有的节点不投票。
想法2:不按账户个数投票,而是按照计算力投票。每个节点都可以产生合法交易放入区块,这些节点就开始试随机数,直到找到H(block header)≤ target,则这个节点有记账权。
唯一产生比特币的途径
coinbase transaction。这个不用指出币的来源,有了记账权的节点(找到了随机数)会有出块奖励。
50BTC->25BTC->12.5BTC,每21万个比特币,奖励就减半。
比特币争夺记账权的过程叫挖矿。争夺记账权的节点叫矿工。
⑼ pos机制的起源与设计理念
POS起源
2012年,背景是POW进沦为资本玩家的玩具,算力过于中心化,随时都有被“51%攻击”。
开放者Sunny Kind第一次提出了POS(股权证明)的概念,与POW是完全不一样的。
POS不用大量的算力来维持网络安全,只要参与者打开自已的钱包在线增加权重,获得相应的奖励也就是利息。
POS的设计理念
我们应该都知道,比特币的区块产量每四年就会减半,这样区块的产量将会越来越少,矿工就会“旷工”,因为赚到的越来越少。
那么,人数少了,比特币就可能被一些高算力的人所掌握,数字货币网络将会瘫痪。
POS解决方法:并非所有的区块都是靠挖矿得来的,只要打开钱包客户端程序,就能发现区块,也可以得到利息,这样就会有一个引流的效果。
POS机制可以描述成一种虚拟挖矿。鉴于POW主要依赖于计算机硬件的稀缺性来防止女巫攻击,POS则主要依赖于区块链自身里的代币。
女巫攻击
这个名字是基于1973年的小说《女巫》改编的同名电影,女主具有16重人格。
因为节点随时加入和退出等原因,为了维护网络的稳定,同一份数据可能备份在很多节点上,这就是数据冗余机制。
若是在网络上存在恶意节点,那这一个节点就具有多重身份。那这个恶意节点就可能骗到其他节点备份到他这里。
POW就是根据计算能力随机,而POS则根据拥有财产随机。POW是保证比特币、当前以太坊和许多其它区块链安全的一种机制。
但是POW算法在挖矿过程中因破坏环境和浪费电力而受到指责。POS试图通过以一种不同的机制取代挖矿的概念,从而解决这些问题。
PoS的优点
不再需要为了安全产生区块而大量消耗电能。由于不再需要大量能耗,通过发行新币以激励参与者继续参与网络的压力会下降。PoS机制下,全网每秒可以处理的交易数增加,可以提供比PoW机制更好的性能。
POS算法是个资本主义
你拥有的钱越多,得到的权利也就越大。为什么?
因为你在里面的钱越多你想要维护系统的愿望也就更大。若是有恶意攻击,他们的钱也就只能是竹篮打水一场空。
POS算法
如果我手上有500个代币,把它放进POS机制,这样里面的500个代币就变成了验证者.假设它在区块链里最新的块。
POS算法将从验证者里面抽取一个随机的,给他们权利产生下一个区块。
PoS 机制由股东自己保证安全,工作原理是利益捆绑。在这个模式下,不持有 PoS 的人无法对 PoS 构成威胁。PoS 的安全取决于持有者,和其他任何因素无关。
PoS机制源于人们对PoW机制的不满以及改进。早期的PoS机制有各种缺陷,随着各种项目对PoS机制的不断改进,PoS正逐渐成为主流的共识机制。