HotStuff 工程设计与实现

本文内容源于 Shardora 区块链对 HotStuff 的工程实现,相关代码见链接。Shardora 是一条基于多分片扩容、多交易池并发共识的高性能区块链,使用改进的 PoS + HotStuff 来保证共识的性能与安全性。</blockquote...
Published on July 04, 2024 | 17 min read

从 HotStuff 回看 Tendermint (三)

本篇文章是阅读了《区块链架构与实现——Cosmos 详解》之后,对 Tendermint 理解更新。包括部分协议设计的底层逻辑,从工程实现的角度(而不仅仅是原理上)对具体模块进行阐述,比如 Proposer 轮换以及 Slashing 策略。本系列共有三篇文章,此为第三篇。 从 HotStuff 回看 Tendermint (一) <a href="https://xufeisofly.gith...
Published on November 16, 2024 | 12 min read
最新

BLS 签名与在 HotStuff 中的使用

在这篇 Fast HotStuff 文章中我们初步引入了 BLS 聚合签名来替代原生 HotStuff 中的阈值签名,本篇文章是 Shardora 在进行 Fast HotStuff 改造过程中对 BLS 聚合签名和门限签名的学习和思考,帮助理清思路。BLS 签名与特性BLS 代表 Boneh–Lynn–Shacham,是由斯坦福大学教授Dan Boneh等人于2001年提出的...
Published on November 07, 2024 | 9 min read

理解 Optimism 设计 P1 - 架构设计

本文专注于 Optimisim 的架构学习和思考,是第一篇,希望从 OP 入手,逐渐拓展对 Rollup、二层网络等方案的理解。在前面写过一些列文章涉及了常见的共识协议,如 HotStuff,Tendermint 等传统 BFT 共识以及更为综合和现代的以太坊 Gasper,在学习了它们后,我对 Rollup 这种二层网络有另一个观察角度。在开发一条公链并设计共识模块时,我们当然可以选择成熟的共识协议或 SDK 比如 Cosmos,但如果我希望直接让现有的公链帮我们的公链做共识,同时实现 Safety、Liveness、Responsivenes...
Published on October 18, 2024 | 9 min read

从 HotStuff 回看 Tendermint (二)

本篇文章是阅读了 Tendermint Core 源代码之后,对 Tendermint 理解更新。包括共识协议的流程设计和实现细节。此外,建议读者阅读这篇论文,它涉及了 Tendermint Core 共识部分的具体实现,而原始的 Tendermint 论文更多是理论上的。本系列共有三篇文章,此为第二篇。 ...
Published on September 15, 2024 | 18 min read

以太坊的 PoS - Part3 Casper FFG

本文是介绍以太坊 PoS 共识的第三部分。最终确定性 Finality最终确定性(Finality)是指区块保证不会被回滚,会永远成为链的一部分。上篇文章介绍了作为以太坊 Fork Choice Rule 的 LMD GHOST,它使得共识协议拥有了不断出块的活性 Liveness,但仍然无法完全保证一个区块不会被恶意节点回滚掉,比如遭遇 Long Range A...
Published on September 06, 2024 | 11 min read

以太坊的 PoS - Part2 LMD GHOST

本文是介绍以太坊 PoS 共识的第二部分。共识协议是个组合学习以太坊 PoS 时,可以发现所谓的共识协议不是一个单一的协议,而是以下三个部分的组合。 Propose Rule: 区块发布规则,负责打包区块并发布到链上,比如以太坊的 Propose Rule 是 Proof of Stake,比特币是 Proof of Work,BFT 共识则是通过多轮投票机制对一个提案进行确认并提交。 Fork ...
Published on August 29, 2024 | 8 min read

以太坊的 PoS - Part1 共识协议总览

我打算写一个系列记录干掉以太坊的过程,系列中包括对以太坊的技术学习也包括自我思考和设计,逐步将好的机制应用到 Shardora 之中。由于之前几篇文章都是针对区块链共识算法的,因此打算先从以太坊的 PoS 入手。在 Shardora 共识协议开发之前我产生过两个疑惑?一个是 BFT 共识居然要求少于 1/3 的恶意节点,这听起来是个很强的信任假设,这真的可行吗?另一个是 HotStuff 共识这么好用,为什么主流的这几条公链不用,只是因为历史原因吗?在了解了以太坊 PoS 设计过程之后,我基本有了答案。接下来我会用三篇文章介绍以太坊 PoS 的设计思路和具体原理。...
Published on August 20, 2024 | 3 min read

关于区块链这几天我想到的

实在不是一个好名字区块链(BlockChain)这个词在中本聪的论文中本来是分开使用的(Block 和 Chain),不知怎么后来被合起来传播。这个名字实在是不好,太 technical 了,无论是「区块」还是「链表」都是软件领域的专业词汇,90% 的人乍一听都不知所云。看看 AI,「人工智能」这个名字简单形象,加上无数科幻小说和电影早已聊透,闭上眼睛就能想象出来是什么东西。再如「操作系统」,虽然偏技术感但也是容易理解的,至少人们知道这是个系统,可以在上面进行一些操作。而「区块链」在我脑袋里永远是一堆被绳子连起来的方...
Published on August 08, 2024 | 0 min read

从 HotStuff 回看 Tendermint (一)

本系列是对 Tendermint 的学习和理解,同时涉及理论和工程实现,并加入个人思考和总结。如题系列共有三篇文章,此为第一篇。 从 HotStuff 回看 Tendermint (二) 从 HotStuff 回看 Tendermint (三)在生产环境中,Te...
Published on August 05, 2024 | 13 min read

Fast HotStuff 理解和思考

原生 HotStuff 的局限相比其他 BFT 类共识算法,HotStuff(下文简称 HS) 通过增加一个投票阶段的方式实现了正常和异常情况下 O(n) 的通讯复杂度,并且没有牺牲响应性(Responsiveness)。具体请参考上篇文章HotStuff 工程设计与实现。然而,HS 有以下两个局限: 交易确认...
Published on July 22, 2024 | 3 min read

Sample Post

This post will show you how the content will look like in the post pages and how the headlines, quotes and quotes will be represented. Jekyll is mainly used to write simple markdown and after that it renders out a static pages, so you need to know the basics of writing markdown for that.For m...
Published on April 24, 2020 | 3 min read

How to Install and use WhatATheme?

What is WhatATheme? You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. &gt;You can rebuild the site in many different ways, but the most common way is to run <...
Published on April 22, 2020 | 3 min read

What is Jekyll? How to use it?

Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites. Think of it like a file-based CMS, without all the complexity. Jekyll takes your content, renders Markdown and Liquid templates, and spits out a complete, static website ready to be serv...
Published on April 21, 2020 | 2 min read