带你入门区块链

前言本文面向于对区块链还没有概念的小白,分享一下我在学习区块链入门知识之后总结的笔记。行文结构包含几个部分的介绍:核心概念、核心技术、如何运行、共识机制及主流项目。基本概念区块链==智能合约平台1)区块链首先是一个分布式网络,让所有的独立节点想要达成共识去记录和Token相关的事情,是区块链

前言

本文面向于对区块链还没有概念的小白,分享一下我在学习区块链入门知识之后总结的笔记。行文结构包含几个部分的介绍:核心概念、核心技术、如何运行、共识机制及主流项目。

基本概念

区块链==智能合约平台

1)区块链首先是一个分布式网络,让所有的独立节点想要达成共识去记录和Token相关的事情,是区块链在技术上首先要解决的问题,这就是我们常说的共识过程,可以帮助所有人无门槛地构建属于自己的小经济系统,可以点对点的进行转账。

2)区块链和安全二字密不可分,其本质属于网络安全方向,用于实现去中心化的安全认证与存储

3)每个节点都是点对点P2P的,维护分布式账本,具有共识机制,不可篡改。

4)区块链本质上还是分布式系统,用著名的CAP定理来解释发现区块链其实是一个AP系统,如果强调“不可篡改”“去中心化”这两个特性,就会明显感觉到区块链跟不上大吞吐量的业务。因此在做技术选型的时候不要硬用区块链来做。

5)在技术上的七个特征:

  1. 区块链的存储基于分布式数据库;
  2. 数据库是区块链的数据载体,区块链是交易的业务逻辑载体;
  3. 区块链按时间序列化区块数据,整个网络有一个最终确定状态;
  4. 区块链只对添加有效,对其他操作无效;
  5. 交易基于非对称加密的公私钥验证;
  6. 区块链网络要求拜占庭将军容错;
  7. 共识算法能够“解决”双花问题。

6)区块链中最核心的两个技术点是共识机制和密码学,主要应用两类密码算法:哈希和非对称加密

7)区块链核心思想:一种所有人共同维护、无法篡改、人人都能验证的去中心化账本系统。用技术取代了对中介的信任。符合最长链准则。

区块链=区中心的分布式账本+共识机制+加密保障

8)区块是装交易的容器,链是把所有区块串起来的方式,

核心技术

无论是公链还是联盟链,至少需要四个模块组成:P2P网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。

P2P网络协议

1)P2P网络协议是所有区块链中最底层的模块,负责交易数据的网络传输和广播、节点发现和维护。

2)区块链其实是基于TCP/IP网络协议

3)P2P网络技术要解决两个主要问题,第一是资源定位,第二是资源获取,其中节点发现和局域网穿透是属于资源定位问题,节点交互协议是属于资源获取问题。

分布式一致性算法

1)经典的分布式一致性算法

  1. Raft协议:一种强Leader的一致性算法
  2. Paxos协议:能提供不同场合不同种类的一致性算法
  3. PBFT:具有拜占庭容错的一致性算法,是一种状态机,要求所有节点共同维护一个状态且采取行动一致

2)区块链共识算法

区块链技术把原来的分布式算法进行了经济学上的拓展,区块链中多采用PoW工作量证明算法、PoS权益证明算法,以及DPoS代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是融入了经济学博弈的概念。

  1. PoW:在给定约束条件下求解一个特定难度的数学问题,谁解的速度快谁就有权利记账
  2. PoS:一种股权证明机制,它的基本概念是产生区块的难度应该与你在网络里所占的股权成比例
  3. DPoS:将PoS共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账,提高了系统地吞吐量

加密签名算法

在区块链领域,哈希算法是应用得最多的算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。哈希类似于一个榨汁机,每一个区块都会包含前一个区块的哈希值,来保证不可篡改。

1)比特币使用的是SHA256作为PoW的计算方法,莱特币用的是Scrypt算法需要大内存的支持;以太坊使用了Dagger-Hashimoto算法的改良版本,并命名为Ethash,这是一个IO难解性的算法。

2)使用到RIPEMD160算法,主要用于生成地址

3)区块链Token系统的基石:公私钥密码算法。在比特币中使用的是ECDSA,从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。

image.png

4)设计元界区块链时,参考了多种基于轻量级的数据库,像NOSQL、SQLite

去中心化与性能

在CAP定理中C和P是可以相互调整的,区块链交易TPS与去中心化的具有不可调和性

