去信任外包虚荣地址生成
之前,我们展示了一种使用 零知识密钥声明证明 购买比特币虚荣地址的新颖且私密的方式。在实践中,它有一个缺点:买方在步骤 7
中验证了证明后,他可以中止交换协议,卖方浪费资源寻找答案却没有得到报酬。
一个虚荣地址
为了克服这个缺点,我们使用智能合约完全在链上进行交换。只有提供了私钥(例如派生/组合公钥/地址)满足虚荣地址模式,它才会支付。完整代码如下所示。
import "ec.scrypt";// outsource a vanity address generation
contract VanityAddr {// buyer's public keyPubKey pubKey;// vanity address pattern such as vanity prefix "nChain"bytes pattern;// x is the secret seller finds// all other parameters are auxiliaries of itpublic function offerVanityAddr(PrivKey x, PubKey X, PubKey derivedPubKey, int lambda, SigHashPreimage txPreimage) {// verify = X = x * G?require(Tx.checkPreimageAdvanced(txPreimage, x, X, Tx.invK, Tx.r, Tx.rBigEndian, SigHashType(SigHash.ALL | SigHash.FORKID)));// verify P' = P + Xrequire(EC.isPubKeySum(this.pubKey, X, lambda, derivedPubKey));// meet requirementrequire(matchPattern(derivedPubKey, this.pattern));}// check if public key's address matches the given patternstatic function matchPattern(PubKey pubKey, bytes pattern) : bool {// convert public key to addressbytes addr = ripemd160(sha256(pubKey));// prefix matchint l = len(pattern);return addr[:l] == pattern;}
}
VanityAddr 源代码
为了有效地计算点加法(第 16
行)和乘法(第 13
行),我们利用了与以前相同的技术。
在我们获得组合的公钥后,我们在第 19
行验证其对应的地址是否符合预定义的虚荣模式。
延展
我们只展示了如何验证派生地址是否具有特定前缀。但是可以直接扩展它以使地址或公钥满足任何任意要求。
去信任外包虚荣地址生成相关推荐
- 《操作系统》OS学习(四):计算机体系结构、内存层次和地址生成
计算机除了计算能力之外还有存储能力,存储能力即计算机拥有一系列的存储介质,我们可以在存储介质上存储我们的代码和数据.计算机体系结构中约定了哪些地方可以用来存储数据:CPU内的寄存器.内存和外存.不同的 ...
- 【操作系统/OS笔记04】内存分层体系、地址生成、连续内存分配概论
本次笔记内容: 3.1 计算机体系结构及内存分层体系 3.2 地址空间和地址生成 3.3 连续内存分配:内存碎片与分区的动态分配 3.4 连续内存分配:压缩式与交换式碎片整理 文章目录 物理内存 计算 ...
- matlab计算fft旋转因子表,一种用于FFT中旋转因子乘运算的操作数地址生成方法与流程...
本发明属于计算机技术领域,涉及一种用于FFT中旋转因子乘运算的操作数地址生成方法. 背景技术: 离散傅里叶变换(DFT)是数理方程.线性系统分析.信号处理与仿真等领域中的一种常见方法,特别是快速傅里叶 ...
- 扩增子分析解读4去嵌合体,非细菌序列,生成代表性序列和OTU表
写在前面 之前发布的<扩增子图表解读>系列,相信关注过我的朋友大部分都看过了(链接直达7月文章目录).这些内容的最初是写本实验室的学生们学习的材料,加速大家对同行文章的解读能力. < ...
- Vue中使用uuidv1根据时间戳和MAC地址生成唯一标识
场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_若依前后端分离搭建 在上面搭建起来Vue项目的基础上,怎样 ...
- 短链接java代码_java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java
仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java String sLongUrl = "http://tech.sina.com.cn/i/2011-03-23/ ...
- java 新浪短链接_java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java | 学步园...
仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java String sLongUrl = "http://www.zuidaima.com/share/1550463 ...
- 外包公司值不值得去?外包公司的面试特点
在我们IT行业,外包公司主要分为"人力外包"和"项目外包".人力外包指的是On Site形式,就是员工的工作地点在客户公司的内容."项目外包" ...
- java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java
原文:仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java 源代码下载地址:http://www.zuidaima.com/share/1550463378934784.htm ...
最新文章
- 模糊选择器 js_5个很棒的 React.js 库,值得你亲手试试!
- 开普勒行星运动第二定律在电子与原子核运动中的应用
- 服务网格:Istio和AWS App Mesh
- 《Python Cookbook 3rd》笔记(4.13):创建数据处理管道
- inno setup 打包mysql_使用Inno Setup 打包jdk、mysql、tomcat、webapp等为一个exe安装包
- 05-sqlyog的安装与基本使用
- 软件测试 黑盒白盒测试方法总结
- iOS之socket编程
- python爬虫——批量爬取百度图片
- 运营商大数据有哪些好处
- yarn-cluster 和yarn-client区别
- VS2015卸载官方教程
- 测试工具|(本来不想分享的)安卓系统Ping IP工具
- NFC怎么复制房卡_为了省门禁卡的钱,买了NFC读卡器,到底值不值
- JFianl项目中Controller层方法不进行权限校验-可以添加注解@UnCheck
- 个人对ReadyBoost加速你的Win7的看法
- 模拟wechat红包 版本2.0
- html5网页制作电脑版,页未央HTML5制作神器PC版
- aftershokz蓝牙搜不到_硬核!小程序时怎么控制蓝牙设备的?
- Icon Font的转换