蔡欣:一个法学人眼中的区块链技术简史

2018-07-23 14:28 出处:其他 作者:佚名 责任编辑:liuxiangcheng

在世界经济组织(WEF)于2016年8月中旬发布的重磅报告中,给 区块链 (BlockChain)用了一个看起来洋气高端的名字,DLT(分布式总账技术,DistributedLedger Technology)。但是笔者作为一个技术爱好者,作为一个习惯于追根溯源的法律人,仍然愿意称之为“区块链”;说到它的技术和历史,仍然要从比特币开始说起。

1比特币概况

区块链技术的首次也是最著名的应用是比特币(BitCoin),一个在2009年1月初正式上线运行的去中心化数字货币应用,他的创始人叫中本聪,但目前大家并不知道此人的真实身份。比特币不同于现代国家发行的货币,它由分布式网络基于数学计算产生,总量恒定(2100万个,发行规律约为每四年减半),所有交易由全网节点共同记账确保其不可篡改,依靠密码学保障网络安全,账户具有匿名性,软件的代码开源,更新与发展依靠网民社区自治。

2前比特币时代

虽然区块链技术的开端一般只追溯到2008年中本聪发表的《比特币:一个点对点的电子现金系统》创世论文,但是,区块链技术并非突然横空出世,而只是在前人不断艰难探索的基础上的集大成者。包括:经济学理论,如,哈耶克的《货币的非国家化》,凯恩斯的无客观本位货币与购买力理论,弗里德曼的自动化系统取代中央银行设想;博弈论,特别是2005年诺贝尔经济学奖得主之一的托马斯·谢林的“共同知识(Common Knowledge)”概念;会计学领域,由IanGrigg在2005年提出的“三重记账法(TripleEntryAccounting)”;在计算机领域,BT和eMule等P2P文件共享与传输技术,伯克利开放式网络计算平台(BONIC)的折叠蛋白质( [email protected] )和寻找外星人( [email protected] )等网格计算项目,原本用于检测垃圾邮件的“可复用工作量证明(RPOW)”方法;密码学方面,非对称椭圆曲线加密算法、哈希散列函数(Hash)、Schnorr数字签名算法、以及Merkle Tree等具体方法的成熟与广泛运用,为比特币区块链的诞生提供了必要条件。此外,最为重要的是各界人士特别是“密码朋克”们从20世纪80年代以来不断的尝试,其中最为有名的包括e-gold(始于1995年,如今却遗憾的早已被传销玩坏了)、早期的Ripple支付和结算网络(始于2004年)、1990年大卫·乔姆(David Chaum)提出的Ecash(注重隐私安全的密码学网络支付系统)、1998年密码学家戴伟(Wei Dai)提出的B-money(被认为是比特币的精神先导)、2005年尼克·萨博(Nick Szabo)提出的Bitgold(非常类似于比特币的系统,但萨博不擅长编程,而后来的中本聪则编程实现了比特币)。

3比特币热潮

随着系统本身的完善和相关知识不断普及,比特币的知名度从极客圈慢慢向普通人群蔓延。最重要的是,当2010年5月22日,一位程序员用一万个比特币向商家购买了价值25美元的两块披萨之后,比特币拥有了“价值”。之后,便有了更多的比特币支付案例,包括使用比特币进行捐款(如在银行渠道无法使用的情况下,向“维基解密”和斯诺登的捐款)。

由于市场有需求,比特币交易网站、比特币ATM机、比特币信用卡等开始出现,在2013年,塞浦路斯经济危机等全球性事件将比特币的价格在短时间内不断推向高峰,最高时达1200美元。由于有利可图,计算生产比特币也就是俗称“挖矿”的方式从个人电脑CPU过渡到GPU显卡挖矿(因为显卡更擅长做大量的重复性计算),然后有人研发了专业“矿机”,从FPGA到ASCI矿机,从55、40、28到14纳米,工艺细节也在不断改良,还有人建立了专门的“矿场”(在电力相对便宜的西部地区)。

