ZLiTE: Lightweight Clients for Shielded Zcash Transactions using Trusted Execution

论文:Cryptology ePrint Archive: Report 2018/1024 - ZLiTE(youtube解读)

相关论文:Bite: Bitcoin Lightweight Client Privacy using Trusted Execution(CSDN解读)

0 摘要Abstract

问题:

  1. 普通区块链加密货币在交易中使用假名,容易从交易所溯源,泄露交易者隐私(zcash)
  2. zcash是用零知识证明保护shield transaction的收发方和金额的私密货币,用户必须用viewing key扫描区块链,尝试解锁每一笔交易来测试交易是否属于自己,移动设备计算与网络资源不支持。
  3. 客户端消费需构建实时更新的witness,移动设备计算与网络资源不支持。

ZLiTE:“轻客户端”的系统

  1. 服务器端:TEE(SGX)保证代码执行完整&数据机密,rORAM内存机制防止侧通道泄露敏感信息
  2. 客户端:发送viewing key给全节点以确认收款,并接收update构建witness以付款

1 简介Introduction

  • Zcash:解决交易隐私问题
    零知识证明存在一些过去的交易,这些交易给了用户他们可以花费的资金,从而删除了所有信息,如发送者/接收者的身份、金额和可链接性。

  • 收款通知:协调shield transaction
    以太坊:account;比特币:UTXO扫描区块链并检查每个事务;
    Zcash tx:(一个不透明的承诺、一个密文、一个防止重复消费的序列号,以及一个零知识证明交易的正确性和可用资金的存在)链上tx没有明文标志接受者的元数据,客户识别付款:解密tx中以接收者的公钥加密的密文。pc平台的资源充足的客户端可行,但资源紧张的移动设备客户端不可行。

  • 创建交易:协调shield transaction
    在zcash中需要提供witness以创建交易,witness是资金来源tx到最新区块tx构建的note commitment tree(Merkle tree),且需要动态实时更新新tx。

  • ZLiTE系统:私有信息检索+侧通道弹性可信执行+新的承诺树更新机制

2 背景Background

  • 屏蔽交易shielded transaction
    input note -> joinsplit -> output note
    nullifier:更新note set
    spending key & viewing key
    lightweight client:仅存block header,满足利用merkle tree验证交易

  • ORAM:隐藏内存的address、access pattern、read/write

  • SGX
    并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个enclave中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问enclave,也就是说,一旦软件和数据位于enclave中,即便操作系统或者和VMM(Hypervisor)也无法影响enclave里面的代码和数据。

3 解决方案 approach

  • Requirements

    • R1 Privacy. 不泄露隐私viewing key,transaction count, blocks containing transactions
    • R2 Integrity.资金完整 *** 即使TEE受损也要保证
    • R3 Completeness.信息完整(收/付款所需)
    • R4 Performance.性能

4 ZLiTE system

  • 架构

  • 交易检索Transaction Retrieval(收款通知)

    • Initialization

    a. ZFN初始化:连接p2p网络,下载完整zcash blockchain并不断更新
    b. ZLC初始化:从p2p网络请求所有新block header,用安装包中原始block header验证;保留最近block header用以处理浅分叉,并不断更新。

    • Synchronization Protocol

    (1)ZLC对ZFN远程认证(remote attestation)
    (2)认证成功,则建立TLS安全通信隧道
    (3)ZLC请求(viewing key用以解密s-tx,h标志从已知区块高度开始检索)
    (4)ZFN创建rORAM以存储要返回的tx;从h层开始用viewing key扫描BC;
    ​ DE成功,tx写入rORAM;
    ​ DE失败,用cmov技术进行读取操作(与写入操作看起来一样,混淆侧信道)
    (5)ZFN将rORAM序列化,返回数据(tx,block headers,note commitment tree update)
    (6)ZLC验证block header PoW和merkle tree,更新witness

  • 交易创建Transaction Creation
    witness路径根据note commitment tree得出,其需要根据最新区块更新。客户端保存已构建的note commitment tree,再根据update更新witness。

5 安全分析Security Analysis

  • 信息泄露Information Leakage
    1、ORAM的read/write不可区分,且cmov使控制流独立于tx,以此向侧信道掩饰相关tx
    2、response大小与扫描的区块数量h有关,与tx数量无关

  • 资金完整性与数据完整性Integrity and Completeness
    1、ZLC验证PoW,从p2p中其他节点接收block header以确保最长链,抵御eclipse攻击
    2、ZLC通过TEE attestation保证代码完整运行,相比SPV可以确定接收到所有收款通知

  • SGX完全受损Full SGX Compromise
    假如ZFN的enclave内数据泄露,则viewing key隐私泄露(R1),spending key仍在ZLC保密(R2)

  • 信任假设Trust Assumption
    与Zcash相同,要求大多数诚实的挖矿节点,且p2p广播信息不被eclipse攻击

6 性能分析Performance

