当前位置: 首页 > 编程日记 > 正文

区块链的安全软肋是什么?

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

在这里插入图片描述
今天我们来谈谈区块链的安全软肋。

作为比特币中的核心技术,在无法建立信任关系的互联网上,区块链技术依靠密码学和巧妙的分布式算法,无需借助任何第三方中心机构的介入,用数学的方法使参与者达成共识,保证交易记录的存在性、合约的有效性以及身份的不可抵赖性。

区块链技术常被人们提及的特性是去中心化、共识机制等,由区块链引申出来的虚拟数字货币是目前全球最火爆的项目之一,正在成就出新的一批亿万级富豪。像币安交易平台,成立短短几个月,就被国际知名机构评级市值达400亿美金,成为了最富有的一批数字货币创业先驱者。然而最近币安也遭到了黑客的攻击,损失可谓惨重。自从有数字货币交易所至今,被攻击、资金被盗事件太多了,且部分数字货币交易所被黑客攻击惨重直接倒闭。

一、令人震惊的数字货币交易所被攻击事件

从最早的比特币,到后来的莱特币、以太币,目前已有几百种数字货币。随着价格的攀升,各种数字货币系统被攻击、数字货币被盗事件不断增加,被盗金额也是一路飙升。让我们来回顾一下令人震惊的数字货币被攻击、被盗事件。

2014年2月24日,当时世界最大的比特币交易所运营商Mt.Gox宣布其交易平台的85万个比特币已经被盗一空,承担着超过80%的比特币交易所的Mt.Gox由于无法弥补客户损失而申请破产保护。经分析,原因大致为Mt.Gox存在单点故障结构这种严重的错误,被黑客用于发起DDoS攻击:比特币提现环节的签名被黑客篡改并先于正常的请求进入比特币网络,结果伪造的请求可以提现成功,而正常的提现请求在交易平台中出现异常并显示为失败,此时黑客实际上已经拿到提现的比特币了,但是他继续在Mt.Gox平台请求重复提现,Mt.Gox在没有进行事务一致性校验(对账)的情况下,重复支付了等额的比特币,导致交易平台的比特币被窃取。

2016年8月4日,最大的美元比特币交易平台Bitfinex发布公告称,网站发现安全漏洞,导致近12万枚比特币被盗,总价值约为7500万美元。

2018年1月26日,日本的一家大型数字货币交易平台Coincheck系统遭遇黑客攻击,导致时价580亿日元、约合5.3亿美元的数字货币“新经币”被盗,这是史上最大的数字货币盗窃案。

2018年3月7日,世界第二大数字货币交易所币安(Binance)被黑客攻击的消息让币圈彻夜难眠,黑客竟然玩起了经济学,买空卖空“炒币”割韭菜。根据币安公告,黑客的攻击过程包括:

  1. 在长时间里,利用第三方钓鱼网站偷盗用户的账号登录信息。黑客通过使用Unicode字符冒充正规Binance网址域名里的部分字母对用户实施网页钓鱼攻击。

  2. 黑客获得账号后,自动创建交易API,之后便静默潜伏。

  3. 3月7日黑客通过盗取的API Key,利用买空卖空的方式,将VIA币值直接拉暴100多倍,比特币大跌10%,以全球总计1700万个比特币计算,比特币一夜丢了170亿美元。

二、黑客攻击为什么能屡屡得手

基于区块链的数字货币其火热行情让黑客们垂涎不已,被盗金额不断刷新纪录,盗窃事件的发生也引发了人们对数字货币安全的担忧,人们不禁要问:区块链技术安全吗?

随着人们对区块链技术的研究与应用,区块链系统除了其所属信息系统会面临病毒、木马等恶意程序威胁及大规模DDoS攻击外,还将由于其特性而面临独有的安全挑战。

  1. 算法实现安全

