繁體中文
  • 繁体
    简体中文
  • 繁体
    繁體中文

青苹果

守护您的资产安全

添加客服微信号向客服提问咨询

区块链入门:构成区块链的技术要素有哪些?

2018-12-01 07:36:50 81 引领区块链+电商发展,青苹果带来无限可能

在区块链技术并没有发明什么新技术,更准确的说是区块链不是一种技术,而是整合现存技术而形成的一个综合性解决方案。下面介绍构成区块链的技术要素,一句话可以概括:密码学是基础,共识算法是灵魂。
区块链得以运行的框架,诸如:P2P网络,以及更底层的通信协议,并没有多大的创新,不多赘述。

构成区块链的技术要素有哪些

密码学是基础

密码学内容艰深复杂,本人水平有限,只能是记点学习笔记,不敢多扯了,有兴趣的朋友可深入研究。


1 Hash算法
简单来说,就是把任意数据变为固定长度的二进制,只要是最终以二进制形式存储的数据,就能通过hash算法变为固定长度的一串数据。

一个优秀的hash算法有一下四个特点:

  1. 正面快速:就是说加密的速度要在有限时间和有限资源内完成,且越快越好。
  2. 逆向困难:就是说给你一个加密后的hash值数据,要想逆向破解获得加密前的明文是极其困难的。
  3. 输入敏感:明文只要发生哪怕一点点改变,进行hash运算后的值都会产生很大的改变。
  4. 冲突避免:不同的明文,他们进行hash运算后的hash值基本不可能一样。

区块链中常用两个密码学哈希函数,一个是SHA256,另一个是RIPEMD160(主要用于生产比特币地址)。Hash算法还有一个重要特性是难题好友性,难题友好性指的是没有便捷的方法去产生一满足特殊要求的哈希值。
哈希函数的难题友好性构成了基于工作量证明的共识算法的基础,通过哈希运算得出的符合特定要求的哈希值,可以作为共识算法中的工作量证明。比特币的安全保证依赖于哈希函数的安全性,如果哈希函数被攻破,POW共识算法就会失效。


2 非对称加密

  • 对称加密:加密算法和解密算法都是同一种模式,只用一把密钥保证加密数据的安全;甲必须把密钥告诉乙,否则乙无法解密。那么保存和传递密钥,成为最重要也最头痛的问题。比如:《潜伏》里余则成使用的密码本,一旦敌人获取到了这个密码本,我方的通信就再无秘密可言。
  • 非对称加密:其实质是利用数学难题的非对称性。例如:两个很大的质数相乘很容易知道结果,但知道一个很大的数,很难把它分解成两个质数。

3 Merkle哈希树
基于哈希值的二叉树或多叉树,在计算机领域,Merkle树大多用来进行完整性验证处理,在分布式环境下,其进行完整性验证能大量减少数据传输和计算的复杂程度。
区块链就可以看作一类使用哈希指针的链表,这个链表链接一系列的区块,每个区块包含数据以及指向表中前一个区块的指针。区块链中,前一个区块指针由哈希指针所替换,因此每个区块不仅仅告诉前一个区块的位置,也提供一个哈希值去验证这个区块所包含的数据是否发生改变。

4 椭圆曲线算法
椭圆曲线密码算法(Elliptic Curve Cryptography,ECC)是基于椭圆曲线数学的一种公钥密码算法,其安全性依赖于椭圆曲线离散对数问题的困难性,是非对称算法的一种。
比特币中使用基于secp256k1椭圆曲线数学的公钥密码学算法进行签名与验证签名,一方面可以保证用户的账户不被冒名顶替,另一方面保证用户不能否认其所签名的交易。用私钥对交易信息签名,矿工用用户的公钥验证签名、验证通过则交易信息记账,完成交易。


5 公钥、私钥、签名、验签、证书等概念

  • 公钥、私钥:一般来讲,私钥用来进行解密和签名,是给自己用的。公钥由本人公开,用于加密和验证签名,是给别人用的。
  • 签名:内容->hash->digest->私钥加密->签名。
  • 验签:用公钥解密签名得到摘要,然后用原始文件经过hash得到摘要,与解密出的摘要进行对比。
  • 证书:数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息,以及申请人的公钥进行签名(相当于加盖发证书机构的公章,即CA的私钥加密生成)后形成的一个数字文件。

共识机制是灵魂

共识机制的本质是要解决分布式系统一致性的问题。分布式系统一致性问题的研究一直在进行,也是计算机科学中既古老又前沿的重要研究方向,同时共识机制也是区块链中最难理解的概念之一。
区块链网络是一个完全靠陌生人节点记账和维护、非安全的网络环境,要让这些未曾谋面的人按照规章去办事,还要防止有Bad boy作恶,一定有一种更普遍、更抽象的力量来驱动它。共识机制和激励机制就是区块链的引擎,使得区块链得以持续运行的动力之源。
什么是共识?
指一个社会不同阶层或不同利益的人所寻求的共同认识、价值、理想。我们工作生活的方方面面都需要共识,可以说只要有多人协作,共识机制必不可少。
小到决定周末要到哪里去玩,大到中美贸易磋商,都是共识建立的过程。比如说:一个学生社团要推举领袖,是个怎样的过程呢?
宣讲(相互认识确认是社团成员)->投票(一人一票公开透明)->计票(有公信力的计票人和监票人,现场监督)->共识(达成一致)。
如果一个人动了歪脑筋,想用非正常手段左右共识结果,其实有很多的点可以突破,最简单可能是在投票环节搞一下贿选,或者控制计票人和监票人,这样就在一个共识过程中出现了作恶节点。
然而在区块链是一个陌生人的网络,没有信任基础,没有公开透明的计账机制,没有监督的过程,想要达到全网的最终一致性,是一件极为困难的事情。
正如所有硬币都有两面,陌生人的网络环境也有优势。

  • 一是计算机之间的通信速度要远超人类,共识的通信过程速度极快;
  • 二是参与者众多,作恶节点想要扭曲共识过程难度很大。

 

