DAG区块链技术:原理与实践
上QQ阅读APP看书,第一时间看更新

1.2 区块链相关技术简介

1.2.1 底层通信技术

区块链底层通信一般采用P2P通信。P2P技术使得网络上的沟通变得很容易、很直接,并且把对中间服务器的依赖减少到最小。P2P技术改变了“内容”所在的位置,使其从“中心”走向“边缘”。也就是说它改变了互联网现在以集中式的网站为中心的状态,资源不保存在服务器上,而保存在所有用户的PC机上。P2P技术使得其不再是被动的客户端,而成为具有服务器和客户端双重特征的设备。

P2P不是一项全新的技术,而是一个新的概念和应用。TCP/IP是现代互联网整体架构的基础,但在TCP/IP中并没有客户端和服务器的概念,所有的设备都是通信中平等的一端。只是由于网络带宽及计算机处理能力等的限制,才使得我们在沟通中出现了很多的中间环节,例如电子邮件系统中必须存在邮件服务器。现在,廉价的计算能力、网络通信能力、PC的存储能力强有力地推动了技术的迅速发展。

P2P技术有如下的特点。

非中心化:网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间环节和服务器的介入,避免了可能的瓶颈。P2P非中心化的基本特点,带来了其在可扩展性、健壮性等方面的优势。

可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能比较容易地满足用户的需要。理论上其可扩展性几乎可以认为是无限的。例如,在传统的通过FTP的文件下载方式中,当下载用户增加之后,下载速度会变得越来越慢,然而P2P网络却正好相反,加入的用户越多,P2P网络中提供的资源就越多,下载的速度反而越快。

健壮性:P2P架构天生具有耐攻击、高容错的优点。P2P网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开。P2P网络一般在部分节点失效时能够自动调整整体拓扑,保持其他节点的连通性。

高性价比:性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。目前,P2P在这方面的应用多在学术研究方面,一旦技术成熟,能够在工业领域推广,则可以为许多企业节省购买大型服务器的成本。

隐私保护:在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性将大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。

负载均衡:P2P网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好地实现了整个网络的负载均衡。

1.2.2 共识技术

共识机制是指在一个时间段内对事物的前后顺序达成共识的一种算法。共识机制是区块链的灵魂,它维系着区块链世界的正常运转。常用的共识机制包括三种。

工作量证明机制(Proof of Work, PoW),主要形式是猜数字,谁能最快猜出这个唯一数字,谁就能做信息公示人。

权益证明机制(Proof of Stake, PoS),类似股权凭证和投票系统,因此也叫“股权证明算法”,由持有最多(token)的人来公示最终信息。

拜占庭共识算法(Practical Byzantine Fault Tolerance, PBFT),它以计算为基础,没有代币奖励,由链上所有人参与投票,少于(N-1)/3个节点反对时就获得公示信息的权利。

达成共识需要50%以上的节点同意,篡改数据需要极大的成本,或者无法完成(节点数量非常多)。共识机制确保了信息的唯一性,数据不可被篡改。利用这一点区块链技术可被广泛应用于智能型资产管理,如知识产权保护、化合约,域名管理保证合约不被篡改,可应用于社会中的积分管理等领域等。

1.2.3 智能合约

智能合约的理念可以追溯到1994年,几乎与互联网同时出现。曾经为比特币打下基础,从而备受赞誉的密码学家尼克萨博首次提出了“智能合约”(smart contract)这一术语,他对于智能合约的定义是:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”

从本质上讲,这些智能合约的工作原理类似于其他计算机程序的if-then语句。智能合约只是以这种方式与真实世界的资产进行交互。当一个预先编好的条件被触发时,智能合约便执行相应的合同条款。

这里的“智能”,在英语中对应的单词是“smart”,但不等同于人工智能(Artificial Intelligence, AI)。Smart代表的意思是聪明的、能够灵活多变的,但还没有能够达到“人工智能”这样的级别。所以有些人仅仅从中文字面上理解,认为必须要达到“人工智能”才能算是智能合约,其实就和“智能手机”一样,这里的“智能”仅仅是指可以灵活定义和操作。

1.2.4 加密与签名

区块链中通常使用非对称加密算法,指的就是存在一对数学相关的密钥,使用其中一个密钥进行加密的数据信息,只有使用另一个密钥才能对该信息进行解密。在这对密钥中,对外公开的密钥叫作公钥,不公开的密钥就叫作私钥。打个比方来说,公钥就像银行的账户,私钥就像是该账户的密码或者账户所有者的签名。区块链上的有效交易有一个用于交易发起方私钥签名有效的数字签名,而该交易的签名可以通过使用交易发起方的公钥进行验证。公钥可以通过算法从私钥中计算得出,但私钥却不能从公钥中推出。

数字签名就是在信息后面加上另一段内容,作为发送者的证明并且证明信息没有被篡改。一般是发送者将信息用哈希算法处理得出一个哈希值,然后用私钥对该哈希值进行加密,得出一个签名。然后发送者再将信息和签名一起发送给接收者。接收者使用发送者的公钥对签名进行解密,还原出哈希值,再通过哈希算法来验证信息的哈希值和解密签名还原出来的哈希值是否一致,从而可以鉴定信息是否来自发送者或验证信息是否被篡改。

1.2.5 匿名保护

匿名保护分为通信匿名保护和交易匿名保护。

通信匿名保护主要是对交易主体的网络地址进行隐藏,以防止将网络地址与钱包地址相关联。基本技术思路为在请求者与被请求者之间加入代理,这个代理可以是一个节点,也可以是多个节点组成的多跳网络。这里重点介绍一下Tor网络。作为知名的匿名网络,Tor一直是一些喜欢匿名上网,或关注网络隐私人士的最爱。截至2016年5月,已有超过100万用户使用Tor访问Facebook,包括通过Tor浏览器、通过Facebook的Onion站点登录等。而在2015年6月时,通过Tor来访问Facebook的用户数量仅为52.5万。Tor网络是一种覆盖网络,每个洋葱路由器(onionrouter, OR)作为一个没有任何特权的用户层正常程序运行,与其他所有节点维持一个TLS链接。每个用户运行自己的洋葱代理程序:获取目录、建立路径、处理连接。这些代理接受TCP数据流,并且在同一条线路上复用它们。每个洋葱路由器维护一个长期的验证密钥和短期的洋葱密钥。验证密钥来签署TLS的证书,签署OR的描述符(包含了当前节点的keys、地址、带宽、退出策略等),还被目录服务器用来签署目录。洋葱密钥则用来解码用户发送来的请求,以便建立一条通路的同时协商临时的密钥。TLS协议还在通讯的OR之间使用了短期的连接密钥,周期性独立变化,来减少密钥泄漏的影响。

交易匿名保护是不让除交易双方之外的人能够查询到本笔交易,是对交易信息的保护。此处有两个概念,无关联性(Unlinkability)和不可追踪性(Untraceablility)。无关联性是指对于任何两笔外部交易,不能证明将其发送给同一个人,不可追踪性是指对于每个内部交易,所有可能的发件人从概率上是相等的。无关联性和不可追踪性是完全匿名电子现金模型必须满足的属性,这两个属性可通过一次密钥(One-time Secret Key)和环签名(Ring Signature)技术实现。同时,设计并实现严格的零知识证明(Zero-knowledge Proof)模型,可进一步增强交易匿名性。