比特币的生产过程就是基于随机数计算出一个区块,如果该区块的哈希值比当前难度值小且与当前难度值最接近,则该区块就会被公认为是链上的下一个区块,由于该区块生产过程中也包含了一段时间内全网的比特币交易,所以“挖矿”也被视为是争抢记账权,而作为记账的奖励,“矿工”将获得网络自动发放的比特币奖励和被打包交易的转账费。

由于全网算力的不断提升,普通的单台矿机已经很难“挖”到比特币,于是出现了“矿池”,通过协议将分散的算力接入一起计算,最后“挖”到的比特币按照贡献大小比例分配,矿池的运营和收益分配方式包括pplns、pps、dgm、slush等。

4山寨币和竞争币

因为比特币的源代码是公开的,所以当它变得很值钱的时候,就有一些人fork了它的代码,改动几个参数,造出了“山寨币”。山寨币往往成为了不良商人诈骗、传销的工具,山寨币创造者往往通过宣传包装,吸引无知群众购买,然后在较高价格砸盘套现跑路。

当然也有一些fork了比特币代码的人做了有益的技术探索和创新,我们常常称这一类衍生品为“竞争币”:莱特币(LiteCoin)针对比特币挖矿已经被矿机、矿池垄断了算力,试图用scypt算法(内存难度的)代替比特币采用的sha256算法,以抵抗矿机,试图使密码学货币保持去中心化(虽然在一年多之后莱特币矿机依然被发明出来,但莱特币的尝试是值得肯定的,因而市场是有“比特是金、莱特是银”的说法);域名币(NameCoin),针对有人认为比特币“没有用”的质疑,域名币网络提供了分布式域名解析系统,它的专用域名是.bit,该域名管理不是由传统的DNS服务器提供服务,而是分布在区块链上,有利于保障言论自由和隐私(2015年,域名币拓展区块链服务到身份认证领域);质数币(PrimeCoin),针对很多人对比特币挖矿是浪费能源的诟病,质数币将挖矿过程改造为寻找质数(素数),成为BONIC那样的科学计算,而且也让提供算力资源的账户有数字货币的回报;猎人币(HunterCoin)是第一次试图通过玩游戏的方式来挖矿,这个游戏就是猎人在地图上寻找金币,它的目的是通过无法被机器替代的人玩游戏的行为,以此解决比特币“算力垄断”和“没有用”两个问题(但是很可惜,没多久,游戏外挂就被发明了);暗黑币(DarkCoin)将密码学用到极致,混合采用了11种加密算法,试图通过复杂的挖矿算法破解“算力垄断”难题。

有些人认为,是POW(Proof Of Work,工作量证明机制)导致了比特币的一些问题,特别是浪费能源的问题,于是开始尝试POS(Proof of Stake,权益证明机制),未来币(Nextcoin)是最早采用POS机制的数字货币;再后来,点点币(PPCoin)采用了POW与POS相结合的方式,试图使区块链网络兼具节能和安全两种特性。此外,在POS基础上还发展出了DPOS(股份授权证明机制)机制,类似于现实中的议会制度,只能由选举产生的代表节点进行记账。

5乱象与发展

比特币及其它数字货币在发展过程中,因为涉及到金钱,难免催生出很多的乱象:各种拙劣的、没有技术含量的骗局层出不穷(传销与诈骗);用户的钱包秘钥文件被木马盗走;交易所倒闭(曾经全球最大的比特币交易所MT.GOX于2014年初宣布破产)、跑路(注册地为中国香港的GBL交易所的管理层携款潜逃)、伪造交易记录、挪用用户资金;为了逐利,有人用公有设备挖矿(哈佛大学研究员用超级计算机挖矿、bitcointalk论坛上某地方政府机房承建商咨询如何做一个外表是电脑实际是矿机的方案);交易市场也开发出了杠杆、期货等各种金融新玩法,利用人性挖掘利益;由于比特币的匿名性、全球流动特点,一些网上博彩网站使用比特币作为筹码,也成为了洗钱的渠道(由于比特币其实也具有可追踪溯源的特性,居然也有商家提供“洗币”服务,如很多桩大额被盗的比特币都流往BitcoinFog进行混币,近来的Zcash则是一款号称依靠“零知识证明”实现真正隐私保护的数字货币),在臭名昭著的“丝绸之路(SilkRoad)”网站上,曾有大量的比特币用于购买毒品、枪支、信用卡及个人信息等非法物品,由于“丝绸之路”网站采用了“洋葱网络(tor)”和PGP加密,无法被当局管制,直到2013年底,FBI才抓获了其经营者,将该网站关闭(之后还曾一度短暂出现过“SilkRoad2.0”,近来也出现了基于区块链的去中心化交易市场项目,比如ZeroNet)。

