• <div><p>Bumps <a href="https://github.com/ethereum/go-ethereum">github.com/ethereum/go-ethereum</a> from 1.9.6 to 1.9.9. Release notes *Sourced from [github.com/ethereum/go-ethereum's releases]...
• Go Ethereum Official Golang implementation of the Ethereum protocol. Automated builds are available for stable releases and the unstable master branch. Binary archives are published at ...
• <div><p>add to https://github.com/ethereum/homestead-guide/blob/master/source/introduction/what-is-ethereum.rst - [ ] add cross references - [ ] incorporate some insightful descriptions using ...
• t install ethereum-etl based on the instructions in the readme. Running "pip3 install ethereum-etl" as well as cloning the repo and running "pip3 install -e ." always results in: <p>...
• Building Ethereum Dapps teaches Dapps development on the Ethereum blockchain platform. You'll begin with a mental model of how Dapps operate, and then dive into designing and implementing smart ...
• <ul><li>Update vendored go-ethereum to livepeer/go-ethereum</li><li>Update receipt status check in <code>eth/client.go</code></li> <p><strong>How did you test each of these updates (required)</strong>...
• <div><h3>What was wrong?...<ul><li><a href="https://github.com/ethereum/py-evm/pull/1224/commits/3fef4bd3d596eb4a16fc63ae4c6795bfaa03b641">Updates the submodule</a> to:</li><li>2018-01-22 - ...
• /home/thesis/Documents/blockbench-master/benchmark/ethereum <code>HOSTS=$ETH_HOME/hosts <code>CLIENTS=$ETH_HOME/clients <code>ETH_DATA=/home/thesis/Documents/data <code>LOG_DIR=$ETH_... • <div><p>The manticore ethereum API resides in examples/evm/seth.py, which is not part of the manticore package. This means that it does not get installed from pip, and users of the ethereum API must ... • <div><p>Help me please! <p>While building Docker raise error: <pre><code> package github.com/ethereum/go-ethereum/pow: cannot find package "...sammy007/open-ethereum-pool</p></div> • - Added <code>connect ethereum</code> command to connect the bot to an Ethereum wallet - Added <code>ethereum_wallet</code> global config to store the connected wallet</p><p>该提问来源于开源项目ÿ... • <div><p>I'll keep it here to refer if there will be complains regarding <code>lost</code> blocks. ...<p>Related geth issue: ...sammy007/open-ethereum-pool</p></div> • <div><p>As a user I want to see a simpler version of an Ethereum address in parts of a UI that don't have a lot of space. <p>Something like this: ... • [ERROR] Export failed for github.com/ethereum/go-ethereum: Error while exporting submodule sources: exit status 128 [ERROR] Unable to export dependencies to vendor directory: Error while exporting ... • 最新版本的Ethereum-Wallet-installer-0-11-1 • go-ethereum-code-analysis 希望能够分析以太坊的代码来学习区块链技术和GO语言的使用 分析go-ethereum的过程，我希望从依赖比较少的底层技术组件开始，慢慢深入到核心逻辑。 目录 go-ethereum代码阅读环境搭建 ... • sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum  如图所示： ![图片说明](https://img-ask.csdn.net/upload/201911/05/1572956591_897808.png) ... • 注意：要区分以太坊和以太坊钱包，也就是EthereumEthereum Wallet、geth。Ethereum Wallet和geth只不过是以太坊的一个客户端而已。 下面安装的是Ethereum，也就是以太坊环境。这个是最主要的。 还有需要注意的是... 安装 注意：要区分以太坊和以太坊钱包，也就是Ethereum、Ethereum Wallet、geth。Ethereum Wallet和geth只不过是以太坊的一个客户端而已。 下面安装的是Ethereum，也就是以太坊环境。这个是最主要的。 还有需要注意的是，所有的brew命令都是会比较慢的，慢慢等。 brew update brew upgrade brew tap ethereum/ethereum brew install cpp-ethereum brew linkapps cpp-ethereum 官方文档：http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/installing-binaries/osx-homebrew.html 更新 按照brew的方式进行更新。 注意不能用“brew upgrade ethereum/ethereum”这条命令。如下所示： 使用“brew upgrade cpp-ethereum”也会卡死。 这里问下大家有没有什么比较好的更新方法。 注意事项 （1）“brew update”命令是更新homebrew自己，而“brew upgrade”是更新各个安装包。 （2）对“brew tap”命令的说明。如果在核心仓库没有找到需要的软件，那么就需要安装第三方的仓库去安装需要的软件。tap命令的仓库源默认是github。  展开全文 • Ethereum represents the gateway to a worldwide, decentralized computing paradigm. This platform enables you to run decentralized applications (DApps) and smart contracts that have no central points of... • issues on <code>ethereum/cpp-ethereum/issues</code></p> <p>https://github.com/ethereum/cpp-ethereum/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22</p><p>该提问来源于开源项目&... • <p>Since the recent launch of our <a href="https://ethereum.org/en/developers/docs/">ethereum.org developer docs</a> (more on that <a href="https://blog.ethereum.org/2020/10/22/introducing-the-new-... • 到目前为止，大多数需要微支付的以太坊项目都聚焦于支付通道。支付通道允许发送任意数量的交易，且只需要两个链上交易： 一个用于初始化支付通道 另一个用于关闭通道并结算总交易金额 在这两个交易之间，我们可以...  到目前为止，大多数需要微支付的以太坊项目都聚焦于支付通道。支付通道允许发送任意数量的交易，且只需要两个链上交易： 一个用于初始化支付通道 另一个用于关闭通道并结算总交易金额 在这两个交易之间，我们可以发送任何数量的链下交易。相对于常规的链上交易，这是极大的进步。因为像在线视频和能源市场这样的服务，可以为其微量的服务持续收取费用。 由于需要两个链上交易，我们不能简单地把0.1美分发送给我们还没有建立通道的人，因为通道初始化和结算的费用将比支付款项高出许多倍。 但如果我们可以向任意数量的接收者发送任意量的小金额，而不需要进行初始化和结算交易呢? 以太坊概率微支付（Ethereum Probabilistic Micropayments）就可以向任意数量的接收者发送任意数额的支付款项，而不需要每一位接收者的初始化和结算交易。 听起来难以置信吧？确实是这样的——我们总需要至少一笔链上交易进行结算，但在没有任何链上交易发生的情况下，我们也能有效地接收付款。 在上述描述中，请注意“每一位接收者”的条件限制，这是一个微妙但重要的差别。以太坊概率微支付需要每一位发送者进行一次初始化交易，锁定一定数量的token（之后将用于发送给任意接收者）。接收者不需要处理每个发送者的支付。下面我们来看一个例子，看看它是如何操作的。 兰花协议 在兰花实验室，我们正在研究如何通过一个新的分布式覆盖网络，在互联网中消除监控和审查。在兰花网络中，带宽的贡献者（称为节点）与接入网络的用户分享宽带并中转流量；用户则持续地向带宽贡献者支付token（客户端自动支付）。 一个兰花节点可以服务数千个其他节点，用户也可以使用数百个节点连接不同的网站，而在每一个节点之间建立一个支付通道的交易费用高得令人望而生畏（即使是使用像雷电网络那样的通道网络）。 取而代之的是，我们可以使用以太坊概率微支付： 发送者可以把token（可以是以太币，ERC20代币或其他等价物）存入所有的发送者共享的以太坊智能合约，该智能合约为每一位发送者维护支付差额与罚金托管。 发送者在本地创建并签署一张票据，该票据是一种包含了接收者、总额等支付数据的加密数据结构。 发送者无需在以太坊网络上发布任何交易，直接将票据发送给接收者即可。 接收者核实票据。如果它是有效的，那么接收者就有了加密证明他们正在收取款项。注意，即使票据没有“中奖”，接收者仍然有确凿的证据来证明他们能收到款项，因为决定票据是否“中奖”的随机性是由发送者和接收者双方决定的。这样，其中任意一方都无法一手操纵结果。 一张有效的票据即是“中奖”，在这种情况下，它可以通过发布一个链上以太坊交易来获取。 该方案在兰花草案白皮书中有详细说明（在某种程度上算是正式说明），这份白皮书讨论并参考了先前关于概率微支付以及它对区块链的适用性的研究。 虽然我们不能将这个方案用于单一支付，因为接收者无法确保他们真的能收到付款，但我们可以把它通过加密的方式向接收者证明，他们收到的票据有产生可索取付款的可能性。 由于随着时间的推移，我们能逐渐准确地计算出中奖概率、中奖金额以及票据的频率，我们可以将差异（交易余额）减少到可以忽略不计的程度。 也就是说，只要所提供的服务是持续的，且颗粒度足以让概率的差异忽略不计，那么概率支付就比支付通道更高效。 支付通道的应用场景： 你是一位视频流媒体的主播，每小时收费1美元。 一名新用户连接到你的服务，并对着可爱小猫观看了正好10秒钟。 如果一项交易可以等待几个区块的确认的话，那么一项没有数据的交易目前的成本是0.006美元。然而，由于我们需要在观看在线视频前设置通道（以避免有人吃白食），我们可能需要更快的确认，这将花费0.026美元。建立一个支付通道将会花费更多的钱，因为它需要智能合约执行。粗略估计，价格会是上述的两倍，即0.052美元。 这种情况下，支付通道的开销是你作为主机向用户收取的费用的几倍。如果用户最终看得确实很多，那么这笔开销可能是合理的，但是对于新的用户或零星的用户来说，这就会引起一些争议。 概率支付的应用场景： 你是一位在线视频的主播，每小时收费1美元。 一名新用户连接到你的服务，并对着可爱小猫观看了正好10秒钟。 每4秒，该用户就会给你发送一张中奖率为1/2500的链下票据，中奖金额为2.78美元。 如果你没有每4秒收到付款票据（考虑到网络延迟，也可以多给些时间），你只需断开和观众的连接。 如果观众没有接收到任何视频流入，他们就会立即停止发送付款票据。 当你收到一张中奖的票据时，你使用一个链上交易来获取它，它就会从发送者锁定的token中把中奖金额传输给你。 即使票据没有中奖，你仍然有加密证据证明你是要收取付款款项的。因为无论是发送者还是接收者都不能操纵决定该票据中奖的额度。有了这个证明，你会很乐意继续向观众播放视频。当成千上万的（新）观众连接到你的时候，任一观众都不会有任何开销——唯一的开销是在你获取中奖票据的时候产生。 对于特定的“平均总付款”，中奖的几率（和票据的频率）决定了链上交易的数量。因此，中奖金额越高，随着时间的推移，接收者支付的交易费用就越少。中奖金额越低，需要被发送者锁定的token就越少，从而也降低了他们的流动性成本。 对于在线视频来说，合理的中奖金额应该是2.78美元。对于电力或能源市场来说，可能是27美元。 防止双重支付 概率支付的一个至关重要的部分是确保双重支付不会发生，或者说，双重支付会让发送者将无利可图。前面提到的“罚金托管”，能让发送者无法通过双重支付获利。正确的操作方式是，发送者必须在他们能够创建票据之前锁定（提交）一定倍数量的票据中奖金额。接收者可以核实发送者不仅有足够的资金来支付中奖票据，而且他们的罚金暂交第三方托管后也有足够的余额。 如果出现双重支付的情况，在发送者的余额不足以支付该票据之后，中奖票据的链上索取要求将导致发送者的罚款代管账户大幅减少。这就有效地刺激了发送者所需发布的小额存款，创造了发送者双重支付的经济动机。罚金代管的数目应该设置妥当，既能足以阻止双重支付的发生，又不至于给发送者带来太多的不便。 结论 就系统而言，以太坊概率微支付相对支付通道有几个优点，它可以为用户提供持续的、有颗粒度的服务。交易费用的减少不仅为有效的微支付，也为实际的纳米支付提供了可能。 在线视频、电力/能源市场和带宽共享是可应用系统的优秀案例。我们不需要承担每对发送者-接收方的设置成本，也不需要使用复杂的支付通道网络，我们只要求每个接收者都有一个链上交易。服务提供者可以立即开始对用户进行服务，不存在有人吃白食的风险；而用户一旦停止接收服务，他们也可以迅速断开连接。 这使得服务可以完全避免免费服务的成本，同时也可以立即阻止服务攻击，因为我们可以要求，甚至是第一个要求有附加的微支付服务。 PS.感谢David Salamon，他在我们的研究期间独立得出了概率微支付模型，而后我们才意识到概率微支付的概念可以追溯到1996年的文献。（可参考我们的白皮书）。 链接: https://medium.com/@gustav.simonsson/ethereum-probabilistic-micropayments-ae6e6cd85a06  展开全文 • ## Ethereum Casper 101 万次阅读 2019-04-28 09:39:26 Casper 将在以太上坊上实现 POS (权益证明) 协议。这篇文章首先回顾了 POS 的重要性及其存在的优缺点， 并且对 Casper 进行了广泛的概述，澄清了与 Casper 相关的两个协议设计上的一些混淆。这两种提议在实现上使用... Casper 将在以太上坊上实现 POS (权益证明) 协议。这篇文章首先回顾了 POS 的重要性及其存在的优缺点， 并且对 Casper 进行了广泛的概述，澄清了与 Casper 相关的两个协议设计上的一些混淆。这两种提议在实现上使用了相同的核心设计原则:应用数字货币经济机制设计来保护网络，同时处理关于活跃度，安全性和同步假设上的挑战。这篇文章还概述了迄今取得的进展和未来的挑战。最重要的是，对于初学者，本文将各种有用的资源结合在一起，对关键概念进行了说明和定义。 文中如有不当之处，请随时向我联系提出问题、更正或反馈。 Outline | 大纲 介绍 权益证明 两个 Caspers 的故事 为什么 Casper 重要 设计原则 挑战 未来的工作 词汇表 结论 介绍 Casper 最早从2014年出现，并不能算是一个新的项目，所以幸运的在网上能找到很多有关于它的文章。虽然有关的信息非常多，但初学者却没有一个足够简明的学习起点来参与到这个项目中。这就是我写这篇文章的原因。 不同于其它的文章、视频和论文主要集中讨论有关 Casper 的规范、实施和验证。这篇文章着重介绍 Casper 的各种指导性设计原则；它与其它竞争替代方案的差异；以及为什么我们要关注它；如何为这个项目做出贡献等内容。 此外，Casper 的保持着了非常开放和相互协作的文化，它由以太坊研究人员，开发人员和社区成员共同维护。我希望这篇文章可以继续保持这个传统，向你介绍 Casper， 并试图阐述 Casper 对于以太坊以及更大的公链生态系统的重要性。 总而言之，这篇文章是： 对 PoS 和 Casper 的快速和广泛的介绍。 讨论为什么 Casper 重要，其设计原则及其面对的挑战。 能让你开始学习使用 PoS 和 Casper 的一系列关键资源和术语的列表。 而不是： Casper 的完整历史。 Casper 规范。 Casper 的实现细节。 Casper 形式化验证。 注意：文章中随处可见相关资源列表的链接。 通过这个，我希望你喜欢这个适合初学者的 Casper 的介绍：以太坊 POS （权益证明）的研究和实现。 权益证明 （如果您已经对 PoS 了如指掌，请阅读下一节：“Casper 是什么？”） 权益证明（PoS）是公链的一种共识算法，其实现依赖于验证人在网络中的经济利益。 在基于工作量证明（PoW）的公链（如比特币和当前实施的以太坊）中，通过对解加密算数题的参与者进行奖励，来验证交易并创建新的块（即采矿）。而在基于 PoS 共识的公共块（如以太坊即将推出的 Casper ）中，验证人轮流提议新块并对下一个块投票，每个验证人的投票权重取决于其持币量的大小（即股权）。验证人对于区块链网络提供服务是有奖励的，而且这种奖励也实现了对攻击者的的经济制约。 PoS 的明确优点包括安全性、降低集权风险和提高能源效率。 明确的经济安全 PoW 工作量证明受到你能承受多少电力成本和硬件折旧的限制，所以具有一个动态调整（通过10分钟出块的目标）的隐性成本。虽然 PoS 有自己的挑战（在后面有讨论），其主要优点之一是可以灵活地明确地设计对拜占庭行为（即不遵循协议）进行的惩罚。 这使得协议设计者能够对网络中各种行为的不对称风险和收益回报情况进行更多的控制。 安全性的另一个方面是对软件和网络精密性进行破坏的成本，因此具有明确惩罚（可能在比PoW 更严重的级别上）的能力可以增加网络的安全性（意即经济安全）。 相关说明，Vitalik 进一步认为，PoS 具有更好的恢复属性。在 PoW 中，存在一个可以使块链不可用的“51%算力攻击问题。在 PoS 中，网络可以处罚没收攻击者的股权，防止重放攻击。经济分析进一步澄清了这一概念。重放攻击的边际成本与 PoS 的第一轮相同。而在 PoW 中，51％ 攻击期间另一轮的主要边际成本是电力成本（重放攻击引起的的硬件折旧和物理空间成本增加很小）。简明如 Vlad Zamfir所说，在 PoS 中重复的 51％ 的攻击成本就好像每一轮都要“你的 ASIC 矿场烧毁”一样。 减少集中化 为了达成共识，PoS 权益证明减轻了规模经济的影响。在 PoW 工作量证明中，我们已经看到，为保护网络安全，相对集中的矿池（例如 AntPool）比规模小的更受到信任。大矿池可以通过（1）在较大的运营中摊销固定成本，（2）通过运营较大的实体来提高议价能力，来降低其技术和运营基础设施（如数据中心成本，电力成本，人员成本）的单位成本。 这意味着两个成本相同的矿池，取得的算力会不一样，一个能实现更高的算力，并在网络上有更大的影响，即钱能生钱，例如，10,000名矿工单独挖矿，每个矿工花费1美元/分钟（8,860万美元/年）的成本，比一个同样花费10,000美元/分钟(尽管也花费了8760万美元/年）的矿池的算力要低得多。(进一步：量化 PoW 挖矿中心化的好处将是令人着迷的，即它是1bps ，1％ 还是算力以投资每美元比率的倍数？） 然而，在 POS 权益证明的情况下，一美元就是一美元。这样的好处是，你不能通过汇集在一起，使得一美元值得更多。您也不能开发或购买专用集成电路（ASIC），从而在技术上占有优势。所以，PoS 不同于 PoW 挖矿收入的累计分配方式，采用了比例分配。（成熟的去中心化的声誉/身份管理服务为按比例分配收益成为可能）。 能源效率 PoW 工作量证明机制通过浪费资源来保障网络。比特币目前每年使用超过20 TWh的电力，这已经接近厄瓜多尔整个国家的电力消耗。为了使比特币在支付的规模上得到更广泛的使用，它必须浪费象更大的国家一样多的电力。根据这样的发展，我们就可以明白，工作量证明可能不是合适的发展方向。 虽然比特币可能具有超过其财务成本和外部环境的重要社会功能（即Nick Szabo的社会可扩展性论证），但 PoS 的支持者认为借鉴 PoW 块链的激励机制，而不用浪费太多的能量是可能的。或者，有些人可能认为存在负面外部性的代价，即社会可扩展性的好处甚至可能超过环境成本。 虽然确切的答案很难得到确定，但我认为整个数字加密生态系统有责任探索所有有希望的共识机制，衡量其利弊和可行性。（例如，其他项目正在测试各种形式的存储证明的好处和可行性等等）。 退一步讲，值得注意的是 PoW 的发行存在两种成本。内部成本，由矿工支付，并转交给货币持有人。外部成本，比如政府的环境成本和补贴（很可能以更便宜的电力）。在 PoS 中，共识成本较低（无电力和硬件成本），从而允许低发行量。随着网络的成熟，甚至可能会出现负发行（网络交易燃烧的，以及罚款和销毁的），并形成稳定的价格。 因此，不仅能降低环境的能耗，而且还能实现更简单的结构设计。这是因为较低的能源消耗允许将潜在的经济价值损失（即可信赖的未实现成本的风险）代替实际成本（电力和折旧成本是不可逆的），以确保网络的安全。这是 PoS 的一个关键的基本假设：实际成本和对亏损的预期可以激励参与者保护网络。因此，虽然困难 - 但是有可能（因此更好）通过避免损失来确保公链安全，这可以减少系统中的公共成本和无谓损失。 PoS 总结 这里总结了 PoS 的主要优点。虽然 Casper 为以太坊（以下讨论）提供了具体的好处，但其重要性的很大一部分是 PoS 带来的好处：明确的经济安全，减少集权和能源效率。 所以，现在通过 PoS，让我们来看看 Casper。 进一步阅读 PoS 权益证明常见问题 in Ethereum wiki 权益证明设计哲学 Philsophy by Vitalik Buterin Pos的批判 by Tuur Demeester (and comments 1, 2, 3) Tendermint白皮书 by Jae Kwon 非工作证明的加密货币 by Iddo Bentov et al. (Slides) PoS 在比特币维基上的介绍 选择的示例: Tendermint, Polkadot, Peercoin. 两个Caspers的故事 简单来说，Casper 是以太坊的 PoS 权益证明实现的工作流。 Casper 并不是一个具体的实现，它是实际上由以太坊团队正在积极研究的两个主要项目组成。非正式地，“Vitalik's Casper” 又称 Casper FFG，还有 “Vlad's Casper”，又名Casper CBC（见下文说明）。细节部分只有到你开始深入了解 Casper 的在线资料才能明白，外行可能对这个非常不解（事实上，这就是写这篇文章的主要动力）。虽然他们是独立的实现，但他们有着一样的目标：将以太坊的工作量证明转到 PoS 权益证明。 （尽管有一个令人惊讶的共同印象是，以太坊已经在实施 PoS ，但它仍然是一个 PoW 链（使用ethash挖矿算法），虽然比比特币更内存相关(挖矿的效率基本与CPU无关，却和内存大小和内存带宽正相关)，更耐 ASIC (即使用专门优化的芯片产生的挖矿优势尽可能的小)，但是它们是 PoW 链无疑，并且在能源效率上具有相同的缺点。 所以我们来简要的讨论这两个 Caspers。 FFG vs CBC 注意事项：这两个项目将在 Devcon3 之后的几周内提供更详细的论文和概念证明，这里对其实现方法进行快速预览。 友好的终结工具 Casper（“FFG”） - 又名“Vitalik's Casper” - 是一种混合 PoW / PoS 的共识机制，它是以太坊首个通向 PoS 权益证明的候选方法。更具体地说，FFG 在工作量证明（如以太的 ethash PoW 链）的基础上，实施了权益证明。简单地说，块链将用熟悉的 ethash PoW 算法增加区块，但是每50个块有一个 PoS “检查点”，通过网络验证人来评估区块的最终有效性。 鬼马小精灵 Casper（其名字源于上世纪90年代的一部电影《鬼马小精灵》） ：使用正确的建设（“CBC”） - 又称“Vlad's Casper” - 与传统协议设计的方式不同：（1）协议在开始阶段是部分确定的（2）其余部分协议以证明能够满足所需/必需属性的方式得到（通常协议被完全定义，然后被测试以满足所述属性）。在这种情况下，得出完整协议的一种方法是实现所预计的安全性 (一个理想的对手) ，或者提出合理估计的错误的例外，或列举潜在的未来错误估计。更具体地说，Vlad 的工作侧重于设计协议，扩展单个节点对安全性估计的局限视角，以实现共识安全性。 退后一步，FFG更侧重于通过多步骤过渡为以太网络引入 PoS。通过准备的迭代实现，增加 PoS 在网络中的作用。（PoS 将从较小部分的奖励开始）。相比之下，CBC 着重于通过第一个原则“通过建设”得出安全证明的正式方法。尽管令人困惑，解决这个问题的不同方法创造了两个不同的工程。Casper 的最终形式可能来自对 FFG 和 CBC 的互相学习。 下一步 虽然取得了实质性进展，但是在高层的机制设计层面和底层编程实现层面的许多细节仍有待确定。维塔利克和弗拉德都公开承认了这一点，并且邀请更多的社区参与推动和讨论。 总而言之，这两个研究项目都非常活跃，11月份 Devcon3 将有更多的更新。此概述的作用不包括更详细的内容，但请随时在以下链接中深入了解更多实施和设计细节（ FFG 和 CBC 论文发布后，本文档可能会更新或后续）。 FFG的相关链接 FFG基础教材 by Vitalik Buterin and Virgil Griffith (Draft) Casper Github Repo (FFG) Karl Floersch’s FFG Implementation on pyethereum 进一步阅读 FFG 在Reddit上的简单解释 by Vitalik Buterin. August 2017. 最小削减条件 by Vitalik Buterin. March 2017. 动态验证组的安全性 by Vitalik Buterin. March 2017. Slasher by Vitalik Buterin. January 2014. Weak Subjectivity by Vitalik Buterin. November 2014. On Settlement Finality by Vitalik Buterin. May 2016. 三角形的危害 by Vitalik Buterin. July 2017. Casper经济激励概述 by Karl Floersch. Sept 2017. 另一个Casper的形式化方法 by Yoichi Hirai. Github. ethereum/casper. CBC 的相关链接 将在Devcon3之后更新 进一步阅读CBC Casper CBC CESC deck and video by Vlad Zamfir. September 2017. Casper CBC EDCON deck by Vlad Zamfir. (Video part 1, part 2) February 2017. Devcon2 CBC Casper Deck and video by Vlad Zamfir. October 2016. 2016.12.06 History of Casper: Chapter 1by Vlad Zamfir — How Vlad started working on Ethereum and PoS. Slasher and deposits (Mar 2013 — Sep 2014) 2016.12.07 History of Casper: Chapter 2by Vlad Zamfir — Nothing-at-stake. Bribing attack. Long range attack. Game theory and security research. (Fall 2014) 2016.12.11 History of Casper: Chapter 3 by Vlad Zamfir — Finality. Synchronicity Assumptions. Slashing Conditions. Tendermint. (Sep ’14 — Dec ’14) 2016.12.12 History of Casper: Chapter 4 by Vlad Zamfir — Cooperative Game Theory. Oligopolies. How Casper is different than other PoS consensus designs. (Dec’14 — Jan ’15) 2016.12.30 History of Casper: Chapter 5 by Vlad Zamfir — Censorship. Defining decentralization. Availability vs Consistency. Friendly GHOST (Feb ’15 — March ’15) Casper 系列历史继续... 为什么Casper重要 现在我们解码了这个神秘的 Casper 项目。让我们综合一下我们对 PoS 和 Casper， 来理解 Casper 的重要性。 简单来说： 去中心化（PoS） 能效（PoS） 明确的经济安全（PoS） 以太坊的扩展性 从 PoW 温和过渡 PoS 方面的原因 前三点在“权益证明”部分中介绍过。不过值得一提的是，以太价格在280亿美元上下时，它是第二大的数字货币，约占总市值的18％。因此，任何增量的去中心化和能源效益的提高都可能产生不平凡的影响，并对未来产生非常重要的影响。 作为回顾， （1）PoS 具有较小的可用经济规模，因为 - “美元兑美元” - 一个矿工/验证人不能对网络产生巨大的影响。在 PoW 中，一个大型矿池可能比单个矿工获得每美元更多的哈希算力，而在 PoS 中，一美元是一美元，这可能会减轻挖矿的中心化。 （2）PoW 的网络安全依赖于能源的浪费，PoS 则依赖于保证金的损失。那么挑战就是 （3）我们如何模仿（和增强）PoW 工作量证明机制）的优点，并通过经济机制设计来减少 PoS 的缺点。 扩展性的原因 接下来，让我们来谈谈一些新的东西： （4）扩展性。理解这一点的关键是双重的：（a）Casper关于建立明确的最终共识（而不是概率上最终共识），（b）明确的最终共识可以通过分片进行扩展来维护网络安全。 在 PoW 链中，最终共识是隐性的（如“游戏中的皮肤”特效是通过花费电力进行渲染）。当您检查交易在真实用例中的最终确定时，PoW 链中的最终性的隐性是显而易见的。根据付款的金额大小和重要性，您可以等待额外的块确认（最长链中出现交易以来的区块个数）。例如，对于买咖啡，您可以使用较少的确认，但是为了购买汽车，您可能使用比平均确认数量更多的区块个数来确认交易。 相反，Casper 提供了一个明确最终共识的概念。例如，Casper FFG 开始将最终性依赖于在 PoW 链上。因此，基础链依然有一种隐性的方式来确定交易的最终结果。然而，Casper FFG 在大约2.5 个epoch 时间窗口之后提供了明确的最终性（每个 epoch 是一个50个PoW 区块，一个检查点是一个 epoch 的最后一个块，区块首先被合理的提出，然后被验证人确定，在上面链接的文章中或以后的文章中可以看到更多的细节。） 在这一点上，使用某些拜占庭容错假设，我们可以确定我们的假设是否被违反，或是检查点是最终的。既然我们也意识到验证人设定了先验（也可以是动态的），则不良行为者将通过分析故障归因而受到惩罚。 那么这与分片和可扩展性有什么关系呢？具有这种明确的终结性提供了 每个网络节点必须做的（更准确地说是更少的）工作的灵活性，有更多的定期明确的最终性允许进一步探索问题，如：如何处理如果不是每个节点都保存所有的状态或所有的交易？如果不是每个节点都必须验证每个事务怎么办？公链上有关区块的这些问题都在区块分片工作中解决了。 所以要回到这一点，如果我们要网络中的每个节点“做得更少”或者“知道得更少”， 那么只考虑过去几个 epoch 时间内的确定性比考虑创世块以来的整个区块链的确定性有巨大的好处。因此，在这个 epoch 时间间隔内，确定一个简单的交易实际上并不能提高最终性，因为确认次数比 epoch 时间少。相反，最终性将使公链扩展到比现在每秒至10个事务更大的数量级。 因为以太值280亿 最后一点是（5）从 PoW 平缓过渡。象我这样的新手需要了解的以下原委：以太的明确目标是在今年大幅度提高以太网的价值。该计划是在 ethash PoW 链的基础上混合 PoS，然后逐渐转向纯粹的 PoS 实现。鉴于 ETH 网络价值的大幅增长，逐渐过渡到 PoS 是一种谨慎的策略，用于防止潜在的价值破坏，同时转移重要的以太坊基础设施。 进一步阅读 分片常见问题, Ethereum wiki On Slow and Fast Block Times by Vitalik 设计原则 这是从Vlad和Vitalik发布的各种各样的文章中所收集的设计原则。当前，Casper的指导设计原则分散在各种资料间。希望能够整体阅读，提供更明确内容来概括设计原则的概念。 1、经济学设计行为。明确的经济机制设计可以实现其他社会契约（如以工作证明方式的共识协议）中隐含的经济激励。如果你喜欢类比，在History of Casper part 3中搜索“big games” 。 2、 最大化攻击成本例如，攻击者可以对协议功能进行攻击的损坏程度应受到一些行为因素的约束“griefing factor.”。为了造成100美元的损失，不应该花费0.01美元。也希望成本在100美元左右。换句话说，我们希望最大限度地减少用于攻击协议的每一块钱的“攻击利益倍数”（更多的是在另一篇文章中介绍）。 3、公共成本效益，不只是私人的。在我们开始扩张公有链时，协议经济学应该考虑到社会（即 “公众”）成本和利益（消极和积极的外部因素）。能源成本，环境影响和财富分配是一些显着的例子。 4、 防止规模经济. 中心化削弱了公有链主要的价值。阻止规模经济能杜绝产生中心化要素，并能建立更安全的区块链。 5、 网络安全来源于“游戏中的皮肤”。简单而值得重申。你抵押愿意可能失去的越多，我们才可以更相信你作为一个验证人。虽然燃烧能源确保了pow的链安全，但“经济价值的损失 ”确保了POS链的安全。 6、寡头垄断设计。合作博弈理论，是协议将无法完全减轻网络中固有的集权力（即规模经济）的博弈的名称。这意味着分析所有边缘案例影响着自利卡特尔行为。值得注意的是，协议应该能避免卡特尔验证人欺凌非卡特尔验证人（即 “友好”） 7、 追责安全。设计应使得尽可能的能将故障归因于某个不良行为者。Casper依赖于削减归因拜占庭行为的能力。 8、合理的活跃度。设计不允许攻击者阻止区块链的不间断提议的发起和对检查点/区块块进行投票。这就是Casper与其他实现方式（如Tendermint）的区别，Tendermint如果没有同步实现安全性，它将“锁定”。 9、 最小同步性假设。为了让其活跃和不阻断区块链增长，Casper具有最小的同步性假设。事实上，我们预计节点每几个月都不会频繁登录。 10、去中心化的事物应该能够被重新生成。一个协议只有在能够从永久删除所有其他节点，从只留下一个节点中完全恢复才能算是去中心化。可用性，而不仅仅是一致性（同样，Tendermint很容易被“阻挡”，无法重新生成;每个分支的验证人集合将不断变的更小根据Matthew Wampler-Doty和Vlad的观察)。 11、反审查。主要的权衡的是有一种新的攻击维度是验证人故意离线。不过，卡特尔的审查制度在这里是更大的罪恶。选择审查制度的相对成本与奖励和其他处罚（作为存款的百分比）将是获得这项权利的关键。 进一步阅读 PoS设计理念 Casper历史（上面的链接） 挑战 这里提供了更广泛的Ethereum面临的挑战的列表。 POS的挑战 无利害关系 - 如果链进行了分叉，任何验证人的最优策略是在每个链上都进行验证，以便验证人获得奖励，而不考虑叉的结果。 长程攻击 - 与51％的攻击相同的机制（使得更长的链条以攻击者的方式重写账本），但不只是攻击了前面的6个区块，而是回朔到更早的链的历史中(比如6万个区块)。这是PoS的一个问题，因为它没有工作量证明重写一个很长的链。 解决这两个挑战的想法来自于slasher (以及其改进的变体)。要点是： （1）验证人是已知的，这允许在验证人级别的错误归因; （2）通过“削弱条件”强烈地抑制某些行为，可以减轻这些问题。 再次，这个例子对于了解Casper团队对共识算法设计的观点至关重要：我们可以将经济机制设计用于安全的分布式系统。 对POS的批评 逆向选择 — 由于有潜在的严厉惩罚，很多中等或者厌恶风险的候选验证人可能会不参加验证人。那么人们可能会争论那些寻找游戏规则漏洞的人更有可能成为验证人并获取更多利益。更广泛地，可以这么说—一个好人永远的得不到比坏人更好的回报。 回应: 这是未来的要解决的工作，也是研究团队的重点领域：密码经济学。随着这个机制的参数化深入，团队将迭代的去不断优化参数，平衡风险回报与存款规模的比例和他人的行为(拜占庭行为)。 值得提的是这个问题同样存在于比特币中。 富有的变的更富有 — 另外一个共同的担忧是当人们知道“共识算法是基于你持有多少的代币”，这可能会加剧在这个加密货币生态系统中财富的不平等，同时更广泛的发生在全球的经济中。 回应: 这里的主要观点应该是POS和现行基于算法的比特币POW相比较是相对平等(如拥有大资金的获得较少的好处)。正如上面讨论的关于PoS的概述，PoS削减了规模经济，这减少了矿工的集权。而且，在PoS中，一美元就是一美元。所以根据合理的直觉判断，反对PoS将加剧财富不平等，这实际上是对现状的一个不平凡的改进。 题外话：为了在PoS中具有不规则的扩张或者阶梯式的财富分配(一个消除财富不平等分配的新维度)，我认为有必要拥有成熟可靠的身份或者荣誉系统。否则，较大的资金池将会有“女巫行为”假冒的身份也能够享受到阶梯式奖励系统的好处。然而，这个挑战将被进一步解决，这也超出了Casper的范畴。 对于Casper的问题/关注 “有多个Casper让人困惑” 很抱歉！这篇文章的目标是减少认知不对称。但是要回顾一下，Casper是以太坊家族PoS的研究和实现。这些不同的工作流将很可能殊途同归，但是协议研究的本质有时候需要在确定最佳方案实施以前去研究各种不同的方法。事情往往先变的越来越复杂，才会变得简单。 “Casper和Tendermint有什么区别？” 这里比较简单的回答是Casper重点关注活跃度(可用性)和可以接受相对不实时的安全(正确性)。虽然Tendermint是一个伟大的项目，但他的缺点时，如果检查点没有得到三分之二的投票，那么链出块将会停止。这就是为什么以太坊选择在Casper上做工作而不是使用Tendermint的原因。 引用Vlad Zamfir： Tendermint 更倾向一致性多于可用性，Casper 更倾向可用性多于一致性(参考 CAP理论 ) Tendermin 对于在线的验证节点没有检查潜在刚刚下线的验证节点的行为，Tendermint 没有做出惩罚。 更多的了解这个主题： Hudson Jameson 解释这个引用， reddit讨论板块 Vitalik & Jae Kwon, 以及 Tendermint 白皮书. “ 我们将要为一个价值280亿美金活跃的网络更换引擎?” 是的，这真的是非常有抱负和艰巨的事情。然而， 切换到 PoS 在很早的时候其实已经计划了，也是项目的指导原则之一。社区的成员非常链接以太坊改用 PoS 的计划。( 参考 以太坊冰河时代 —这条 PoW 举步维艰的调整的并被鼓励迁移到 PoS 上—这是被生态系统中众所周知的)。 不用多说这件事应该继续推进，但是团队将通过测试网络逐步推进变革。同时，最初的实现是混合的 PoS 模式，比起最终的纯 PoS 共识，这样做对经济和安全的影响相对较小。 “在实践中，交易一般在10个区块就被确认了。为什么最终确定需要通过一个50个区块的 epoch?” 我们在上面已经提过了，但是由于这个很重要，再提一次。 首先，Casper 将开启分片. 一开始我对这个并不是很了解，但这是因为我们需要先抛开 Casper。 以太坊有很多的目标，但其中之一就是在技术和环境方面提供可扩展的区块链解决方案。以太坊正在构建一个世界，在这个世界里数字货币在全球经济中将拥有更大的空间，数量级上将有很大增长。在这个愿景中，Casper 旨在防止 PoW 挖矿浪费能源，但是我们仍然需要在技术上扩展 Ethereum。这个项目一大部分涵盖在了分片技术中。 今天，网络中的每个节点做了所有事情。分片探索了各种办法来减少每个节点所担负的责任。这些细节超出了这篇文章的范畴，但是一个例子可能提出一个问题“有没有一种办法创建一种新机制，只用很小的节点组来验证每一个交易？” 另外的信息时，Casper 提供的定期最终共识在实现分片的过程中将带来更小的安全风险。 第二点，明确共识机制更被推崇一致性的区块链所青睐。引用自 Vitalik： 在一个 PoW 链中，如果发生类似 geth/party 的共识分叉，然后两条链同时又在增长， 同时交易所只运行了一种客户端或者有风险存款验证在一条坏的链上。但是如果交易所等待 Casper 共识，那么在50/50的分叉中可能任何一条链都不会最终共识。这增加了平台的安全性，因为在极端情况下，它“默认不去做最终共识” 好过于共识错误的东西。 总的来说，与直觉相反，明确的共识对交易清算不是那么重要，对区块链的扩展性和安全性更重要。 未来的工作 执行 最终确定FFG和CBC的设计 实现概念论证的代码 在测试网络部署 一个Casper 思考 Casper PoS 的最终状态。如何利用 FFG 和 CBC 的概念来整合成一个最终令人信服，安全和优雅的版本。 参数优化 对于一个确定的机制，优化用于预期激励方式的参数和常数。在机制的设计和发掘上进行迭代。 社区培育 写更多除了各种研究工作进度有关而于思想过程相关的文章，继续于以太坊， PoS 和更广泛的数字社区接触。 将发布的之后的文章 History of Casper Part 6 Deep dive into how Casper enables sharding Deep dive into how and why Casper is different from competing designs Non-monetary measurs of “stake” and “skin in the game” (i.e.$10,000 is worth more to average person than billionaire
Griefing Factor Analysis 2.0
词汇表

我们在这篇文章中介绍了很多概念，您会碰到其他一些常见的概念，你将不可以避免的陷入大量的Chrome网页中。这是您需要了解最有用和最常见的概念的粗略总结。希望有帮助！(译者：下方词汇表请自行浏览，不进行翻译)

Proof of Stake — a category of consensus algorithms for public blockchains that depend on a validator’s economic stake in the network.

Casper — Ethereum’s proof of stake research and projects.

Finality— Once an operation in a system completes, the system doesn’t allow for the operation to be reverted (Vitalik on settlement finality). Context: in proof of work, finality is probabilistic and implicit. Casper is designing mechanisms that explicitly enforce finality.

Fork Choice Rule — A fork choice rule is a function, evaluated by the client, that takes as input the set of blocks and other messages that have been produced, and outputs to the client what the “canonical chain” is.

Slashing Conditions — Set of rules that, if violated, penalize the validator.

Sybil Attack — an attack wherein a reputation system is subverted by forging identities in peer-to-peer networks.

3 E’s of Sybil Resistance — 1. Entry Cost 2. Existence Cost 3. Exit Penalty. (coined by Dominic Williams).

Nothing-at-stake problem — A proof of stake implementation challenge that refers to the inherent lack of downside for validating both chains in the case of a fork. It is a well-known problem of proof of stake that is considered solvable. For example, refer to Slasher.

Bribe attack — Attacker uses a bribe to change the Nash Equilibrium of a validator’s game theory framework to undermine the security of the protocol. (More context in History of Capser pt 2)

Long range attack — Same mechanism as 51% attack (make a longer chain that “rewrote” the ledger in the attacker’s favor), but instead of starting the attack 6 blocks back, go much further back in the chain’s history (think 60,000 blocks).

DAG — “Directed Acrylic Graph. A finite directed graph with no directed cycles. (ETH Stack Exchange).

GHOST — “Greedy Heaviest Observed Subtree.” It’s a chain selection rule with the objective of fast confirmation times while limiting compromises in security or decentralization. (Original Paper, ETH GHOST)

Synchronicity — Refers to the timing assumptions around the messages (i.e. synchronous, partially synchronous and asynchronous).

Liveness — “Availability.” Protocol-following nodes eventually decide on a value. Opposite would be a network state that is blocked from deciding on a value (i.e. Tendermint without 2/3 votes at a given depth)

Safety — “Correctness.” Protocol-following nodes decide on the same value. Another intuitive proxy is whether two conflicting blocks can be committed.

FLP Impossibility Theorem — “It’s impossible to have a live, safe and asynchronous network” (formally proven as well).

Accountable Faults — Faults that can be attributed to a specific validator or specific set of validators.

Byzantine Faults / Byzantine Behavior — Any fault presenting different symptoms to different observers. Non-protocol following behavior.

Byzantine Failure — Loss of a system service due to Byzantine faults in a system that requires consensus.

Byzantine Fault Tolerance (“BFT”) — Ability for a system to tolerate Byzantine faults. 1/3 Byzantine fault threshold in asynchronous networks. 1/2 in synchronous networks. (BFT consensus algorithms include Paxos, PBFT as well as newer Casper and Tendermint).

Nakamoto Consensus — PoW-based bitcoin-style consensus building. Also, Nakamoto-style Consensus exists, which would be chain-based PoS as opposed to BFT-based PoS.

Tendermint — Proof of Stake implementation that focuses on consistency. Never forks with less than 1/3 malicious actors, but downside is that the chain can stall if a chain lacks 2/3 of the validator votes.

Validator — An entity that validates checkpoints/blocks of a blockchain for rewards. A miner analog in PoS.

Validator Set — Set of validators for a given chain at any given time.

Checkpoint — In FFG, it is a block spaced in regular intervals (i.e. every 50 blocks) where the PoS validation mechanism is overlaid on top of the underlying PoW chain (e.g. Ethereum with ethash)

Epoch — In FFG, it is a 50 block period where a validator can vote on the finality of its final block (i.e. checkpoint). PoW miners mine blocks and PoS validators validate checkpoints every epoch.

Dynamic Validator Sets — The idea that a blockchain can have changing set of validators throughout a period. Treatment of this is a huge breakthrough in BFT-style consensus algorithms. Tendermint was first notable breakthrough. Casper is also working on this actively.

Equivocation — The act of a validator sending two messages that conflict with each other (more specific definition on slide 28 of this deck).

Dunkles — Mechanism that includes data from non-dominant block into the dominant block. This provides better incentive mechanisms and notably helps alleviate the nothing-at-stake problem (link).

Proposal Mechanism — Mechanism by which a validator in the set will suggest a block to assess for justification or finalization.

Justification —In FFG for example, 2/3 of a validator set voting on a fresh checkpoint that a checkpoint is the accurate record. This is the intermediary step for a finalized checkpoint.

Finalization — In FFG for example, 2/3 of a validator set voting on a justified checkpoint that a checkpoint is the accurate record. The completion of this step gives a checkpoint finality.

State Transition System — A system that maintains a given state (e.g. set of transactions or accounts) and its mutations over time (i.e. transition). Bitcoin, Ethereum, and other public blockchains can be considered state transition systems.

Protocol Utility Function — “…a formula that tells us how well the protocol is doing, that should ideally be calculable from inside the blockchain. In the case of a proof of work chain, this could be the percentage of all blocks produced that are in the main chain. In Casper, protocol utility is zero for a perfect execution where every epoch is finalized and no safety failures ever take place, with some penalty for every epoch that is not finalized, and a very large penalty for every safety failure. If a protocol utility function can be formalized, then penalties for faults can be set as close to the loss of protocol utility resulting from those faults as possible.” (from Triangle of Harm)

总结

好了，这是一个“初步了解”的很多信息，但是现在你基本上掌握了所有的基本知识，并且可以深度到任何 Casper 的交流。我写这篇文章的目的是 （1）从大量的关于 Casper 的内容中整理提供一个总体的大纲 （2）巩固我自身队 Casper 的认识因为我正在研究以太坊(Casper， 分片，Gas 价格) (3) 勾起大家对 PoS，Casper 和以太坊的认知和讨论 (4) 驱动有才华的数学家，经济学家，计算机科学家和开发者们开始一同来解决我们的问题。

如果你想更深入地了解，请查阅文章中的链接参考资源，考虑为未来的工作做贡献，并与你身边了解数学，计算机科学，经济学，博弈论和分布式系统的朋友（不管是否在数字货币领域）谈谈以太坊和 Casper。

特别鸣谢 Vitalik Buterin, Vlad Zamfir, Virgil Griffith and Karl Floersch 参与讨论。所有的错误都是我自己的。

谢谢Vitalik Buterin和Karl Floersch.

原文链接: https://medium.com/@jonchoi/ethereum-casper-101-7a851a4f1eb0作者: jon choi
`
展开全文
• awesome-ethereum, awesome Ethereum Ressources的精选清单 这是一份精选的Ressources的精选列表。 灵感由的awesome去。首先，请快速查看一下贡献指南。 感谢所有的贡献者；你摇滚 ！如果看到链接或者项目不再保持...
• The Ethereum Foundation publishes a <a href="https://github.com/ethereum/tests">test suite for Ethereum VMs</a> for Ethereum VMs to help ensure consistency among implementations. Manticore currently ...
• ethereum-ruby, ruby 语言的Ethereum库 用于 ruby的 EthereumEthereum的简单库。特性纯 ruby 实现支持批量调用的IPC客户端支持批量调用的HTTP客户端编译和部署固态合同使用构造函数参数部署合同。将已经部署的协定...
• <div><h2>Description <p>https://github.com/ethereum/tests</p> ...集成 <a href="https://github.com/ethereum/tests">ethereum tests</a> 的测试用例</p><p>该提问来源于开源项目：citahub/cita</p></div>
• The course begins by explaining Bitcoin, Altcoins, and Ethereum, followed by taking you through distributed programming using the Solidity language on the Ethereum Blockchain. By the end of this ...
• ethereum-bootstrap, ethereum private 链的入门套件 Ethereum Bootstrap测试账户私钥是放在Github上的公开数据，千万不要用于正式环境中或者公有链上。如果在测试环境之外的地方使用这些私钥，你的资金将会被窃取 ...