以太坊
文章平均质量分 92
web3.0前沿技术研究者
区块链研究员
展开
-
ETH-Pow算法分析
1. Ethash算法1.1 EthashEthash是以太坊1.0中使用的PoW(工作量证明)算法,它是Hashimoto算法结合Dagger之后产生的一个变种。它的特点是计算的效率基本与CPU无关,却和内存大小和内存带宽正相关。因此通过共享内存的方式大规模部署的矿机芯片并不能在挖矿效率上有线性或者超线性的增长。该算法的一般流程如下:首先根据块信息计算一个种子(seed, c++代码中为seedhash) 使用这个种子,计算出一个16MB的cache数据。轻客户端需要存储这份cache.转载 2021-08-03 10:39:47 · 707 阅读 · 0 评论 -
Istanbul BFT共识算法解读
Istanbul BFT共识算法详细文档Istanbul BFT作为BFT类算法的一种已经有过在以太坊上的实践。虽然Istanbul目前还存在一些潜在的问题,但其算法思想和实现还是值得学习和借鉴的。源代码:https://github.com/jpmorganchase/quorum/tree/master/consensus/istanbul术语Validator: 区块验证者。 Proposer: 出块者。 Round: 共识的轮数。一轮从出块者提出一个区块proposal开始,转载 2021-08-02 14:16:20 · 566 阅读 · 0 评论 -
UTXO模型介绍
如果你曾上过BlockExplorer观察自己的比特币收入状况,你是否曾经被搞的一头雾水呢?这正是因为比特币所使用的交易模型并非我们直觉上以账户为基础的,而是一种叫做UTXO的模型 。在我的前一篇文章:《深入了解NEX:Neon Exchange》中,也提到了比特币所使用UTXO模型与乙太坊使用的账户模型在功能上的一些差异,但究竟这两个模型到底差在哪儿?如果你要在程序中操作比特币UTXO,那么相信这个PHP Utxo Scanner会对你有所帮助。ETH与账户模型以太坊所使用的账户模型比原创 2021-07-31 15:08:49 · 577 阅读 · 0 评论 -
基于以太坊区块链的物联网/IoT设备管理【论文及源码】
本文介绍一个利用以太坊区块链管理物联网IoT设备的身份识别、 验证和声誉的IoT设备管理系统。该系统使用Web界面在以太坊智能合约 中注册物联网设备,并通过密码学签名消息验证Iot设备对平台的 使用权。1、区块链物联网设备管理系统的基本概念物联网/IoT设备的标识: 通过默克尔树(Merkle Tree)的利用,无需暴露设备的私有属性即可完成 IoT设备的注册。使用公钥(或其衍生表示)作为IoT设备的标识ID。物联网/IoT设备的消息签名与验证: 系统中的每个消息都需要由发送端的IoT设备.转载 2021-07-31 14:33:19 · 1534 阅读 · 2 评论 -
Solidity汇编开发简明教程
在用Solidity开发以太坊智能合约时,使用汇编可以直接与EVM交互,降低 gas开销成本,更精细的控制智能合约的行为,因此值得Solidity开发者学习 并加以利用。本文是Solidity汇编开发的简明教程,旨在帮助你快速熟悉 如何在Solidity智能合约代码中嵌入汇编代码。2、以太坊虚拟机和堆栈结构机器以太坊虚拟机EVM有自己的指令集,该指令集中目前包含了 144个操作码,详情参考Geth源代码这些指令是Solidity抽象出来的,可以在Solidity内联使用。例如: 1转载 2021-07-31 14:29:50 · 608 阅读 · 0 评论 -
Solidity随机数发生器原理与实现
1、什么是随机数想象一下你身边的随机噪音或者任何随机发生的事情,可以说检测到这些随机模式 的概率为0。这就是随机数的意思 —— 一个可以生成指定范围内的任意不确定 数字的模式。当我这么说的时候,考虑一下1~100之间的某个数。由于不确定性,我 猜不出来你的脑子里现在想的是哪个数。随机数是从某个特定分布中选中的数,通常也会要求这些数之间彼此独立, 这样在前后两个数之间就不会存在相关性。计算机生成的随机数有时会 称为伪随机数,这一术语中保留了随机,表示其不可预测性。当没有额外 的约定时,通常随机数采转载 2021-07-31 14:23:14 · 649 阅读 · 0 评论 -
零知识证明应用开发入门
过去的一年出现了很多零知识证明应用,在这个教程中, 我们将首先学习零知识证明的基本概念、使用circom搭建算术电路、 使用snarkjs实现零知识证明的全过程,并利用这些知识实现 二层扩容方案zk rollup。1、算术电路:零知识证明核心零知识程序和其他程序的实现不太一样。首先,你要解决的问题需要 先转化成多项式,再进一步转化成电路。例如,多项式x³ + x +5 可以 表示成如下的电路: 1234 sym_1 = x * x // sym_1 = x转载 2021-07-31 14:16:35 · 713 阅读 · 0 评论 -
ZoKrates实战在线旅游业【零知识证明】
在这个教程中我们将学习如何使用零知识证明技术 解决在线旅游行业中服务提供商在不透露太多商业秘密 的情况下如何向OTA平台证明其服务能力的问题。我们 将使用以太坊区块链上的零知识证明应用开发框架 ZoKrates来完成这个应用。1、在线旅游应用背景简介我们假设如下的场景:在线旅游OTA平台作为 面向终端消费者的唯一入口提供度假旅游服务,因此它需要 与若干提供具体服务的供应商合作,例如航空、酒店、导游等, 并将这些服务整合为一个完整的产品包出售给客户:当OTA平台针对特定的目标群体提供度假产品包转载 2021-07-31 14:15:17 · 606 阅读 · 1 评论 -
零知识证明DApp开发实践【身份证明/以太坊】
在这个教程中,我们将学习如何开发一个基于以太坊的零知识身份证明DApp, 学习如何开发Circom零知识电路、如何生成并方法Solidity零知识验证智能合约, 以及如何利用Javascript在链下生成零知识证据,并在教程最后提供完整的源代码下载。1、零知识身份证明DApp概述我们将开发一个零知识应用来证明一个用户属于特定的群组 而无需透露用户的具体信息,使用流程如下图所示:我们的开发过程分为以下几个步骤:开发零知识电路 生成用于验证零知识电路的Solidity库 开发智能合约并集转载 2021-07-31 14:13:22 · 521 阅读 · 0 评论 -
零知识扑克牌游戏开发教程【ZK Poker】
零知识证明是实现去中心化的一个重要工具。当平台透明存储数据时 我们应当如何保证隐私?当为了扩容而引入链下交易时,我们如何在 链上进行验证?零知识证明在解决这些问题时可以发挥重要的作用。 这个教程的目的是帮助你探索circom/snarkjs的更多可能性,我们 将学习如何开发一个基于零知识证明的扑克牌游戏。当谈及零知识电路开发时,我们有很多可选的库。实现我发现iden3开发的circom和snarkjs 对于零知识证明的新手很友好:电路很容易编写,整个零知识证明框架 的运行也很简单,不需要复杂的环境。转载 2021-07-31 14:10:47 · 4301 阅读 · 0 评论 -
以太坊L2扩容技术综述
在过去的一年中对以太坊的需求激增,这导致以太坊的交易费用高到令人难以忍受。 因此降低交易费已经成了以太坊成为主流技术并满足海量用户使用需求的至关重要 的环节。本文将介绍目前主流的以太坊二层(L2)扩容项目的状况,例如状态通道(State Channel)、 侧链(Side Chain)和汇总(Rollups)等方案,以帮助开发者了解这些 在以太坊区块链外围而非基础层进行的创新。1、以太坊L2扩容方案分类按照以太坊官方规划,在未来的几年中,以太坊最终将通过分片(Sharding)来扩展基础层(L1转载 2021-07-31 13:54:32 · 680 阅读 · 0 评论 -
Optimism Rollup原理详解
Optimism Rollup是目前最流行的以太坊L2解决方案。本文将解释Optimism Rollup每个设计决策背后的动机, 剖析Optimism的系统实现,并提供指向每个分析组件的相应代码的链接,适用于希望了解Optimism解决方案的 工作原理并评估所提议系统的性能和安全性的开发人员。1、软件重用原则在Optimism Rollup中的重要性以太坊已经围绕其开发者生态系统发展了护城河。开发人员的技术栈包括:Solidity/ Vyper:这是两种最流行的智能合约编程语言,有很多工具链围绕转载 2021-07-31 13:52:36 · 1413 阅读 · 0 评论 -
以太坊EVM兼容区块链全表
以太坊已经借助DeFi迅速成为去中心化应用的主流开发平台,利用以太坊 技术开发的分叉链或EVM兼容链也层出不穷。本文列出主流的以太坊EVM兼容链, 以便开发者使用MetaMask或Web3中间件时,可以正确设置Chain ID和Network ID。Chain ID 链名称 链简称 链缩写 网络 Network ID 1 Ethereum Mainnet eth ETH mainnet 1 10 Optimistic Ethe转载 2021-07-31 13:46:55 · 1014 阅读 · 0 评论 -
ChainBridge跨链协议教程【EVM/Substrate】
ChainBridge是一个可扩展的跨链通信协议,目前兼容EMV和Substrate链, 支持两个不同的EVM区块链、或者一个EVM链与一个Substrate链之间的跨链桥接与 通证转移,支持ERC20、ERC721等多种类型的通证的跨链转移,以及普通数据的 跨链转移。在这个教程中,我们将介绍ChainBridge的基本构成和安装方法,并 利用ChainBridge实现Substrate原生资产和以太坊ERC20/ERC721通证之间的跨链 转移。用自己熟悉的语言学习以太坊开发:Java...转载 2021-07-31 13:45:41 · 838 阅读 · 0 评论 -
基于Merkle-Patricia树的实时审计
如果我们能捕捉到每家银行和整个金融基础设施中每笔金融交易的当前状态。 这将是我们整个金融基础设施的历史。因此,在任何时间点,我们都会看到整个画面随着时间的推移, 并会看到所有交易的确切时间和参与者。如果我们愿意,我们也可以匿名交易数据。这将是一个我们可以随时进行审计,并即时记录当前状态的世界,还可以获取每个以前状态的快照。 这样,审计师就能看到一切,并随着时间的推移而前后移动。我描述的是以太坊,它使用Merkle-Patricia树 创建一个完整的世界模型的所有交易。1、Merkle-Patrici转载 2021-07-31 13:41:20 · 205 阅读 · 0 评论 -
zkSync 的三重安全性方案
在为NFTs、swaps 和 zkEVM上线做准备的过程中,我们注意到 zkSync 的用户和资金量迎来了指数级增长。然而,处于早期开发阶段的新协议往往存在一些风险和信任假设,我们认为有必要提醒新老用户注意这点。风险一方面来自应用于 Layer 2 的创新技术,另一方面来自这些解决方案的潜在中心化趋势。就像大多数务实的团队那样,zkSync 踏上了渐进式去中心化道路,并积极开拓创新,增强以太坊生态的安全性和可扩展性。这里需要注意的几点是: 我们无法保证项目没有漏洞。但是,我们会参照业内..原创 2021-06-03 14:41:32 · 462 阅读 · 2 评论 -
用于状态网络的可扩展广播方案
新型交易 gossip 广播网络设计中其实可以看到我最初在为状态网络设计 gossip 广播方面的尝试。在之前的文章中,我介绍了一种设计,可以让节点在无需处理完整交易池的情况下参与 gossip 广播。从较高层面上来说,我们关于交易 gossip 广播的问题陈述如下(忽略 DOS 攻击/安全性要求):交易来自整个网络。 一些网络参与者本身就需要维护完整的交易池(例如,矿工、抢跑交易者)。 一些网络参与者缺少足够的资源来处理完整的交易池(例如,轻客户端)。我提议的交易 gossip 广播方案采用原创 2021-06-03 10:57:22 · 228 阅读 · 0 评论 -
zkPorter:Layer-2 的可组合可扩展性
摘要我们提出了一种新的 Layer-2 可扩展技术 “zkPorter”,可以将 zkRollup 和分片结合在一个高度可扩展且原子化可组合(atomically composable)的区块链网络中。问题 #1:交易吞吐量 ≠ 可扩展性 ⚖️交易吞吐量是用全网处理的总交易数量来度量的;而可扩展性是单个节点处理的交易数量。zkRollup 可以被认为是满足了安全性和有用性的终极 Layer-2 扩展方案。(编者注:见文末超链接《各以太坊 Layer 2 扩容方案的评估对比》)但是 zkRollu原创 2021-06-03 10:48:24 · 370 阅读 · 0 评论 -
Caspian —— 一种由 Layer 2 驱动的新型 AMM 设计
太长不看在 Layer 2 上构建 DeFi 解决方案时,资金效率是人们最关心的问题之一。 原因:流动性将分散在 Layer 1 和多个 Layer 2 解决方案之间。 Caspian:我们提出的一种由 Layer 2 驱动的 AMM 设计。该 AMM 将资产留在 Layer 1 上,可有效防止流动性碎片化,并提高资本效率。 StarkEx 3.0(2021 年 6 月启动)将支持 Caspian。它将包含实现 Caspian 所需的两个新元件:Layer 1 限价订单(Limit Order)和原创 2021-06-02 13:56:47 · 282 阅读 · 0 评论 -
zkPorter:Layer 2 方案的新突破
大规模的 Layer 2 迁移即将到来。随着越来越多协议从以太坊区块链转移到 Optimistic Rollup 和兼容 EVM 的 zkRollup上,很多人都希望能够实现链上交易费可控化。但是,以太坊可扩展性方案的开发者都心知肚明:即使采用了 Rollup,我们最后还是有可能回到原点。这是因为只要吞吐量有了实质性的增长,很快就会被诱导需求所吞噬。Rollup 只能线性增加吞吐量(所有数据还是要广播到所有全节点)。但是,若要实现真正意义上的可扩展性,我们需要让吞吐量实现指数级增长。因此,我们认为.原创 2021-06-02 13:50:08 · 288 阅读 · 0 评论 -
Random Beacon Chain
Random Beacon ChainStatus: retiredAuthors: Raul Jordan, Terence Tsao, Yutaro Mori, Preston Van Loon, Nishant DasPrysmatic LabsLast Updated: July 10, 2018 OUTDATED: See v2.1 designBackgroundThis is a design doc for implementation of the most bas原创 2021-05-31 16:07:54 · 473 阅读 · 0 评论 -
通往 Layer-2 互操作性的道路
以太猫:一款由区块链技术赋予其收藏价值和繁育能力的猫咪摘要随着区块链技术持续占据各大新闻头条,加密货币以其富有争议的价值和对金融业的潜在威胁,正日益引起人们浓厚的兴趣。然而,普通消费者并不十分理解加密货币的含义,也不知道它重要在哪儿,更不用提隐藏在其后的技术原理了。结果就是,公众对区块链应用的认知越来越狭隘和短视。同样地,科技的潜力和长期影响力一直是深不可测的,而人们往往会大大忽略...原创 2019-05-10 10:19:34 · 12344 阅读 · 1 评论 -
以太坊 Layer 2 资产桥方案解析:Arbitrum、zkSync 与 DeGate Bridge
网络支付是电子商务的一个重要环节,尤其在外贸电子商务中,选择那些安全可靠的支付平台更为重要。本篇就为大家整理出15个国外知名的第三方支付平台。 1、paypal全球支付平台霸主www.paypal.com PayPal是目前全球最大的在线支付提供商,成立于1998年12月,总部在美国加州圣荷西市,全球有超过一亿个注册帐户,是跨国交易中最有效的付款方式...原创 2019-04-25 09:28:20 · 29534 阅读 · 1 评论 -
Proof of Stake FAQ
ContentsWhat is Proof of Stake What are the benefits of proof of stake as opposed to proof of work? How does proof of stake fit into traditional Byzantine fault tolerance research? What is the "n...原创 2019-03-26 09:52:08 · 16739 阅读 · 0 评论 -
以太坊的 Merkle 树
梅克尔树(Merkle trees)是区块链的基本组成部分。虽说从理论上来讲,没有梅克尔树的区块链当然也是可能的,你只需创建直接包含每一笔交易的巨大区块头(block header)就可以实现,但这样做无疑会带来可扩展性方面的挑战,从长远发展来看,可能最后将只有那些最强大的计算机,才可以运行这些无需受信的区块链。 正是因为有了梅克尔树,以太坊节点才可以建立运行在所有的计算机、笔记本、智能手机,甚至...原创 2019-03-23 11:53:15 · 11563 阅读 · 0 评论 -
Homestead 发布
以太坊开发开始于2013年12月份,当时两个开发者和一个大学辍学生(译者注:即Vitalik)决定集思广益,一起开发这一项目。后来与我们群志趣相投的人也加入了。我们的第一个概念验证(Proof of Cocept 1,PoC1)在2014年2月1日完成。我们在7月23日开始以太币预售,那时我们正在开发PoC5,并实现了多种客户端之间的兼容。当我们取得一个又一个重大进展时,开发团队非常兴奋。这真是疯...原创 2019-04-04 09:43:59 · 10976 阅读 · 0 评论 -
DAO正在遭受攻击,你应当如何反应?
DAO出现了问题,需要社区决定如何解决。请国内社区成员跟帖发表自己的意见,谈谈对如何处理DAO问题以及对于以太坊官方提出的软硬分叉的看法。Ethfans会汇总这些消息,并向以太坊官方传达中国社区的声音。详情见:http://ethfans.org/topics/361原文地址:https://blog.ethcore.io/attack-on-thedao-what-will-be-...原创 2019-04-04 09:44:45 · 11010 阅读 · 0 评论 -
拜占庭硬分叉
以太坊网络将进行一个计划内的硬分叉,分叉时间在第437万个区块高度(北京大约是2017年10月16日20点—21点)。Ropsten测试网络已经在9月19日(第170万个区块高度)进行了硬分叉测试。分叉倒计时可以在这里看到:https://fork.codetract.io/作为一个用户,我需要做什么?下载最新版本的以太坊客户端(选择其中一个你喜欢的客户端即可):Wallet/Mi...原创 2019-04-04 09:45:29 · 10965 阅读 · 0 评论 -
以太坊团队·2017年第四季度总结
在过去几个月中,以太坊非常迅猛地成长。区块链上的交易量已经比原来的两倍还多,连日同一时间每秒超过10笔交易。每天新创建的账户数量超过10万,尽管系统要求提高,节点的数量还是增加了。因为对整个区块链空间的关注和兴趣持续高涨,我们正在进入一个行业增长的新阶段:一个我们将从实验和测试最终走向真实的、可行的应用的阶段。Casper一个 基于 pyethereum 的Casper 权益证明测试网络...原创 2019-04-04 09:46:27 · 10966 阅读 · 0 评论 -
以太坊基金会:前路,2018
编者注:本文为以太坊基金会在新加坡社科大学(Singapore University of Social Science)的演讲 PPT,谈到了基金会在2018年的各个目标。视频链接请点这里文中除图片外所有内容皆为编者所加注释部分 PPT 页序有调整,但并无删节Casper FFG论文《Casper the Friednly Finality Gadget》的 PDF...原创 2019-04-04 09:47:28 · 11604 阅读 · 0 评论 -
以太坊Casper 与 分片
在今天的以太坊核心开发者大会上,Vitalik 和研究小组讨论了一个新的 Casper/分片设计,他们要把这两个设计尽早地融合在一起;虽然这个提议令人激动,但同时这也意味着 EIP1011(PoW 与 PoS)和现有的 Capser FFG 协议的终止。在 Github 上 (https://github.com/ethereum/beacon_chain),以太坊团队已经用 Python 证明了...原创 2019-04-04 09:48:35 · 11561 阅读 · 3 评论 -
以太坊君士坦丁堡(Constantinople)升级公告
编者注:本文为 Ethereum Foundation 于 1 月 11 日发布的君士坦丁堡升级公告。以太坊网络将在高度为 7,080,000 的区块上激活计划中的升级,预计是在2019 年 1 月 16 日,星期三。具体的日期会因为这段时间的出块时间波动而推迟或提早 1~2 天。倒计时可以在这个网站https://amberdata.io/blocks/7080000上看到。大家还可...原创 2019-04-04 09:49:15 · 12394 阅读 · 0 评论 -
安全警告!请紧急升级客户端,推迟君士坦丁堡分叉!
以太坊核心开发人员和以太坊安全社区已经认识到由ChainSecurity在 2019 年 1 月 15 日发现的与君士坦丁堡相关的潜在问题。我们正在调查所有潜在的漏洞,并将在博客文章和社交媒体中更新相关的信息。出于谨慎的考虑,以太坊社区的主要利害关系人已经确定,最好的行动方案是推迟君士坦丁堡分叉,按原定计划,该分叉将在 2019 年 1 月 16 日的 7,080,000 号区块上发生。...原创 2019-04-05 10:28:43 · 8544 阅读 · 0 评论 -
Merkle Patricia Tree 详解
1. 前言1.1 概述Merkle Patricia Tree(又称为Merkle Patricia Trie)是一种经过改良的、融合了默克尔树和前缀树两种树结构优点的数据结构,是以太坊中用来组织管理账户数据、生成交易集合哈希的重要数据结构。MPT树有以下几个作用:存储任意长度的key-value键值对数据; 提供了一种快速计算所维护数据集哈希标识的机制; 提供了快速状态回滚的...原创 2019-03-27 09:28:28 · 11222 阅读 · 0 评论 -
Vitalik: 25 分钟认识以太坊(下)
编者按:以下为 Vitalik Buterin 在 Ethereum Devcon3 上的演讲《Ethereum in 25 minutes, vision 2017》的下半部分。以下中文皆直接从视频中听写并译出,如有错失,请不吝赐教。附:干货 | Vitalik: 25 分钟认识以太坊(上)交易以太坊上的交易有 7 个部分:交易 nonce,基本上就是一种反交易重播措施,如果你正在...原创 2019-03-27 09:31:59 · 11010 阅读 · 0 评论 -
通往 Ethereum 2.0 之路
(编者注:本文为来自 PEGASYS 的 Ben Edgington 将自己对 Ethereum 2.0 的理解整理而成的 PPT。因页数较少,编者不再切分章节。正文中除图片外,所有的解释性中文皆为编者所加。)上图为作者自己的背景介绍,包括参与了台北的分片研讨会、客户端开发者和扩展研讨会、以太坊核心开发者例会等等。但他也指出,文中很多部分都还没有最终确定下来,而且都是自己的理解,...原创 2019-03-27 09:36:43 · 10542 阅读 · 1 评论 -
什么是以太坊大都会:终极指南
译者介绍: 郭辉, imToken 的一员,区块链世界的坚定拥趸者。作为以太坊的里程碑事件,大都会终于要来到我们身边了。以太坊开发团队计划于9月18日在测试网络上测试"大都会"(Metropolis),测试至少3周时间。如果测试正常,"大都会"将被部署在主网络。所以,升级到"大都会"阶段的最早时间是10月9日(译者注:实际部署时间已经推迟)。所以,问题来了:什么是"大都会"? "大都会"...原创 2019-03-27 09:37:41 · 10899 阅读 · 0 评论 -
理解 Serenity,Part-1:深度抽象
Origin postby Vitalik Buterin, on December 24th, 2015我们已经公开继续改进以太坊协议的计划和长期开发路线图相当长一段时间了,这个做法也是来自于从1.0版本发布之前或者事后没有能及时处理的错误中学到的经验。不管怎样,以太坊核心协议的周期性开发已经重新启动,Homestead阶段很快就要到来,我们也已经悄悄开始开发一个概念原型(PoC),目标是...原创 2019-03-29 09:39:38 · 11679 阅读 · 0 评论 -
区块链中的机制设计挑战
第一部分从区块链吸引人的地方切入区块链设计中的挑战:朝向真正去中心化的机制设计。这些设计的目标是让共识层具备一些可欲的属性;为了推进设计,我们也将一些对行为者及其环节的假设归纳为安全模型,并在这些模型上进行进一步的推论。(编者按:这部分从区块链吸引人的地方切入区块链设计中的挑战:朝向真正去中心化的机制设计。这些设计的目标是让共识层具备一些可欲的属性;为了推进设计,我们也将一些对行为者及其...原创 2019-04-06 09:03:52 · 11175 阅读 · 0 评论 -
以太坊—开放的智能合约完整解决方案
什么是以太坊(Ethereum)?通俗的讲,以太坊是一种新的法律。传统的合同合约依据法律订立,执行、违约处理依赖律师、法院;以太坊解决了这一系列问题,合约通过程序订立、执行,人工无法干预,所以几乎可以做到0纠纷。以太坊要解决什么问题?把传统合同合约变成智能合约, 通过自动化解决了传统合同的纠纷等棘手问题。 那么以太坊通过什么做到这些呢? 答案是智能合约:以太坊提供了智能合约的完整解决方...原创 2019-04-08 09:25:06 · 11437 阅读 · 0 评论