由于区块链大量应用了各种密码学技术,属于算法高度密集工程,在实现上比较容易出现问题。历史上有过此类先例,比如NSA对RSA算法实现埋入缺陷,使其能够轻松破解别人的加密信息。一旦爆发这种级别的漏洞,可以说构成区块链整个大厦的地基将不再安全,后果极其可怕。之前就发生过由于比特币随机数产生器出现问题所导致的比特币被盗事件,理论上,在签名过程中两次使用同一个随机数,就能推导出私钥。

  1. 共识机制安全

当前的区块链技术中已经出现了多种共识算法机制,最常见的有PoW、PoS、DPos。但这些共识机制是否能实现并保障真正的安全,需要更严格的证明和时间的考验。

  1. 区块链使用安全

区块链技术一大特点就是不可逆、不可伪造,但前提是私钥是安全的。私钥是用户生成并保管的,理论上没有第三方参与。私钥一旦丢失,便无法对账户的资产做任何操作。一旦被黑客拿到,就能转移数字货币。

  1. 系统设计安全

像Mt.Gox平台由于在业务设计上存在单点故障,所以其系统容易遭受DoS攻击。目前区块链是去中心化的,而交易所是中心化的。中心化的交易所,除了要防止技术盗窃外,还得管理好人,防止人为盗窃。

总体来说,从安全性分析的角度,区块链面临着算法实现、共识机制、使用及设计上挑战,同时黑客通过利用系统安全漏洞、业务设计缺陷也可达成攻击目的。目前,黑客攻击已经在对区块链系统安全性造成越来越大的影响。

三、如何保证区块链的安全

为了保证区块链系统安全,建议参照NIST的网络安全框架,从战略层面、一个企业或者组织的网络安全风险管理的整个生命周期的角度出发构建识别、保护、检测、响应和恢复5个核心组成部分,来感知、阻断区块链风险和威胁。

除此之外,根据区块链技术自身特点重点关注算法、共识机制、使用及设计上的安全。

的密码技术,如国密公钥算法SM2等。另一方面对核心算法代码进行严格、完整测试的同时进行源码混淆,增加黑客逆向攻击的难度和成本。

针对共识算法安全性:PoW中使用防ASIC杂凑函数,使用更有效的共识算法和策略。

针对使用安全性:对私钥的生成、存储进行保护,敏感数据加密存储。

针对设计安全性:一方面要保证设计的功能尽量完善,如采用私钥白盒签名技术,防止病毒、木马在系统运行过程中提取私钥;设计私钥泄露追踪功能,尽可能减少私钥泄露后的损失。另一方面,应对某些关键业务设计去中心化,防止单点故障攻击。

四、现在在做区块链安全的公司

知道创宇:创宇在安全圈的名气就不用说了,毕竟国内最早开始提出云检测和云防御的安全公司。据知情人透露目前知道创宇旗下的区块链相关安全解决方案,已经被数家客户以天价签下。知道创宇看来确实实力不错。

梆梆安全:梆梆安全在2016年开始针对区块链安全中的核心问题——“私钥保护”进行研究,好像已形成了相关产品和咨询方案。

安全狗:安全狗的侧重还是在于服务器,他云防御和整体的区块链安全方案依托在过硬的技术上应该还是不错的。

相关文章:

web service 项目 和 普通 web项目 的 区别

web service 面向的是开发者(需要再次开发) 普通web 面向的是用户(直接使用)转载于:https://www.cnblogs.com/zno2/p/5612024.html

selenium:学习资源

selenium中文版文档 http://www.selenium.org.cn/1203.html selenium 搜索功能: http://blog.csdn.net/qq_878799579/article/details/73321015 selenium 详细教程: http://www.cnblogs.com/yoyoketang/p/6123938.html 转载于:https://www.cnblogs.com/f…

node.js 验证路径有效性_怎样识别光伏谐波路径?试试这个算法

国网吉林省电力有限公司四平供电公司的研究人员韩绍禹、李新辉,在2019年第5期《电气技术》杂志上撰文指出(论文标题为“基于信息熵和节点导纳矩阵的光伏谐波路径初探”),光伏电站的接入给电网注入一定谐波,同时也增加了电网谐波线损。本文针对…