7 相关工作Related Work

1、BIP37
2、BITE
3、Zcash Scalable Clients
4、Decentralized anonymous micropayments
5、Bolt: Anonymous payment channels for decentralized currencies

8 结论Conclusion

1、ZLC轻客户端可以创建和接收屏蔽支付。
2、TEE改变了Zcash的原始信任模型(viewing key->ZFN),但在最好的隐私和Zcash使用场景间取舍平衡。
3、开发支持屏蔽交易的移动客户端成为可能,更多用户可以受益于Zcash完善的隐私保护。

ZLiTE Lightweight Clients for Shielded Zcash Transactions using Trusted Execution相关推荐

  1. 零知识证明(zero-knowledge proofs)

    这世界变得比我们想的还快,最近学到一项技术叫「零知识证明」,简单的说,就是你向我陈述一件事情,虽然我听不懂你在说什么,但我可以判断这事情的真假! 举个例子,假设A是色盲,A想知道B是不是色盲,但问题是 ...

  2. 《Developing and maintaining clients’ trust through institutional mechanisms in online...》中英文对比文献翻译

    <Developing and maintaining clients' trust through institutional mechanisms in online service mar ...

  3. zcash/zcash

    What is Zcash? Zcash is an implementation of the "Zerocash" protocol. Based on Bitcoin's c ...

  4. access汇总_区块链或密码学相关论文汇总,持续更新中

    这里汇总区块链相关的论文,主要是顶会顶刊的. 温馨提示:没必要精读每一篇论文,因为时间和精力是有限的 下面的部分论文列表下面有知乎链接 ,它们是本人对该论文的解读. 同步更新本人Github,可通过& ...

  5. ROS暑期学校与ROSCon 2018

    简洁版通知: 2018机器人操作系统(ROS)暑期学校 费用:免费 时间:2018年7月21日至28日 地点:广东省深圳市丽水路2279号/清华大学深圳研究生院 暑期学校官网: http://www. ...

  6. ROSCon2018国际会议讲座录像和讲稿PPT

    连续第四年ROSCon门票完全售罄,参加人数超过500人.感谢47个赞助商6,数量再创新高, 为会议的发展提供资金支持! 此外,还发布了几乎所有讲座的幻灯片.因此,如果想获得链接或其他信息,现在也可以 ...

  7. Intel SGX相关文章

    Intel收集的SGX论文 https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions/ ...

  8. HTTP缓存的深入介绍:Cache-Control和Vary

    简介-本文范围 (Introduction - scope of the article) This series of articles deals with caching in the cont ...

  9. 【论文阅读】 The Honey Badger of BFT Protocols

    文章目录 摘要 1. 介绍 1.1我们的贡献 1.2建议部署场景 2. 背景和相关工作 2.1健壮的BFT协议 2.2 随机的协议. 3.异步和弱同步网络模型之间的差距 3.1多种计时假设形式 3.2 ...

最新文章

  1. 匿名发差评被判赔3272元,北京研究生遭遇冲上热搜,涉事机构回应:暂不澄清...
  2. 释放内存触发断点及数组、指针的NULL初始化
  3. jq第一天(1.83里面的属性)属性-》属性
  4. windows server 2008 r2虚拟机故障群集迁移
  5. 音视频技术开发周刊 70期
  6. linux华为路由器模拟器,华为路由器模拟器与实验内容.doc
  7. 剖析Caffe源码之Net类变量
  8. java c s聊天程序_Java建立C/S 模式聊天室服务器和客户端
  9. 技术改变生活,统一通信走向深度融合
  10. 即时聊天工具国外盛行,国内发展缓慢
  11. 微信公众号开发:账号申请与接入
  12. 两台计算机如何组成局域网,两台电脑如何建立局域网
  13. easyUI双击事件,完整总结
  14. 2019级软件工程应用与实践-人工智能快递柜(代码分析11)
  15. PostgreSQL和MySQL的性能对比实验
  16. [Python图像识别] 四十七.Keras深度学习构建CNN识别阿拉伯手写文字图像
  17. android 开机动画实现,Android App启动画面实现
  18. 大公司进不去,待在小公司,有前途吗?
  19. 笔记本换硬盘装系统完整教程(简单)
  20. Beta阶段基于NABCD评论作品

热门文章

  1. HTC ONE X刷ruu的详细刷机教程
  2. leetcode276周赛记录(待补充)
  3. 【音视频开发】基础知识:视频简介
  4. 【转】[Qt教程] Qt串口通信全新专题
  5. 淘宝/天猫API:item_videolist-按分类搜索淘宝直播接口
  6. Oracle 10g 32位 下载地址
  7. matlab 点云根据法向量投影到六个平面
  8. 《关于炒股有意思的几个“故事” 》
  9. ————《metasploit 魔鬼训练营》学习笔记序言
  10. android studio用mysql_Android Studio使用JDBC远程连接mysql的注意事项(附示例)