查看原文
其他

区块链安全:真的像表面上看起来那么简单么?

孙浩峰 CSDN 2018-07-24

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

说到区块链,就绕不开数字货币的问题,而谈到数字货币,就无法回避数字货币的安全问题,从以前的币安受到攻击,到不久前因为智能合约漏洞导致的巨额经济损失,直到刚刚才发生的EOS爆发高危漏洞,无一不证明着区块链和数字货币安全的问题,绝不是像表面看起来那么简单。

而在最近刚刚结束的,由UCloud举办的UCan下午茶上海站的活动中,诸多区块链领域的专家就区块链和数字货币安全的问题与到场的将近200多名观众进行了热烈的探讨,场面火爆,现场几乎被观众挤满,在此次沙龙上探讨的诸多问题,也非常值得区块链从业者认真学习和总结。

区块链安全与多重签名

签名的作用和特点

在现实生活中,签名很好理解,就是由个人来签字,形成一个笔迹,从而作为一种确认和背书。因为每个人的笔记几乎都是不同的,因此签名具有唯一性,可验证并被法律所认可。当需要进行验证时,可以进行签名对比,确保一致性。在现实生活,有很多方法可以验证签名的安全性,如笔迹鉴定等,因此,签名被认为是一种很好的证明个人身份的可靠方法。

数字签名的诞生

随着互联网的诞生,有人想把签名这种可靠的方法应用到互联网中,于是,数字签名应运而生。在数字签名中,有发送方和接收方,发送方首先利用接收方提供的公钥加密,然后用Hash算法对文件内容进行加密,并通过签名算法将发送方的私匙通过互联网发送给接收方。接收方接收到文件后,根据自己的私匙,对文件内容进行解密,并对发送方Hash的签名进行解谜,接收方接收到文本原始的内容后,自己算一次Hash值,最终两个Hash值进行比较,确认文件是否完整的,或者是否被篡改,这就是数字签名的过程。

数字签名的作用,是可以比较可靠的保证信息传输的安全,因为这种加密是难以被篡改或者被黑客破解的,而且接收方明确的知道是谁发送的消息,并能确定信息的完整性。

区块链中的数字签名

区块链中的数字签名,首先需要把区块链公匙、私匙与区块链账户紧密结合起来,私匙首先算出公匙,公匙通过Ripemd160算法以及两次Sha3-256算法,最后用Base32编码,算出私匙,并直接控制一个账户。这样的好处是显而易见的,对区块链来说,一旦拥有私匙,就完全控制了账户里所有的信息或是内容。但同时,也存在极大的隐患,一旦私匙丢失,将没有任何办法能够把账户再拿回来,因此,私匙的保管是非常非常重要。但尽管大家对私匙的保管都非常重视,私匙泄露或被盗的现象还是经常发生。

为了解决这个问题,人们发明了多重签名账户技术。多重签名账户,实际上就是将区块链上原来的一个签名对应一个账户,变化成多个签名对应一个账户,这样就可以通过对多个签名验证交易来保证账户的安全性。多重签名账户最多可支持32个共同签署人,可以设置1-32中的任意数签署,交互即生效。例如,如果三个人都有各自的账户,各自的私匙,同时还有一个账户,在变化之前也有自己的私匙,当这个账户变成多中心的账户,把三个人加入到多中心账户中时,多中心账户自己本身的私匙就失效了,同时这三个人的私匙在加入账户同时生效。之后,这可以设定该多中心账号是一个人签署生效,还是两个人签署生效,还是三个人同时签署才能生效,从而为多中心账户提供了相对于单人账户2到3倍的安全保障。多重签名账户不但可以创建还可以编辑,只要提供一个新的账户地址即可,原来的帐户如果离开或者丢失,都可以添加新账户进来,这只需要在界面上删除或变更即可。

多重签名的应用

多重签名非常好理解,应用也非常简单。1-of-2的共同签名账户,只要有一个签署人同意,账户里资金就可以动用。3-of-3的多重签名账户,只有当三个人同时签署的时候,账户资金才可以被动用。而2-of-2的多签账户,主要是应用在安全方面,例如,一个人手里有手机,一个支付端,手机上操作一下,服务器发送短信到手机,确认后,服务器再同意,这样多重签名账户才可以动用,这是2-of-2的多重签名账户,即使黑客或者病毒攻破了账户,资金仍然可以保证安全。