区块链研发与运营

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 传统行业之所以会存在着每况愈下的情况发生,主要的原因还是在于运营方式的墨守成规,造成消费者缺乏了购买欲望和关注度&am…

mysql longtext可以存储多少文字_MySQL 四万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)

作者:派大新 链接:https://juejin.im/post/5f0d4fadf265da22f3250eaa写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的…

2018.3.15校内互测总结-点分治-线段树

这是曾来过咱们学校集训的一位大神出的~ T1 题目大意 给出一棵带边权的无根树,求树上前$k$大的路径的长度。 $1 \leq n \leq 200000$ 题解 想了一上午点分治,却发现只会$O(nlog^3n)$的...... 正解是二分第$k$大的权值,用点分治判断&#xff0…

EntityFramework Core 学习笔记 —— 创建模型

原文地址:https://docs.efproject.net/en/latest/modeling/index.html 前言: EntityFramework 使用一系列的约定来从我们的实体类细节创建模型。我们可以钦定一些额外的映射配置来添加、重写实体类的哪些细节应该被这些约定所发现。 这篇文章讲述了一些无…

使用docker-compose进行多节点部署

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 创建数据目录及多节点目录 mkdir -p ~/workmeta/EduEthereumServerDeploy/deploy_2/{node1,node2} > cd ~/workmeta/EduEthereumServerDeploy/de…

石头剪刀布python代码_我的第一个python程序,石头剪刀布猜拳游戏

从决定学习python到今天,已经过去了好1个月,买的几本书还没一本看完的,惭愧。 忙不是借口,是时候来点计划,来点坚持。写点什么吧,算是学习的记录,也是对自己的鞭策。 今天写一个猜字游戏&#x…

CATransform3DRotate 实现左右,上下翻转效果

CGFloat m34 800; CGFloat value = -40;//(控制翻转角度) CGPoint point CGPointMake(0.5, 0.5);//设定翻转时的中心点,0.5为视图layer的正中 CATransform3D transfrom CATransform3DIdentity; transfro…

[UWP小白日记-10]程序启动屏(ios解锁既视感)

[UWP小白日记-10]程序启动屏(ios解锁既视感) 原文:[UWP小白日记-10]程序启动屏(ios解锁既视感)讲一下 微软爸爸的开发者大会2016又暴了个表达式动画和Windows.UI.Composition的API,好叼的样子。官方示例库GitHub 目前是…

比特币:区块链的最基础实现

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 我并不是说比特币本身注定要失败。我所指的是,我认为区块链纯粹作为货币的实施注定远没有世界认为的那么成功。这包括诸如Litecoin和Das…

python工具使用笔记

1、pip pip是Python官方推荐的包管理工具,在doc界面直接使用pip或者pip3命令即可,例如安装gensim: C:\Users\kayan.sjc>pip3 install --upgrade gensim 2、python2代码转换python3工具2to3.py python3不兼容python2,有时候需要…

stm32 cubemx hal 工程中 微秒延迟 delay_us

