是什么限制了区块链技术的应用?
链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
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年是区块链落地的突破之年!
相关文章:

软件包管理(rpmyum)
一、rpm包管理器 rpm是一个功能强大的包管理工具,可用于构建,安装,查询,验证,更新和卸载软件包。 用法: rpm [OPTION...] 配置文件: /var/lib/rpm/ 已安装rpm包的元数据 选项: -i&am…

python yield理解_对Python中Yield的理解
看到下面这段程序的时候,有点不明白这个yield到底是个啥东西,看了网上很多的博客,大致理解了yield的含义,所以记录下来。要说yield首先要说python中的生成器,那么什么是生成器?假设有一个包含一百万个元素的列表&…

Linux下文件的三种时间戳
Linux下文件的三种时间标记 三种时间对应关系表 columncolumncolumn访问时间Accessatime修改时间Modifymtime状态改动时间Changectime如何查看文件文件的三种时间戳 stat filename 三种时间戳的解释 访问时间:读一次文件的内容,这个时间就会更新。比如mo…

比特币和以太坊本质有什么区别?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 14年的时候,币圈 (当时还没有链圈之说,链圈应该是17年的事情了,区块链概念的流行是15年底…

HDU1402(FFT入门)
题目链接:http://acm.hdu.edu.cn/status.php?userReykjavik11207&pid1402&status5 本题数据范围为5e4,常规方法O(n2)肯定是不行的。 FFT是离散傅里叶变换DFT的快速形式 对多项式f(x) a0 a1x a2x2 an-1xn-1,有两种表示法&#x…

python怎么读_如何用Python读写文件
前面我们已经介绍了很多Python相关的基础知识,大家是不是对Python已经有了进一步认识了呢?作为人工智能时代的热门编程语言,开始接触并学习Python的孩子越来越多,家长们都不想让自己的孩子落于人后,近期前来找陈老师咨…

什么是区块链智能合约?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 自从2009年第一枚比特币诞生,九年多时间里,区块链技术正在被应用在人们生活的各方各面,从1.0时代的数字货币&…

python数据分析基础 余本国_Python数据分析基础
本书根据作者多年教学经验编写, 条理清楚, 内容深浅适中, 尽量让读者从实例出发, 结合课后练习, 少走弯路。本书涉及的内容主要包括Python数据类型与运算、流程控制及函数与类、Pandas库的数据处理与分析等。作者通过近三轮的教学,对Python3.x的基础知识进行了筛选和…

stm32F042 (二) 按键触发中断
已经实现GPIO口输出高低电平控制LED,这里实现按键触发中断来改变LED闪亮的频率,因为PB3连着LED,所以PB3的输出模式没有改变,随意选一个GPIO口PA7接按键产生中断。因为nucleo开发板是裸板,所以按键、上拉电阻是另找在面…

区块链和智能合约的关系
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 尽管比特币(Bitcoin)和以太坊(Ethereum)是经常被一起提及的两个词,但实际上࿰…

repo同步代码_iTOP-4412开发板android4.0代码下载和编译
Android4.0 源码可以从光盘,网盘获取稳定版本,也可以从 GitHub 下载我们的开发版本。GitHub 仅提供源码下载,不提供二进制下载,二进制文件存放在光盘和网盘中。基于迅为4412开发板6.3.1.1 repo 下载android 代码管理不同于 uboot,…

vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...
一、SPA 不是指水疗。是 single page web application 的缩写。中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索。 所有的前端人员都应该明白我们的页面的 url 构成:http://www.fengcms.com/index.html?namefungleo&old32#mylove/is/wo…

神奇的输入 while(cin....)如何在遇见换行之后进入下一层循环读入
1 cin>>m>>n;2 for(int i1;i<m;i){4 int x0;5 char ch ;6 while(ch!10) //在遇到换行之后进入下一层循环读入。7 {8 x;9 cin>>c[x]; 10 chgetchar(); 11 } 神奇的输入。 get skill!转载于:https://www.cnblogs.com/zyker/p/588…

区块链中的“智能合约”有何应用?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 如刺金般闪耀的区块链时代,投资者的热潮还将持续升温,与此同时金融的大佬已经开始注意到区块链应用落地场景的实现ÿ…

米勒罗宾素性测试(Miller–Rabin primality test)
1 #include<iostream> //该程序为哥德巴赫猜(想输出所有的组合)2 #include<cmath>3 #include<cstdlib>4 #include<ctime>5 #include<cstdio>6 7 using namespace std;8 9 typedef unsigned long long ull; 10 typedef u…

Linux Linux程序练习十一(网络编程大文件发送UDP版)
//网络编程发送端--大文件传输(UDP) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h>#include <sys/types.h> #include <sys/socket.h> #include <n…

iic通信原理_电子知识之IIC通信原理和协议分享
IIC 的一些特征: 两条总线:串行数据总线(SDA)和串行时钟总线(SCL)真正的多主机总线连接到相同总线的ic数量只受到总线的最大电容400pF限制。串行8位双向数据在标准模式下可达100K bit/s快速模式400K bit/s,高速模式下3.4Mbit/s.数据有效性规定࿱…

以太坊核心概念
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 以太坊虚拟机(EVM) 以太坊虚拟机(EVM)是以太坊中智能合约的运行环境。它不仅被沙箱封装起来&#…

使用rest_framework写api接口的一些注意事项(axios发送ajax请求)
1. 类继承GenericAPIView,定义queryset 印象深刻的事:由于原来对于继承关系不太清楚,写接口 APIView/泛指GenericAPIView不太关注queryset没有设置渲染器:默认 [JSONRenderer,BrowsableAPIRenderer]BrowsableAPIRendererÿ…

iir数字滤波器_手把手教系列之一阶数字滤波器设计实现(附代码)
[导读] 前面分享了 IIR/FIR/mean/梳状数字滤波器的具体设计实现,这几种使用起来或许觉得计算量大,相对复杂。实际工程应用中通常有必要过滤来自传感器或音频流的数据,以抑制不必要的噪声。有的应用场景,可能只需要一个最简单的一阶…

正则表达式中$1,$2 ===算是什么意思
$1,$2...是表示的小括号里的内容 $1是第一个小括号里的 ,$2是第2个小括号里的 比如 /gai([\w]?)over([\d])/ 匹配 gainover123 $1 括号里的 n $2 第2个括号里的 123转载于:https://www.cnblogs.com/vertko/p/5888902.html

为什么以太坊能成为区块链2.0的代表之作?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链的学习进入到第四天,前三天学习比特币,分别从比特币的前世、货币属性和背后的区块链技术学习。 比特币是区块链的1…
(转)搭建企业内部yum仓库(centos6+centos7+epel源)
搭建企业内部yum仓库(centos6centos7epel源) 原文:https://www.cnblogs.com/nulige/p/6081192.html https://www.linuxidc.com/Linux/2017-11/148723.htm---------部署yum仓库与定制rpm包 1. 创建yum仓库目录mkdir -p /data/yum_data/cd /data/yum_data/#可以上传rp…

vs按f5没反应_《死神vs火影》中最受欢迎的游戏角色,仙鸣当之无愧上榜
hello!大家好,又到了一日一度的杨某讲游戏环节啦,赶紧系好安全带,准备上车吧。《死神vs火影》作为一款深受广大群众欢迎的街机游戏,自然而然地涌现出了一系列知名游戏角色。那么,大多数人心目中最喜欢&…
IEC61850笔记--IEC61850应用入门(二)
IEC61850标准学习和调试,测试的记录文档,主要参考了IEC61850标准文档,《IEC61850应用入门(第二版)》,开源代码libIEC61850及libIEC61850说明文档。 IEC61850标准内容参考IEC61850标准文档,以及IEC61850标准介绍文档《I…

区块链赚钱的9种方式
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 物联网火了一段时间,人工智能火了一段时间,无人驾驶火了一段时间。现在,通通被区块链的风头盖住了,都…

7、在对象内部尽量直接访问实例变量
本文概要: 1、首先给出结论是:除了几种特殊情况外,在读取实例变量的时候采用直接访问的形式,而在设置实例变量的时候通过属性来做。 2、讲解了使用getter、setter的好处。 3、列举了几种上面提到的特殊情况:有时不能使…

linux python2和python3共存_linux-Centos7安装python3并与python2共存
1.查看是否已经安装PythonCentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。使用 python -V 命令查看一下是否安装Python然后使用命令 which python 查看一下Python可执行文件的位置可见执行文件在/usr/bin/ 目录下,切换到该目录…

9月20号作业
转载于:https://www.cnblogs.com/kangy123/p/5890515.html

区块链以太坊五大开发工具,你喜欢哪个?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 以太坊(Ethereum)是运行智能合约的最受欢迎的分布式平台之一。因为虚拟货币近年来的发展,以太坊以区块链为基础引…