区块链
密码技术是在敌手模型下的信息保密技术,从诞生之初就服务于安全攻防实战。现代密码学通过与信息论、数学、计算机等学科的结合,将密码技术构建在坚实牢固的理论基础上。密码技术的最底层是基于数学原理严格构造的对称密码算法、公钥密码算法、哈希算法、承诺方案、密码学意义上的随机数发生器等密码原语,在密码原语的基础上是各类精心设计的密码协议,并在此之上最终形成密码服务,实现机密性、完整性、可用性、可控性、不可抵赖性等安全特性。
通信安全需求在信息存在之时就存在了,随之出现了密码技术。随着信息科学技术的不断发展,密码技术也在不断演进中。至今,密码学发展历史大致可划分为古典密码、近代密码、现代密码三个阶段。
古典密码学 (1948年以前)。这一时期的密码技术主要是通过巧妙的构思变换方法,让攻击者难以判断,即保护算法而非保护信息本身。密码体制以替代和置换为代表,使用手工或机械设备实现。该阶段主要应用在军事上,例如,古罗马时期的凯撒密码,二战时期德国的Enigma密码机。尤其是在第二次世界大战中得到了很大的发展,常常成为决定战争胜败的关键因素之一。
近代密码学(1949~1975年)。随着无线通信技术的普及,密码技术也要不断地适应新增需求。二战后,密码学开始在学术领域被公开研究。1949年,信息论鼻祖香农发表的论文《保密系统的通信理论》为密码学尤其是对称密码奠定了理论基础。从此,密码技术从艺术转向科学,以科学理论为基础的密码技术逐现雏形。该阶段密码技术遵循科克霍夫原则,不再以算法保护为目标,转而聚焦到信息本身,即使密码系统的任何细节已为人悉知,只要密钥未泄漏,也应是安全的。
现代密码学(1976年至今)。20世纪70年代,美国国家标准局开始为敏感但非机密的政府数据保护公开征集加密算法,最终由IBM的Horst Feistel设计并提交的算法成为数据加密标准(DES)。与此同时期,1976年,迪菲和赫尔曼在其论文《密码学的新方向》中首次提出了公钥密码的思想,开创了密码学的新纪元,这两个事件标志着现代密码学的诞生。
鉴于密码技术在信息保护方面的强大能力,美国政府长期以来将密码技术视为“军火”级别的技术。作为大国博弈的关键技术,我国对于密码技术的发展也十分重视。1930年,周恩来同志亲自编制“豪密”,成为中国共产党密码工作的开端。进入21世纪,随着商用密码应用的推进,我国的密码技术进入快速发展期,密码科研和创新取得一系列重大成果。2004年和2005年,我国密码学专家王小云先后破解了当时主流的MD5和SHA-1算法,引起了国际密码学术界的轰动,标志着我国密码学术研究跻身国际一流水平。在国家密码管理局的组织下,我国自主研发了SM2、SM3、SM4、SM9、ZUC等全系列的商用密码算法标准,并在通信、金融等领域成功推广,完成了密码算法基础设施的建设和应用推广。2017年,SM2和SM9正式成为ISO/IEC国际标准,标志着我国向国际标准化组织(ISO)和国际电工委员会(IEC)贡献中国智慧和中国标准取得重要突破,将进一步促进我国在密码技术和网络空间安全领域的国际合作和交流。
信息科技发展至今,密码技术已经成为保障网络和信息安全的核心技术。推动网络安全互联,需要发挥密码技术的基础支撑作用;维护网络空间安全,需要发挥密码技术的核心保障作用;服务网络创新发展,则需要发挥密码技术的协同促进作用。
随着计算机和互联网的普及,密码技术在商用领域的应用也在不断发展中。然而,开放互联和安全往往是矛盾的,互联网协议最初的设想是实现通信的便捷性和可靠性,安全性并未融入其中,以至于发展过程中出现了大量的网络安全问题。
多年以来,以服务器为中心的架构成为信息系统最具代表性的架构。在该经典架构模式下,服务器是安全的核心,而服务器端安全措施主要是基于划清安全边界、网络分层隔离、辅以“入侵检测、防火墙、防病毒、漏洞扫描、安全审计、访问控制”等技术手段,以此打造坚固的中心堡垒。客户端和服务器之间的通信则由SSL/TLS等密码协议实现安全加固。
实际上,除了金融等少数极高安全需求的应用领域,密码技术更多地是用于解决服务器端边界以外的信息安全问题。然而,目前信息技术正在发生一系列深刻的变革,以云计算、大数据、物联网、区块链、人工智能等为代表的新兴技术带动了信息系统架构的不断创新,同时也带来了全新的安全课题。区块链就是其中最具典型性的代表。
区块链技术的诞生可以追溯到20世纪80年代开始萌芽的美国“密码朋克(cypherpunk)”运动。彼时,密码技术从70年代转入民用领域刚过了10年左右,一批对“神秘”的密码技术充满好奇的技术极客正在涌现,而“赛博空间”的思潮正如火如荼。密码朋克的信念就是用密码技术来实现个人在赛博空间的彻底隐私和信息自由,反对美国政府对密码技术的操控和限制,以及对于个人隐私的监控。用技术而非空谈来实现理想,成为密码朋克的文化,“密码朋克编写代码”是其标志性的口号。1992年,由Eric Hughes等人组织成立了一个小的讨论群体,“密码朋克”名称被提出。同年“密码朋克”加密邮件列表被创建,宣告了密码朋克正式登上历史舞台,并发展成为讨论数学、密码学、计算机科学、政治和哲学、个人观点、攻击技术等话题的活跃邮件列表组织,据说超过千人。许多著名技术专家、学者也参与其中,包括密码学家、电子支付技术的先驱者、国际密码研究协会(IACR)发起人David Chaum,维基解密创始人Julian Assange,智能合约提出者、计算机学家Nick Szabo,Intel公司资深科学家Timothy C. May,PGP联合发明人Jon Callas,点对点数据共享协议BitTorrent发明者Bram Cohen,密码学家、经典著作《应用密码学》作者Bruce Schneier,密码专家、侧信道攻击的提出者Paul Kocher……
电子支付的匿名性和安全性作为重要方向自然也是密码朋克的技术主题之一。1983年,时任加州大学圣芭芭拉分校计算机系学者David Chaum在Crypto学术会议上发表论文《用于不可追踪支付的盲签名》,开创性地提出了用基于“盲签名协议”的公钥密码方案达到电子支付的强隐私性——银行也无法追踪电子支付踪迹,开启了隐私支付技术的先河,这和现在信用卡支付系统完全由发卡行掌握用户所有支付记录形成鲜明对比。1985年,David Chaum发表在“Communications of the ACM”期刊上的论文《无需身份证明的安全》,提出了可以保护个人和组织隐私和安全的大规模自动化交易系统的设想,更是被后来的密码朋克组织奉为技术源泉。在此启发下,密码朋克们前赴后继,进行了各类“电子货币”的技术实践,包括David Chaum自己的Ecash。Ecash虽然解决了支付隐私问题,提出了“离线支付”、可拆分电子现金等很有创意的技术,但其无法解除对中心化系统的依赖——需要一个中心系统来检查电子现金是否被重复使用过(被称为“双重支付”),存在单点故障。这种将可信建立在中心化系统的实现与密码朋克自己掌控隐私与安全的理念有所相悖。华裔计算机极客Wei Dai在1998年提出的b-money构想以及计算机学家Nick Szabo提出的Bitgold方案,基于“点对点网络”,并通过可信时间戳来维护交易的顺序,解决“双重支付”问题,从而试图不依赖于中心服务器。这些方案十分具有启发性,但仅仅停留在理论设想上,其中还有若干核心的安全细节无法得到解决。
2008年,中本聪在“密码朋克”邮件列表组中发表了《比特币:一种点对点的电子现金系统》,作为比特币方案的底层技术,“区块链”概念被正式提出。暂且不讨论比特币本身是否真正具有实际应用价值,单从技术角度来看,区块链对信息安全领域是十分具有启发性的。首先,方案提出了完全由分布在各地的大量客户端之间点对点交互自然形成“系统”,在该方案中,传统的安全核心——中心服务器——并不存在,其次,任意的一个客户端以匿名方式参与,可自由加入“系统”,也可随时离线,此外,在这样的分布式匿名“系统”中还需对任何客户端发起的价值转移请求达成稳定一致的共识。与经典的以服务器为中心的信息系统架构相比,比特币方案的构想无疑将安全问题推向了极致:失去了中心化服务器这一可信的安全“锚点”,在完全开放互联的“点对点”网络中交互,通信的参与方之间保持匿名,在缺乏信任锚定的前提下承载高价值的应用场景。传统信息系统的防御手段——“保边、护线、强内”在此完全失效。
正是在这种特殊的安全构想前提下,比特币的区块链方案首次展示了以密码技术为核心来构建开放式、分布式信息系统安全的可能。方案采用两类密码原语,椭圆曲线公钥密码算法和哈希算法,在此基础上构建基于工作量证明(PoW)的共识协议、基于数字签名的交易、基于Merkle Tree的交易存储区块以及区块间的哈希链等核心机制,再加入经济激励机制,通过打造全局可信、难以篡改的分布式共享交易账本,一一解决了安全与信任的种种难题。尽管远非完美,但比特币从2009年上线至今,在完全开放和匿名的分布式网络环境中,其安全性依赖密码技术支撑了十年的考验压力。
事实证明,区块链技术是具有较大的潜在应用价值的,既然比特币方案能够通过密码技术以非中心化的方式解决开放环境下陌生人之间直接点对点进行价值转移与信任合作问题,那么经过提炼和演变,比特币背后的区块链技术也可用来构建适用于真实世界的信任机制。在此背景下, Linux基金会于2015年发起了超级账本(HyperLedger)的开源项目,面向企业级应用需求,探索区块链技术在企业间构建信任合作应用的可能,吸引了IBM、Intel等众多企业巨头的参与,从此掀起了在商业领域实践区块链技术的研究热潮。由此形成了直接面向于C端的公有链和面向于B端的联盟链/私有链的两大技术阵营。
当代前沿技术的发展越来越依赖于基础学科及其应用价值的挖掘。正如量子物理学之于量子计算机技术发展、数学之于深度学习技术发展,密码技术对于区块链这类新型信息技术的发展具有决定性作用。
尽管区块链概念被提出已近10年,但目前仍处于技术应用的较早期阶段。区块链技术的发展将与密码技术的应用形成长期良性的互动,在相互促进中共同发展。从目前发展现状来看,区块链的技术瓶颈主要存在于性能、安全与隐私保护、跨链互通等几大方面,这些问题尤其在以直接面向大规模C端应用为目标的公有链领域更为突出。
公有链从目标上来看过于理想化,然而这些看似不切实际的目标却不断激励着技术极客和学术界投入巨大的研究热情。为了解决比特币PoW共识机制导致的大量能源消耗问题,目前基于权益证明(PoS)的共识机制正形成研究热潮,比如以太坊项目制定了一个共识机制的升级计划,将逐步从PoW过渡到被称为Casper协议的PoS共识机制,爱丁堡大学的Aggelos Kiayias等发表的名为Ouroboros的PoS共识机制的相关论文在2017年被顶级密码学术会议Crypto收录,而图灵奖获得者Silvio Micali针对共识算法的分叉等问题在2017年提出了名为Algorand的PoS共识算法,以极大的概率确保共识算法收敛一致,避免分叉的产生;在隐私保护领域,由于区块链的分布式账本验证过程既需要记账节点能够验证交易的正确性,又需达到隐私性,因此技术极客们和学术界前赴后继,提出了几代解决方案,从最早先比较偏向“工程化思想”的“混币”技术,发展到利用密码学的环签名技术大大提升匿名效果,直到高级密码学方案零知识证明zk-SNARK协议被采用以达到彻底的隐私保护;为了解决区块链性能瓶颈问题,基于“可撤销的哈希锁定合约”技术的链下协议“闪电网络”方案被提出,基于有向无环图(DAG)技术的新型区块链账本方案则提供高并发交易的可能性。
由此可见,以密码技术为核心发展起来的区块链技术在成长的道路上将不断地为密码应用提供广阔的实践空间,大大推动密码技术应用的研究,而密码技术研究的成果又不断反哺区块链的发展,为其攻克一个又一个技术难关。尤其是公有链在挑战更高目标过程中带来的密码技术方案的新思想、新技术又为服务于实际需求的联盟链/私有链带来有价值的技术启发,推动区块链在实际商业领域的应用加速。
区块链是在互联网技术发展到一定阶段提出的融合创新技术,而且提出之初就是以密码技术为核心进行构建的,这和早期的互联网设计原则形成了天壤之别。基于密码技术与区块链技术的这种良性互动将不断形成化学反应,持续推动技术向成熟发展,从而为大规模的商业应用打下基础。
尽管密码技术和区块链领域的互动已经取得了一系列令人瞩目的技术突破,但是和任何一个新兴技术领域类似,其发展过程中还存在着很多困难与挑战。
首先,和传统的中心化系统相比,区块链由于需要在众多节点间通过共识机制达成一致,因此其性能目前还比较低下。Visa的交易性能峰值在50000TPS左右,淘宝2017年双11承载的交易峰值更是达到了325000TPS。然而,基于PoW共识的比特币仅为7TPS,被称为区块链2.0的以太坊也仅在数十TPS量级,虽然采用混合共识、PoS共识的一些公有链项目在性能上相比PoW共识的项目有了明显的提升,但一般也在数百上千TPS。面向企业级应用的联盟链,基于PBFT共识机制,可达到数千TPS,但联盟链是以选取较少的共识节点为代价,共识一般仅需要在几个到几十个节点间达成,当节点数增多,共识性能将大幅下降,因此可扩展性是其主要的限制。由于性能的瓶颈导致区块链当前的应用场景比较适合于高价值、低频的交易领域,还无法很好地支撑小额支付等场景。目前来看,区块链的性能主要受到共识算法的影响,对于某些宣称能达到很高性能的区块链项目,基本都是需要牺牲一头去换取另一头,结合分片、分层等手段,但需要与特定实际场景相结合。
其次,区块链核心技术的突破还需要依赖密码技术底层算法、协议的突破。相比于其他信息技术领域,在区块链领域,一些高级的密码方案已经得到了实践。比如为了实现完善的隐私保护,从Zcoin/Zcash项目到以太坊项目升级路线中,零知识证明均受到了很大的关注。但是,零知识证明协议无论理论还是实践层面都较为复杂,如Zcash基于的zk-SNARK协议虽然在隐私性上达到了前所未有的保护程度,但是根据性能测试,在一个4核服务器上,生成一次隐私转账要占用3.2GB内存和1分钟左右的运行时间,这限制了其技术应用。再如,有一些项目在研究基于全同态加密解决区块链隐私与安全问题,但从目前全同态加密的学术进展来看,还远未到达能够落地实践的阶段。此外,为了抵御未来量子计算机发展对现有密码体制尤其是公钥密码体制带来的颠覆性冲击,密码学术界已经发展出了几类抗量子密码算法,在区块链发展的过程中,需要及时关注并融入这些新的密码算法,以打造牢固的安全根基。可以说,区块链核心技术的攻关将长期伴随着密码技术底层学术的突破,而这些密码底层算法、基本协议的研究已经属于密码原语(或接近原语)层面上的研究,突破起来将十分艰难,但每一次大的进展将有可能助推区块链技术上一个台阶。
再次,相比一般的工程技术,密码技术是一个高度专业的领域,具有密码学应用专业水准的工程师较为匮乏,再加上区块链专业人才的缺失,两者结合更是对行业人员的巨大挑战。密码技术是区块链的基础核心,区块链技术多年以来一直集中在密码极客圈子中发展,形成了一个小众的生态。近几年来,现实应用对区块链技术越来越重视,密码学术界、世界科技巨头均纷纷投入研究,不过区块链要发展成为全球有影响力的技术产业,需要大量的高素质工程师,不仅能够和密码学术成果对接,而且还需要具备高水平的密码工程能力。而密码技术在区块链的工程化实现中还存在密钥误用、代码漏洞等诸多不易察觉的安全隐患。这将是密码技术在区块链领域发展过程中需要长期面对的。
综上所述,密码技术在区块链领域面临的挑战将长期存在,既有体系架构性能和安全权衡的挑战,也有密码底层技术突破的挑战,以及密码工程实践技术方面的挑战。
区块链脱胎于密码朋克理想主义的技术实践。密码朋克认为,只有自己掌控的设备端才是可信的,“代码即法律”,无人能够僭越。在这种思维的引导下,基于密码学原理构建的方案才被认为是真正牢不可破的,换而言之,安全必须完全构建在密码技术上才值得信赖。这种乌托邦式的理想,在密码朋克圈内是容易被理解的,然而,是否完全适用于真实世界?
答案是否定的。以政府、权威机构来构建信任体系是现代社会治理的核心需求,而密码朋克的“理想”对于社会大众而言过于超前,任何技术都有其现实局限性,放任其在现实世界任意蔓延,不仅无法达成技术理想,反而会引发新的潜在危机。
首先,密码技术对于普通大众而言太过艰深晦涩,大众很难具备密码极客的专业素质,要让大众完全通过技术手段对自己的信息安全负责有点不切实际。比如,各类典型的公有链在个人端的核心安全完全依赖于数字签名技术的私钥,一旦私钥保护不善,没有任何途径可以追回个人损失。这就要求大众掌握专业的密码安全意识和繁琐的私钥备份、保护机制,对于大众的个人要求过高,限制了客户体验。而在现实世界中,以权威机构为信任主体,个人端一旦发生问题,还可以通过身份核验的方式请求系统实施救济措施,甚至进行法律追溯。
其次,在完全去中心化的公有链项目中,当社区对技术路线产生分歧,往往就会面临分裂,从而导致区块链硬分叉。2016年,黑客通过以太坊the DAO众筹项目的智能合约漏洞,盗取了大量以太坊用户的虚拟代币,社区对是否应该通过强制修改以太坊代码找回损失产生分歧,以至于后来分裂成ETC和ETH两个以太坊项目。2017年底,在过度炒作下,比特币频繁被分叉,甚至有人将分叉作为虚拟币的“印钞”手段(IFO),乱象重生。试想,万一核心的密码机制突然面临严峻的安全问题,要协调所有用户一起升级可能并不容易,对于以密码技术为唯一屏障的某些公有链项目而言可能是毁灭性的,现实世界的经济秩序如果基于这样的基础来构建,恐怕将陷入严重的安全危机。
此外,完全去中心化的公有链项目通过原理和代码公开来获取信任,认为每个用户通过对“白皮书”的理解、对代码的审核即能够进行判断,从而就应该产生信任。这种构想在现实中被证明太过理想化。密码方案的安全性分析,即使对于密码学资深学者来说,也是十分专业的领域,普通大众更是很难具备专业能力。于是乎,各类别有用心的炒家利用信息不对称、大众的盲从心态进行虚假的技术概念包装,以专业门槛抬高认知门槛,以技术之名行金融诈骗之实,给社会经济秩序带来极大的混乱。
因此,将密码技术、代码凌驾于社会信用体系与治理体系之上,拒绝监管的同时也失去权威信用体系的背书和责任兜底,这种发展途径能被社会公众所接受吗?
一是从需求引导上,金融行业应该积极推进以区块链技术服务于现实需求的应用落地,大力发展有多重安全保障体系的联盟链应用,以实际应用场景落地来促进实体经济发展。既吸收了公有链透明治理、分布式、共识达成则难以篡改等核心思想,又融合了现实社会治理方式的联盟链,应该是未来几年应用落地的重点。在技术手段上,联盟链也是强调以密码技术为核心来构建安全体系,但更多地融入CA体系进行身份管理,在追求隐私安全的同时,也传承了传统安全体系架构,多中心有统一的安全解决方案,实现强调权威可信机构的可监管、可审计等特性。而在应用目标上,联盟链旨在用区块链解决企业间、机构间的信任合作难题,通过在企业、机构间建立分布式账本,将单一的中心变革为共同治理的多中心架构,用技术打通信任隔阂,从而构建更多的多方合作应用场景。对于普通用户来说,从对单一中心的信任转换到对共同治理的多中心体系的信任,将更易增强信任度,这无疑是符合现实发展需求的。
二是积极关注公有链的发展,在参考借鉴技术创新的同时要考虑必要的监管平衡。不可否认,公有链模式对于技术创新、尤其是密码应用实践创新具有较强的参考价值。但同时,监管机构对于不可篡改性所带来的负面影响应予以高度重视。例如,非法言论信息通过备注等方式上链可公开浏览查询且不可篡改,以及个人隐私数据信息泄露。针对此类问题,有必要在不破坏区块链技术可信原则的前提下实现必要的监管。一方面,建立相关公有链信息监测机制,加强区块链浏览器的监管,及时对不良信息识别和预警;同时,要研究通过屏蔽、限制浏览等方式减少不良信息的传播。另一方面,加强相关数据的安全立法,强化对数据持有第三方的监督,确保严重数据侵权事件的个人知情权,防止区块链应用对个人隐私数据侵权行为,对于链上数据的真正所有者能够充分支持其行权,并从法律和技术上探讨建立我国数据保护框架以支撑区块链数据监管。
三是对于区块链的安全,应该积极构建完善的安全认证测评体系。区块链从安全方面来说是结合了密码技术和传统网络安全技术的全新信息安全范式。但是,区块链技术仍不成熟,其算法体系只是相对安全,随着量子计算机技术发展,相关加密算法仍具有被破解的可能性。不仅如此,即使当前公认的、流行的加密算法是否有人为留置的后门不得而知,这为我国区块链安全问题埋下了隐患。值得注意的是,区块链的智能合约技术仍处于发展初期,近期被爆多起针对智能合约漏洞的黑客攻击事件,为区块链安全保护敲响了警钟。因此,可考虑将现有的密码测评体系和信息系统安全测评体系进行融合创新,发展出适合于区块链领域的安全测评体系。此外,开发安全的国密算法并应用于区块链技术对于我国区块链发展安全具有积极的意义。
四是应脚踏实地,在传统技术架构基础上结合区块链技术优点继承式的演进。将传统架构与区块链技术架构优势相结合,在吸收再创新的基础上发展新一代技术架构与安全防御体系。应警醒的是,虽然区块链技术具有较强的信任与价值传递作用,在某些应用场景中优势明显,但是以牺牲效率与增加冗余为代价的,是此消彼涨的取舍结果,尤其安全方面过分依赖密码学与加密签名体系,面临量子时代的到来,有很多学者担心其安全的单一性会导致脆弱性。因此,不能过分单一依赖一种技术,更不能为了区块链而区块链,对于一些场景明明传统技术可以解决得很好而舍近求远赶技术时髦。即使是对于跨主体应用需求,区块链唯有与传统技术和其他成熟的先进技术一起创新性地融合应用,才能发挥区块链技术的最大效能。技术演进一直以来都是继承式发展的思路,事实证明也是稳妥、有效且贴近实际的,技术冒进往往蕴藏着较大的风险代价,尤其是对于承载高价值资产场景的金融行业而言。纵观金融行业的发展,从银行业务电子化、信息化、网络化到今天的移动化与智慧化,一直也是采用渐近式发展的混合技术路线,安全解决方案经历了多年的发展,逐步形成了综合立体的防御体系,并配套有安全等级保护评测体系与信息分级保护策略,结合安全需求实现相应的安全强度,从而达到用户体验与安全可靠的平衡。若完全依赖密码签名体系,单一性导致脆弱性的风险可能将一直存在。因此,结合区块链特性,继承传统安全的解决方案,建立适应于新型技术架构的安全防御与隐私保护体系,可能是将来一段时间研究的重点方向。
五是对于社会发展而言,应该以更积极开放的心态来迎接区块链技术所带来的挑战与变革机会,对密码技术的发展给予高度关注与积极投入。我国作为世界科技创新和应用大国,无论从市场规模,还是密码等关键技术的基础条件,以及科研人才条件等来看,都应该去积极拥抱与引领区块链技术的发展大潮。尤其是,当前社会已经发展到数字经济时代,供给侧的技术创新快速更迭,资源环境日渐成熟,需求侧也在发生很大变化,原有的封闭主体逐步走向开放,横向合作与资源共享需求愈加旺盛,随着金融科技参与主体和服务主体的多元化,越来越多的跨主体合作需求产生,而区块链技术正好针对这些变化提供了一种新型的跨界合作与技术结盟解决方案,平权型、互补型、对等型的金融生态已开始借力发展。与此同时,区块链行业解决方案在快速发展中更离不开密码技术的支撑与发展。离不开相应的人才、学科理论的支持,密码技术相关领域急需相关的政策聚焦、资源投入与产业配套。我们欣喜地看到一些部门已经有所行动,在密码算法领域、形式化验证、多方安全计算、技术测评等方面已经有了相应的投入和成果产生,“政、产、学、研、用”多方联合模式已逐步形成,不断推动该领域创新体系的融合发展。
全部0条评论
快来发表一下你的评论吧 !