以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

寻找投资人app,区块链创业者在哪里找投资人

  

  区块链技术可以降低社会系统运行的信任成本。它在保证软件可信性的前提下,通过软件解决了信任问题。   

  

  同时,软件运行也需要高性能。虽然目前的区块链性能足以支持我们做一些应用和探索,但它不能取代集中式系统。   

  

  如果我们想把区块链应用到社会的各个方面,我们仍然需要打破目前区块链表现和安全的瓶颈。   

  

  12月6日   

  

  《麻省理工科技评论》年11月,与蚂蚁集团联合举办区块链与数字经济发展论坛。会议邀请了西密歇根大学计算机科学系正教授杨紫茳、中国科学院计算研究所研究员、博士生导师孙毅、南开大学教授、博士生导师、天津市网络与数据安全技术重点实验室副主任王鼎,从代码、性能、密码等领域分享区块链技术的最新现状。   

  

  “90%的项目代码高度相似,半年后市值降至10%”——杨紫茳(美国西密歇根大学计算机科学系正教授,沈心科技有限公司创始人兼CEO)   

  

  人类信息发展非常快。从古代到现代信息时代,电子邮件和手机,信息流非常顺畅,信息量非常大。但是有一个问题没有解决,那就是信任。   

  

  为什么我们要在火车站排队?因为它不放心你有票上车。相比之下,欧洲的火车站和地铁站都是随机抽查机制,因为它假设你有票,它相信你已经买了票。它不查票,所以没有时间成本。   

  

  可见,信任其实是有成本和代价的。我们每天都在为信任付出高昂的代价,无论是时间成本还是金钱成本。   

  

  区块链解决了人类历史上2000年都没有解决的信任问题,至少理论上是这样。   

  

  人类历史取决于三项技术的进步。从算盘到计算机,计算技术在计算速度上提高了很多。通信技术,从信鸽到互联网,极大地提高了信息在传输和存储过程中的信息量以及对信息的评估;但是有一个技术并没有太大的进步,那就是存储技术,以前是一本书,现在记录在光盘、硬盘或者外部云存储项目中,但是它的信任问题并没有得到很好的解决。   

  

  区块链技术是由多方共同记录和维护的分布式数据库。数据库通过哈希形成链式结构,其中数据记录和维护的完整性由密码技术保证,这使得任何一方都难以篡改、否认或伪造。   

  

  所以说到底,这是数据库技术,不是存储技术。但是区块链是用软件写的,这里有一个问题。   

  

  比尔盖茨曾经说过,人类历史上创造的最复杂的神器就是软件,它复杂到没有人能保证它的正确性。写软件不同于建摩天大楼。建造帝国大厦非常复杂,因为它是第一座高度超过100米的高楼。但是当你建造第二栋建筑的时候,如果你有第一栋建筑的蓝图,事情会简单得多。   

  

  但是软件不一样。每次写软件都是第一次写,所以里面有很多错误。工业软件每千行有七个错误。   

  

  区块链解决了信任问题,但如果写区块链的软件不安全,漏洞很多,信任从何说起?   

  

  这里存在很多安全隐患,比如区块链时间在基础设施、代码安全、共识机制、加密机制安全等方面。以及智能合约的安全性,如溢出漏洞、时间漏洞等。其中有些是常见的软件漏洞,有些是智能合约特有的漏洞。   

  

  2019年,交易所漏洞占黑客攻击的61%。我们现在主要做的是智能合约的漏洞检查,损失占12%左右,钱包流量占14%,供应链漏洞占。   

  

  8%等。   

  

  我们如何进行区块链测试?   

  

  目前,我们采用了通用分析、静态分析、模糊测试和并发安全等多种技术。因为每种技术   

  

  一般分析,如文档规范、社区治理、项目概况分析等。然后用计算分析扫描代码,再加入模糊测试,这是一种动态技术,最后做一个并发安全测试。因为区块链并发问题很多,并发使得软件编写非常复杂,并发软件有很多难以琢磨的漏洞,因为人脑不适合写并发程序。   

  

  首先,模糊测试是有效的,因为模糊测试真的可以运行你的程序。与有很多错误的静态分析不同,它不是真正的错误,而由编译器优化的静态分析可能与真正的错误不同。当我们进行模糊测试时,我们真正运行区块链软件,它可以在运行过程中反复测试,并试图生成一个输入,使其更接近可能发生错误的点。当然,这些都是概率问题,我们不能保证它会检测到错误。   

  

  那么模糊引擎的测试就意味着要做一个全自动的测试工具,不能手动使用,所以要自动创建测试网络,自动部署测试好的智能合约,自动选择。   

  

  Papifashen,并根据输入类型生成输入,然后自动执行。   

  

  它得反复跑,看看有什么毛病。我们还应该监控这个过程,例如,智能合约的哪一部分已经被执行,我们应该避免再次执行它。那么,需要记录智能合约遗漏了哪一部分,需要实现什么样的条件,遗漏部分的具体变量是如何复制的?有没有漏洞?所以在观察过程中,是检查有没有漏洞的一部分,更重要的是要记录我们在哪里执行了,在哪里没有执行,如何改变输入,以便下次可以检测到没有执行的地方。   

  

  为了进一步证明不会发生错误,我们使用了另一种算法,即符号执行,这种算法计算量很大,但它有一个优点,那就是可以系统地测试软件中的每一条路径。   

  

  我们在代码分析中做了一些有趣的事情,并与现有的进行了比较。   

