2019-11-17
前言MPT树,全称Merkle Patria Tree,是以太坊采用的一种经典存储结构。该结构不仅仅被以太坊所使用,像国内金链盟的Fisco Bcos联盟链就将该结构纳入了自身的存储体系。MPT树的概念可以说是很简单,就是merkle + trie,但又因为它是这些知识的综合体,故往往又弄的初学者一头雾水。这里采用一种层层递进的方式将这个MPT树的概念讲清楚...
阅读全文
2019-09-28
ECDSA-secp256k1以太坊数字签名算法使用的是椭圆曲线数字签名算法,英文简称ECDSA。其中EC是“椭圆曲线”的简称,DSA是“数字签名算法”的简称。椭圆曲线算法简单的说就是用X和Y坐标画一个曲线。这个曲线怎么画,需要很多个参数来确定。以太坊使用了一套叫secp256k1的参数确定了椭圆的形状。所以,以太坊的椭圆曲线签名算法全称就是ECDSA-se...
阅读全文
2019-09-24
前言多重签名:multi-signature,顾名思义就是多个用户对同一个消息进行数字签名。“用N把钥匙生成一个多重签名的地址,需要其中M把钥匙才能执行完成这个地址上的交易,N>=M,这就是M/N的多重签名”。
意义多重签名的作用意义非常,如果采用单独的私钥,尽管以目前的密码学可以保证无法被暴力破解,但是这个私钥不保证会以其他方式(...
阅读全文
2019-04-09
前言Redis作为内存型数据库,性能好,读写快。但是难免会遇到进程崩溃或者系统重启的时候,如果此时的内存数据没有被及时的保存,无法恢复,就会消失不见。所以数据的持久化是内存型数据库的重中之重。为此Redis对于数据持久化提供了两种持久化的方案,RDB(Redis DataBase)与AOF(Append Only)。下面我们来详细地了解下两者的区别于选择场景...
阅读全文
2019-02-24
前言Tendermint是Tendermint公司开源的的一个项目,是一个PBFT算法的变体优化,只需要两轮投票就可以完成共识。其本质上是POS+BFT结合的算法。
在上篇文章[PBFT学习笔记]的基础上,本文主要介绍Tendermint共识算法的核心流程和相关证明机制。
算法流程关于 Tendermint 算法的完整描述在这里。
下面这张图是 Tender...
阅读全文
2019-02-14
前言关于拜占庭将军的问题,也很有意思,可以当作故事看看。
PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。1999年,卡斯托(Miguel Castro)与李斯克夫(Barbara Liskov)提出了实用拜占庭容错算法,解决了原始拜占庭算法效率不高的问题。
PBFT作为一种许可制的一种算法,应...
阅读全文
2019-01-22
前言正如以太坊官方黄皮书所描述的一样:以太坊是一个巨大的状态机,每次交易的执行、区块的产生都是状态的迁移变化。
本文就将围绕以太坊的state模块进行讨论以太坊状态的变化。
关于以太坊中的“状态”状态的定义一个账户对应一个状态,而以太坊是所有状态的集合。比如,最开始的状态是:{A有10元,B有0元},后来A发起了交易,给B2元,状态变成{A有8元,B有2元}...
阅读全文
2018-09-27
什么是单点登录单点登录(Single Sign-On,简称 SSO)是一种身份认证方案,允许用户在一次登录后,访问多个相互信任的应用系统,而不需要为每个系统重复输入凭证。
举个生活中的例子:你登录了Google账号之后,可以直接使用Gmail、YouTube、Google Drive等服务,而不需要每次都重新登录。这背后就是SSO在起作用。
为什么要用SSO...
阅读全文
2018-08-05
前言比特币和以太坊在“账户”上实行了不同的账户模型。比特币采用UTXO表示“未花费的交易输出”,而以太坊采用“状态”来维护账户的变化。
比特币的UTXO模型Unspent Transaction Output,译为:未花费交易输出。UTXO是不可拆分的,也就是说使用过之后一定有新的UTXO产生。
举个栗子:A账户有20个BTC(有钱的主儿),口渴了,斥巨资2...
阅读全文
2018-07-16
前言逢年过节,微信群里抢红包已经成了一种”传统活动”。看似简单的”点一下就能抢到钱”的背后,实际上涉及了并发控制、一致性、性能等多个技术问题。一个完整的抢红包流程,远没有看上去那么简单。
本文从一个最简单的红包模型开始,逐步深入,聊聊抢红包背后的技术方案演进。
红包的基本模型发红包发红包时,用户需要指定总金额和个数。系统需要将这 N 个红包的金额分配好,让每...
阅读全文
上一页 1 2 3 4 5 下一页