共识机制也是当前区块链技术创新的重要组成部分。现今区块链的共识机制可分为四大类:工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池。


1 工作量证明机制 POW
比特币采用的共识机制。
共识机制在以前一般被称为证明方式(Proof),因为比特币采用工作量证明(即Proof-Of-Work,简写为POW)。通俗讲就是“通过工作以获得指定成果,用成果来证明曾经付出的努力”。
我们日常工作生活中经常使用工作量证明,比如:学生考试成绩,毕业证以及驾照等,这种证明方式的一个显著特征是——往往需要很大的工作量才能拿到指定成果,但这个成果很容易验证。因为我们一般很难去实时监督一个人是否真的付出了这些工作量,所以只能使用工作量的结果来证明。
具体实现方式,比特币采用哈希(Hash)算法。比特币是对整个区块进行哈希运算,以得到符合条件的值。这个过程将来耗费大量的算力。比特币采用SHA256哈希运算,且每次都是连续进行两次SHA256运算才能作为最终结果,前一次运算的结果作为后一次运算的输入,即Double SHA256,一般简称SHA256D。
POW的核心要义为:算力越大,挖到块的概率越大,维护区块链安全的权重越大。相对其他共识机制而言,POW逻辑简单,容易实现,容错达50%,其安全有严格的数学论证。
在POW建立共识的过程中,区块链的维护者的工作特别像是在“一堆沙子中去寻找金子”,所以这些维护者被形象的称为矿工,而计算哈希值的过程被称为挖矿。


2 权益证明机制 POS
POW并非完美,其中被指责最多的主要有两点:一是浪费能源,二是风险和收益博弈必然导致联合挖矿,而大算力矿池可能会对系统的去中心化构成威胁。
于是在2011年,一个名为Quantum Mechanic的数字货币爱好者,在Bitcointalk论坛提出Proof-of-Stake(POS)证明机制,该机制被充分讨论之后证明具有可行性。如果说POW主要比拼算力,算力越大,挖到一个块的概率越大,POS则是比拼余额,通俗说就是自己的手里的币越多,挖到一个块的概率越大。
POS只是代表一种共识机制理念,具体有多种实现方式。
现在的大部分新币都是基于POS机制,或POW+POS的机制。基本解决了POW机制的能源浪费问题。


3 股份授权证明机制 DPOS
比特股(Bitshares)项目于2013年8月开始启动,这是一个野心勃勃的项目,对区块链做了很多改造,并引入许多新概念和特征。此时POW和POS都已成功运行许久,彼此优劣已被反复讨论,两大阵营时至今日依然争论不休。
按照项目规划,比特股对交易容量和区块速度有极高要求,显然POW或POS都达不到要求,于是比特股发明了一种新的共识机制——Delegated Proof-Of-Stake(DPOS),即股份授权股权证明。
DPOS很容易理解,类似于现代企业董事会制度,比特股系统将代币持有者称为股东,由股东投票选出101名代表,然后由这些代表负责产生区块。那么需要解决的核心问题主要有:代表如何被选出,代表如何自由退出“董事会”,代表之间如何协作产生区块等。
持币者若想成为一名代表,需先拿自己的公钥去区块链注册,获得一个长度为32位的特有身份标识符,用户可以对这个标识符以交易的形式进行投票,得票数前101位被选为代表。代表们轮流产生区块,收益(交易手续费)平分。
如果有代表不老实生产区块,很容易被其他代表和股东发现,他将立即被踢出“董事会”,空缺位置由票数排名102的代表自动填补。
从某种角度来说,DPOS可以理解为多中心系统,兼具去中心化和中心化的优势。前几个月大火的EOS就是采用这个机制。


4 验证池 PooI
是目前行业链大范围在使用的共识机制。
Pool验证池是基于传统的BFT(拜占庭容错)及其变种的共识方案。关于拜占庭将军问题、Pasox算法以及计算机大神LESLIE LAMPORT(2013年图灵奖得主)的有趣故事。
叫验证池,是因为BFT算法需要参与者能够相互辨识,一起组成一个池来决定最终结果。Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。它的缺点是:该共识机制能够实现的分布式程度不如PoW机制,更适合多方参与的多中心商业模式。


总结:
开头提到:共识机制解决的本质问题是分布式数据一致性的问题!这是个博大深奥的研究课题,对它的研究和创新从未间断。
在不可能三角理论(去中心化,安全,环保不能同时兼备)中,POW彻底抛弃节约能源的需求,通过巨大算力来维护系统安全和去中心化特征。POS和DPOS几乎不费多余电力,但不可避免在另外两个特性做出牺牲。所以说没有完美的共识机制,只有更合适的共识解决方案。