源项目代码相似度进行统计,我们拿了 2019 年 3 月份的 485 个发币项目,还有到了 2019

  

年的 9 月份又拿了 500 多个,66 个项目做他们的代码分析。平均每一个项目他们的代码量是 500、600 行左右。

  

最后的结论是,超过 90% 的项目代码相似度在 80% 以上,90% 的项目的代码和另外至少 1 个项目代码相似度 80%,自己写代码的项目非常少。

  

代码相似度在 80% 以上,市值在发布半年后降到了发布时的 10%

  

的以下。如果一个项目的原创能力强,你市值不会那么容易掉下去,说明投资人也会看技术,所以这其实还是技术实力的事情。

  

  

图 | 杨子江博士

  

“用协同思维搞区块链性能优化”― 孙毅 (中科院计算所研究员、博导)

  

我们主要聚焦于区块链技术问题,底层技术尚未成熟,存在性能、安全性、互操作性、强化合约等一系列技术挑战。性能挑战是目前是非常受关注的议题。

  

为什么要用协同?因为区块链的性能受到多种因素的制约,而这些因素实际上是相互关联的,就像一个木桶里搁个板,当我们把这块短板弥补上以后,会发现另一块可能会成为新的短板,所以我们要真正搞优化时,是需要用协同的思想去考虑的。

  

怎么样去做协同优化?从三个层面分析:

  

第一,存储计算和传输,存算传的协同,这是在区块链软件的内部。第二,软硬件协同的思想,提升区块链的性能。蚂蚁其实也做了很多的软硬件一体化的设计,这是非常好的一些思路。第三,作为一个分布式系统来讲,区块链很难在性能方面跟某些中心化的系统去做这种竞争,所以它更多是一个互补合作的关系。

  

第一部分,我们在计算传输存储层面进行链内优化,在计算层上采用区块链并行化架构模型和算法,通过一条主链连接很多的分片、子链,然后让分片和子链做并行化,通过主链来进行交互,来提升我们的性能。之后与创新工场的联合实验室提出了一个异步共识的算法,为了防止它的安全性不降低,我们还提出了一个连母共识的机制。通过把同步通信变成异步通信。

  

在性能研究的过程中,我们又初步提出了一个叫并行多链的架构,它不需要中间的,它不是把传统的新型架构打散成一个纯网状的架构,可以更进一步提升我们整个的性能。

  

除了计算层,存储和传输同样需要进行改进。我们提出了一个双重的压缩方法,对于 K 域提出了一个数据压缩的方法,对于 Y

  

