密码学因区块链更“值钱” 区块链因密码学更“完善”

发布于: 2020 年 06 月 17 日
密码学因区块链更“值钱” 区块链因密码学更“完善”





作者:上海交大教授、密码学家 来学嘉



与密码算法密不可分的区块链

首先,区块链是密码算法搭起来的,所以说它和密码算法是不可分割的。另一方面,反过来区块链又对密码学有贡献,它对密码学的发展提供了一些新的思路或者新的方向。最后捎带提一些我们常用的术语,应该怎么样建立正确的认识。



区块链本质是什么呢,是全局分布而且同步的账本,大家都有一个一样的东西。这套东西能验证账本内容,而这些内容是每个人都可以验证的。同时还能保证账本中放的是交易,你又能验证交易是不是合法。



说到区块链不得不提到比特币,因为区块链是从比特币来的。比特币是分布式电子系统,利用网络在没有事先信任情况下实现交易支付。



比特币的交易通过数字签名链来实现,然后把这些交易记录放到一个数据库,一个共同验证的数据库,就是区块链。密码里有几个基本的密码函数,数字签名、Hash函数还是最常用的,其中最古老的叫做加密,但比特币没有加密。



比特币是什么东西,其实就是我们常说的地址。谁知道私钥谁就拥有比特币,因为我有私钥,可以对它做操作,做支付,这就是交易。



支付就是很简单,因为我有私钥,可以选一个想给的人,把他的地址拿过来,把我的签名和地址、钱绑到一起,就表明转到他那儿。因为他有他的私钥,可以用他的私钥接着往下做交易。



持有者对前期交易和收款人的地址做签名,就是交易。这个过程是可以公开验证的,因为数字签名的一个特性就是只有知道私钥的人,才能够生成签名,而其他人都可以验证,而且只能验证,这样的话就有一种抗抵赖的功能。



数字货币有一个很大的问题,就是copy的问题,因为一个文件和它的拷贝件是不可区分的,这样的话,电子货币原则上完全可以重复使用。这样的货币系统就失去了它的意义,所以需要一个方法防止双花问题。



传统解决方案是靠一个第三方,必须经过银行检查这个钱是否用过。比特币想了一个更好的办法,为了防止重复花费,就把所有用过记录全部公开,这样的话就无法重复使用了。公开记录的数据库就叫做账本,或者Blockchain,区块链就是这样来的。也就是说,区块链是比特币为了防止双花,而提出的一种系统。



这个记账的过程我们把它叫做挖矿,其实挖矿这个东西比较有意思在于,它做了好几件事:



一,挖矿要验证新出现的交易是合法的;



二,要把这些验证过的交易记录下来,放到账本里面进行记账,产生一个新的区块链。



在产生新区块的同时,实际上又生成新的货币。挖矿从密码学角度讲,它是很有意思的一个过程。最后,它又运用一个密码函数,Hash函数单向性控制挖矿的速度。用代码控制了挖矿的难度,实际上是控制Hash函数,函数码0的个数,因为Hash是单向函数,计算的过程实际上是破译的过程。破译的难度可以控制,每10分钟生成一个新的区块。



密码学——因为区块链而更加“值钱”

看下来就知道了,区块链就是用密码算法搭起来的。经过数字签名的链保证交易正确,然后Hash函数保证完整性和不可篡改,保证数据可以验证及其可信性。Hash函数单向性可以用来控制货币的生成速度,这是一方面。另一方面,区块链的形成对密码学又产生新的贡献,做出我们一些过去做不到的事情。



有了区块链以后,密码学“值钱”了,过去密码学是赔钱的,密码是保护数据用的,成本比较高。但有了区块链后,密码学就变成值钱的东西。因为我们通过生成符合某些条件的Hash码,经过一些密码函数计算结果变成了钱。同时,有了区块链,有了比特币这类应用后,这些做密码的人突然好像吃得开了,所以说密码学“值钱”了。密码函数还有勒索软件,勒索软件是什么东西,就是把密码函数算一下,把你的文件变成一个密文,问你要比特币。



真正从学术和技术上来讲,密码学真正贡献在哪里呢,就是Non-Repudiation(不可否认性)。图示这五个性质是ISO定义的安全服务要素。保密性就是加密,认证真实性就是数字签名,完整性就是Hash函数。Non-Repudiation是不可否认性、抗抵赖,数据函数只有一个性质,其他人只能验证。数字签名为抗抵赖提供一个证据。



