- 博客(277)
- 资源 (32)
- 收藏
- 关注
原创 凸优化学习:使用python实现梯度下降和牛顿法,以优化二元二次凸函数(无约束项)为例
这里,我们以优化下面函数为例:这个函数是二元的,所以,梯度的维度是2,因此,梯度可以表示为数组需要注意的是,x表示第一维度,y表示第二维度,z表示函数的值。
2023-08-01 15:56:38 2374
原创 最新研究:可审计的具有拜占庭鲁棒的联邦学习方案
首先,应用用于同态加密的 Pedersen 承诺方案 (PCS) 来保护隐私和对 FL 过程的承诺以实现可审计性。本文报告了针对恶意参与者的隐私、效率和可审计性的正式分析。在各种基准数据集上进行的大量实验表明,该方案具有很强的鲁棒性,对中毒攻击具有较高的模型精度。ML 的一个关键推动因素是大量训练数据,但由于数据孤岛和隐私问题,现有数据(例如医疗数据)并未被 ML 充分利用。本文提出了一种针对聚合器和客户端的具有拜占庭鲁棒性的可审计 FL 方案:聚合器是恶意的但可用的,客户端会实施投毒攻击。
2023-04-25 18:59:49 2514 1
原创 区块链在众包中的应用,防止搭便车和避免不真实报告
本文讲解一个区块链在众包中的应用,主要的思想是将一个公共的区块链来代替第三方服务器(或者第三方公司)来解决搭便车(free-riding)和不真实报告(false-reporting)的问题。我们把众包(crowdsourcing)和集众感知(crowdsensing)划分到相同的类别。它们大体上都表示“许多人一起完成一件任务”。如果细分的话,前者包含后者,因为集众感知一般指使用传感器来完成的任务,比如手机拍照,手机检测噪音。本文我们将两者统一对待。在众包中典型的应用有:滴滴出行: 出行者在软件上发布一个任
2022-07-07 10:35:07 4737
原创 zk-SNARKs实战:使用circom和snarkjs实现简单版的Tornado(含源码)
在上一篇文章中,本人讲解了如何使用circom来编写算术电路的代码,如何将该代码转换成算术电路,并使用snarkjs来转换成zkSNARKs的witness和statement,然后,基于这个来proof和认证该证明,最后,使用snarkjs工具生成solidity代码,部署到Ethereum区块链上,来认证该proof。上篇文章中使用到的命令总结如下:将我们的电路编译为 .json 文件 :$ circom testcirc.circom -o testcirc.json执行的电路运行设
2022-04-12 10:33:06 6748
翻译 零知识证明ZK-SNARKs的Circom 电路和 Snarks (翻译)
前言:在翻译这篇博文之前,本人在本地电脑按照其步骤一一试过了,所以,文章的内容是可行的。下面是一张图片是本人在Remix上的执行结果。什么是 ZKsnarks,它们是如何工作的?ZKSnarks 也被称为:Zero Knowledge Succinct Non-interactive Arguments of Knowledge,是快速计算的零知识证明,允许您在不提供任何信息甚至不需要证明者和验证者之间的交互的情况下演示事物。让我们看一个例子。Bob 想向 Alex 证明他知道.
2022-04-08 16:11:41 1888
原创 使用在线软件合并pdf论文文件安全吗?不妨使用简单的python代码
执行代码之前,使用下面命令安装pypdf2的python库pip install pypdf2python代码:import PyPDF2pdf1File = open('PDFFile1.pdf', 'rb')pdf2File = open('PDFFile2.pdf', 'rb')pdf1Reader = PyPDF2.PdfFileReader(pdf1File)pdf2Reader = PyPDF2.PdfFileReader(pdf2File)pdfWriter = PyPDF
2022-03-15 21:15:43 1206
原创 教程,使用YCSB测试MYSQL数据库,获取千万条测试后的数据
Yahoo! Cloud Serving Benchmark (YCSB)是一个数据库特别是nosql数据库性能测试的benchmark。在GitHub中有3.9千个star和1.9千个forks。本文讲解如何使用YCSB测试MYSQL数据库的性能。本人最终的结果是获取测试之后保存在MYSQL中的数据,需要10000000条记录。这个过程包含性能测试的步骤。系统:Windows 10; MYSQL5.7安装MYSQL数据库,(测试能够登录进去)。创建库和table。根据这个链接 https://g
2021-12-14 16:18:15 3287
原创 通俗地解释下密码学中的归约证明
本文首发在本人知乎:https://www.zhihu.com/question/49441102/answer/1737942968这里讲使用reduction proof的原因,它的一般形式,以及结合一个简单的例子说明如何构造和完成一个reduction proof。阅读本文需要读者事先了解“为什么使用game的形式来定义一个密码协议的安全性”,大概了解“怎么构造game,game的一般形式是什么”。1 从问题出发假设现在我们提出了一个密码学方案或者协议 Π\PiΠ ,我们需要证明它是安全.
2021-08-15 14:26:38 1875 2
原创 区块链游戏项目(战舰游戏)基于layer2区块链技术,使用以太坊的solidity语言, 含全栈完整源码
这里介绍一个基于区块链以太坊开发的战舰游戏项目。做这个项目的初衷是对layer2区块链技术的proof-of-concept。因此,本项目是一个可以在每一个人的电脑上面执行的demo。为了让大家也能执行该程序,本人在文末放置了完整源码,同时也说明了项目配置细节和技术。先看该游戏执行时的一个动图:使用的编程技术有:HTML; Javascript; CCS; (网页前端)Web3 (提供了调用智能合约的js接口)ganache-cli (在本地模拟以太坊节点)remix (以太坊智能合约的ID
2021-05-06 20:05:29 5626 8
原创 区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码
本文使用区块链平台以太坊+智能合约实现一个区块链记账的功能,具体为:借款人和贷款人以及数额被记录在区块链中。使用区块链地址来表示借款人或者贷款人。若一个借款人多次向一个贷款人借钱,更新所有的数额之和并记录在区块链中。智能合约保存所有用户的借贷信息,包括他们的区块链地址和数额只有借款人才能向智能合约中添加借款记录。若一个人既是借款人,也是贷款人,那么最终下图中的“Total Owed”只显示他总的欠款。因此,如果他借出去的钱比借来的钱多,那么这个字段为0,表示他不欠任何人钱。一个UI界面方便用户
2021-04-20 20:34:34 2925 4
原创 区块链第二层扩容方案Plasma和Rollups
本文首发在本人知乎专栏https://zhuanlan.zhihu.com/p/361016799目前的permissionless区块链系统比如以太坊和比特币存在扩展性问题,表现为每秒所能处理的最大交易量有限。以太坊15tps左右,比特币7tps左右。为了让区块链系统能够处理更多的交易,人们提出了很多方法,比如blockchain sharding技术,新的共识算法,RSA accumulator,ZKP,和off-chain。off-chain包含payment channel、state cha.
2021-03-30 19:07:04 739
原创 通俗地解释下密码学中的归约证明
本文首发于本人的:能否通俗地解释下密码学中的归约证明? - ChainingBlocks的回答 - 知乎https://www.zhihu.com/question/49441102/answer/17379429681 从问题出发假设现在我们提出了一个密码学方案或者协议 [公式] ,我们需要证明它是安全的。怎么证明?我们的协议一般是建立在已经被证明安全的协议/方案上面,或者建立在某些困难问题(记为Y)上面,比如RSA公钥加密算法就是建立在因数分解困难问题上。为了简化证明,站在巨人的肩膀上,我们.
2021-03-08 18:11:07 1753
原创 C++ Openssl AES GCM 128bits代码示例,可wins10的visual studio 2017 中直接运行
C++ Openssl AES GCM 128bits代码示例,可wins直接运行使用vcpkg安装64bits的openssl,本人当前的openssl为openssl-1.1.1d版本,wins10系统,使用visual studio2017编辑器注意事项:如果使用Openssl 1.0的版本,需要使用EVP_CIPHER_CTX ctx;来定义ctx对象。具体看下面链接:https://github.com/openssl/openssl/issues/962执行结果:代码://
2021-02-02 20:50:20 3169 2
原创 一个切割PDF文件的简单的方法 -只需要chrome浏览器
只需要一个chrome浏览器。使用chrome浏览器打开一个pdf,点击右上角的打印图标,如下图接着进入下图所示的页面,将Destination改为Save as PDF,同时自定义要分割的页,最后点击下面的保存按钮即可实现PDF的分割。End with Thx...
2021-01-13 19:55:40 1886
原创 不需编程/无需写代码的中文英文文本分析教程,免费傻瓜式,多图预警
这里讲解如何使用KH Coder。整个过程不需要编程知识。有两种导入数据的方式,第一种是将所有的文字放到一个txt文件中;第二种是将文字放到多个txt文件中,这些文件放到一个文件夹下。因为第二种更加常见,所以这里以后者作为例子来说明。软件下载路径请看本人这一篇哦:https://download.csdn.net/download/liangyihuai/13994713本软件默认是英文界面的,按照下图方式设置中文,重启该软件即可。本人将多个中文新闻数据保存在多个txt文件中,所有的文件都在一个文
2020-12-31 20:56:33 13593 22
原创 比较零知识证明算法zkSNARK,zkSTARKs,zkBoo,Sonic,BulletProofs
本文分为两部分,第一部分说明零知识能干什么,为什么它这么强大,在区块链中这么火;第二部分比较零知识证明的算法zkSNARK, zkSTARKs, zkBoo, Sonic和BulletProofs的特性。本文首发在本人知乎专栏中,更多区块链论文阅读,请关注本人知乎哦第一部分使用零知识算法能干什么?设定一个场景,现有一个公共的函数f和一个函数的输出值y,Alice对Bob说她知道x值,但是Bob不信。x可能是Alice花费了很多资源才得来的,为了向Bob证明她知道x同时又不泄露x给Bo
2020-11-20 16:10:21 4859 3
原创 Coda, 去中心化的简洁(succint)的可拓展的加密货币
这里讲Meckler, Izaak, and Evan Shapiro. "Coda: Decentralized cryptocurrency at scale."O (1) Labs whitepaper. May10 (2018): 4.本文先讲Coda的Intuition,后讲密码学技术。本文首发在本人知乎专栏中,更多区块链论文阅读,请关注本人知乎哦问题描述在现在的区块链系统中,要认证当前所挖出来的block是否是正确的,需要从区块链的第一个block开始一一认证;要认证一个转账交易是否
2020-11-20 16:02:50 1073
原创 Apache Spark 介绍的演讲ppt (slice),全英文
这里是本人制作的Apache Spark 介绍的演讲ppt,全英文。这里粘贴部分截图,具体可到相应的链接下载ppt文件,ppt文件中有动画:下载地址:https://download.csdn.net/download/liangyihuai/13043876谢谢...
2020-10-25 13:36:05 1124
原创 使用Crypto++的AES GCM对称加密
这里记录使用Crypto++的AES GCM对称加密的代码片段,可直接执行运行环境:Windows, Visual Studio 2017需安装Crypto++库,可使用cvpkg工具直接集成该库到visual Studio 中:vcpkg install cryptopp:x64-windows代码:#pragma warning(disable : 4996)#include <stdio.h>#include <iostream>#include <
2020-09-29 22:02:20 2080
原创 使用Crypto++ ecdsa 进行签名和认证
这里记录使用Crypto++ ecdsa 进行签名和认证的代码片段,可直接运行。运行环境:Windows, Visual Studio 2017需安装Crypto++库,可使用cvpkg工具直接集成该库到visual Studio 中:vcpkg install cryptopp:x64-windows代码:#include <iostream>#include <cryptopp/eccrypto.h>#include <cryptopp/osrng.h&
2020-09-29 21:57:22 1355
原创 C++多线程实现生产者消费者模式
这里记录C++多线程实现生成者消费者模式。代码执行环境:wins Visual Studio 2017执行逻辑:生产者和消费者公用一个队列作为临界资源,当队列满时生产者暂停生成;当队列为空时,消费者暂停消费。使用锁来保证队列中数据的一致性。执行结果截图:#include<iostream>#include<vector>#include<thread>#include<queue>#include<mutex>#include&
2020-09-23 14:39:05 2455 1
原创 使用ZMQ实现服务端和客户端的消息传递和消息队列
这里使用ZMQ_PAIR的连接模式,不是ZMQ_REP和ZMQ_REQ。如果使用ZMQ_REP和ZMQ_REQ模式,一方接收到消息之后需要回复,才能再接收消息。这里我们使用ZMQ_PAIR的模式,服务器端可以不断接收client发来的消息,放到一个消息队列中,使用另一个线程处理消息队列中的数据。这样做的好处是,如果发送者的发送速度过快,我们就可以把消息缓存到这个队列中。同时,我们其它组件也可以将消息直接放到这个队列中,以让服务器来处理。下面代码的功能:client给server发送多个消息,server将
2020-09-23 11:06:00 3614 2
原创 区块链论文:OmniLedger,一种区块链分片技术
阅读更多区块链论文请关注本专栏。这是2018年的论文,发现已经有介绍这篇论文的中文博客,本文跟它们不同地方在于,希望站在高层视角,以问题为导向来分析这篇论文。这篇论文的作者和Byzcoin来自同一个人,而且前者是后者的拓展,因此,为了更好地理解本文,建议先看Byzcoin,可参考下面链接文章:Tech之直觉:区块链论文:Byzcoin,通过集体签名让比特币具有强一致性且强化安全https://zhuanlan.zhihu.com/p/166154594本文主要内容来自论文:Kokoris-K
2020-08-10 15:27:10 3842 1
原创 一个c/c++分布式框架ZMQ或者ZeroMQ, 介绍和win下安装使用方法
ZMQ(ØMQ、ZeroMQ, 0MQ)看起来像是一套嵌入式的网络链接库,但工作起来更像是一个并发式的框架。它提供的套接字可以在多种协议中传输消息,如线程间、进程间、TCP、广播等。你可以使用套接字构建多对多的连接模式,如扇出、发布-订阅、任务分发、请求-应答等。ZMQ的快速足以胜任集群应用产品。它的异步I/O机制让你能够构建多核应用程序,完成异步消息处理任务。ZMQ有着多语言支持,并能在几乎所有的操作系统上运行。ZMQ是iMatix公司的产品,以LGPL开源协议发布。本人在这次的系统中选择了这个框架,理
2020-08-10 15:08:33 4394 1
原创 区块链论文:去中心化证人共同签名,让认证者诚信或被发现
本文首发于 https://zhuanlan.zhihu.com/blockchain-top-paper在阅读本文前,建议下阅读下面文章:https://zhuanlan.zhihu.com/p/165969607本文主要内容来自网络与信息安全顶会IEEE Symposium on Security and Privacy 的论文 Syta, Ewa, et al. “Keeping authorities” honest or bust" with decentralized witness
2020-08-02 22:49:15 658 1
原创 Schnorr signature & Schnorr multi-signature
本文首发于 https://zhuanlan.zhihu.com/blockchain-top-paper阅读本文前,建议先阅读下面这篇文章。https://zhuanlan.zhihu.com/p/82128984本文讲解一种数字签名方法。其作用跟现实中的签名是一样的:签名是签名者身份的证明。其中签名又包含单人签名和多人签名的过程。了解数字签名的原理和过程,可参考:区块链中大量使用了签名。问题在于,在多签名的场景中,如果将每一个签名都保存到区块链中,是很占存储的。有没有一种多签名的方法,不用将所
2020-08-02 22:39:43 788
转载 私钥分割 — Shamir Secret Sharing
在做区块链应用的时候,最常碰到的一个问题就是,怎么保管私钥,怎么让使用者方便,但又同时是安全的。第一个想法就是备份密钥(不论是passphrase/keystore/私钥),但是如果把使用者密钥(加密)备份到自己的server,只要server的安全上有个不小心,使用者的密钥就可能就被盗取了,就算是加密过的,也难保不会被破解。那如果切成好几部分,有好几份备份呢?那怎么切,才能确保安全呢?这就是本篇的重点啦!最直觉的想法就是直接切成N等份,例如32bytes的私钥分成四份,然后任三份可以组成完整的私钥,这样
2020-07-31 21:03:55 2896
原创 C++ float转char,float数组转char数组
byte就是字节的意思。char占用1个字节的存储空间;float占4字节的存储空间。即char和float是1:4的大小关系。#include <iostream>using namespace std;void floatToBytesLittle(float value, unsigned char*cSendBuff, int pos){ unsigned short i = 0; float floatVariable = value; unsigned char
2020-07-10 12:06:41 8936
原创 无线传感器网络协议与体系结构 思维导图 (book) Protocols and Architectures for Wireless Sensor Networks, Holger Karl
2020-06-14 19:16:15 1073
原创 连接以太网测试网Ropsten,本地账号和remix余额显示为0不同步的问题,Remix连接
参考前面这篇文章有助于理解本文。https://blog.csdn.net/liangyihuai/article/details/106387808安装Geth启动geth,同步Ropsten测试网geth --ropsten --rpc --rpccorsdomain “https://remix.ethereum.org,http://remix.ethereum.org, localhost:8545” --datadir E:\installed\Geth\data\ropsten
2020-05-30 16:11:21 2337
原创 以太坊Geth的dev模式的使用过程
安装geth和postman打开一个cmd,开启geth的dev模式:指定数据的存放地点,开启rpc,让其他进程可以访问geth --datadir E:/installed/Geth/data/dev/ --rpc --dev --rpccorsdomain “https://remix.ethereum.org,http://remix.ethereum.org, localhost”上面这个账户里面默认有很多钱,账户对应的数据在keystore文件夹中。打开另一个cmd,开启另一个.
2020-05-27 18:41:02 2368 1
原创 Intel SGX Remote Attestation实例代码安装和执行,笔记
Windows10, x64,安装了visual studio,已经安装好了Intel SGX JDK。源码下载:https://github.com/intel/sgx-ra-sample源码说明文件:https://software.intel.com/content/www/us/en/develop/articles/code-sample-intel-software-guard-extensions-remote-attestation-end-to-end-example.htmlAPI
2020-05-16 19:12:12 2924 3
原创 斯坦福公开课 密码学 cryptography 1 思维导图
本文是根据Stanford Univ. 公开课密码学1的整理而成的思维导图,该课程由大名鼎鼎的Dan Boneh教授的。本人特别推荐这门公开课。虽然他讲话很快,但是语言表述清晰,而且很大部分已经有中文字幕,因此在语言方面应该没有障碍。他特别擅长使用简单的易懂的且准确的语言描述一个问题。课程中使用了大量的图标和简单的概括性的公式。如果您上过由国内老师的密码学公开课,那么你会发现这门公开课的质量是超...
2020-04-19 15:29:49 1447
原创 零知识证明实践教程,第三部分
本文是零知识证明简单实践教程的第三部分,第一部分见:零知识证明第一部分,第二部分见:零知识证明第二部分。下面这个图片是我们在第二部分所使用的merkle树来构造prover的承诺。同时我们也提出这样的方式存在verifier暴力破解获取叶子节点明文信息的风险,特别是在明文信息所在的数据域(or集合)有限且很小的情况下。我们希望,verifier只能知道prover向他揭露的叶子节点的信息,其...
2020-04-10 14:44:49 1088
原创 零知识证明实践教程,第二部分
本文是零知识证明简单实践教程的第二部分,第一部分见:零知识证明第一部分现在一个问题是,prover(证明者)可能撒谎,比如原本它应该向verifier(验证者)揭露p[1]的值,但prover出于某种原因或者纯粹恶作剧,把这个值替换成其他的数值。因此,我们要解决的问题是,如何做到如果prover撒谎,verifier能够知道呢?于是,“承诺commitment”被提出来了。承诺,单单从字面来理...
2020-04-10 13:22:28 1199
原创 零知识证明实践教程,第一部分
本教程从零开始讲解零知识证明,总共分为三个部分,这里是第一部分。本教程结合具体的例子和python代码实现,让大家更加具体理解它。这部分教程不会涉及很“高深”的计算机技术。1 从一个故事开始A向B证明一个命题,比如A有两个不同颜色的足球,经过他们俩之间的一系列信息交流之后,B能够肯定A的命题正确的概率是99.9999999%。B无法在这一系列交流中得到任何新的信息。上面的故事便是一...
2020-04-09 23:27:38 1978
转载 什么是P问题、NP问题和NPC问题
这或许是众多OIer最大的误区之一。你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是N...
2020-04-09 20:13:28 345
原创 区块链论文研读12:谨慎日志合约 Discreet Log Contracts,详细 清晰 通俗易懂
今天讲的论文来自MIT的Digital Currency Initiative, 名字叫《Discreet Log Contracts》https://adiabat.github.io/dlc.pdf,作者是比特币闪电网络的作者Dryja。它跟闪电网络有一些联系。本文不是论文的直接翻译。本人希望以通俗易懂的表述方式跟读者分享区块链技术。1 论文背景和要解决的问题现在有一个应用场景,al...
2020-04-05 14:04:44 1378
原创 对线性代数的思考和理解
前言刚刚看完了“可汗学院公开课-线性代数的本质”,对线性代数的理解上了不止一个台阶。虽然大学的时候上过这门必修课,以及本科毕业之后特意读了黄色书皮的《线性代数及其应用》这本比较有名的外国人编著的书籍,但是,知道看这门课的视频之前,还是没搞清楚线性代数的几个基本概念,比如什么是线性相关,搞不懂为什么要求解特征值和特征向量。心中不免有一点惋惜,为什么大学的那位教我这门课的老师不使用这种通俗直观的方式...
2020-02-21 15:57:11 3156
原创 通俗理解SGX attestation
英特尔CPU从第六代酷睿开始增加了SGX特性,含有Intel Xeon版服务器级的CPU也包含了,比如Intel Xeon E3 v6。它是Software Gaurd Extensions的缩写,目的是从硬件实现信息安全。简单来讲就是英特尔通过硬件来实现一个安全的沙盒。这里一个电脑可以分为安全的沙盒和不安全的沙盒外部环境。沙盒外面的环境被认为是有可能被黑客或者恶意者完全操控的,是不安全的。沙盒外...
2020-02-18 13:32:59 4047 1
本人的关于联邦学习的论文
2023-04-25
源码:zk-SNARKs实战:使用circom和snarkjs实现简单版的Tornado
2022-04-12
Project-battleship.zip
2021-05-06
my presentation on RDD & Spark.pptx
2020-10-25
TrInc, Small Trusted Hardware for Large Distributed Systems..pdf
2020-08-28
Confidentiality Support over Financial Grade consortium blockchain.pdf
2020-08-21
cryptography 1.zip
2020-04-18
images.zip
2019-12-13
ETCFlyClient.pptx
2019-11-18
Xu et al. - 2019 - Making Big Data Open in Edges A Resource-Efficien.pdf
2019-10-05
如何系统地写一篇好论文
2019-01-03
Mastering Apache Flink, Learning Apache Flink
2018-12-18
KDBC2018-Proceedings 该会议的所有论文
2018-10-23
File Structures_ An Object-Oriented Approach with C++(1997)
2018-06-15
resnet 50 training dataset,手势
2018-01-23
the colour image processing handbook SJ Sangwine , REN Horne
2017-09-07
Jeff-Dean-s-Lecture-for-YC-AI
2017-08-28
protobuf2.6.1
2016-05-29
Spring框架的示例项目源码 Spring Petclinic
2015-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人