返回顶部

区块链基本概念

作者:洪蜀宁 苏宁金融研究院高级研究员 

什么是区块链?

近年来,区块链这个名词越来越频繁地进入公众视野,各行各业都在讨论它将怎样改变这个社会。

区块链最初发源于金融业,作为金融从业者,很有必要了解一下有关区块链的常识。如此,才能结合各自的业务实际去探索区块链的应用落地,也避免自己被技术的发展所淘汰。

本文试图从金融从业者的角度来介绍一下什么是区块链,区块链在金融业能发挥怎样的用途,尽可能回避技术细节。

区块链的基本概念

区块链(BlockChain)是一种IT技术,由中本聪(化名)在2008年作为比特币的底层技术而发明出来。比特币是区块链技术第一个应用,也是目前为止最成功的应用。除比特币外,目前比较流行的区块链还有以太坊、超级账本等。

当前,根据区块链的性质和开放程度的不同,普遍形成的共识是:对所有开放的是“公有链”、针对单独个人和实体的是“私有链”,介于两者之间的是“联盟链”;分类的核心在于,应用系统中存在的中心节点的数量。CCIDConsulting指出,金融区块链的应用或将以联盟链为主,原因在于公有链完全无中心,不利于政府监管和保护隐私,而联盟链能够在二者之间寻找平衡点。

区块链这个词有两层含义:

狭义的区块链是一种数据结构,按照时间顺序将数据区块先后链接起来,并以密码学算法保证以这种方式存储的数据不可篡改和不可伪造,且可以方便地进行验证;

广义的区块链技术则是指包括这种数据结构以及点对点(P2P)网络、共识机制、智能合约等一系列技术所构成的技术体系的总称,有时也被称为分布式账本,虽然这二者之间还有一些细微的差别。通常我们所称的区块链指的是广义的概念。

那么,P2P网络、共识机制、智能合约这些又是什么呢?

P2P网络

P2P网络是一种计算机网络的组成方式,与常见的web网络不同,它是分散的、去中心化的。

Web网络是中心化的,每一个网站形成一个中心,我们普通人的电脑(手机)互相之间并不直接连接,而都是连到网站的服务器上。例如我们向朋友发一条微信消息,消息数据首先被发往腾讯的服务器,在服务器上存储之后再发给朋友的手机。如果腾讯的服务器出现故障或者被黑客攻击,那我们就没法使用微信相互发消息了。

而P2P网络则不同,所有的电脑都是平等的,不需要中心服务器,互相之间都可以直接建立连接并发送数据。这样做的好处就是不用担心某个中心服务器出现故障,整个网络几乎是坚不可摧的。P2P网络还有一个优势就是使用的人越多,网络越通畅,这一点是web网络做不到的。

P2P网络最早的应用是1999年由美国人Shawn Fanning发明的Napster,用于分享音乐;最著名也是使用最广泛的应用是BitTorrent(BT),用于在网上下载文件。

共识机制

由于P2P网络上所有人都是平等的,没有权威,这就带来一个困扰——怎么判断我收到的信息真实没有被伪造或篡改呢?

在传统的中心化网络里,是以中心权威发布的数据为准,比如银行跨行转账系统,一律以人民银行提供的数据为准,各行对账如果不符,只能自己调账。这样做简便易行,但前提是所有参与者必须信任中心权威方,中心也不能出错,如果中心数据出错则所有参与者的数据全都错了。

在P2P网络里,没有这样的权威、受信赖的中心,但可以利用共识机制和区块链数据结构来确保所有参与者收到的数据都是完全一致的。

共识机制本质上是一种可编程的协议,如果所有参与者都严格按照同样的协议在区块链上生成数据,则每个人生成的区块链都是完全一样的;如果有少数人违反共识协议,故意生成错误的数据,其他人可以立即发现,拒绝接受他的数据进入区块链,这样的结果就是错误的数据被整个网络抛弃,剩下的都是大家一致认同的、正确的数据。