域我们也提出了一个两层哈希压缩的方法。这是基于数据压缩的存储方法 BZIP,有效的解决了验签吞吐量瓶颈。可以显著的降低我们对于磁盘 LO

  

的访问,然后使得我们的性能在存储这个方面得到一系列的这种提升。

  

在传输层上,我们提出了一个层次化的传输协议, 这是基于无连接数据传播的低延迟区块链的传输优化算法,这个协议我们在现网上做了一些实验,效果也很不错。

  

第二部分,我们研究了面向区块链的专用计算架构,提出了面向区块链的专用计算架构 (KPU,Kernel Processing

  

Unit)。它是一个专用计算芯片的思想,把我们区块链上常用的操作,给它分装了独立的 IP 盒,然后我们再用软件定义的思想,它需要时我们按需去组合这些 IP

  

盒组成一些区块链需要的计算逻辑。

  

这一块我们分了功能区和非功能区,一部分实现计算的工作,一部分实现数据管理的这些工作。这一点上的话,软硬件一体化的这些工作都是未来我们可以去大胆尝试的。

  

第三部分,是区块链链上链下系统的协调,协同优化的工作。我们主要做二层通道、二层网络优化的工作。比如我们把链外的支付通道网络或者状态通道网络给它在路由上面去做了一些优化。但目前我们的支付通道网络里的路由算法跟互联网的路由算法比起来显得比较初步。所以我们借用了互联网上的分域、分层路由的思想,通过一个定制化的标签,然后来实现了一个层次化的路由,有点类似于我们互联网上的域间路由和域外路由,通过这种方法来去优化我们的路由通道算法,这是我们在链外通道里所做的一些工作。

  

区块链的性能优化到底重要还是不重要?

  

目前对于我们区块链正在探索的这些场景和应用上来说,区块链的性能已经足够支撑我们的区块链在各个行业里,去做有意的部署和应用探索。从这个层面上来讲,性能的优化可能没有那么重要,但为什么我们又要去做它呢?

  

如果我们能把区块链的性能做的更好的话,未来很多现在还很难在区块链上去做的场景,未来可能就可以迁移到区块链上。比如说每年双十一我们大家都非常盼望着去看阿里、蚂蚁发布的

  

TPS

  

能达到什么样的量级,现在这么高性能的系统确实还是通过我们中心化的一些系统来实现的,但是未来如果我们的区块链真的通过我们的努力也能打造每秒钟几十万的这种吞吐量的话,那未来我们也就有可能把这方面的一些应用,也尝试着在我们分布式的区块链系统上面做一些探索。所以,从这一点上来讲,区块链的性能优化其实很重要。

  

区块链的性能优化一定不能是单点突破,一些重大的性能突破,往往是伴随着底层技术的这种架构层面、新的框架层面来出现的一些工作,而如果我们单纯的就去做一个算法、做一个协议,我们能提升的空间不会很大。如果采用协同的方式,可以让我们在更多的不同的层面,不同的架构去做一些协同化优化的思想,未来可能会是我们取得性能优化突破的一个重要技术方向。

  

  

“诱饵口令技术是平衡安全性和效率的好办法”― 汪定 (南开大学教授、博导 天津网络与数据安全技术重点实验室副主任)

  

口令自诞生以来,始终面临着可记忆和抗猜测的矛盾问题。

  

其中可记忆的口令要求口令有规律不复杂,但是抗猜测的口令刚好相反,口令尽量长,无规律,越复杂越好。并且现在这个形势越来越严峻,我们人类的记忆能力和认知能力非常有限,我们今天人类的记忆能力和

  

2000 年多年前的先辈比起来,并没有增长多少。

  

但是攻击者的能力现在是越来越强大,比如现在耳熟能详的云计算,大数据深度学习等,让攻击者能力越来越强大,口令安全这个问题越来越严峻,所以大家一直在寻找另一种身份认证的方法替代口令。

  

口令这一块实际上是老生常谈的东西,我们天天都在用,但是长期以来,我们一直低估了它的问题难度和研究难度。

  

