0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Phala实现区块链和硬件的“平衡”

如意 来源:百家号 作者:星球日报 2020-07-02 16:02 次阅读

或许你会觉得硬件与区块链风马牛不相及。毕竟,从比特币到以太坊,区块链都是软件为王,基于硬件的解决方案往往有中心化的嫌疑。其实,在隐私保护领域,引入硬件是常规操作。硬件是实现实用化的基础,软硬结合的方案可以实现一加一大于二的效果。通过巧妙组合,Phala 可以在让其去信任化的同时,让解决方案在可拓展性和保密性之间达到绝佳的平衡。

#1 基于TEE的区块链保密

Phala Network运用了保密智能合约来实现区块链保密。与传统合约不同的是,它运行在 CPU 内一个特殊的硬件区域(可信执行环境)内。这个区域与其他部件高度隔离;未经授权,包括恶意攻击在内的任何尝试都无法读取TEE中的数据,也无法干预其中程序的执行。

Phala将运行在 TEE 中的程序称为pRuntime。 pRuntime 在 TEE 内维持矿工和 Gatekeeper 节点运行,并负责处理 TEE 远程证明、链上注册、密钥管理和保密合同执行。

然而,如何让用户相信智能合约运行在 pRuntime 里,而不只是一个伪造的 TEE环境?这个时候,我们需要了解什么是“远程认证”(Remote Attestation)。

“An application that hosts an enclave can also ask the enclave to produce a report and then pass this report to a platform service to produce a type of credential that reflects enclave and platform state. This credential is known as a quote. This quote can then be passed to entities off of the platform, and verified…”

“特殊安全区(enclave)里的应用程序也可以要求安全区生成报告,然后将该报告传递到平台服务以生成反映安全区和平台状态的凭证。这样的反馈凭证被称为“引报”(quote)。之后,引报就可以作为信任源向外界验证安全区内应用的可信性……”

远程认证是确保 TEE 系统处于安全和可信状态的关键。来自英特尔的 Quate 可以证明这段代码(以哈希值确定)和需要用到的某些数据都确确实实运行在最新版本的 SGX 安全区内。

#2 Secret Provisioning

远程认证是保密智能合约的灵魂。但如果我们无法在 TEE 和第三方之间建立端到端加密的通信,应用范围就会受到限制。所以,英特尔 SGX 还运用了 Secret Provisioning协议来优雅地解决这个问题。

借助 Secret Provisioning 协议,我们可以建立从用户到 pRuntime 的信任链:

区块链上公示了合法 pRuntime 代码的哈希;

pRuntime 运行远程证明协议,获取远程认证报告,报告中含有:被证明代码的哈希值(pRuntime本身); 身份认证密钥对的公钥(有时效性)

远程验证报告在链上提交,并在链上进行验证;

区块链比较远程报告返回的哈希值(旨在证明:参与方确实是TEE中运行的合法 pRuntime)

身份认证公钥完成链上注册(以后只有目前正在运行的 pRuntime 可以使用此密钥对)

注册完成后,但凡是由这个身份签名的消息,都一定是由此 pRuntime 生成的。用户可以使用已注册的身份公钥进一步和 pRuntime 建立类似 TLS 的连接。

需要与 TEE 进行通信时,用户可以从区块链获取已注册的 pRuntime 的公钥,并用 Substrate 账户和公钥进行 ECDH 迪菲赫尔曼协议密钥协商,并获得用于和 pRuntime 进行通信的密钥。

信任链建立后,该身份密钥将唯一地表示 pRuntime 的身份。理论上,只要TEE没有硬件漏洞(在后文我们会继续讨论这个点),则一次成功的远程认证就可以确保所有与 pRuntime 往来的通信处于安全和可信的状态。

#3 链上升级

链上升级可以极大地降低硬件升级硬分叉带来的风险,所以非常重要。Substrate 天生支持 Runtime 链上升级,在治理模块即可完成。同理,TEE 里的 Runtime 也是可以升级的。

升级 pRuntime 时,需要将新的哈希提交到区块链上。之后便可由社区通过类似于 Substrate 的链上治理流程来审查代码、讨论并投票赞成升级。

