绿洲实验室官网截图

下一代区块链平台的竞争已经悄然展开,每个月我们都能看到新成立的创业公司宣称,他们要采用区块链解决所有问题。大约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协议介绍的更多相关文章

  1. delphi 解决android 9上无法使用http协议

    delphi 解决android 9上无法使用http协议 安卓9不让客户端通过非https方式访问服务端数据(不允许发送明文http请求)的问题. 解决方法: 1.选择安卓平台编译一次程序,在项目根 ...

  2. 基于隐私保护技术的DNS通信协议介绍

    本文提出了一种基于用户数据报协议的DNS传输中用户隐私保护的加密方法:DNSDEA.该方法采用PKI加密体系与DNS协议相融合,不仅解决了域名隐私保护问题,而且与传统DNS体系相兼容,保持了DNS系统 ...

  3. 解决iOS9苹果将原http协议改成了https协议问题

    解决方法: 在info.plist 加入key <key>NSAppTransportSecurity</key> <dict> <key>NSAllo ...

  4. 解决android 9上无法使用http协议

    用户反应本来好用的app,突然无法访问服务器,不能正常用了,拿到手机,从头检查权限,重新安装都不能解决,网络是正常的,怎么就不能访问网络了呢?所有想到的办法都用了而不能解决,最后想起看一下androi ...

  5. 【转】Netty之解决TCP粘包拆包(自定义协议)

    1.什么是粘包/拆包 一般所谓的TCP粘包是在一次接收数据不能完全地体现一个完整的消息数据.TCP通讯为何存在粘包呢?主要原因是TCP是以流的方式来处理数据,再加上网络上MTU的往往小于在应用处理的消 ...

  6. Netty之解决TCP粘包拆包(自定义协议)

    1.什么是粘包/拆包 一般所谓的TCP粘包是在一次接收数据不能完全地体现一个完整的消息数据.TCP通讯为何存在粘包呢?主要原因是TCP是以流的方式来处理数据,再加上网络上MTU的往往小于在应用处理的消 ...

  7. JavaScript中url 传递参数(特殊字符)解决方法及转码解码的介绍

    有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码   十六进制值 1. + URL 中+号表示空格 %2B 2. 空 ...

  8. 跨域解决之JSONP和CORS的详细介绍

    JSONP跨域和CORS跨域 什么是跨域? 跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制! 同源策略 同源策略:域名.协议.端口均相同. 浏览器执行Jav ...

  9. 解决 nginx https反向代理http协议 302重定向localtion到http问题

    location /rest { #proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remot ...

随机推荐

  1. mysql(5.5)安装后忘记密码

    查看mysql安装的路径

  2. 高级FTP服务器开发

    要求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己的家目录 4. 对用户进行磁盘配额.不同用户配额可不同 5. 用户可以登陆server后,可切换目录 6. ...

  3. mycat 入门使用例子

    目的:有 user 和 t_order 两张数据表,表 user 的数据全部存放在 db1_zhang 中,表 t_order 的数据按 id 对 2 取模分别存放在 db1_zhang 和 db2_ ...

  4. decode encode

    https://blog.csdn.net/crylearner/article/details/38521685,python常用的十进制.16进制.字符串.字节串之间的转换

  5. 聊一聊啥都不会的我自学Linux系统的历程

    Linux大家都不陌生,我是在大三的时候开始接触Linux,上课的时候一位给我们上课的老师闲聊的时候说,你们计算机专业的学生要好好去学Linux,对于你们以后发展或者是就业都很有帮助. 开始的时候是一 ...

  6. Python *Mix_w2

    1.循环: 执行流程: 1. 判断条件是否为真. 如果真. 执行代码块 2. 再次判断条件是否为真...... 3. 当条件为假.执行else 跳出循环. 循环结束. while 条件: 代码块(又叫 ...

  7. Python中的yield生成器的简单介绍

    Python yield 使用浅析(整理自:廖 雪峰, 软件工程师, HP 2012 年 11 月 22 日 ) 初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关 ...

  8. linux c++ curl https 请求并双向验证SSL证书

    1.配置curl https请求需要提供 CA证书.客户端证书和客户端秘钥,这三个文件的pem格式. 分别对应 curl_easy_setopt() 函数的 下面三个参数: CURLOPT_CAINF ...

  9. python与sqlserver接口包pymssql

    包下载地址(对应着自己的电脑和Python的版本下载即可,我电脑是win32,Python是3.6的) https://pypi.python.org/pypi/pymssql/ 下载后我放到了d盘中 ...

  10. Java学习笔记34(sql基础 :增删改查1)

    create database qy97;/*创建数据库*/ use qy97; /*使用数据库 use 数据库名*/ show tables; /*查看所有的表*/ select database( ...