IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> [blockchain论文阅读2]Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts -> 正文阅读

[区块链][blockchain论文阅读2]Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts

年份:2016

简介:

提供了一个可编程的,在非匿名的情况下保护隐私的智能合约的通用基本框架。利用了类似zerocash的原理。

系统概述

在这里插入图片描述

hawk编译器将程序编译成区块链和用户之间的加密协议。
Hawk程序包括:
1、私有部分
执行计算来确定多方的支出分配
2、公有部分
不涉及隐私数据或者money

编译器会将Hawk程序编译成由users、manager、blockchain共同定义的加密协议:
被所有共识节点执行的blockchain程序
被users执行的程序
被manager执行的程序

安全的保证

1、on-chain privacy.
除非协议方自愿揭露信息,否则任何人无法向没有参与合约的人提供交易隐私。
虽然在Hawk协议中,users和blockchain交换数据,并依靠它来保证中断的公平,但是资金流和交易的金额对未参与合约的人是加密隐藏的,这是通过向blockchain使用零知识证明保证执行合同和资金保护的正确性。
2、contractual security.
在同一合约中,保护每个人彼此之间的隐私。
是一个多方面的概念,不仅包括机密性和真实性,还包括发生欺骗和中止行为时的经济公平。

manager

可以看到users的输入,并且被信任不会揭露users的私人数据,但是不等于可信第三方。
他可以随意违背协议或者和参与者密谋,但是不会影响合约的正确执行。
不需要信任manager来维护基础货币的安全或隐私
多个合同可以指定多个不同的manager,那么就降低了恶意manager的影响范围,恶意的也可以被用户的多方计算所代替。

具体过程

拍卖例子

文中举了个例子,拍卖过程中以得到拍品的是出价最高的人,但是以第二高的价格成交,其余出价的人退回出价的钱。
Hawk在这里有两个功能:
1.每个人都不知道别人的出价
2.适当的赏罚机制,给违反规定的参与者惩罚,其余参与者适当受到补偿。

中断和超时机制

三个时间T1<T2<T3
T1:users开始出价,提交给区块链
T2:users向manager公开自己的出价,如果没有按时open的话,会被当作0处理
T3:如果由于manager中断,那么users可以在这个时间重新提交出价

灰色部分是延迟处理,也就是在下一个计时器的开始,因为区块链在做实际运算的时候也都会推迟,
应该是避免因为延迟出现的误操作吧?A在这扮演的到底是什么角色?第三方?
在这里插入图片描述

1、初始化:用户标价
2、Mint(铸币):当受到用户的交易后,将这笔交易发给A
延迟:验证用户拥有比这个价格多的资产后,将这笔钱转移到私有硬币池中
3、pour(花费):我们要给P1和P2转账,首先判断要转的这笔钱和提交的钱是不是一致的
(1)如果P是诚实的节点,判断要转出去的钱确实在私有硬币池中,且对方用户不是空用户,判断通过就从私有硬币池中转钱。但是如果Pi是恶意节点,那么我们将这笔交易留证发给A;如果Pi诚实时,向A发送交易成功信息;
(2)延迟处理: 如果P是恶意节点,判断要转出去的钱确实在私有硬币池中,并从私有硬币池中转钱。将这笔钱记录在私有硬币池中,如果Pi不为空,那么就转给Pi

在这里插入图片描述
在这里插入图片描述
1.Freeze:判断没有超时->Pi之前没有调用Freeze->他的私有硬币库中确实有这笔钱,那么我们就发送这个操作给A
延迟:把这笔钱放到冻结库中,并从私有库中取出(为什么不是先取出来再放进去呢?如果先扣钱,那这笔钱还没被冻结,有没有可能受到攻击)
2.Compute:判断没有超时,如果manager是恶意的就将操作信息发给A,诚实的就发送成功消息给A
延迟:Pi要转的钱进行分配并和冻结库里同步,并把这个操作公开给manager
3.如果Pi没有调用compute,那么就将置0处理,否则,验证输入输出相等后,把输出的(划分成功的)加入到Pi的私有库中,并给他发送成功消息

加入密码学的Hawk

(不再附图)
主要用到mekle tree 、commitment和NIZK(非交互式零知识证明)

Freeze(t<T1)
·用户P选择了一个私有货币c,P使用私钥并计算c的一个序列号Sn(用来防止双花)
·P会将输入计算为一个commitment,用到对称密钥
·P使用零知识证明
1)c存在私有池中
2)Sn是正确的
3)输入等于输出(你提交的和你要兑换的是相等的)

Compute(T1<t<T2)
在off-chain中计算支出的划分和证明的正确性
这里所有的参与者会将自己的输入(你提交的)公开,并用加密的manager的公钥进行加密,这个密文和零知识的证明一起被提交到智能合约中,当用户出现中断的时候,作为惩罚的依据
然后,manager会计算支出分配,并且公有的输出会被私有合约应用,manager也会用零知识证明这些花费。

Finalize(T2<t<T3)
manager提交成功后,blockchain会验证这些东西,然后对冻结的钱进行交付
blockchain也会将manager的公有输入和输出传递给公有合约
公有合约会去验证这些,也会对公有的储蓄进行再分配

思考:为啥说他在非匿名的情况下也可以保护隐私嘞?
1.假名是一次性的,暴漏可以重新更换
2.没有参与智能合约的人是无法看到任何信息的
3.即使你知道了某个假名对应的user,但是在private部分,你不知道他做了哪些交易,对应不上
4.引入了赏罚机制

总结:
后面还引入了安全多方,但是读不下去了…
知乎上有一篇对他的解释https://zhuanlan.zhihu.com/p/31125630写的很清楚

虽然基本上是直译,但是英文文献对没有基础的人读起来好困难,希望坚持读可以掌握方法😭

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:09:24  更:2021-08-26 12:09:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:41:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码