近年来,常听到区块链、比特币、以太坊这些好像很潮却又摸不着头绪的词,我基本上是每次看到这些东西都会点开看看,每次点开都感觉看懂了,但是下次再看到还是一头包,相信大家都知道这背后隐藏着能够颠覆传统世界运行模式的强大基因,这里必然有无数的机会,所以我也想尝试着用根据自己的理解来解释一下这些东西,希望在这些机会出现的时候大家都能把握住。
区块链顾名思义就是由许多数字资料区块串连起来的一条链,我们可以把它视为一种数字资料的储存方式,不同于过往大家熟悉的数据库系统,这条链的神奇之处在于它以严谨的数学与密码学算法,实现了保证历史内容无法任意新增、窜改或删除的特性,同时搭配P2P的运作模式达成去中心化、公开透明、永久保存的优势。
其实哪怕对于一个略懂电脑的人,新增、窜改或删除传统数据库系统内的历史资料都是很容易做到的,但没有人能新增、窜改或删除区块链上的任何一笔历史纪录,除非能控制区块链网络一半以上的节点。另外,只要发生意外或者公司组织倒闭,传统数据库系统是有可能遭到摧毁而从历史上彻底消失,但没有人能摧毁一条公有区块链,除非能摧毁散布全世界的区块链节点。
区块链的核心巧思在于链的设计,而链的核心则在于哈希函数,简单来说哈希函数就是一个能输入任意数字资料进而输出固定长度位元资料的函式,把同一笔资料给哈希函数所得到的输出一定会一样,而只要输入不同哪怕是只有一个最小单位位元的不同所得到的输出就会完全不同,而这种转换是不可逆的,也就是我们无法用输出来反推输入。
举SHA256这个哈希函数为例,当输入houlang的时候我们会得到一组256位元的数字以16进位来表示
在这个基础上即使我们稍微小小新增、删除或改变输入资料所得到的输出也都是天差地别,而当我们再把输入改回houlang则又能得到完全一样的这串文字,就像全世界每个人都有独一无二的指纹一样,我们也可以把哈希值视为资料的指纹,而前面说到区块链不可窜改的特性就奠基于哈希函数的特性,藉由比对哈希值我们很容易就能看出资料是否遭到窜改,有了这样的认知再来看区块链的设计就清楚多了。
一个简化版的区块链就是把每一个区块的哈希值塞进下一个区块里面跟着下一个区块一起哈希再塞进下一个区块里面以此类推,只要其中一个区块被更动后续的所有区块都会跟着被影响,这样假使有人试图窜改其中某部分资料而产生出不同的链,我们很容易就能知道哪个部分是被窜改过的。那么当我们看到两个不同版本的区块链要怎么区分正版和盗版呢?
这时,我们就要有一个机制来维持一个正版的链,为了维持这个正版的链,区块链在设计上引入了P2P,也就是去中心化的想法。
P2P是一个散布全世界各地、任何人都能任意加入的应用层网络,我们只要在所有P2P网络节点上都存放完整的区块链资料就能维持一个大家都有共识的正版的链,一旦发现不一样的链出现就用投票的方式来PK看谁是正版,如此一来除非有人能掌握全世界一半以上的P2P网络节点,否则在P2P网络去中心化的世界中人力量大要撼动正版区块链的地位几乎是不可能的,也因为P2P网络有着像蟑螂一样怎么打都打不死的特性,要消灭这整个网络更是难上加难,也因此在P2P网络不死的前提之下链上的资料得以永久保存,这时还有最后一个小问题。
P2P网络上的各个节点有很大机会在同一时间新增不同资料而导致无法决定谁说了算的情形,为了解决这个发言权的问题不同版本的区块链设计出不同的共识机制来决定谁说了算,例如比特币区块链采用的很浪费电的工作量证明(Proof-of-Work),或者以太坊区块链2.0采用的持有量证明(Proof-of-Stake),种种机制的背后都只想达成一个很简单的重要目标,就是尽可能让所有p2p网络节点上的人们都有平等的参与机会,以此来避免有心人士控制整条链的发展。
总而言之区块链就是哈希函数与P2P两大基础技术的强强联手,先将许多的资料区块以哈希函数串连成链以达到不可窜改的功效,再套上P2P技术来运作而拥有去中心化、公开透明、并且永久本存的特性,这些优势的组合前所未见大大打开了人们的想象空间,也陆续产生出许多基于区块链的延伸应用,而其中第一个成功的区块链应用就是比特币。
比特币(Bitcoin),或简称BTC,2008年10月31日一位自称是中本聪的人发表了一篇比特币系统设计的论文,2009年比特币区块链系统正式上线运作,区块链的概念才逐渐受到重视,就像当年的苹果挑战IBM,只要有实力,要蹭就要蹭最大的咖,而比特币也就是区块链所选择的第一个战场蹭的就是百年巨兽金融领域,果然一战成名获得极大关注回响。
简单来说比特币就是使用区块链来实现一个全球帐本,概念上就只是把全世界所有的转帐交易信息全纪录在区块链当中,也就是说,在这个比特币区块链当中我们可以看到从创链以来所有全世界的资金转移纪录,而其中为了确保支付动作是由账户本人所执行的,就必须有某种机制来提供验证,在传统金融体系中这类验证不外乎要帐户本人提供证件、签名、盖章或者当场快问快答一些私密个资等等来重重把关,而在数字世界这件事则可以很轻易地用非对称式加密来解决。
非对称式加密是由一组成对的两个密码所组成,我们可以用其中一个密码来对资料加密,然后以另一个密码来解密,以此验证资料的确是由相配对的密码所加密的,我们通常会把其中一个密码私自保存称之为私钥,而另一个密码则对外公开称之为公钥,利用这样的特性对于每一笔支付记录只要账户本人把那一笔资料用私钥加密过后,所有人都可以用他的公钥来做验证,确认是账户本人所执行的动作,这就很像传统金融体系的签名盖章,也因此被称为数字签章。由于所有支付信息都已经被记录在链上,一个比特币账户说穿了其实也就只需要包含这一组公钥和私钥就可以了。
而我们常说的加密货币钱包说穿了也就只是一个管理许多账户公钥和私钥的地方而已,当我们用加密货币钱包支付时就是跟支付对象要帐户地址然后把交易信息用私钥加密过后送上区块链,一旦这笔交易写入区块链交易就算完成,不可窜改,公开透明,永久保存,有了存在区块链上的全球帐本以及公钥私钥组成的账户,要和现实世界接轨的最后一里路就是和传统金融体系互通有无,看到这样的需求加密货币交易所相应而生。
有的交易所本身握有庞大数额的加密货币池,让使用者直接以法币进行买卖来赚取价差,有的交易所则提供类似股票撮合的机制,让人以任何价格挂买卖单赚取固定%数的成交手续费,总之有了交易所加密货币和法币之间就有了简单的互通桥梁,某种程度等同宣告只要买卖双方愿意,加密货币要拿到现实生活中用来支付是完全可行的。
就在比特币区块链持续蓬勃发展的同时,人们也逐渐意识到区块链的特性不只适合拿来做全球帐本,还有相当多的想象空间以及可能性,无奈的是原有的比特币区块链设计没有太多弹性来进行扩充,大大限制了区块链的应用发展,直到有一天一位叫做Vitalik的年轻人实在看不下去了。
前面提到区块链是由很多数字资料区块串起来的一条链,而除了把它用来储存帐本资料,理论上区块链也应该能存放任何形式的数字资料,也包含可执行的程序码,同理以太坊要的就是把旧有的功能型区块链提升一个层次,除了支持存放任何形式的数字资料,也能让人放上可执行的程序码而进入到智能型区块链的时代,这个想法于2013年被提出,2015年以太坊区块链正式上线,成为当今区块链应用的主流。
以太坊上可执行的程序码同样有着公开透明与不可窜改的特性,等同有着某种程度的公信力而被称为智能合约,虽然他其实没有实质上的法律效力,这样的程序码再配合好看的界面包装一下就被称为去中心化app,如果是金融相关应用我们会称之为去中心化金融,总之再普通的东西只要放上区块链在名字前面套上去中心化就开始变得很潮、很区块链。
为了支持链上的所有运作,在以太坊上免不了也要有自己的一套数字货币以太币,为了防止资源滥用,每当我们要执行任何一笔交易或者智能合约时都要支付一笔称为gas的交易费用,这笔费用就是使用以太币来支付的,而gas费用的多寡将影响到该笔交易被处理的优先程度,也就是说高峰时段通常需要支付较高的交易费才能完成交易,甚至可以相差几十美金的。
有了足够的弹性与智能合约的加持,以太坊上果然冒出许多有趣的去中心化金融应用,像是借贷、换汇甚至在以太坊上发行加密货币ICO也是小菜一碟,而其他各行各业不同领域的去中心化app像是游戏、产品供应链追踪溯源、数字版权分拆法律证据保存、身分认证、物联网等等也逐一在以太坊上被创造实现出来,可以说区块链独特的不可窜改、去中心化、公开透明、永久保存的特性透过以太坊的弹性才得以真正落实普及到每个人的现实生活当中。除了比特币和以太坊这两大公有区块链,许多试图解决不同问题的区块链系统相继被提出,像是专为物联网设计的IOTA,以及试图解决以太坊效能及交易费用问题的EOS和TRON。
时至今日区块链技术已经实际运行了十几年,区块链网络本身在技术上还没遇过什么重大事件,证实了这个奠基于严谨数学与密码学以及P2P网络的设计是可行的,同时去中心化的概念打破了传统需要中心化机构的枷锁,使执行运作上更正确、更透明、更节省、也更有效率,以金融领域来说,去中心化金融应用的出现使得许多金融服务得以24h全自动有效率地运作,省去了庞大数量银行员的人工费用,在供需平衡自由市场的机制下尽可能将利益直接返还给所有使用者,也由于少了人为介入,完全避免了传统银行被骇或者银行员可能出现的监守自盗的风险,那么这么好用的东西怎么还没还没被大众广泛接受?
首先政府的态度很重要,去中心化意味着无法监管,面对这样无法掌控的新科技大多数政府还是选择先观望或者禁止,毕竟区块链也是一把双刃剑,拿来解决传统问题固然很好,但却难以管理,甚至会被拿来做跨境洗钱之类违法勾当,所以大多数政府还是相当谨慎在看待这件事,另外一个问题就是币价波动太大,就拿目前最大宗的比特币和以太币来说,发行以来涨跌幅都相当惊人,为了解决这个问题以太坊上陆续出现了锚定美元的稳定币USDT、USDC、DAI等等,这也使得加密货币在金融体系不健全、法币币价波动较大的国家内反而得以快速普及。
再来就是权力和责任之间的取舍问题,前面提到区块链当中一个账户最重要的就是私钥,私钥是唯一能动用账户资产的独一无二的钥匙,一旦私钥不见就再也没有人能动用账户里面的资产了,从某方面来说这是相当安全的,几乎保证了除了自己以外没有人能动用账户内的资产,然而权力越大责任越大,在权力完全下放个人的同时,保管私钥的重责大任也落回到每个人身上,只要人一发生意外、或者单纯的忘记私钥就再也没有其他人能帮忙挽回账户内的资产了。
另一方面加密货币在不同的区块链网络之间是无法直接互转的,例如比特币就只能在比特币网络当中互转,以太币及ERC-20货币就只能在以太坊网络中互转,假使一不小心在某区块链网络上转账给不同区块链网络的账户地址,将会造成转移的资产被冻结在不存在的账户地址而永远无法再被使用的情形,为了解决类似的问题,有些钱包或者交易所又走回中心化的老路,帮使用者管理公私钥甚至直接帮使用者集中管理资产,但这也同时暴露在传统中心化应用的风险之中,一旦中心化系统被盗或者集中管理资产的私钥遗失就尴尬了。而层出不穷的中心化机构出事事件则加深了大众对区块链的负面印象,区块链可以说躺着也中枪。
尽管如此区块链仍然势不可挡,还是有许多组织持续进行各项落地尝试,包含一直以来信用卡发卡公司就陆续推出绑定加密货币支付的信用卡,很直接地解决了当下大多数商家普遍不接受加密货币支付的问题,2019年6月脸书宣布Libra计划,试图打造一套基于全球主要法币的加密货币,但很显然要得到各国政府的认可还有一段很长的路要走,2020年10月PayPal宣布开始支援加密货币则算是近年来区块链金融落地的另一大突破。