区块链
文章平均质量分 91
链巨人
这个作者很懒,什么都没留下…
展开
-
区块链在众包中的应用,防止搭便车和避免不真实报告
本文讲解一个区块链在众包中的应用,主要的思想是将一个公共的区块链来代替第三方服务器(或者第三方公司)来解决搭便车(free-riding)和不真实报告(false-reporting)的问题。我们把众包(crowdsourcing)和集众感知(crowdsensing)划分到相同的类别。它们大体上都表示“许多人一起完成一件任务”。如果细分的话,前者包含后者,因为集众感知一般指使用传感器来完成的任务,比如手机拍照,手机检测噪音。本文我们将两者统一对待。在众包中典型的应用有:滴滴出行: 出行者在软件上发布一个任原创 2022-07-07 10:35:07 · 4709 阅读 · 0 评论 -
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 · 6695 阅读 · 0 评论 -
零知识证明ZK-SNARKs的Circom 电路和 Snarks (翻译)
前言:在翻译这篇博文之前,本人在本地电脑按照其步骤一一试过了,所以,文章的内容是可行的。下面是一张图片是本人在Remix上的执行结果。什么是 ZKsnarks,它们是如何工作的?ZKSnarks 也被称为:Zero Knowledge Succinct Non-interactive Arguments of Knowledge,是快速计算的零知识证明,允许您在不提供任何信息甚至不需要证明者和验证者之间的交互的情况下演示事物。让我们看一个例子。Bob 想向 Alex 证明他知道.翻译 2022-04-08 16:11:41 · 1842 阅读 · 0 评论 -
区块链游戏项目(战舰游戏)基于layer2区块链技术,使用以太坊的solidity语言, 含全栈完整源码
这里介绍一个基于区块链以太坊开发的战舰游戏项目。做这个项目的初衷是对layer2区块链技术的proof-of-concept。因此,本项目是一个可以在每一个人的电脑上面执行的demo。为了让大家也能执行该程序,本人在文末放置了完整源码,同时也说明了项目配置细节和技术。先看该游戏执行时的一个动图:使用的编程技术有:HTML; Javascript; CCS; (网页前端)Web3 (提供了调用智能合约的js接口)ganache-cli (在本地模拟以太坊节点)remix (以太坊智能合约的ID原创 2021-05-06 20:05:29 · 5593 阅读 · 8 评论 -
区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码
本文使用区块链平台以太坊+智能合约实现一个区块链记账的功能,具体为:借款人和贷款人以及数额被记录在区块链中。使用区块链地址来表示借款人或者贷款人。若一个借款人多次向一个贷款人借钱,更新所有的数额之和并记录在区块链中。智能合约保存所有用户的借贷信息,包括他们的区块链地址和数额只有借款人才能向智能合约中添加借款记录。若一个人既是借款人,也是贷款人,那么最终下图中的“Total Owed”只显示他总的欠款。因此,如果他借出去的钱比借来的钱多,那么这个字段为0,表示他不欠任何人钱。一个UI界面方便用户原创 2021-04-20 20:34:34 · 2904 阅读 · 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 · 720 阅读 · 0 评论 -
比较零知识证明算法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 · 4832 阅读 · 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 · 1065 阅读 · 0 评论 -
区块链论文:OmniLedger,一种区块链分片技术
阅读更多区块链论文请关注本专栏。这是2018年的论文,发现已经有介绍这篇论文的中文博客,本文跟它们不同地方在于,希望站在高层视角,以问题为导向来分析这篇论文。这篇论文的作者和Byzcoin来自同一个人,而且前者是后者的拓展,因此,为了更好地理解本文,建议先看Byzcoin,可参考下面链接文章:Tech之直觉:区块链论文:Byzcoin,通过集体签名让比特币具有强一致性且强化安全https://zhuanlan.zhihu.com/p/166154594本文主要内容来自论文:Kokoris-K原创 2020-08-10 15:27:10 · 3805 阅读 · 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 · 650 阅读 · 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 · 778 阅读 · 0 评论 -
私钥分割 — Shamir Secret Sharing
在做区块链应用的时候,最常碰到的一个问题就是,怎么保管私钥,怎么让使用者方便,但又同时是安全的。第一个想法就是备份密钥(不论是passphrase/keystore/私钥),但是如果把使用者密钥(加密)备份到自己的server,只要server的安全上有个不小心,使用者的密钥就可能就被盗取了,就算是加密过的,也难保不会被破解。那如果切成好几部分,有好几份备份呢?那怎么切,才能确保安全呢?这就是本篇的重点啦!最直觉的想法就是直接切成N等份,例如32bytes的私钥分成四份,然后任三份可以组成完整的私钥,这样转载 2020-07-31 21:03:55 · 2835 阅读 · 0 评论 -
连接以太网测试网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 · 2326 阅读 · 0 评论 -
以太坊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 · 2357 阅读 · 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 · 2898 阅读 · 3 评论 -
斯坦福公开课 密码学 cryptography 1 思维导图
本文是根据Stanford Univ. 公开课密码学1的整理而成的思维导图,该课程由大名鼎鼎的Dan Boneh教授的。本人特别推荐这门公开课。虽然他讲话很快,但是语言表述清晰,而且很大部分已经有中文字幕,因此在语言方面应该没有障碍。他特别擅长使用简单的易懂的且准确的语言描述一个问题。课程中使用了大量的图标和简单的概括性的公式。如果您上过由国内老师的密码学公开课,那么你会发现这门公开课的质量是超...原创 2020-04-19 15:29:49 · 1433 阅读 · 0 评论 -
零知识证明实践教程,第三部分
本文是零知识证明简单实践教程的第三部分,第一部分见:零知识证明第一部分,第二部分见:零知识证明第二部分。下面这个图片是我们在第二部分所使用的merkle树来构造prover的承诺。同时我们也提出这样的方式存在verifier暴力破解获取叶子节点明文信息的风险,特别是在明文信息所在的数据域(or集合)有限且很小的情况下。我们希望,verifier只能知道prover向他揭露的叶子节点的信息,其...原创 2020-04-10 14:44:49 · 1055 阅读 · 0 评论 -
零知识证明实践教程,第二部分
本文是零知识证明简单实践教程的第二部分,第一部分见:零知识证明第一部分现在一个问题是,prover(证明者)可能撒谎,比如原本它应该向verifier(验证者)揭露p[1]的值,但prover出于某种原因或者纯粹恶作剧,把这个值替换成其他的数值。因此,我们要解决的问题是,如何做到如果prover撒谎,verifier能够知道呢?于是,“承诺commitment”被提出来了。承诺,单单从字面来理...原创 2020-04-10 13:22:28 · 1189 阅读 · 0 评论 -
零知识证明实践教程,第一部分
本教程从零开始讲解零知识证明,总共分为三个部分,这里是第一部分。本教程结合具体的例子和python代码实现,让大家更加具体理解它。这部分教程不会涉及很“高深”的计算机技术。1 从一个故事开始A向B证明一个命题,比如A有两个不同颜色的足球,经过他们俩之间的一系列信息交流之后,B能够肯定A的命题正确的概率是99.9999999%。B无法在这一系列交流中得到任何新的信息。上面的故事便是一...原创 2020-04-09 23:27:38 · 1941 阅读 · 0 评论 -
区块链论文研读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 · 1369 阅读 · 0 评论 -
通俗理解SGX attestation
英特尔CPU从第六代酷睿开始增加了SGX特性,含有Intel Xeon版服务器级的CPU也包含了,比如Intel Xeon E3 v6。它是Software Gaurd Extensions的缩写,目的是从硬件实现信息安全。简单来讲就是英特尔通过硬件来实现一个安全的沙盒。这里一个电脑可以分为安全的沙盒和不安全的沙盒外部环境。沙盒外面的环境被认为是有可能被黑客或者恶意者完全操控的,是不安全的。沙盒外...原创 2020-02-18 13:32:59 · 4015 阅读 · 1 评论 -
跟随一笔交易来看以太坊c++客户端源码执行流程 / 源码分析
本文初步分析了一个交易在以太坊内部的处理流程,涉及到交易的接收,检查,执行,同步,区块的构建以及挖矿,结合前面一篇基于黄皮书的理解总结,对以太坊有了更多的认识。因为主要的工作在c++层面,所以这里以c++版本的以太坊源码作为学习资源。如有理解错误的地方,希望看到的人不吝赐教,共同学习,谢谢。1. 发送交易 eth_sendTransaction// 一个交易框架的构成,实际就是...转载 2020-01-08 11:07:14 · 1136 阅读 · 1 评论 -
发现优质免费的区块链在线教程资源,包含PPT和视频资源,全部免费
不确定是否需要-梯-*子*-,如果下面链接打不开,请自行准备吧。1. 推荐coursera上面,有好几门公开免费的。https://coursera.org/2. Berkeley学校的免费资源,课程视频资源在EDX网站上面,EDX是什么?edx介绍You can follow our social media from the links below:Websi...原创 2020-01-04 21:03:50 · 1018 阅读 · 0 评论 -
硬件Pythia:将现实世界桥接到区块链
区块链应用程序生活在自己的数字领域中,该领域与“物质世界”(也称为Real World™)完全正交。无论是分布式应用程序还是智能合约,它们的影响范围都限于它们可以控制的空间。我们现实中的任何用例投影到现实中最终都会面临以下难题:区块链应用程序如何与物理世界高效安全地交互?Oracle是签署有关世界状况声明的受信任实体。我们需要网关与现实世界(物理世界)进行输入/输出,这也称为“Oracle...原创 2020-01-04 19:27:22 · 387 阅读 · 0 评论 -
以太坊C++客户端Aleth源码分析,转账交易和智能合约的入口代码
本文主要记录以太坊C++客户端Aleth的源码分析和相关实验过程和结果。本文将讲解两部分的内容,一是转账交易和智能合约的入口代码在哪里?二是通过实验验证转账交易和智能合约交易这两种不同交易所对应的不同的输入数据。读者不安装实验环境不影响阅读本文章。实验环境准备:如果读者想要完成本文所示的验证实验,可以参考本人前面三篇文章,分别涉及Aleth客户端的按照,here;私有区块链的搭建和智能合约...原创 2019-12-31 18:17:05 · 1694 阅读 · 0 评论 -
以太坊开发者资源工具集合
根据英文原版整理,内容有增删1、开发语言、框架与工具语言Solidity - 官方推荐以太坊智能合约开发语言,也是目前最为主流的智能合约语言。 Bamboo - 是一种将智能合约描述为有限状态机的语言,把智能合约看成一个状态和交易的函数,同时生成一个新的状态。 Vyper - 一种类 python 的面向合约编程语言,专注于以太坊虚拟机,着重于安全、简洁、和稳定性。框架Tru...转载 2019-12-31 10:39:31 · 519 阅读 · 2 评论 -
使用Ethereum C++ Aleth客户端创建具有两个同步节点的以太坊Ethereum私有网络
Creating A Private Network With Two Syncing Nodes本文是前面两篇文章的延续,链接分别为:Windows10安装Aleth和使用Ethereum C++客户端Aleth建一个私有网络,并使用Remix部署一个智能合约。这篇文章将使用Ethereum C++ Aleth客户端创建具有两个同步节点的以太坊Ethereum私有网络。最终的结果为:一...原创 2019-12-28 15:26:49 · 1937 阅读 · 0 评论 -
我自己可以挖矿了!使用Ethereum C++客户端Aleth建一个私有网络,并使用Remix部署一个智能合约
本文是按照这个教程执行的结果记录:Creating a private network and deploying a contract with RemixEthereum Aleth在Wins上面的编译和安装请参考本人上一篇文章。https://blog.csdn.net/liangyihuai/article/details/103737223本人只在这里讲注意事项,具体的步骤其参考上面...原创 2019-12-27 21:00:06 · 1438 阅读 · 0 评论 -
Windows10编译源码安装Aleth(Ethereum C++ client, tools and libraries)
这篇文章记录本人安装Ethereum c++客户端Aleth的过程。本人的系统环境本人系统:windows10, 64bit,预先安装:visual studio 2017或者2019。本人的是2017.CMake,安装好之后,使用系统的命令行窗口可以执行cmake命令Git,安装好之后,有Git CMD 命令行窗口,注意跟系统的命令行窗口区分。本文的参考来自官网的安装指南:h...原创 2019-12-27 19:36:07 · 1129 阅读 · 0 评论 -
使用Truffle时遇到的问题和解决方法
错误信息Error: CompileError: /C/Users/media/ethereum_work/course3/contracts/Ballot.sol:1:1: ParserError: Source file requires different compiler version (current compiler is 0.5.12+commit.7709ece9.Emscri...原创 2019-12-26 15:06:03 · 6425 阅读 · 2 评论 -
详细介绍Intel SGX开发环境搭建和Hello Enclave程序运行
这里记录Windows10下搭建Intel SGX开发环境和编写第一个Hello World程序的过程。总共分为两部分,第一是环境搭建,第二是hello world程序编写。每一步都有截图,希望以通俗易懂的方式跟大家分享。1. 环境安装需要安装visual studio 2015或者以上安装Intel SGX JDK, 下载链接本人的电脑win10,VS2017。上面的安装顺序不能颠...原创 2019-12-19 20:13:03 · 4534 阅读 · 6 评论 -
MimbleWimble 系列之Pedersen 承诺
MW协议中几个主要的概念Pedersen 承诺 交易合并 范围证明 蒲公英路由**Pedersen承诺-**用来达到匿名保密交易的协议,简单来说你转给我5个token,在其他人不知道数额和地址的情况下,保证这笔交易是有效的,任何人在区块浏览器上都查不到数额和地址信息,跟BTC/ETH不一样,这听起来有点玄乎,但确实在真真切切的在实现,在MW之前之前,已经有Zcash ,门罗在做这种探索...转载 2019-12-09 21:20:45 · 1597 阅读 · 0 评论 -
MimbleWimble系列之协议介绍
MimbleWimble是什么?MimbleWimble是一个区块链格式和协议,依托于健壮的加密原语,提供非常好的可扩展性、隐私和可替代性。它解决了当前几乎所有实现的区块链(与现实需求之间)差距。Grin和Beam都是实现MimbleWimble区块链的开源软件项目,并填补了(MimbleWimble协议所缺失的)实现一个完整的区块链和加密货币必需的一些东西,其实还有其他MW的项目,例如一...转载 2019-12-09 21:19:06 · 491 阅读 · 1 评论 -
Fiat–Shamir heuristic 启发式的应用 理解 代码实现
先讲问题,再引入Fiat–Shamir heuristic。问题平时我们使用密码注册和登录一个网站的过程可能是这样的。我们使用用户名和密码注册一个网站,网站后台收到用户名和密码之后,使用一个hash算法计算密码的哈希值,然后将用户名和哈希值存入数据库。下次用户登录的时候,后台以同样的方式计算出哈希值,对比数据库中的是否一样,如果两者的用户名和哈希值都一样,登录成功。好一点的后台可能在计算哈希值...原创 2019-12-07 20:55:57 · 1251 阅读 · 0 评论 -
区块链论文8,NIPoPoWs,非交互工作量证明之证明
本文首发于https://zhuanlan.zhihu.com/p/93463586本文主要内容来自论文《Non-Interactive Proofs of Proof-of-Work》本文章不是论文的直接翻译。本人通过阅读和理解上面论文原文,结合参考其它资料,提取出论文的主体内容,用自己的语言,希望以通俗易懂的方式跟读者分享和交流区块链技术。了解更多区块链前沿技术,请关注本知乎专栏。...原创 2019-12-06 19:44:22 · 622 阅读 · 0 评论 -
Merkle山脉(Merkle Mountain Range)详解
这篇文章介绍Merkle Mountain Range,翻译过来是Merkle山脉。百度上还没有Merkle Mountain Range ,或者Merkle山脉这两个关键词,这算是第一篇给它起名的中文文章吧。这里希望以通俗易懂的语言跟读者讲解。文章将从下面三个方面讲解:Merkle 山脉跟merkle树的区别?什么是Merkle山脉?(下面使用MMR代替)有什么用?最后还有实现...原创 2019-11-18 20:47:39 · 2212 阅读 · 2 评论 -
区块链相关论文研读7:通过分片(Sharding)扩展区块链
本文首发在https://zhuanlan.zhihu.com/p/89933683这篇论文发表在顶会SIGMOD 2019上,题目为《Towards Scaling Blockchain Systems via Sharding》,作者信息为Hung Dang, Tien Tuan Anh Dinh, Dumitrel Loghin Ee-Chien Chang, Qian Lin, ...原创 2019-11-17 22:49:44 · 2587 阅读 · 0 评论 -
Grin Whitepaper
MIMBLEWIMBLETom Elvis Jedusor19 July, 2016*/Introduction/*\Bitcoin is the first widely used financial system for which all the necessarydata to validate the system status can be cryptographical...转载 2019-11-13 15:50:30 · 421 阅读 · 0 评论 -
区块链相关论文研读5:分布式隐私保护可审计的账本,zkLedger
这篇文章首发于知乎专栏:https://zhuanlan.zhihu.com/p/87900715这篇论文在2018年发表在顶会NSDI上面,题目为《zkLedger: Privacy-Preserving Auditing for Distributed Ledgers》,作者为Neha Narula,MIT Media Lab;Willy Vasquez,University ...原创 2019-10-24 10:14:04 · 1090 阅读 · 0 评论 -
区块链相关论文研读4: Monoxide异步共识组
这篇论文今年(2019)二月份发表在顶会NSDI上面,题目叫《Monoxide: Scale out Blockchainswith Asynchronous Consensus Zones》,作者还做了会议的Presentation,为JiapingWang; Hao Wang。先给大家分享关于这篇论文的资源。作者的演讲视频地址为:Monoxide: Scale out Blockcha...原创 2019-10-19 13:32:16 · 1837 阅读 · 10 评论