链上一旦有升级,Phala 的守门人(Gatekeeper)和矿工都必须第一时间升级 pRuntime。这个过程对矿工来说会相对容易一些,因为他们不用 24 小时在线,只用暂停挖矿,升级,然后继续挖矿即可。守门人则肩负可用性重任,需尽可能在线,因此他们要么运行另一个新版本的TEE客户端等待下一次选举期间的自然切换,要么对状态数据进行紧急加密转储,然后将其恢复到新的 pRuntime。

虽然后者有状态数据丢失或暴露的风险,但在紧急情况下也不失为一种选择。 SGX 有一个“密封至安全区(Seal to Enclave)”功能,可以生成只能由同一安全区解码的密钥。这个密钥可以确保数据不被任何第三方查看或迁移。为了降低硬件安全漏洞被利用的可能性,Gatekeeper 中的密钥是通过 Shamir 密钥共享方案分发的。即使 sealing 崩坏,如果没有网络中的多方合谋,主机也无法获取密钥。

#4 攻与守

Phala 的威胁模型首先假设TEE厂商是部分可信的。原因有二:一,TEE 厂商在制造芯片的时候并不知道这些芯片会被用在什么地方;二,即便遭受“零日漏洞攻击(Zero-day Attack)”,其他所有运行在芯片上的程序都会有风险,而不单单是TEE承受风险。

虽然秉持上述假设,不可否认的是,硬件漏洞攻击仍然时有发生。好在,有以下几种方法可以解决或处理硬件风险问题。

首先,硬件漏洞是可以修复的。一个常见的误区是,只有软件漏洞可以修复,而硬件漏洞不能修复。事实并非如此,我们可以通过微码来修复硬件漏洞。英特尔为 SGX 设计了一种特殊的架构,大多数漏洞都可以被及时修复。比如,最近新出现的一种名为 SGAxe的攻击就已经通过微码升级和密钥组轮换被修复。密钥经过转置和撤回后,所有非最新版 SGX 设备的请求都将被远程认证驳回。

其次,随机性是一柄利器。有人会问,零日漏洞攻击怎么应对?——矿工拥有硬件访问权限,就可能会利用零日漏洞攻击盗取数据,有作恶的可能。针对这种情况,我们可以活用“随机性”,让区块链把保密智能合约在一个时间段随机分配给不同的矿工,这样,每个时间段的矿工都不同。这样一来,攻击者必须在不同时间段持续控制大多数矿工的TEE设备才能成功,作恶成本会非常高。

最后,保密合约可以通过副本保证执行的正确性。即使在极端情况下,安全区完全被攻陷、机密数据完全暴露在攻击者面前、TEE 内程序可以被任意改写,合约的“正确性”(correctness)仍然可以得到保证。在 Phala 的设计中,保密合约可以有一个或多个副本并行运行。副本不会影响合约的执行,因为所有输入都来自区块链。并行状态下,会有多个 TEE 同时尝试向链上提交状态数据。此时就会有一个简单的链上投票过程,状态数据的“最终确认”(finalize)将遵循少数服从多数的原则。

副本的设计让这个过程变成了类似 Polkadot Validator选举的过程。要想攻击“正确性”,攻击者必须控制绝大多数TEE矿工。——这还是在完全被攻破的极端情况下。

#5 结论

过去,区块链仅限于软件范畴。发展至今,完全公开性已成为大范围落地的桎梏。而有了可信硬件和精心设计的协议支持,Phala将证明和构建出一个可信、可保密、可大范围落地的区块链世界。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    69

    文章

    5034

    浏览量

    88203
  • 智能硬件
    +关注

    关注

    205

    文章

    2352

    浏览量

    108050
  • 区块链
    +关注

    关注

    111

    文章

    15563

    浏览量

    106858