从这里可以看出,共识机制有一个很重要的前提,就是大多数人必须是诚实的。关于这一点不用过于担心,区块链通过激励机制和博弈论可以保证这个前提是成立的。

这样的协议也称为共识算法,最著名的共识算法就是比特币采用的工作量证明算法(PoW),可以在数学上证明,当超过一半的参与者遵守共识机制时,区块链是安全可靠的。

还有一些其他的共识机制,比如权益证明算法(PoS)、实用拜占庭容错算法(PBFT)等。这些共识机制各有利弊,比如工作量证明算法需要浪费大量的算力,权益证明算法会导致贫富差距拉大,拜占庭容错算法不支持太多的参与者且要求2/3以上的参与者是诚实的。

智能合约

智能合约的概念由尼克·萨博(Nick Szabo)在1995年首次提出。他指出,一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。

通俗地说,智能合约是一段计算机程序代码,代码事先规定好了两个或多个参与者之间的权利义务,这样的权利和义务往往不是立即执行、而是在将来满足一系列条件时才执行,智能合约一旦开始执行就无法单方面退出。

智能合约与现实生活中的合同文本类似,只是智能合约是一个程序,是自动执行的,不需要律师和法官的介入。这是一个伟大的构想,但是以当时的技术水平还无法实现,直到2008年才由中本聪在比特币区块链中实现了一个基本的智能合约形式。

在比特币区块链中进行转账,实际上就是执行了一个非常简单的智能合约,转账不是立即执行的,需要由矿工在一定时间(平均10分钟左右)内执行这个智能合约,当执行成功时才会记录进比特币区块链,在这之前转账是不可撤销的。

一个简单的智能合约是这样的:“如果我提供了正确的签名,则将X个比特币转到某某地址。”更复杂一些的智能合约可能会是这样:“请在3天后将X个比特币转到某某地址,如果在这之前我提供了某个特殊的签名,则不进行转账,将这X个比特币退还给我。”在以太坊等区块链中,还可以支持业务逻辑非常复杂的智能合约,比如期权交易、资产多方托管等等。

总之,可以把区块链比作一个由许多会计师同时记账的账本,每个会计都以同样的会计准则、按时间顺序将他收到的所有交易凭证记录到各自的账本上。而这些会计之间互不隶属、相互监督,每隔一定时间(比如10分钟)就相互查账,如果发现有人违反会计准则就辞退掉,然后按照事先定好的规则,从剩下的会计中选择一个做为最终结果(称为一个区块),其他人根据这个结果调整自己的账本,再继续记账,这个时点之前的账不允许再做调整。这样就产生了一个“区块”,将区块按先后顺序排列起来形成一个完整的账本,就是区块链了。

 

区块链的价值

在《金融从业者需要了解的区块链常识:什么是区块链?》中,笔者对区块链的基本概念做了详细介绍,今天来着重解析:我们为什么需要区块链?区块链可以为我们带来什么价值?下文将从八个方面进行阐述。

  1、去中心化

  去中心化(Decentralization)是区块链最根本的性质,也是区块链区别于其他分布式账本的最重要因素,尽管这一点还存有争议。

  去中心化通常与中心化(Centralization)、分布式(Distributed)进行比较。以太坊创始人Vitalik Buterin在《去中心化的真正含义》一文中详细阐述了去中心化的概念,从网络架构、治理体制、逻辑结构三个维度进行了分析,指出区块链在网络架构和治理体制上是去中心化的,没有人能控制它,也没有网络中心点,但在逻辑上是中心化的,一个区块链系统所有的节点表现得像是一台计算机一样。这样的结构使得区块链具有很强的容错性、抗攻击力和抗合谋能力,同时又能够提供确定性的服务。

  普通的分布式系统与区块链很相像,但前者在治理体制上是中心化的。一个分布式系统如服务器集群,必须有一个控制中心,由控制中心来决定分布式系统中每一台计算机的运行方式。而区块链是不需要这样的控制中心的,链上的每一台计算机都是平等的,区块链上的数据由链中所有具有维护功能的节点共同维护。

  有些好奇的读者肯定会问:什么样的系统是逻辑上去中心化的呢?我的答案是:莎士比亚的作品,一万个人有一万个哈姆雷特。

  2、防篡改