参考的正点原子的代码 测试平台 stm32f429i-disco 配了一个gpio 时钟 gpio /* USER CODE BEGIN 0 */ typedef uint8_t u8; typedef uint32_t u32;u8 fac_us;void delay_init(u8 SYSCLK) {#if SYSTEM_SUPPORT_OS //?????? OS.u32 reload;#endifHAL_SYSTICK_CLKSourceConfi…

ps制作20种特效文字_ps技巧:给照片制作特效(刀光剑影)

哈喽大家好,一段时间没有更新了非常抱歉。现在努力日更,给大家提供干货学习。今天我们的ps课程是制作特效。大家会觉得很难,但是并不是这样的。大家跟着小编的教程走,反复练习就很快学会啦。接下来我们就开始进入今天的学习吧&…

如何创建一个最小的区块链

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 这是我在一个外文网站上看到的一篇博文,作者通过50行代码写出了区块链的简化版本.麻雀虽小,但是五脏俱全.我觉得通过实践,这是了解区块链的一个好…

Linux 服务器上快速配置阿里巴巴 OPSX NTP服务

编辑文件 "/etc/ntp.conf",根据情况修改文件内容为: 互联网上的服务器:driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid logfile /var/log/ntp.log restrict default kod nomodify notrap nopeer noquery restrict -6 default …

python爬取学校新闻_python-爬取校园新闻首页的新闻

1.作业代码 importrequestsfrom bs4 importBeautifulSoupfrom datetime importdatetime##1.用requests库和BeautifulSoup库,爬取校园新闻首页新闻的标题、链接、正文。# urlhttp://news.gzcc.cn/html/xiaoyuanxinwen/resrequests.get(url) res.encodingutf-8soupBea…

windows环境下,mysql的root密码丢失后重置方法

1、运行窗口输入 services.msc,检查mysql服务是否启动,如果启动手动停止或输入 net stop mysql 停止msyql服务。 2、打开cmd命令行,使用cd命令进入mysql 的bin目录 cd E:\TP\wamp\wamp\bin\mysql\mysql5.7.11\bin(此处是本地mysq…

区块链以及区块链技术总结

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 摘要:区块链是目前一个比较热门的新概念,蕴含了技术与金融两层概念。从技术角度来看,这是一个牺牲一致性效率且…

UOJ#7. 【NOI2014】购票 | 线段树 凸包优化DP

题目链接 UOJ #7 题解 首先这一定是DP!可以写出:\[f[i] \min_{ancestor\ j} \{f[j] (d[j] - d[i]) * p[i] q[i]\}\] 其中\(d[i]\)表示树上\(i\)的深度。 整理一下式子:\[f[i] \min_{ancestor\ j} \{f[j] - d[j] * p[i]\} d[i] * p[i] q…

python中集合的元素可以是任意数据类型_Python之基本数据类型——集合数据类型...

集合set(可变的数据类型): 数据结构以大括号{}表示,各元素逗号隔开,例:{1,2,3,4}。 集合特征:无序,元素不重复 创建集合: s{1,2,3} pirnt(s) #---------------{1,2,3} sset(hello) print(s) #--…

uv_timer_t的释放问题

项目中的计时器模块是用libuv做的,今天发现了点问题,是释放uv_timer_t引起了,我是在uv_timer_start的回调里释放该结构的,这里是不能释放了,因为回调完后,库还会使用uv_timer_t里的数据,之前没出…

区块链分支循环

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 分支循环 程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。 一、条件语句 1.1 If语句 语法格式…

c和python区别_C语言和python的区别

Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言。本萌新也刚开始接触Python,发现Python与其他语言确实有…

(1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态

1.访问控制(笔试题)1.1 常用的访问控制符 public - 公有的 protected - 保护的 啥也不写 - 默认的 private - 私有的 1.2 访问控制符的比较 访问控制符 访问权限 本类 本包中的类 子类 其他包的类---------------------------------------------------------------------------…

MySQL安装ODBC驱动出现126错误

需求:MySQL导入ODBC文件,需要安装ODBC驱动。 问题:本机的MySQL是5.0版本,刚开始下载的是5.3ODBC,然后出现以下错误: 解决方法:ODBC版本应该与MySQL版本一致,重新安装5.0版本的ODBC即…

超级账本的由来

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 1.1.1 超级账本的由来 当你拿起这本书开始阅读的时候,说明你对区块链技术已经有了相关的了解,而且想通过自己的努力或团队合…

你为什么应该经常访问招聘网站?招聘网站至少有4个方面的价值!

一、缘起读大学的时候,有时候会感到很迷茫,不知道毕业之后可以做什么,自己能拿到多少的月薪。于是,就想到去参加一些公司的招聘。大二大三的时候,就去武大参加了武汉中地数码等3个公司的笔试。但是,没有交答…

python去重复行_python去除文件中重复的行实例

python去除文件中重复的行,我们可以设置一个一个空list,res_list,用来加入没有出现过的字符行! 如果出现在res_list,我们就认为该行句子已经重复了,可以再加入到记录重复句子的list中。 如下代码&#xff1…