php洋葱模型,【区块链安全】区块链安全性的洋葱模型
根据经验来看公链是安全的,在其大部分历史上,它们已成功的达到其设计目的,即以没有任何差错的情形下处理交易。这确实是我们观察到的事实,但要想出一个理论来解释为什么会这样就比较困难了。
个人一般会用他们最了解和最看重的事物来解释他们的钟意项目的安全性。人们认为一个公链是通过经济激励、全球分布式的Hash算力、全球性的节点或者狂热的社区(维护一套共识)来保证其安全性。这种看法可以理解,根据工具定律(The law of the instrument),我们过度依赖那些我们已经熟悉的工具。也就是说如果你唯一的工具是一把锤子,那么你就倾向于把一切都当作钉子来对待。
我不认为以上任何一个因素可以能单独解释这个现象(即不犯任何差错地处理交易)。尽管在某一特定领域有完美的防护措施,但对其实施攻击也不是一件难事。例如,在一个所有用户都运行一个完整的节点的网络中,矿工仍然可以用一个备用的区块链代替整个区块链(在这个区块链上他控制了所有的币)。因此必须是不同组合的相互作用才能维护一个免许可数字货币系统在相对安全的程度。
区块链安全性的洋葱模型
我提出的模型希望将安全性的各个元素形成一个连贯的组合。其目标是能够更全面地看待公链以发现其优势和缺陷,并允许对不同区块链进行比较。
公链的安全性类似于洋葱,每一层都增加了额外的安全性:
要永久地破坏一个公链,就必须破坏用户对其账本状态(所有权清单)的信任,以及破坏未来可靠地更新该状态的能力。所有更上层的服务都是为了防止这种情况的发生。
攻击要经过这些防御层的“漏斗”才能触及核心。现在我们来逐一讨论这几层。
加密保障(cryptographic guarantees)
最外层的防御是由密码学来保障的。密码学给出了最可靠的保障形式,所以我们希望它能承担起重任,从一开始就能防止大多数攻击。除此之外,还需要保障以下几点:
不凭空创造数字货币。所有的区块(以及因此所有的区块奖励)都必须有足够的工作证量依附在上面。
不得花费他人的数字货币。数字签名必须确保数字货币的有效拥有者才能花费。
不能追溯性地改变旧区块的内容。哈希指针确保攻击者必须改变建立在任何他想改变的旧区块之后的所有区块。
所有针对以上几点的攻击都会被“漏斗”的第一层所阻挡。
虽然密码学非常强大,但它也有其他一些无法提供的保障。例如,它不能决定两个同样长的区块链中的哪一个是“正确的”区块链(这就需要对现实世界有一定的了解,比如“其他人会转到哪个区块链上”,“哪个区块链的长期市场价值更高”)。它也不能强迫矿工们在特定区块上挖矿,也不能让他们一旦发现区块就发布区块,甚至不能确保它们包含特定的交易。
共识保障(consensus guarantees)
一些通过第一层的攻击会在共识保障中被阻止。在中本聪设置的共识中,节点会不断观察网络,并自动切换到最长(最贵)的链上。矿工只有当他们的区块最终成为那条最长的链的一部分时才会获得报酬,所以他们需要与其他矿工汇合。因此,对矿工来说,他们会更倾向于在区块链的顶端挖矿,因为他们的区块在那里最有可能被其他矿工认可。
如果一个恶意矿工想在之前的区块上挖矿,他就会和其他继续在区块链顶端挖矿的矿工进入竞争状态。只有当他找到几个区块的速度比其他人的总和快,他才能追得上整条链且把他挖出的区块及之后的链拉到最长。但根据他所占的Hash算力份额,就算是很短的分叉,他也很难成功。
为了使攻击可靠地发挥作用,攻击者需要首先获得对共识层的控制权。这意味着要控制PoW中大于50%的哈希率,或者控制了基于BFT的股权证明中大于33%的股权,或者控制了基于最长链的PoS中大于50%的股权。
这其中的操作难度往往被低估。例如,大型组织通常被认为是公链的最大威胁。然而,如果他们想在一级市场上购买必要的硬件,他们很快就会发现,中国大陆、中国台湾和韩国的芯片代工厂的年产量是有上限的。而且他们的产能还被澳大利亚的稀土开采、亚洲和非洲的晶圆生产等进一步限制,即每年的产能是有限的。即使是对积极性很高的买家来说也是如此。以这种方式获得必要的硬件至少需要2-3年的时间,而且在这期间不可能不会引起相关的关注。
经济保障(economic guarantees)
我认为由于有了经济保障,即便单一实体控制了共识层,区块链也不会立即崩溃。通过设置正确的激励机制,区块链可以将现实世界的成本与错误行为联系起来。主要原因来自于原生代币,它引入了数字稀缺性(即价值)的概念,且可以奖励好的行为(用区块奖励和费用)并惩罚坏的行为(通过削减安全存款或扣押未来的奖励)。
这些激励措施的大小会随着行为者对共识层的控制程度的高低而变化。一个控制了大量 Hash算力的矿工(即使是大多数),其破坏系统的损失也会成比例地增加。因此,攻击者会因为受到经济上的惩罚而使他望而却步。
不是所有的经济激励都是平等的。相对于网络价值而言,区块奖励更大的作用是使网络更安全,因为它迫使矿工们在挖矿中的防御性更强。这就是为什么区块奖励的下降会给BTC的安全带来风险)。
当Hash运算需要专门的硬件(即ASIC)且这些硬件并不能在其他领域利用时,矿工们在游戏中的防御性也会更强。迄今为止,所有的挖矿攻击都发生在较小的网络上,这不是巧合,因为这些网络接受了一种叫做抵制ASIC的错误观点,在这种情况下攻击者是很容易占据上风的(例如通过租用Hash算力)。
社会保障(social guarantees)
之前我们说过,要永久摧毁一个公链就必须摧毁用户对账本状态(所有权清单)的信任,以及未来可靠地更新该状态的能力。这一点是非常必要的,因为区块链并不是目的本身,也就是说没有理由因为链的某些部分暂时失败,就否定这条链。区块链仅仅是一个在其参与者之间建立社会共识的自动化过程的手段,是一个维护和更新共享数据库的工具。该数据库的状态对参与者来说是有价值的,当系统出现故障时,他们有强烈的动力去恢复系统。 例如,如果加密的Hash函数出现问题,社会层可以达成人为共识(在技术专家的指导下)来替换出现问题的部分。
同样,如果一个共识攻击绕过了经济保障,社会保障仍然可以将其阻挡。如果一个拥有多数Hash算力的攻击者在完全接受了自己的经济损失的情况下,开始通过挖空区块对网络进行DOS攻击,那么矿工们可以投票决定改变PoW算法,从而移除该挖矿者的控制权。
我们可以看到,要想永远摧毁一个区块链,唯一的办法就是要么让用户对账本状态本身失去兴趣,要么就是对系统的破坏达到不可能修复的程度。
当攻击能够击穿所有的层数,并最终消磨掉系统的社会核心,直到无法造成更深层次且无法治愈的伤害,那这种攻击就相当危险了。
为了让自我修复和人工干预都能发挥作用,每个项目的社区都需要围绕着项目的主要属性形成强大的社区共识。就BTC而言,这些核心属性是交易的不可逆性、抗审查能力、不向后兼容的变化、21M代币上限等。当社会干预变得有必要时,它们可以作为社会干预的行动蓝图,这些核心属性围绕着什么需要修复,什么不需要修复创造了谢林点(Schelling points)。
一个项目的这些核心属性是永远都会被反复不断协商改进的,并不是所有用户会对所有属性都达成一致。但是,围绕着某个特定属性的共识越强,就越能在困难时期坚持下去。
将社会层视为任何区块链的底层,我们可以认识到对于社会层攻击是一个很大的威胁。如果恶意开发者可以在没有监督的情况下偷偷地进行有害的代码修改(特别是在频繁硬分叉的项目中),更高的层就会变得更加脆弱。
总结
我认为洋葱模型很有用,它可以帮我们看到区块链的各层如何组合创造一个安全的整体。在某些方面,它建立在我之前关于比特币的社交合约的文章基础上:任何公链都是从核心的一组共识开始的,这是一个系统希望实现的蓝图。
这套共识必须被转化为人际行为规则,然后我们自动执行这些规则,创造出不同类型的保障:经济保障、共识保障和加密保障。通过对参与者的行为的约束,系统变得具有社会可扩展性,从而在低信任环境中实现合作,共同创造财富。
___
专注真诚分享,帮助新人跃迁。
QQ:334026,一起交流。微信公众号:
“今日币有约”,及时掌握我的一手分享。
Post Views:
46
php洋葱模型,【区块链安全】区块链安全性的洋葱模型相关推荐
- 区块链中utxo模型是什么意思_区块链100讲:UTXO 和 Account 模型对比
在当前区块链世界中,主要有两种记录保存方式,UTXO 模式(Unspent Transaction Output) 和 Account 模式.Bitcoin 采用的是 UTXO 模型,Ethereum ...
- 区块链安全:区块链P2P网络详细分析
区块链技术大量依赖于P2P网络,可以说没有P2P就没有区块链现在的发展.而区块链拥有去中心化的应用理论,所以对P2P的过程有着近似严苛的安全要求.本文围绕P2P网络的基础架构以及安全协议展开论述.内容 ...
- 区块链安全—区块链P2P网络详细分析
区块链技术大量依赖于P2P网络,可以说没有P2P就没有区块链现在的发展.而区块链拥有去中心化的应用理论,所以对P2P的过程有着近似严苛的安全要求.本文围绕P2P网络的基础架构以及安全协议展开论述.内容 ...
- 区块链以及区块链技术总结
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 摘要:区块链是目前一个比较热门的新概念,蕴含了技术与金融两层概念.从技术角度来看,这是一个牺牲一致性效率且保证最终一致性 ...
- 区块链研习 | 区块链里所说的“智能合约”是什么? 本文作者:敖萌 编辑:温晓桦 2017-10-11 20:31 导语:谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能
区块链研习 | 区块链里所说的"智能合约"是什么? 本文作者:敖萌 编辑:温晓桦 2017-10-11 20:31 导语:谈到区块链,必然离不开"智能合约"这个 ...
- 区块链BaaS云服务(16)天德链TDBC“金丝猴链”
1. 定义 两个参与链之间,可以有多条中间链,每两个机构之间都可以通过中间链进行跨链交易.每条链维护自己的一致性,链与链之间的一致性由一个完全分布式的机制来维持,而不需要由一个中间组织来管理. 1.1 ...
- 基于区块链的健康链系统设计与实现(2)区块链平台Web服务器
2.2 区块链平台分析 Bitcoin(比特币)作为区块链技术的起源,是目前发展最成熟的开源区块链平台之一,拥有大量的开发人员和活跃的开发社区.Ethereum(以太坊)核心是支持智能合约的EVM(以 ...
- 基于区块链的健康链系统设计与实现(1)引言
摘 要:疫情期间,各大公共场所的人员进出都需要进行测温和信息登记,鉴于人工纸张录入数据的方式效率低下,本系统基于微信小程序开发相关功能,通过扫码的形式实现人员的注册和信息登记,同时基于比特币的区块链技 ...
- 区块链浏览器_如何用区块链浏览器实现链上数据追踪?
"支付宝转个账还能有交易回执,京东白条被盗刷了还能去找平台,交易没有任何国家信用背书的虚拟货币的用户,是如何确认自己完成了交易的?在没有第三方平台的情况下,如何实现链上数据追踪?" ...
最新文章
- 【按住你的心】——Android开发CheckBoxRadioButton控件的简单使用
- CCF 2019年题目题解 - Python
- python编写程序模拟硬币的投掷、假设0表示硬币的反面_修改了Python中的硬币投掷程序,无法完成循环...
- 力控批量添加变量_力控组态软件的变量操作函数1
- server sql 多表事物 自增id_最实用的 SQL 语句收藏,程序员看完这篇就够了!
- DenyHosts安装及配置
- EF调用执行Oracle中序列
- 驱动级鼠标模拟实现_双飞燕血手幽灵V8M Max电竞鼠标兼具功能和性价比
- PGP加密解密QQ邮箱邮件
- Flex Builder3编译时生成as
- Mac更新Moterey后Alfred无法使用有道词典workflow
- Oracle实现US7ASCII到ZHS16GBK数据迁移正常显示中文
- 服务器机柜规格19寸销售商贵州,聊一聊标准服务器的尺寸 常见的19英寸标准机柜尺寸...
- springmvc与ajax
- 汉诺塔问题以及青蛙跳台阶问题(附C语言代码)
- 树的递归与非递归遍历算法
- 思科和思杰联袂提供全面的桌面虚拟化解决方案
- 英语作文计算机国际会议开幕词,【国际会议开幕式】国际会议开幕词英文
- 大数据系列——什么是hive?hive用来干什么的?hive常见问题是啥?
- c语言寒假作业班干选举系统,寒假作业1
热门文章
- JOLT的配置与编程简介
- c语言足球赛设计报告,c语言实现足球比赛积分统计系统
- 【论文阅读】(2023.06.09-2023.06.18)论文阅读简单记录和汇总
- 01-python基本数据类型
- 如何理解《道德经》开篇,决定一个软件工作者的前程
- 数据库 查询计算机系姓王,数据库上机实验报告——SQL Server 2008 简单查询.doc
- Plaxis 2D CONNECT Edition V21 Update 1
- 自学CFD:我在实习岗速成无人机设计和仿真的故事
- kafka灰度发布解决方案
- 2021年终总结--量变质变