ERC20 Short Address Attack

什么是ERC20 代币大家应该都很熟悉了,代币也叫 token, 他不是像比特币,以太坊等虚拟币这样建立在大量技术人员的辛苦工作基础之上,用于维持公链运行的虚拟货币。代币一般是依赖于以太坊平台,就是一个以太坊平台上面的一个智能合约里面记录的数字。 所以说token没有任何价值,每个人都可以在1分钟之类创建出无限的token。那么为什么现在有这么多的token价格这么高,还有这么多人去交易呢? 一般…

HMAC算法及其应用

MAC 在现代的网络中,身份认证是一个经常会用到的功能,在身份认证过程中,有很多种方式可以保证用户信息的安全,而MAC(message authentication code)就是一种常用的方法。 消息认证码是对消息进行认证并确认其完整性的技术。通过使用发送者和接收者之间共享的密钥,就可以识别出是否存在伪装和篡改行为。 MAC是通过MAC算法+密钥+要加密的信息一起计算得出的。 同hash算法(消…

洋葱路由Tor及其攻击

洋葱路由是在1990年中期,由美国海军研究室发起的一个项目,最初目的是为了保障美国情报人员在网上的信息安全,后面交由美国国防高级研究计划局进行开发。 Tor是洋葱路由The Onion Router的缩写,它是一个由上千个中继器组成的开放网络,用于隐藏用户的地址和网络使用信息。其原理就是用户和最终目标之间通过一个个的中继器来传递消息,Tor会将数据和下一个中继器的地址进行加密,在通过中继节点的时候…

女巫攻击及其防范

什么是女巫攻击 之前的文章在讲拜赞庭容错的时候,我们提到了女巫攻击Sybil Attack。那什么是女巫攻击呢? 女巫攻击这个词来源于Flora Rheta Schreiber 在1973年的小说《女巫》,这本小说写的是对兼具多种人格的Sybil Dorsett进行心理治疗的故事。一人化身为多人,这个就是女巫攻击的本质。 在一个单纯的分布式P2P网络中,任何节点可以随意的加入和退出P2P网络,没有…

一致性hash算法

Hash 算法也叫做散列算法,他可以让任意长度的数据M映射成为长度固定的值H。 Hash算法的作用 Hash算法的第一个作用就是数据的快速存储与查找。写过程序的人都知道,基本上主流的编程语言里面都有个数据结构叫做Map(dictionary或者 hash table)。它是根据key来直接访问结果的数据结构。key的种类多种多样,形式各异,怎么通过key来快速查找结果呢?如果将key通过一定的Ha…

理解分布式一致性:拜占庭容错与PBFT

之前的几篇文章我们讲了分布式协议里面的Paxos协议和Raft协议。这两个协议主要适用于可信节点的情况,所谓可信节点就是节点只会出现因为系统或者网络问题的宕机情况,不会有恶意节点。 那么如果有恶意节点的情况下,我们怎么去达成共识呢?一个很简单的办法就是少数服从多数,下面我们看一下拜占庭是做的。 拜占庭问题 先看一下我们要解决的问题,也叫做拜占庭将军问题。 话说有一天有n个拜占庭将军相约于魔法师大峡…

理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos

在前面一篇文章我们讲到了理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos,本篇文章我会讲解Paxos协议的另外两个变种:Generalized Paxos和Byzantine Paxos。 Generalized Paxos 我们大家都知道,分布式一致性的最大问题就是数据同步的问题,而产生问题的原因就是冲突,按照之前讲到的各种Paxos协议方案,发生了冲突…

理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos

在前面一篇文章我们讲到了理解分布式一致性:Paxos协议之Multi-Paxos,本篇文章我会讲解Paxos协议的另外两个变种:Cheap Paxos和Fast Paxos。 Cheap Paxos Cheap Paxos 是Basic Paxos 的继承版本。其实所有的Paxos变种都来自与Basic Paxos,都是基于它来进行改进的。那么Cheap Paxos有什么特点呢? 在Basic P…

理解分布式一致性:Paxos协议之Multi-Paxos

在前面一篇文章我们讲到了理解分布式一致性:Paxos协议之Basic Paxos,本篇文章我会讲解更加通用和普遍的Multi-Paxos协议。 在Basic Paxos协议中,每一次执行过程都需要经历Prepare->Promise->Accept->Accepted 这四个步骤,这样就会导致消息太多,从而影响分布式系统的性能。 如果Leader足够稳定的话,Phase 1 里面的Prepare-…

理解分布式一致性:Paxos协议之Basic Paxos

在理解分布式一致性:Raft协议中,我们详细分析了什么是分布式一致性和实现分布式一致性的Raft协议,本文我们主要讲一下分布式一致性的Paxos协议。 大家可能在各个场合都听说过Paxos协议,毕竟这个开创性的协议是很多分布式协议的鼻祖,比如后面比较有名的Raft协议就是基于Paxos协议发展而来的。现实中也有很多产品在使用Paxos协议,像是Google的Chubby,Spanner,IBM的S…