多重签名的NEM的应用,是存证的系统。存证创建者,对文件名用SHA-256算法进行Hash并用Key进行签名,形成私匙,生成账户。多重签名账户,对文件内容做一个Hash,并把Hash值存储到存证账户里去,最终生成多重签名账户。

多重签名的发展方向

目前多重签名都是一层的,将来的发展方向将是是多重签名支持多层多重签名,比如在制造商运送药品的例子中。集装箱中的传感器每隔5分钟报告温度数据,并将其合并成每日报告。药品只有在其区块链记录显示生产日期、安全检查,并在正确的温度下装运时才能收到其质量认可的二维码。

基于可信区块链的数据流通平台

如今,数据已经成为资产,数据的汇集会产生更大的价值,社会的效率就是来源于数字化,信息化和数据流动,但是安全永远是最大的问题。

据IDC近两年的统计,安全依然是云计算面临的首要问题。数据加密是一个很好的解决安全问题的方法,但是在日常的工作学习中,并不是所有的数据都需要加密的。比如说个人数据的云盘的存储,需要加密,但是涉及到用户的交易、行为的数据,由于可以被服务提供商用来提供更好的服务,因此,服务的提供者或者说互联网公司是要在某种程度具有能够获取到明文的能力。

这就会涉及到一个非常大的安全问题,云上的数据安全到底该怎么办?实际上,数据安全其实包含两方面,一方面是数据流通安全,另一方面是数据使用记录的可信,前者通过可信计算芯片TEE的技术支撑,后者通过区块链技术本身的机制做支撑。

TEE是什么?

TEE是Tusted Execution Environment可信执行环境,是一个基于CPU硬件安全扩展,且与外部完全隔离的执行环境。它可能作为协处理器出现,也可能是基于ECV的新的硬件技术体系。这个环境中运行的CPU空间完全只被硬件授信,软件和操作系统都不可见。

TEE、安全屋与区块链

基于TEE优化的产品叫做安全屋,安全屋最大的特点是“数据的所有权和使用权的分离”,也就是说,系统只开放基于可信环境的使用方式,在这个可信环境当中,数据拥有方、算法提供方、结果使用方、计算提供方、算法在TEE中完成对数据的访问与运算,明文不外泄。

通过TEE、安全屋、区块链,完全可以打造一个基于可信区块链的数据流通平台——TBC,这实际上是一种分布式的可信数据运算平台,在这个平台之上,可以运行公有链平台的私有智能合约、智能合约通过TEE执行, 从而实现基于硬件保护的合约代码和数据,并可直接对接以太坊。

这个平台基于Intel® SGX,具有计算可扩展、信任去中心、数据强安全、任务可迁移四大特点,所谓计算可扩展是指全球任何计算节点均可接入计算框架,信任去中心是指从单一信任模型进化到分布式信任模型,数据强安全,即计算节点无法泄露计算数据,任务可迁移则是指TEE中运行计算可无缝在线迁移。而基于这个平台,可以给数据带来更加精细和可靠的保护。

虚拟货币安全

数字货币安全现状

近三年来,交易所被盗的损失大概是8.64亿美元,一些很著名的交易所都发生过盗窃,盗窃情况越来越猖獗。2016年为1.48亿美元,2017年为2.96亿美元,2018年才过去一半已达5亿美元,超过了前两年的总和。

攻击方法也从Botnet、DDoS逐渐向挖矿转移。UCloud通过安全产品共捕获到了ddg20xx木马,而这些木马控制的三个钱包已经合计挖矿90万到150万美元。UCloud目前已经捕捉了30多种类似的样本,而像星巴克Wifi挖矿,软件中捆绑挖矿代码、南方周刊官网挖矿这些热门攻击事件说明,以往复杂的攻击方式变得更加简单,新的变现方式,更加容易变现,黑客的门槛也显著降低,而原本由弹窗和广告构成的PC端恶意软件,也加入了挖矿产业。这种情况的发生,与数字货币火热关系重大,数字货币高回报、匿名性、不可溯源的特性,实际上为黑客提供了一个很好的变现途径。