固然是利益作祟,才导致比特币的世界乱象重生,但是,也恰是有经济利益驱动,才使比特币技术破解了“拜占庭将军难题”,使得陌生人之间的信任和全网共识成为可能。所以,技术的问题还是要靠技术解决。为了解决资金的安全性问题,布道者提倡大额比特币存自己的节点钱包里,而不是实际上中心化的交易所或“云钱包”中,推荐大额钱包的文件冷备份,普及离线签名技术,因此有了“冷钱包”和“热钱包”之说,进而衍生了“硬件钱包”和“脑钱包”。

比特币作为一款软件,面临最大的挑战,其实也是来自自身的技术方面:2010年8月,有人利用大整数溢出漏洞“挖”出了1844亿个比特币,开发人员迅速升级软件并启动硬分叉,化解了危机;2013年3月,由于0.8版与0.7版共识机制不兼容,导致比特币网络分叉,后经社区在几个小时内协商一致,矿池统一暂时退回0.7版,解决了问题。作为一个市值亿万的网络,每天都在经受着DDos等各种攻击,各路黑客高手无不想破解它,但是近八年来却仅仅只有这两次重大的技术事故,且都能迅速解决,足见区块链网络的安全性。

6区块链存证

当一部分人把比特币作为自由货币进行发展的同时,另一部分人注意到的则是比特币底层的技术:2009年1月4日,中本聪在创世区块的币基(CoinBase)上留下了一段话:“TheTimes 03/Jan/2009 Chancellor on brink of second bailout for banks”,那是当天泰晤士报的头版文字标题,这段话永久记录在比特币区块链中,除了揶揄当年金融危机中政府的束手无策,也是在宣称,比特币区块链可以证明不可篡改的记录,并且由全网协议的唯一“时间戳(timestamp)”为记录加上了时间维度。

将内容刻在区块的币基上,那是矿工挖矿的特权;在0.9版之前,比特币并没有提供一个正式的用于存储信息的位置,著名的比特币赌博网站“中本聪骰子(SatoshiDice)”为了证明其公平性,用交易的数额承载信息,具体做法是:将谜底文件的哈希值分割成16个4位十六进制数,分别转化为最多5位的十进制数,将这5位数分别作为输出金额的末尾数字(比特币的计量单位小数点后有8个0,因此每比输出金额不超过0.00100000比特币),构造一笔包含16个输出的交易(输出金额不超过0.016比特币),将收款指向自己的账户,这样实际上只需要花费非常少的矿工费,就可以实现永久的存在性证明效果。(矿工挖矿除了获得固定的网络增发收益,也可获得交易的费用,如果交易发送者支付较多的矿工费,则该笔交易能够获得更快的网络确认,因为矿工在挖矿时更愿意打包矿工费的交易,当然,如果不给交易费,交易也终会被打包确认,只是要等很长的时间);从0.9版开始,比特币专门新增了交易附言位置(OP_RETURN),使得用脚本存证变得非常简单直接,虽然比特币基金会在文档中宣传OP_RETURN并不代表对比特币区块链可以作为分布式数据存储的认可,但是,利用OP_RETURN存储信息的区块链存证应用就此遍地开花。(此外,还有两种存证方法:一种是合约币(Counterparty)和万事达币(MasterCoin)都曾经用过的,运用“多签名公钥空位(OP_CHECKSIGVERIFY)”存证;另一种是在交易广播前将“OP_DUP OP_HASH160OP_EQUALVERIFY OP_CHECKSIG”中pubKeyHash这里的40个0替换成拟存证的信息。只是在有了OP_RETURN功能之后,这些方法都显得较低效了。)