由于区块链采用了链式数据结构,如果某个节点篡改了一个区块的数据,该区块与前后区块之间的链接就会被打破,区块链就不再完整。根据共识机制,这样被篡改的区块是无法被其他节点接受的,即无法进入区块链。由此可以看出,区块链上的历史数据是不可更改的。

 

  即便在大多数节点共同违背共识机制的情况下,也就是所谓“51%攻击”时,攻击者也不能任意修改区块链的历史数据,可行的办法只有抹去之前若干个区块的数据,然后重新生成新的区块链。而这样做的难度与被抹掉区块的个数相关,并且是呈指数增长的,对于一个设计良好的区块链来说,基本上是不可能做到的。

  3、去信任

  去信任(Trustless)指的是在区块链中,一个节点无须信任任何其他节点,在假设其他节点都是不合作、不可信的前提下,最终仍可以根据共识机制从区块链中获得可信的数据。

  在传统的中心化系统中,每一个用户必须信任系统的中心节点,相信它不会作恶、不会篡改数据、不会窃取隐私,但这种信任往往是盲目的、不可靠的。比如我们通过ATM把现金存进银行,前提是我们相信银行会如实记录这笔交易,将来我们取钱时银行不会赖账。如果银行的系统出现严重的故障或数据被非法篡改,储户的存款就可能会不翼而飞,由于所有的数据都存储在银行系统中,储户甚至无法举证,损失无法挽回。

如果采用区块链来实现这个场景,存钱这个事件会存储在区块链上,网络上任意一个节点都可以查看并验证。由于区块链不可篡改的特性,这样的存储是值得信任的。因此,区块链又被称为“创造信任的机器”,被誉为构成价值互联网的基石。 

  4、开放性

  区块链的数据全部存储在每一个节点之中,除了交易各方的私人信息被加密存储外,区块链的数据对所有节点公开,任何人都可以通过公开接口查询区块链数据,因此整个系统的信息保持高度透明,数据的完整性也易于验证。

  同时由于采用了P2P网络,节点的加入和退出是比较自由和方便的。对于公有链来说,节点只要使用了包含正确的共识算法的软件,随时可以接入区块链,无需批准;对联盟链和私有链,节点的加入需要一个批准过程,这个过程往往也是去中心化的。

  另外,区块链软件通常是开源的,这是由其去信任特性所决定的。区块链的用户不需要信任软件开发者,开源软件本身就是值得信任的。

  5、匿名性

  由于节点之间进行数据交换无需互相信任,因此交易对手之间可以不用公开身份,在系统中的每个参与者都可以保持匿名。这种匿名性是区块链共识机制带来的副作用,并不是必须的。在金融业务中,由于反洗钱等监管要求,在具体实现时往往会去除这种匿名性,并不影响它的其他特性。

  6、隐私性

区块链数据结构广泛使用了数据加密技术,几乎涵盖了所有种类的加密算法,包括最新的加密理论(如盲签名、门限签名、同态加密、零知识证明等)。综合采用这些加密算法,充分保障了区块链的安全性,同时也可以提供极强的隐私保护功能,不用担心存储在区块链上的隐私和关键数据泄露的可能,同时也不妨碍为监管部门提供监管视图。

 

  7、自动执行

  区块链采用事先商定的智能合约代码,使整个系统中的所有节点能够在无需信任的环境下自动安全地交换数据并自动执行预定义的业务逻辑,无需任何人为干预,资金结算以区块为单位自动进行,无需外部对账,可用来构造7×24运行的金融交易系统。

  8、简化运维

  在中心化的交易系统中,建设和维护一个高可用性的中心系统的成本很高。而区块链技术采用去中心化的模式,设备由各网络节点自行维护,对单个节点的可用性要求大大降低,可以显著降低系统建设和运维成本,并具有较长的生命周期。

  小结:区块链技术具有上述诸多优秀特性,近年来已成为各大企业争相研究和应用的热点,2017年亦被称为“区块链应用元年”。区块链作为一种底层技术,几乎适用于所有行业,金融业是区块链最早开始应用的行业,也是目前应用最成熟的行业,下一篇笔者将跟大家一起展望区块链技术在金融业的应用前景,请耐心等待。

  在前两篇文章《什么是区块链》和《区块链的价值》中,我们了解了区块链的基本概念,对区块链“去中心化”、“防篡改”、“去信任”、“开放性”、“匿名性”、“隐私性”、“自动执行”、“简化运维”8大特性也有了初步的认识。那么,具有这么多优秀特性的区块链技术,在金融行业可以有什么样的应用场景呢?