数字货币面临的安全风险

数字货币行业的安全问题主要分为三大类:

第一类,行业发展迅猛,准入门槛非常低,会带来大量的安全风险。

第二类,传统的安全问题依旧存在。

第三类,新兴的安全风险。

第一类风险,根据剑桥大学和Viso 2017年报告的数据,是行业发展太快带来的问题,首先是数字货币相关开发商、交易所规模小,69%的钱包开发商的员工不到10个人,交易所员工中位数接近于12。其次,成立时间短,2017年下半年就发行了4000多种代币,最后,门槛低,全球大概有500多个所有交易所,很多甚至于只有两、三个人的微小公司都干起了交易所,这样的公司是没办法把事情做好的,也没有能力和精力把安全做好,但这样公司占了69%,这是整个行业发展快速带来的风险。

第二类风险,就是传统的安全问题,主要存在:

  • 钱包的漏洞,实际上本质就是软件的漏洞。比如,Parity多重签名漏洞,是开发人员在写代码的时候没有实现好设计的协议,导致黑客可以调用不该调用的函数,访问不该访问的数据。

  • Web网站漏洞,例如,Coindash的一个Wordpress博客被上传Webshell导致损失700万美元的被盗,这个漏洞是非常低级的,原因仅仅是在于Wordpress版本太老。

  • 假冒网站钓鱼,黑客通过伪造网站,冒充正规的交易所,有人在上面交易,导致被盗。

  • 业务安全,比如,网站被黑,打款地址被替换成黑客钱包地址,导致被盗。

  • 病毒木马,如日本Coincheck事件、韩国Bithumb事件,其实都是传统病毒木马惹的祸。

这些其实是属于传统安全的范畴,但实际却占据了数字货币安全体系的很大比重。

这三类风险组成了数字货币的主要风险,第一类风险是由于行业发展太快,很多公司规模很小,这样的公司是不可能做好安全的。第二类新兴的安全攻击,主要是一些大学和研究者提出的论文当中指出的潜在的风险,但在实际中较难实现。第三类传统的安全问题,才是占据比例最大的问题。

如何解决数字货币安全三类风险

而要解决这三类风险,首先要建立正确的安全意识,因为区块链或者相关技术,虽然号称非常安全,但实际上只是指传输安全。但是往往造成被盗或者损失的,并不是发生在传输过程中。可能是某个员工被黑,也可能是某个网站存在漏洞,而区块链及其相关技术是无法解决这些问题的。

其二,要上云。因为云上有更完整的安全产品体系和更完善的基础设施,有专业的安全团队,有云上的抗DDoS服务,有云上的防入侵服务,而这些对中小公司是难以负担的,所以上云是解决这个困境的好办法。

其三,使用成熟的第三方产品。数字货币的大量安全事件来源于传统安全,而在传统安全方面,国内外都有大量的厂商已经在这些行业深耕十几年了,包括绿盟、安恒等等,像网站漏洞、电脑被黑这些问题,都有非常成熟的安全产品以及解决方案。

作为一个云提供商,UCloud云上有非常完善的安全架构,可以通过部署在UCloud的DDoS设备,主机入侵检测产品,对主机体系进行安全检测。可以通过检测风险扫描器,UHDS两款入侵检测商品发现用户系统业务体系以及架构方面的问题,在黑客入侵之前就解决掉这些问题。此外,针对运维重点的一些安全问题,比如通过堡垒机保护资产,实现操作记录的可回溯,UCloud也都支持,而普通用户通过自己买产品,自己建立安全体系是很难做到这样完善的安全体系的。

如何解决区块链性能瓶颈

区块链行业现状

虽然区块链在近4年时间里面呈现爆发式发展态势,但区块链还处在比较早期的阶段,应用性差、性能低,还没有出现大规模的区块链商业应用。以比特币为代表的数字资产交易仍是区块链技术应用最成熟的领域。

这样的早期发展阶段,也明显的反应到了区块链的TPS(每秒并发速度)上。目前,比特币的TPS为每秒7笔交易,以太网为每秒25笔交易,这与商业化的要求相差甚远。目前,满足商业化需求的互联网应用至少要求每秒4.4万笔交易,淘宝在双十一的TPS达到每秒35万笔。

TPS瓶颈分析

