ZLiTE Lightweight Clients for Shielded Zcash Transactions using Trusted Execution
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
问题:
- 普通区块链加密货币在交易中使用假名,容易从交易所溯源,泄露交易者隐私(zcash)
- zcash是用零知识证明保护shield transaction的收发方和金额的私密货币,用户必须用viewing key扫描区块链,尝试解锁每一笔交易来测试交易是否属于自己,移动设备计算与网络资源不支持。
- 客户端消费需构建实时更新的witness,移动设备计算与网络资源不支持。
ZLiTE:“轻客户端”的系统
- 服务器端:TEE(SGX)保证代码执行完整&数据机密,rORAM内存机制防止侧通道泄露敏感信息
- 客户端:发送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相关推荐
- 零知识证明(zero-knowledge proofs)
这世界变得比我们想的还快,最近学到一项技术叫「零知识证明」,简单的说,就是你向我陈述一件事情,虽然我听不懂你在说什么,但我可以判断这事情的真假! 举个例子,假设A是色盲,A想知道B是不是色盲,但问题是 ...
- 《Developing and maintaining clients’ trust through institutional mechanisms in online...》中英文对比文献翻译
<Developing and maintaining clients' trust through institutional mechanisms in online service mar ...
- zcash/zcash
What is Zcash? Zcash is an implementation of the "Zerocash" protocol. Based on Bitcoin's c ...
- access汇总_区块链或密码学相关论文汇总,持续更新中
这里汇总区块链相关的论文,主要是顶会顶刊的. 温馨提示:没必要精读每一篇论文,因为时间和精力是有限的 下面的部分论文列表下面有知乎链接 ,它们是本人对该论文的解读. 同步更新本人Github,可通过& ...
- ROS暑期学校与ROSCon 2018
简洁版通知: 2018机器人操作系统(ROS)暑期学校 费用:免费 时间:2018年7月21日至28日 地点:广东省深圳市丽水路2279号/清华大学深圳研究生院 暑期学校官网: http://www. ...
- ROSCon2018国际会议讲座录像和讲稿PPT
连续第四年ROSCon门票完全售罄,参加人数超过500人.感谢47个赞助商6,数量再创新高, 为会议的发展提供资金支持! 此外,还发布了几乎所有讲座的幻灯片.因此,如果想获得链接或其他信息,现在也可以 ...
- Intel SGX相关文章
Intel收集的SGX论文 https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions/ ...
- HTTP缓存的深入介绍:Cache-Control和Vary
简介-本文范围 (Introduction - scope of the article) This series of articles deals with caching in the cont ...
- 【论文阅读】 The Honey Badger of BFT Protocols
文章目录 摘要 1. 介绍 1.1我们的贡献 1.2建议部署场景 2. 背景和相关工作 2.1健壮的BFT协议 2.2 随机的协议. 3.异步和弱同步网络模型之间的差距 3.1多种计时假设形式 3.2 ...
最新文章
- 匿名发差评被判赔3272元,北京研究生遭遇冲上热搜,涉事机构回应:暂不澄清...
- 释放内存触发断点及数组、指针的NULL初始化
- jq第一天(1.83里面的属性)属性-》属性
- windows server 2008 r2虚拟机故障群集迁移
- 音视频技术开发周刊 70期
- linux华为路由器模拟器,华为路由器模拟器与实验内容.doc
- 剖析Caffe源码之Net类变量
- java c s聊天程序_Java建立C/S 模式聊天室服务器和客户端
- 技术改变生活,统一通信走向深度融合
- 即时聊天工具国外盛行,国内发展缓慢
- 微信公众号开发:账号申请与接入
- 两台计算机如何组成局域网,两台电脑如何建立局域网
- easyUI双击事件,完整总结
- 2019级软件工程应用与实践-人工智能快递柜(代码分析11)
- PostgreSQL和MySQL的性能对比实验
- [Python图像识别] 四十七.Keras深度学习构建CNN识别阿拉伯手写文字图像
- android 开机动画实现,Android App启动画面实现
- 大公司进不去,待在小公司,有前途吗?
- 笔记本换硬盘装系统完整教程(简单)
- Beta阶段基于NABCD评论作品
热门文章
- HTC ONE X刷ruu的详细刷机教程
- leetcode276周赛记录(待补充)
- 【音视频开发】基础知识:视频简介
- 【转】[Qt教程] Qt串口通信全新专题
- 淘宝/天猫API:item_videolist-按分类搜索淘宝直播接口
- Oracle 10g 32位 下载地址
- matlab 点云根据法向量投影到六个平面
- 《关于炒股有意思的几个“故事” 》
- ————《metasploit 魔鬼训练营》学习笔记序言
- android studio用mysql_Android Studio使用JDBC远程连接mysql的注意事项(附示例)