率先提供存在性证明的服务网站非常直白的就叫“Proof Of Existence”,区块链存证的基本技术门槛并不高,一时间,提供该项服务的企业非常多,而这当中做得最好的,当属“公正通(Factom)”:由于比特币每比交易的OP_RETURN只能存储40(最多80)个字节的数据,所以一般只是把文件的32位哈希值存储到区块链上,只能单向检验文件真伪,并不能逆向还原文件,用户仍需要在本机电脑上妥善保存文件的原件;虽然也可以通过将大文件的hex字串拆分成若干段分别存证,用时再取回组装,但是这样做效率低下,而且成本较高,不是长久之道;Factom在底层锚定比特币OP_RETURN的基础上,构建了也是基于区块链技术的存储层,抓住了行业痛点,使存证产业链变得完整。

有了完整的存证体系,区块链就可以完美应用于电子证据、知识产权、身份验证、婚姻登记、土地登记、食品溯源等领域。Factom曾在政局动荡的洪都拉斯试图用区块链登记土地所有权,中国企业“唯链(vechain)”通过在奢侈品中嵌入可查询区块链记录的NFC芯片进行防伪,MIT(麻省理工学院)在区块链上开发出了学历认证系统,“保全网”运用区块链存证技术双向对接企业和公证机构的需求,阿里巴巴旗下的“蚂蚁金服”正在尝试将区块链用于慈善项目。

除了Factom等现成的方案,如果你想从底层探索一个 区块链 存证项目,或许还应该了解“星际文件系统(IPFS)”、StorJ、Sia、MainSafe等分布式存储方案。

7公私钥体系

比特币基于非对称椭圆加密算法,实现了公私钥体系,简单来说,就是通过密钥加密的信息,只有另一个密钥才能解码。公钥和私钥是两把密钥,公钥是公开的密钥(比特币账户可视为公钥,虽然事实上还有更多的计算),私钥是不公开的密钥,公钥由私钥推导而来,但反之不行。

比特币交易的过程是这样的:由私钥对交易内容进行签名,表示我是交易的合法发起人,广播到网络上之后,各节点根据其公钥进行验证,如果验证通过,签名是合法发起人的,则交易予以记录。

在有些场景下,需要证明某人是账户的合法持有人,那么证明的过程如下:使用此人的公钥对一段数据进行加密,进行全网广播,此时,只有通过此人的私钥才能对这一段数据进行解密,也就是说,只有该账户的合法持有人才能看到这段数据的明文。

运用公私钥体系,可以构建高效、可信且安全的应用,比如比特信(BitMessage)是一款用公私钥体系作为运作原理的的点对点加密聊天工具(区块链全网同步能够保障信息高效、可信的送达,只有合法的账户私钥持有者才能查看加密的内容,确保了接收方用户的行迹不被追踪,可保护人们的隐私);OpenBazaar类似于用公私钥体系搭建的“淘宝”;而Twister是一款去中心化的微博应用(除了运用了公私钥体系,这款应用的其它方面也设置非常精妙,用户发布的微博记录在区块链上,但传播力有限,如果想发布向所有用户自动推送的“广告”,则需要提供算力进行“挖矿”)。

公私钥体系也可运用于物联网,区块链技术有助于解决当前物联网技术遇到的一些瓶颈,比如物件的身份认证、物件之间可靠、安全、保密的信息传输。德国的Slock.it正在研制的智能锁项目,就是试图将公私钥体系运用于物联网,以实现对财产物件的去中心化管理。

最新资讯离线随时看 聊天吐槽赢奖品