区块链的每一笔交易,以太坊大概是144 Bytes大小左右。TPS如果未来要达到35万,结合淘宝看,需要提升以下指标:

P:需要转发的交易数,以以太坊为例,为25个。

D:每秒钟需要处理的数据总量。

Td:每秒的网络接收和数据发送总量。

要达到35万TPS,每秒需要处理的数据总量,即D,可以通过以下计算公式计算出来:

D = d*TPS = 144*350000 = 50,400,000 B

而这时,每秒的网络接收和数据发送总量,即Td为:

Td = D*P*8 = 10,080,000,000 b

这是一个相当巨大的数据量,所以,总结起来,区块链TPS的瓶颈主要来自于:

第一,P2P的网络带宽,第二,存储,第三,共识算法,第四,签名验证。

因此,未来解决区块链性能问题,将主要围绕这几点展开。

解决方案

HPB(High-performance Blockchain)是一种全新的区块链软硬件体系架构,其中包含芯片加速引擎和区块链底层平台,旨在实现分布式应用的性能扩展。定位为易用的高性能区块链平台,跟产业深度结合,满足现实世界的真实商业需求。

HPB的核心是芯链加速引擎的整体架构,DDR Memory的网络存储。左边是UA网络接口,右边是PC,中间ARM整体解决方案,通过ARM A53 CPU,加上存储和用户ARM FPGA的芯片,有一个ARM FPGA整体解决方案。其中蓝色的部分是中间桥梁,左边的蓝色部分是对外的通道入口,右通道蓝色是网卡芯片,通过芯片的设计,提升了网络的连接,扩展,寻址的能力。可以充分满足区块链交易中的网络带宽需求。通过这样的设计,HPB可以达到百万级的TPS。

HPB技术中一个重要的部分是BOE,BOE其实是软硬件结合的功能算法,是替代引擎,它通过CPU的功能转嫁到专用ARM A53架构解决方案,达到高性能的解决方案。

在算法方面,采用多重机制,大约有100个高性能计账节点,100个后续节点,通过不断投票产生每个记账节点和后面的节点,根据自己的贡献,不断获得链上的奖励,其他的一些节点作为一个同步节点同步数据,从而达到整体的数据的共享公平。

总之,HPB芯链是第一个百万级并发设计的高性能区块链,用户可以免费使用,采用并行架构,应用程序之间互不影响,同时,它采用了软硬件一体的体系架构 ,设计了HPB专用的区块链服务器,通过软硬件优化支持大量的共识节点,并采用了超高并发BOE引擎,高性能硬件签名技术,也是业界首个底层区块链开源的项目。

如何打造下一代公有链

区块链实质上就是State Machine 和核心数据库,比特币其实只干一件事,就是通过整个分布系统,进行交易转账,Genaro的初衷是做去中心化化的存储,但后来发现有非常多的公链需要存储,于是,Genaro就做了一条与存储相关的公链。并逐渐在公链上叠加了相应的东西。

提到存储网络,就不能不说Sentinel,Sentinel在POR系统当中提供了验证的方式,与整个文件大小无关的,并且经过了加密。而且通过这样加密之后,还能将文件取回,这是分布式存储网络的两个特性,即:1.能够找回存储的东西,2.保证其中点对点传输。

而Genaro在设计自己的分布式存储系统时,对Sentinel进行了优化和补充,从而设计出了Genaro自己的分布式存储。

Genaro在设计公链时,实际上也是考虑了区块链先驱,EOS创立者BM对创业者提出的四个问题:1、下一个区块更新的时候,数据库是通过谁来产生的。2、下一个区块什么时候产生。3、什么交易数据会被放进区块。4、怎么解决交易数据冲突的问题?

通过对这些问题的认真思考,和对市场上各种共识问题,攻击问题的详细研究,Genaro采用了混合SPoR/PoS的共识机制,在维持低消耗的同时,保证了高并发以及存储。

目前,Genaro 的第一个产品是Genaro Eden,它为每个人提供一个可信任的互联网,通过数据联通现实世界与区块链世界。Genaro APP,则是Genaro Eden的摇控器,也是Genaro 轻钱包,而Genaro相信区块链和存储在一起,才是区块链技术未来发展的方向。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存