为了提高TPS,有两种方案:

  1. Sharding分片,包含状态分片、网络分片。
    1. 网络分片是按照网络进行分区,区域内的交易归集在一起并在区域内验证,但是会带来跨区域分片的复杂性
    2. 状态分片是在以太坊上提出的方案,十分复杂
  2. 闪电网络,旨在解决比特币微小额支付的实时性问题

如何运行

1)大部分区块链是以比特币区块链为基础扩充的

2)运行步骤包括区块链中公开记账、创建创世区块、交易、打包Transaction、广播交易

  • 公开记账:也就是一份去中心化的账本,所有节点都保存一份副本可以查看历史交易,但是无法修改
  • 创世区块:是区块链的第一个区块,写入一些初始化的参数(比如预挖币数量、初始配置等)
  • 发起交易:发起人A准备一笔要给B的转账,交易中记录发件人地址A、收件人地址B、转账金额;A用自己的私钥对数据进行数字签名,证明“确实是我本人发起”,任何人拿到交易都能用 A 的公钥验证“确实是 A 签的”
  • 广播交易:A 将签名后的交易发送给自己连接的若干个全节点,节点接收、校验为合法交易后放到本地的交易池(Mempool)里,等待被矿工/验证者“打包”
  • 打包交易:矿工从交易池中选择若干交易,用一个特殊的信封把Transaction装起来,这个信封就是区块链中的“区块”,这个封装过程就是“打包交易”。
  • 新区块广播:全网验证,节点把新区块追加到本地链的末尾,并清除其中已包含的交易池记录,完成一次“上链”。

共识机制

PoW

工作量证明(Proof-of-Work,简称 PoW)是区块链最早使用的共识机制,它要求矿工通过反复计算哈希值的方式,证明自己消耗了足够的计算资源,从而获得打包新区块的权利并赢得区块奖励。

通俗来说:在区块链(比如比特币)里,挖矿其实就是一个比赛猜谜题的过程。这个谜题就是 PoW 共识机制设置的:谁能最快找到一个符合条件的哈希值。算力越强,单位时间能试的次数越多,就越有可能先找到答案、获得打包新区块的机会,同时拿到区块奖励。

image.png

PoW是一种简单粗暴的共识算法,面临了挖矿中心化严重的问题。

挖矿这个步骤,就是通过 PoW 共识算法来决定谁来记账。

POS

PoS区块链系统无需外部物理输入,相比PoW更环保,一定程度上抵御了51%攻击但是缺乏工业级的区块链应用。

应用类型

1)数字货币(加密货币)

  1. 总量透明公开:由白皮书规定,白皮书是一个区块链项目公开发布的一种阐述性文档
  2. 数字货币缓慢释放:由矿工挖掘
  3. 代码执行规则:在白皮书中规定
    • 数字货币的发行过程可以认为是一个区块链项目的核心利益分配的过程,也是一个社区激励的过程;如何把有限的代币派发给愿意为项目付出的社区人,是考量一个区块链项目运营成熟度的重要指标
    • 数字货币是中立性的工具,我们应当理性看待

2)ICO:首次代币发行,又称为区块链众筹,这是一种新型的融资模式,投资者可以用手中的比特币或其

他代币投到一些区块链创始项目。

3)去中心化金融(DeFi)

思考:还有哪些行业,可以使用区块链进行数字化呢?

只要是“多方合作又不完全互信”的地方,区块链都有机会帮忙做更可信的数字化。

数字钱包

1)把代币发送给其他人,需要别人提供钱包地址

可以通过区块浏览器查询代币交易:https://www.blockchain.com/en/

主流区块链项目

1)比特币:比特币的市值和交易量远远超过其他区块链项目。

2)以太坊:提供了智能合约这种可以自定义业务逻辑的工具,智能合约是一种可编程的合约,合约是由用户编写并且部署到区块链上的。

3)瑞波币(Ripple):一种支付结算协议,瑞波币不需要挖矿,它是通过一种叫“Open Coin”的算法,提供瑞波协议共识来达到记账的目的。

4)莱特币:把比特币的挖矿算法修改成了Scrypt算法

5)USDT:和美元一对一锚定,用户存入多少美元,就会产生多少USDT进入虚拟资产网络

6)中国的公链项目不多,分别有NEO、量子链、元界、公信宝、比原链。

  • 原创
  • 学分: 5
  • 分类: 通识
  • 标签:
点赞 0
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
不会喷火的小火龙
不会喷火的小火龙
0xa2ae...f650
密码学专硕在读,正在研究区块链技术领域。