收藏 人收藏

    评论

    相关推荐

    多个TCL5615通过菊花实现级联时,DIN、CS、SCLK信号如何控制?

    多个TCL5615通过菊花实现级联时,DIN、CS、SCLK信号如何控制?或者说,如何编程实现级联(硬件已经完成)?级联控制的时序是怎样的?有参考示例代码吗?谢谢!
    发表于 02-11 07:33

    平衡电阻大小如何确定,平衡电阻阻值大小的选择原则

    在电子电路设计中,平衡电阻(Balancing Resistor)扮演着至关重要的角色。它不仅有助于实现电路的平衡和稳定性,还能减少噪声和干扰,提高信号质量。然而,平衡电阻的大小和阻值
    的头像 发表于 01-30 14:33 327次阅读

    平衡电阻器可以改为不平衡

    在电子电路中,平衡电阻器与不平衡电阻器各自扮演着重要的角色。平衡电阻器主要用于实现电路的平衡和稳定性,减少噪音和干扰,提高信号质量。而不
    的头像 发表于 01-30 14:31 343次阅读

    dap协议在跨技术中的应用

    和通信协议,实现不同区块网络之间的无缝连接。 一、DAP协议概述 DAP协议是一种去中心化应用协议,它定义了一套标准化的接口和通信机制,使得不同的区块
    的头像 发表于 11-22 15:45 375次阅读

    dap协议的基本概念 dap协议在区块中的应用

    DAP协议,即分布式应用协议(Distributed Application Protocol),是一种旨在促进去中心化应用(DApps)在区块网络上的构建和运行的框架。DAP协议的核心目标是提供
    的头像 发表于 11-22 15:39 567次阅读

    YOGO ROBO智能机器人助力区块行业发展

    日前,上海静安区成功举办了全国首个区块主题的场景集市——“数通谷”区块+医疗场景集市。本次活动汇聚了来自
    的头像 发表于 11-22 11:33 382次阅读

    智慧能源管理系统:区块技术在能源交易中的应用

    区块技术在能源领域具有巨大潜力,可降低交易成本、推动分布式可再生能源发展。在能源计量、交易和决策机制等方面发挥重要作用。
    的头像 发表于 11-22 10:48 349次阅读
    智慧能源管理系统:<b class='flag-5'>区块</b><b class='flag-5'>链</b>技术在能源交易中的应用

    用OPA2134+TPA6120A2如何实现平衡输出和耳机输出?

    做普通的耳放 ,请问这样的设计思路可行吗?有没有办法只用两颗TPA6120A2就实现以上功能?或者说OPA2134直接支持平衡输出,再用一颗TPA6120A2实现普通输出?
    发表于 10-23 07:52

    华为云、上海钧达数科 发布区块数据要素联合解决方案

    【摘要】 9 月 19 日,在华为全联接大会 2024 期间,华为云与上海钧达数科在上海世博展览馆联合发布了基于华为云区块打造“区块数据要素解决方案”。 9 月 19 日,在华为全
    的头像 发表于 10-09 20:16 517次阅读
    华为云、上海钧达数科 发布<b class='flag-5'>区块</b><b class='flag-5'>链</b>数据要素联合解决方案

    京准电钟:GPS北斗卫星校时服务器助力区块数据网

    京准电钟:GPS北斗卫星校时服务器助力区块数据网
    的头像 发表于 09-27 10:43 337次阅读
    京准电钟:GPS北斗卫星校时服务器助力<b class='flag-5'>区块</b><b class='flag-5'>链</b>数据网

    串行外设接口的菊花实现

    电子发烧友网站提供《串行外设接口的菊花实现.pdf》资料免费下载
    发表于 08-27 09:45 1次下载
    串行外设接口的菊花<b class='flag-5'>链</b><b class='flag-5'>实现</b>

    IG网关产品实现路备份的方法

    的-接口备份模块。 3、选择主接口以及备份接口等数据参数;设定完成后添加即生效。(Dot11radio 1代表WLAN接口) 通过这样设定即可实现路备份的基础功能设定:
    发表于 07-24 08:25

    探索无限可能:华为云区块 +X,创新融合新篇章

      6 月 23 日,华为开发者大会 2024(HDC 2024)期间, “「区块+X」多元行业场景下的创新应用”分论坛在东莞松山湖举行,区块技术再次成为焦点。本次论坛以"
    的头像 发表于 07-09 12:27 5181次阅读
    探索无限可能:华为云<b class='flag-5'>区块</b><b class='flag-5'>链</b> +X,创新融合新篇章

    用st-link或j-link工具怎么烧写STM32信息区块?

    怎么烧写STM32 信息区块!用st-link 或 j-link工具。
    发表于 05-08 07:20

    区块互操作标准化应用及经验,华为云 BCS 获评团体标准示范项目

    区块技术发展的关键 区块作为一种分布式账本技术,具多方共识、分布式存储、难以篡改等 特点,在金融科技、政务民生、司法存证、供应协同、税
    的头像 发表于 02-23 22:00 734次阅读
    <b class='flag-5'>区块</b><b class='flag-5'>链</b>互操作标准化应用及经验,华为云 BCS 获评团体标准示范项目