适用区块链技术的场景

多方协作:由于区块链技术“去中心化”的基本特性,特别适用于多个不相隶属的机构进行多方协作的场景。在一个机构内部采用区块链是很少见的,主要用于内部审计之类的情形。是否多方协作也是技术选型时决定是否采用区块链的首要依据。

缺乏信任:当不存在一个中心化的或占主导地位的机构的时候,如果不采用区块链,很难在合作机构之间建立信任关系,只能设立一个可信的中间机构来主导业务协作。这样的情况是很普遍的,比如银行间资金清算必须通过一个中间机构如银联来进行。中间机构的存在,使得流程复杂化,也提高了运营成本。采用区块链技术则不需要这样的中间机构存在,其“去信任”特性可以在互不信任的用户之间建立可信的信息交互通道,例如比特币可以直接进行点对点的支付而无需担心欺诈交易。 

匿名交易:当业务需要较高的匿名性时,公有区块链几乎是唯一可选的技术。因为任何中心化的系统都无可避免地会采集用户的隐私信息,如手机号码、邮箱地址、IP地址等。采用区块链技术时,用户可以自行生成公私密钥,通过加密算法保证交易的可靠性,而无需向任何人泄漏自己的隐私信息。

交易追溯:由于区块链独特的链式数据结构和公开化的数据存储方式,全部历史交易数据在所有全节点上都有一份完整的副本,任何人(联盟链中的授权用户)都可以查阅区块链数据,对每一笔交易的来龙去脉进行追溯,直至源头。

防伪存证:市场经济中大量的业务都是建立在各类合同和凭证的基础上,在这些文件的数字化过程中,如何快速有效地解决数据的存证、防伪等问题是一个重要的课题。传统方式是使用第三方服务来存储,依赖第三方的信息安全技术来实现防篡改、防抵赖。但第三方服务本身又成了一个新的风险点,包括技术风险、道德风险等。采用区块链技术则无需第三方参与,通过哈希算法、零知识证明等密码学理论来保障数据的不可篡改性和抗抵赖性,同时自动提供时间戳服务。

不适用区块链技术的场景

实时交易:区块链通过共识算法来保证所有节点数据的一致性。为抵抗各种攻击,共识算法通过牺牲效率来提升安全性,目前最快的共识算法获得一次确认的时间在数秒左右,而比特币为确保安全性则需要10分钟的时间。因此区块链不适用于需要严格实时交易的场景,如期货交易市场等。

高频交易:同样地,区块链通过P2P网络进行数据交换和共识,每一笔交易都要传遍全网络,并且记录在每一个节点的数据库之中。另外,智能合约的执行必须是串行的,这种模式严重限制了区块链的并发性能,也决定了区块链技术不适用于高频交易场景,如个人支付等。

中心化业务:区块链天生是去中心化的,如果业务要求必须有一个权威的中心机构来控制一切,那必然是不应该考虑采用区块链技术,比如央行发行的数字货币。

需要抹账:无论因为什么原因,当业务需要删除、抹去历史上曾经发生过的交易,让它看起来像从未发生过一样时,绝不要尝试使用区块链,因为这是传统中心化系统所擅长的,也是区块链技术被发明出来所要摈弃的。

 

 

 

posted @ 2021-05-11 20:46  杜雪的笔记  阅读(2198)  评论(0编辑  收藏  举报
/* 鼠标特效1 */