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

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


2017年已经匆匆离去,回顾过去一整年,似乎区块链应用一直处于隐忍未发的状态,很多项目的落地已处于验证阶段,万众期待的爆点却一直没能出来。

有人说ICO不是很热吗?比特币不是涨了几十倍吗?撸猫游戏不是很火吗?的确,这些纯线上的虚拟资产场景是热了一把,但说到真正解决了实际生活中什么问题?什么痛点?好像还没有触及吧。

我们不禁要问,究竟是什么限制了区块链技术的应用呢?原因可能有很多,不妨先从技术角度分析一下。

区块链技术是一个对多种技术的组合创新,多种技术包括:

1、 共识算法:POW/POS/DPOS/PBFT/BFT-Raft/Paxos/Kafka

2、 P2P通讯:自举(bootstrapped)/连接/广播

3、 签名验签:ECDSA/secp256k1/ED25519/MultiSig

4、 Hash锁定:Merkle树/MPT树

5、 UTXO记账:流水账

6、 智能合约:P2PKH/P2SH/Oracle/状态机

7、 隐私保护:零知识证明、同态加密、CoinJoin加密技术

8、 私钥存储:HD协议(Hierarchical Deterministic Key Creation)、钱包Wallets、丢失找回

9、 算力分发:矿池分发

这些技术要素如果站在应用需求角度来划分是这样的:

注:对外安全性是指对抗非区块链节点的外部攻击和信息窃取,对内安全性是指区块链节点之间的信息安全防护。

其中的短板比较明显,在易用性和对内安全性上亟需提高,对应的技术要素包括隐私保护和私钥存储。

其中隐私保护主要指参与共识记账的多方并不一定应该拥有数据,或者说拥有数据的使用权。遵照业务的相关性,只要交易的双方或几方持有即可,而不应该是全联盟的所有节点。但是作为历史的见证方,最好是所有节点上的数据都可以拿出来见证,并且所有节点可以依据自己的见证进行投票。做到这一点可能的实现技术有零知识证明、同态加密或者CoinJoin混淆技术等。目前这个方向上业界的突破还较少,大部分还没有进入实用阶段,但是站在商业应用的角度看,隐私保护恰恰又是商业应用中最关心的。

我们先聊一下零知识证明的可行性。大家知道,零知识证明是在不泄露信息内容的情况下向其他人证明我知道这个信息,一般过程如下:

1.证明方向验证方发送满足一定条件的随机值,这个随机值称为”承诺”;

2.验证方向证明方发送满足一定条件的随机值,这个随机值称为”挑战”;

3.证明方执行一个秘密的计算,并将结果发送给验证方,这个结果称为”响应”; 4.验证方对响应进行验证,如果验证失败,则表明证明方不具有他所谓的”知识”,退出此过程。否则,继续从1开始,重复执行此过程t次。

如果每一次验证方均验证成功,则验证方便相信证明方拥有某种知识,而且此过程中,验证方没有得到关于这个知识的一点信息。

用通俗的话说就是只要证明方通过了“大学毕业答辩”,验证方就颁发“本科学历证书”,至于证明方是不是真的掌握了本科生应该掌握的所有知识,只能大概率保证。这个大概率保证用在需要严格验证交易金额的情况下,不免有点让人担心。

再说说同态加密,Craig Gentry给出的直观定义是“A way to delegate processing of your data,without giving away access to it.(一种委托处理数据的方法,而不允许访问它。)”结合区块链共识的场景来说就是,节点A发起一笔与节点B无关的交易,希望节点B做一下见证,并登记起来。于是节点A先把交易信息加密,再把密文发给节点B,节点B收到请求后使用“验证函数”对密文进行验证,如果验证通过就登记。按照区块链记账的要求,这个“验证函数”需要能完成对加密交易的签名验证、与已经登记的交易信息比对。

其中签名验证本身是一套非对称的加解密算法,如果能对签名的密文进行验证,而又不解密签名,本身似乎就是对签名算法的挑战。而与已经登记的交易信息比对这一步,如果之前就是加密的,应该还好比对。但如果原来的交易是明文的,那首先需要对原来的明文加密,这又需要知道加密算法,就难办了。因此同态加密即使性能取得了突破,用在多节点共识上挑战也很大。

CoinJoin混淆技术是指把多个用户的交易合并到一起,交易有多项相同大小的输出,让人无法分辨输出和用户的对应关系,也打破了所有输入都来自同一个人的规律。如果找不到多个用户,其实用一些fake交易做混淆也行。这个方法在同质资产交易中是有效的,但是如果是不同质的交易,或者信息类的应用就不奏效了。

另外私钥存储、私钥签名对传统业务用户来说很难理解,很难配合,教育成本很高,而这些恰恰又是区块链安全运行的前提条件。在大部分用户还没有意识到自己的私钥和家里的钥匙一样重要之前,通过钱包+私钥托管的方式是一条可行途径。如果一定要把私钥交给用户,就需要配套私钥丢失找回的功能或者解锁用户数据的功能。这一点上业界的创新也不多,很多还是采用用户名+登录密码的方式,把私钥托管起来,可以保证用户体验,但无法自证清白。这方面,技术上挑战不是特别大,挑战的是左右手的权衡,方法的创新。