密码学过去实现不了抗抵赖,区块链出来之后就有意思了,你就发现区块链本身提供了抗抵赖的平台,因为区块链就是我们现在可信第三方,大家都服从它。链上说什么就是什么,很自然就可以起到抗抵赖的作用,这也是比特币中的双花问题。



还有一种,我们过去做不到的事情是抗捏造。这件事情过去密码算法也做不到,因为密码学里用的是单向函数,必须已经有了数据之后才能实现某些功能。区块链就把你过去做的事情全部记下来,你想捏造,捏造不出来,大家只认账上的东西。总之来说,区块链就给密码学中或者安全中需要的抗抵赖、抗捏造,从这个角度讲提供了一套完整的解决方案。



安全服务里这一大块实际上是密码的东西,但有了区块链后密码学的作用又能更多一点,因为区块链是由密码函数构造,对密码学起了促进作用,在抗抵赖、抗捏造方面有了新的方法。



常用术语的正确理解

看了比特币构造之后,用了签名、Hash就是没有用加密,不管怎么说,首先基本的区块链、比特币没有加密,尽量避免用加密货币这个词。但是另一方面完全公开的内容又让区块链应用受到限制,很多人不愿意把他干的事情全部公开,让每个人知道。我们现在干的事情就是把加密功能放到区块链里,但这就麻烦了,区块链特性是公开可验证,参与人都可以验证这件事情,我接受记账才有效。



这时候用了保密,就是说验证人看不到内容,还要承认他,怎么办呢,密码学的方法就是零知识证明、环签名等等,过去我们认为高精尖技术都堆到这里来了,虽然比较困难,但它又解决了很多实际问题。



很多人都在说区块链的去中心化,仔细想想,区块链根本没有去中心,而是重新建立了一个中心,大家就认这个唯一的中心,更强的中心,就是链本身,大家只认数据。



或者说我们重新造一个上帝作为中心,所谓去中心,理解的角度是从比特币来讲。比特币去掉了发行货币的银行作为中心,也就是在交易时没有中心了。但真正用区块链实际上是创造出了一个中心。所以“去中心化”这个词用起来也要当心。



无论是POW还是POS,真正共识、唯一的共识,就是我们参与者只认可最长链的内容。POW、POS等等本质上是记账权,是在比特币中挖矿的结果,挖矿的目的是为了验证交易,同时因为验证交易的行为获取奖励,就是创造新的比特币。



什么叫公有链呢,公有链就是每个人都有记账权,全民投票。联盟链是只有大股东才有投票权、记账权。私有链是老板记账,回到中心化。有了这些东西后,再来看看公有、联盟、私有角度,看看区块链什么地方能用。从区块链角度讲,记账功能和交易功能是相对独立的两件事情,也就是这边记账,那边是账本里交易。如果是公有链,交易也是公开的,那就是比特币。



如果是私有链,交易也是私有,只有特定人才能干,其实就是数据库,没什么新鲜的。用得最多是联盟链,有权限限制的各种交易和有权限限制的记账功能。从应用角度讲,这句话很重要,即区块链真正意义是什么,它重建了信任机制。



上个月天津海关的一个区块链跨境贸易平台上线,用的就是平安壹账链,我刚好参与这个项目。这个项目干了什么事情呢,就是把境内境外买方卖方,还有银行、物流这些都放到一个链上。通过这个链,任何一方都可以看看相关的内容是否可信。比如卖方,从买方购买记录、物流记录、银行记录等看出是否相信他,银行也从记录里看出是否给他贷款。



总结一下,密码学搭建了区块链,区块链反过来给密码学增加了新功能,以及从这个角度理解,一些常用的词要如何正确使用。



用户头像

致力于发布区块链领域专业全面的资政信息 2020.05.24 加入

中国电子商务产业园发展联盟区块链专委会隶属于中华人民共和国商务部旗下的中国国际电子商务中心,简称“CECBC”,致力于发布区块链领域最新、专业、全面的资政信息,包括政策法规、行业发展、社会热点等。

评论 (2 条评论)

发布
用户头像
专业,头图多了一张,可以考虑把正文中的删除
2020 年 06 月 18 日 09:51
回复
谢谢提醒

2020 年 10 月 26 日 15:46
回复
没有更多了
密码学因区块链更“值钱” 区块链因密码学更“完善”