最早是在 2004 年,微软那个时候还是比尔盖茨担任 CEO,他提出使口令替代计划,谷歌和其他很多大公司也跟进,但是后来这些计划都悄无声息的消失了。

  

从 2000 年开始,学术界也提出了大量的替代型的身份认证方案,但是没有一种身份认证方案能取代口令的地位,时至今日口令依然统治我们身份认证的世界。

  

这是有深层次原因的。身份认证方法主要可以分为三类。

  

第一类是基于用户所知,比如口令密码这些,比如我们输入的 6 位数字也是一种数字口令。

  

第二类是基于用户所有,比如我们之前用过的银行的 U 盾,USB Key,我们的智能卡片。

  

第三类是基于用户所是,主要生物特征。既包括我们的指纹,人脸这种传统的身份认证的方法。也包括、手势、敲击键盘的频率等,这种基于新型行为的身份认证的方法。

  

后面两种身份认证方法不论是基于硬件还是基于生物特征,它都存在严重的问题,其中硬件成本比较高,另外他最大的问题是不具有可用性,用户不可能随身携带几十个 U

  

盾。

  

而生物特征前几年特别火,这一两年大家慢慢的意识到它的问题,像很多城市前两天刚出来禁止使用刷脸,法律明确规定禁止刷脸,不仅是刷脸,包括我们的指纹,包括我们的步态等这些身份认证方法,都不适合用来做互联网认证,做网络认证。生物

  

特征有它的好处,有它适用的地方,在现场认证,比如做门禁是没有问题的。

  

如果不连网,比如解锁我们的手机是没有问题的,只要我们的生物特征不上传到服务器当中是没有问题的。

  

但是在现实使用时,我们上传自己的生物特征数据,这里就存在一个巨大的问题,不具有可再生性。口令和生物特征都在我们的计算机当中都是以 01

  

代码存储,口令会泄露,生物特征一样能泄露。我们的口令能分分钟改掉,但是我们的生物特征是改不掉的,我们人脸只有一张,我们的手指头只有 10

  

个,一旦泄露将终身泄露。

  

  

图|汪定博士

  

所以现在学术界逐渐形成了一个共识,在可预见的未来,口令仍将是最主要的身份认证方法。

  

而近年来出现了数以百计 “拖库” 事件,包括一些大型网站,Yahoo,Linkedin,Adobe,CSDN

  

等。泄露大量用户密码,一些密码货币交易所也遭遇此类危机,导致用户的严重经济损失。

  

比起被 “拖库”,更可怕的是网站都没发现自己被 “拖库”, 直到 N

  

年后数据才浮出水面。如果说口令文件泄露时,网站及时发现,并且通知用户更新口令,还能挽回一些损失。但是现实当中很多时候是网站不知道口令文件泄露了,包括数十家用户量庞大的网站,都是泄露

  

500 万以上的用户帐号,而且往往是泄露了 8 年、4 年等很长时间之后才知道文件被黑客窃走了。

  

如何降低用户口令泄露带来的危害?目前我们使用的主要有 3 种技术。

  

第一个,使用机器相关函数。比如口令猜测时一般涉及到哈希运算,可以使用一个只有特定服务器能计算的的哈希函数,黑客窃取口令文件之后没有这个服务器,无法计算机器相关哈希函数,这是一种和机器相关的函数。

  

第二个,使用门限密码学,这个是比较经典的,传统的想法,把口令分成多份,分别存储在不同的地方,不同的服务器。

  

第三个办法就是放置假口令,做到以假乱真,欺骗迷惑,及时的检测。

  

前面两种技术往往对客户端或者对服务器的影响比较大,需要对服务器端、客户端进行修改,而放置假口令这种技术它不改变用户,往往现在工业界有一句话:是什么样的代价最大,改变用户使用习惯的代价最大,所以尽量不去改变用户的习惯。

  

所以使用分布式密码学的这种技术往往现实当中使用的可能性不大,而机器相关函数存在可扩展性问题,所以综合来看放置假口令虽然不是最佳的方法,但是综合安全性和效率来看,它是可以被接受的。