一切为了解决隐私问题,绿洲实验室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 ...
随机推荐
- servlet_filter简介
Filter总结: 1.Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静 ...
- linux是什么,有什么特点
(1)Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持 ...
- html5(八) IndexedDB
IndexedDB 是一个数据库系统,它在用户的计算机上存储索引信息. IndexedDB与传统的数据库不同.在IndexedDB中,数据库中的信息以对象的形式存储在对象库表中.对象库没有特定的结构, ...
- iTerm2 + oh my zsh +agnoster 打造最强Mac终端
链接: http://www.siguoya.name/pc/home/article/256 http://www.jianshu.com/p/fabd40cf83fe http://www.jia ...
- Python *Mix_w3
1.基本数据类型(int,bool,str) int 整数 str 字符串. 一般不存放大量的数据 bool 布尔值. 用来判断. True, False list 列表.用来存放大量数据, []表示 ...
- Python基础综合练习
from turtle import * def draw(x): begin_fill() for i in range(5): forward(x) right(144) end_fill() d ...
- flask-session 在redis中存储session
依赖: Flask Flask-Session redis import os from flask import Flask, session, request from flask_session ...
- 垃圾收集器(GC)
堆分区:所有new的对象都会存放在堆中 > 新生代(Young Generation):存放生命周期短的对象,具体还分为Eden和Survivor两个区,其中Survivor分为Fro ...
- 福大软工 · BETA 版冲刺前准备(团队)
BETA 版冲刺前准备 队名:第三视角 作业链接 组长博客 应作业要求为了更加顺利地开展beta版本的冲刺,上次的alpha版本展示后,我们组对之前开发过程中存在的各种问题进行了全面的讨论,并对其进行 ...
- 一、JAVA变量类型:②局部变量
局部变量声明在方法.构造方法或者语句块中: public class Test{ public void pupAge(){ int age = 0; //定义age为方法pupAge中的局部变量,并 ...