另外在法律条款上也亟须能支撑到私钥签名和电子签名的同等地位,数字资产与实物资产证明的同等地位。但是没有具体的场景,法律肯定不会先行去为一门技术站台,这似乎成了悖论。

站在2018年的开头,我们希望区块链能在一个具体场景中先行落地下来,不能再等着采用通用技术来解决问题,应该先聚焦到一个具体应用中,搞定特定某个场景的问题再说。毕竟解决一个具体问题比解决一类通用问题要容易的多。希望2018年是区块链落地的突破之年!

是什么限制了区块链技术的应用?相关推荐

  1. 区块链技术特点之去中心化特性

    想知道更多关于区块链技术知识,请百度[链客区块链技术问答社区] 链客,有问必答!! 由于区块链技术去中心化的特性,其在我们生活中的很多重要领域(如金融.管理)等方面具有重要的意义.例如,我们可以通过在 ...

  2. 区块链技术应用领域和优势

    区块链的应用正成为很多人关注的领域 ,有很多的新应用正在逐步的实施当中,各种的区块链应用也是让众人惊喜不断, 随着区块链技术的发展 ,各行各业在应用中所获取的成效也是越来越大, 这大大激发了人们对于区 ...

  3. 链客区块链技术问答社区

    链客是中国领先的区块链垂直领域技术问答社区(www.liankexing.com),旨在为大家提供一个直接.高效的技术交流平台,区块链技术爱好者遇到的每一个问题,链客做到有问必答! 在这里: ①海量的 ...

  4. 区块链技术入门,都涉及哪些编程语言?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 关于区块链的技能掌握,提到最多的就是Go语言和C++.Java,但是很多人产生了歧义,认为只有这几种语言才可以,CDA数 ...

  5. 西班牙放大招,利用区块链技术防腐

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 在过去十年来,西班牙爆发了一系列引人注目的腐败丑闻,其中以公共采购最甚.但据TI 2017年的腐败认知指数表明,西班牙下 ...

  6. 区块链技术是否会终结开源时代?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 2017年11月18~19日,在上海交大召开的2017中国开源年会,在第二天我们组织了一个"闭门会议" ...

  7. 区块链技术的本质是分布式数据库

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链技术是基于比特币应用提出的一个概念,他是一个融合了多种技术的一个集成式创新.目前区块链的应用早已不仅仅局限在比特币 ...

  8. 区块链技术产生数字货币时代

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 比特币是一种革命性的数字货币,更是一种颠覆性的创新技术.比特币最大的贡献是创造了信用,解决了困扰互联网进一步发展的拜占庭 ...

  9. 区块链技术背后的运行逻辑

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链技术可能是自互联网技术以来最伟大的发明.区块链可以在不需要有中央权威机构的情况下或不需要双方信任的情况下交换价值或 ...

  10. 区块链技术如何改变我们对DNA的看法

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 试想一下,有人得到了你的一些最私人的信息,并用它来攻击你,窃取你的身份,实施诈骗.这对于你来说特别有压力,对吧?那么,倘 ...

最新文章

  1. altium designer 原理图和PCB 多通道设计
  2. 困难样本挖掘(Online Hard Sample Mining)
  3. python教程第四版pdf下载-笨办法学python第四版 电子书(pdf格式)
  4. 图解Flex开发教程
  5. c语言稀疏矩阵做除法,稀疏矩阵的除法
  6. cocos2d-lua 搓牌效果_4款热门面霜评测,欧莱雅效果一般,艾珂薇性价比高,菲洛嘉最贵...
  7. TeraTerm设定(窗体大小,字体字号)保存为默认值
  8. MFC+opencv 显示mat图像
  9. Runtime消息动态解析与转发流程
  10. linux 文件系统cache,终于找到一篇详解Linux文件系统Cache的文章
  11. AndroidStudio_安卓原生开发_sharedpreferences清空---Android原生开发工作笔记150
  12. 两个员工,一个做事认真但效率低,一个迟到早退但效率高,只能留一个我该留哪个?
  13. 群组日记-20080303
  14. 文本的平均列数python-CDA数据分析师
  15. Python+Kivy(App开发)从入门到实践
  16. 暑期JAVA学习(14.1)Map集合案例-统计投票人数
  17. 广东:让“数据跑路”代替“民众跑腿”
  18. 晚上可以挣钱的副业,这6个赶紧收藏吧!
  19. [Android/Linux]-1.power_supply框架初识
  20. python脚本windows环境下权限问题处理

热门文章

  1. android 图片缓存
  2. 小程序画布,随机24个数显示在画布上面,不可重叠
  3. php 网络请求 get请求和post请求
  4. datatable无法设置横向滚动条(设置无效)
  5. Python编写Hive UDF
  6. 4-1 ADO.NET简介
  7. 《 硬件创业:从产品创意到成熟企业的成功路线图》——导读
  8. C# TripleDES NoPadding 时对待加密内容进行补字节(8个字节为一个Block)
  9. iOS原生如何加载HTML中img标签的图片
  10. VIM技巧:显示行号