技术基础

区块链的技术定义

  1. 区块链的存储基于分布式数据库; 区块链主要一个特点就是去中心化
  2. 数据库是区块链的数据载体,区块链是交易的业务逻辑载体;
  3. 区块链按时间序列化区块数据,整个网络有一个最终确定状态;
  4. 区块链只对添加有效,对其他操作无效;区块链是不能删除的,这个也是不可纂改性质决定的。
  5. 交易基于非对称加密的公私钥验证;公私钥目前属于比较安全的非对称加密
  6. 区块链网络要求拜占庭将军容错;
  7. 共识算法能够“解决”双花问题。

区块链的类型

区块链主要是分为共链和联盟链

公链是任何节点都可以上链,比如比特币,任何节点只要挖到矿就可以把区块打包,发布到比特币的链上。

联盟链是有门槛的,也就是说不是任何节点都能够上链,如果想要上链,必须经过别人允许,比如你必须经过门卫的允许,才能进入某些单位。

区块链的核心技术组成

  1. P2P 网络协议

这个协议很好理解,就是以前我们用的比特下载,或者其它一些类似的p2p下载工具。

比特币中低层就是基于P2P网络协议,每个节点都是一个比特节点。

  1. 分布式共识算法

2.1 PoW:通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。比特币本身的演化很好地诠释了这个问题,中本聪设计的思路本来是由 CPU 计算。随着市场发展,人们发现 GPU 也可以参与其中,而且效率可以达到十倍百倍,现在,这项工作基本以 ASIC 专业挖矿芯片为主。

这是比特币采用的算法,也就是俗称的挖矿。

2.2 PoS:股权权益证明,其实就是现实中的股份公司制度,谁的股份多,谁的话语权就大,获得的企业分红就大。

  1. 加密签名算法

区块链需要使用加密算法

每个币种使用的加密算法是不一样的,比如比特币使用的sha256 hash算法,来保证区块不被纂改。

另外区块链一个核心的算法是公私钥算法,比如我们创建账户就是通过公私钥算法来实现的,这里还有基于一个比较不可逆特性,就是无法通过公钥推测出来私钥。

比如比特币以前会有报道说丢失私钥导致大量比特币无法使用的情况,所以私钥只要丢失,基本就不可能恢复。

  1. 账户与交易模型

UTXO 是“unspent transaction input/output”的缩写,翻译过来就是指“未花费的交易输入输出”。

在比特币中是使用UTXO的,有点类似账本,就是确定某笔交易是否是合法的,也就是说你不能花费你没有的钱。

本文由 mdnice 多平台发布