一切为了解决隐私问题,绿洲实验室Ekiden协议介绍
绿洲实验室官网截图
下一代区块链平台的竞争已经悄然展开,每个月我们都能看到新成立的创业公司宣称,他们要采用区块链解决所有问题。大约80-90%的区块链项目,运行在像Ethereum这样的平台上。
创建一个新的可行的替代方案?这说起来容易但做起来很难。要颠覆区块链平台在市场上的主导地位,我们需要新的协议来解决一些根本缺陷。其中,性能和隐私是使用区块链技术的基本功能。一个名为绿洲实验室(Oasis Labs)的新项目刚刚筹集了4500万美元来实现这个目标:在区块链上构建一个隐私优先、高性能的云计算平台。
绿洲实验室是来自加州大学伯克利分校(UC Berkely)和麻省理工学院(MIT)安全研究人员的成果。
他们的众筹在区块链社区中引起了很多关注,关于该公司及其目标的文章很多,但对他们技术的介绍知之甚少。绿洲实验室与其他区块链平台有什么不同?当然,有一些创新的分布式账本技术,如Hashgraph、Enigma等协议,正在为下一波区块链技术提高标准。然而,绿洲实验室给人的感觉却有所不同。
使绿洲实验站起来的原因在于,他们使用独特的软件和硬件组合来解决当前一代区块链应用的隐私和性能挑战,同时该平台还为真正去中心化云计算提供动力。 从长远来看,你可以把绿洲实验室比作亚马逊网络服务。绿洲实验室背后的远景可以用三个简单的步骤总结:
为了实现这些目标,Oasis实验室开发了一种协议,该协议使用一种结合软件和硬件的方法来实现智能合约的高性能和高隐私。
来聊聊Ekiden
Ekiden是绿洲实验室平台背后的主要协议。Ekiden的目标是为了高隐私的智能合约执行提供一个系统。这里的独特性在于,在不牺牲性能的情况下解决隐私问题。毕竟,零知识证明系统等协议为智能合约中的隐私挑战提供了一种优雅的解决方案。然而,从计算的角度来看,这些协议非常昂贵,限制了它在简单场景中的使用。
为了解决智能合约隐私性的问题,Ekiden依赖于一种相对晦涩的技术,称为可信执行环境(trusted execution environment, TEE)。从概念上讲,TEEs 提供了一个完全隔离的环境,称为安全区,它可以防止其他应用程序、操作系统和主机所有者篡改甚至了解在安全区中运行的应用程序的状态。TEEs非常适合保密,但它们是孤立的,无法提供存储或网络功能。这里就需要区块链加入进来了。
从架构的角度来看,Ekiden将底层区块链系统与基于TEE的执行相结合。 TEE-区块链组合可实现智能合约的安全和可扩展执行,同时还保留了强大的机密性,完整性和可用性保证。下图提供了Ekiden架构的概述:
Ekiden当前的架构模型基于三个基本实体: 客户端、计算节点和一致节点:
客户端: 这些节点可以使用秘密输入创建合同或执行现有合同。
计算节点: 这些节点负责实例化多个TEE来执行智能合约程序。
共识节点:这些节点负责通过运行共识协议来维护分布式附加分类帐本。合同状态和安全证明在此区块链中保留。
Ekiden模型的最大贡献之一是它与合约计算的共识脱离,该合约计算允许更高级别的并发性,同时保持区块链的完整性。
为了达成共识,Ekiden依赖于一个发布证明(proof-of-publication)协议,该协议证明了TEE的合约,特定项目已存储在区块链中。 该协议是基于由共识节点提供的简单多签名模型。
编程模型
绿洲实验室的最终目标是构建一个真正去中心化的云,为此,他们需要强大的编程环境。目前,Ekiden支持两种主要类型的智能合约:
Rust合约: Ekinden合约是用Rust语言编写的。Rust程序针对并发性进行了优化,它们可以使用RPC协议与Ekiden集成。
EVM契约: TEE环境中运行的以太坊虚拟机Sputnik VM实现被包含在Ekinden合约中。这意味着现有的以太坊智能合约可以在Ekiden平台上自动运行。
超出交易的思考
我们自然地将区块链与金融交易场景相联系,并且大多数当前协议都以这种方式建模。在我看来,绿洲实验室平台的价值在于能够实现复杂的工作负载,利用区块链的不变性和完整性功能,同时实现高性能和高扩展性。机器学习和网络安全等场景非常适合利用Ekiden的功能。Uber似乎已经在这场比赛中起了带头作用。
翻译的原文:Jesus Rodriguez, This Startup Wants to Build a High Performance, Privacy-First Blockchain Platform
文章作者:Wayne Wong
转载请注明出处
如果有关于PPIO学习的交流,可以通过下面的方式联系我:
加我微信,注意备注: 区块链
wechat:omnigeeker
一切为了解决隐私问题,绿洲实验室Ekiden协议介绍的更多相关文章
- delphi 解决android 9上无法使用http协议
delphi 解决android 9上无法使用http协议 安卓9不让客户端通过非https方式访问服务端数据(不允许发送明文http请求)的问题. 解决方法: 1.选择安卓平台编译一次程序,在项目根 ...
- 基于隐私保护技术的DNS通信协议介绍
本文提出了一种基于用户数据报协议的DNS传输中用户隐私保护的加密方法:DNSDEA.该方法采用PKI加密体系与DNS协议相融合,不仅解决了域名隐私保护问题,而且与传统DNS体系相兼容,保持了DNS系统 ...
- 解决iOS9苹果将原http协议改成了https协议问题
解决方法: 在info.plist 加入key <key>NSAppTransportSecurity</key> <dict> <key>NSAllo ...
- 解决android 9上无法使用http协议
用户反应本来好用的app,突然无法访问服务器,不能正常用了,拿到手机,从头检查权限,重新安装都不能解决,网络是正常的,怎么就不能访问网络了呢?所有想到的办法都用了而不能解决,最后想起看一下androi ...
- 【转】Netty之解决TCP粘包拆包(自定义协议)
1.什么是粘包/拆包 一般所谓的TCP粘包是在一次接收数据不能完全地体现一个完整的消息数据.TCP通讯为何存在粘包呢?主要原因是TCP是以流的方式来处理数据,再加上网络上MTU的往往小于在应用处理的消 ...
- Netty之解决TCP粘包拆包(自定义协议)
1.什么是粘包/拆包 一般所谓的TCP粘包是在一次接收数据不能完全地体现一个完整的消息数据.TCP通讯为何存在粘包呢?主要原因是TCP是以流的方式来处理数据,再加上网络上MTU的往往小于在应用处理的消 ...
- JavaScript中url 传递参数(特殊字符)解决方法及转码解码的介绍
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码 十六进制值 1. + URL 中+号表示空格 %2B 2. 空 ...
- 跨域解决之JSONP和CORS的详细介绍
JSONP跨域和CORS跨域 什么是跨域? 跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制! 同源策略 同源策略:域名.协议.端口均相同. 浏览器执行Jav ...
- 解决 nginx https反向代理http协议 302重定向localtion到http问题
location /rest { #proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remot ...
随机推荐
- django2_开发web系统接口
1.单独创建.../sign/views_if.py文件,开发添加发布会接口 from django.http import JsonResponse from cmdb.models import ...
- input date
https://stackoverflow.com/questions/17954966/how-to-get-rid-of-x-and-up-down-arrow-elements-of-a-inp ...
- SpringCloud服务负载均衡实现原理02
- 关于SUID SGID
pattern 模式 permission 权限 The problem 问题 .-exec 找到的所有文件 variable 变量 一.1.grep sed awk 正则表达式 三大平台 #ifco ...
- CodeForces - 589B(暴力+排序)
Dasha decided to bake a big and tasty layer cake. In order to do that she went shopping and bought n ...
- 18-09-19 关于outlook的使用
- 二、fread与fwrite
fread 原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 参数: ptr:数据存放地址 size:一个对象的 ...
- C#添加文字水印
使用的是iTextSharp添加PDF水印,由于是接口动态生成PDF,所以采用的是全部是内存流的形式,而且水印是平铺是.iTextSharp版本是5.5 /// <summary> /// ...
- 在eclipse中启动java程序的时候,每次都会在一个未设置断点的源码里面,卡断点
可以通过取消这个勾选框,来阻止代码在未设置断点的地方停止 具体位置在:Preferences--Java--Debug
- python day20面向对象-属性,类方法,静态方法
一.属性的初识 # class Person: # # def __init__(self,name,hight,weight): # self.name = name # self.__hight ...