二是无中心、有中心所采用的数字认证密码技术是可以不同的,其他人就在自己电脑的账本上都写上

2020-04-21 作者:区块链专题   |   浏览(116)

10月12日,2019CCF区块链技术大会——区块链技术主题报告在成都举行,互链脉搏作为合作媒体受邀参与此次大会。会议上,中国工程院院士周仲义发表《区块链技术应用中要注意的几个问题》主题演讲,指出四个具体的发展问题。一是必须搞清楚应用环境中的用户是无中心的、还是有中心的、还是多中心的。用户群体的中心化程度或可决定技术的作用程度。如在比特币的用户环境中,用户群体是无中心的。这种环境中,用户在完成每一笔交易时,工作量、分布式账本存储内容也非常多,因此用户数量大时,随着交易次数增加,网络供给不够,必然会降低运行速度。我们目前的银行系统都是有中心的,以银行为中心。用户每完成一笔交易,所带来的工作量是基本恒定的,分布式账本所存储的内容也是非常少的,因此,用户数量增长,交易增加对网络运行速度不会变得太多。周仲义认为,如在咖啡零售店应用场景中,使用多中心的系统要更优于无中心系统。此外,类似学校的食堂、超市都是有中心的,因此可以使用的区块链技术比较有限。所以在技术应用前需要先区分有中心无中心。二是无中心、有中心所采用的数字认证密码技术是可以不同的。无中心的用户之间进行交易,必须使用公钥密码进行认证。甲用户发送信息给乙用户,甲必须先用自己的私钥对其消息进行加密,把加密后的消息用乙用户的公钥加密,两次加密以后的密码发给乙方,乙方可以进行脱密,其他用户得不到甲发给乙的信息。有中心的用户之间进行交易也可以使用公链,周仲义认为在进行有中心环境应用设计时,用对称密码进行加密也是可以的,不一定都要采用公钥体制。三是国家密码管理局商用密码办公室推出的公钥密码SM2适用于无中心的应用环境,而SM9适用于有中心的应用环境。周仲义指出,SM2可适用于第三方认证,SM9更适合有中心环境,这是因为二者的公钥管理不同。SMA2的公信对由CA中心管,生成用户自己的(证书)。SM9的公信对是由秘钥管理中心生成给用户之外,秘钥管理中心还会有集中管理,这种集中管理是有中心的。所以两者的使用情况不完全相同。SM2因时间更早,大家对此更加了解,而从秘钥管理来看,SM9更适用于有中心的环境。四是采用数字认证要关注的是应用需要单向认证还是需要双向认证。单向认证要比双向认证要快,因为双向认证需要两次认证。周仲义介绍,此前一些从日本引进的高速路口ETC通行时间较长,也是因为采用了日本采用的是双向认证机制的原因。虽然从及技术原理上可以采用单向认证,但是因我国交管部门规定必须使用双向认证,因此技术需要符合规定,如果想要应用单向认证机制,要先修改标准。因此,在应用认证技术的时候,要注意是双向认证和单向认证。

去中心化

在传统的金融体系里,人们需要一个类似银行的中心机构来验证交易的。这种集中验证交易的方式是中心化的。 去中心化,本质上是让所有的参与者都能验证交易的真伪。比特币是如何实现去中心化的,就是采用了竞争记账和全网见证的方式,这一点可以参看《浅谈比特币(2)——比特币的挖矿与转账》。其中,非对称加密技术在这一过程中起了很大的作用。

非对称加密技术是指加密和解密的时候使用不同密钥的加密算法。如果加密和解密使用相同的密钥,我们称为对称加密。

下面先举个例子来简要说明一下对称加密的工作过程。甲和乙是一对生意搭档,他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。对称加密不安全的地方在于,大家使用的秘钥如果相同,这个密钥就已经不安全了。

对于非对称加密,可用下面例子:甲和乙都要有邮箱地址,这就是两个人的公钥;每个人的邮件地址对应着自己的密码,即公钥对应的私钥。公钥和私钥在非对称加密机制里是成对存在的,公钥和私钥可以去相互验证对方。甲要向乙写邮件,在这个过程中,甲的邮箱密码不公开,但甲的邮箱地址告诉乙;乙的邮箱密码保密,邮箱地址可以告诉甲。甲向乙发送邮件时,需要乙的邮箱地址来加密信息,而乙只有用自己邮箱地址对应的密码才能解密信息。在比特币的世界里面,我们可以把地址理解为公钥,可以把输密码的过程理解为私钥的签名。就是甲要给乙发送信息时,甲用乙的公钥加密信息。乙收到这个消息后,乙用乙的私钥签名来解密甲的消息。其他所有人都无法解密,因为只有乙才拥有这把私钥。

每个矿工在拿到一笔转账交易时候都可以验证公钥和私钥到底是不是匹配的,如果他们是匹配的,这笔交易就是合法的,这样每一个人只需要保管好TA自己的私钥,知道自己的比特币地址和对方的比特币地址就能够安全的将比特币进行转账,不需要一个中心化的机构来验证对方发的比特币是不是真的。

非对称加密技术保证了比特币的去中心化特点,当然还有分布式存储也同样保证了比特币的去中心化。

之前在知乎上回答了一个问题 区块链是什么,如何简单易懂地介绍区块链?,在评论区又讨论了一下,自己整理成了一篇文章,简单介绍一下什么是区块链以及区块链支付流程。

无法被篡改

比特币无法被篡改的特点是由比特币采用工作量证明机制和最长链机制来保障的。

比特币的共识机制是工作量证明,简单理解就是一份证明,用来确认你做过一定量的工作。通常来说,我们如果要监测工作的整个过程,将会是非常耗能和低效的,而通过对工作的结果进行认证来证明完成了一定工作的工作量,是一种非常高效的方式。现实生活中的毕业证、驾驶证等,就是一种工作量证明,通过检验你完成了一定知识的学习或者驾驶过一定时间的汽车,来证明你耗费过相应的工作量。

比特币矿工的工作量证明,是哈希计算的答案。哈希计算,你可以理解为是一种数学的游戏,矿工通过这个计算来竞争记账权。获得正确答案,就说明你为这个计算付出了一定的工作量,其他节点经过非常简单的验证之后,就可以同意其记账,并同步账本。打上时间戳后,紧接着进行下一轮算力竞赛。

在比特币的网络里,大家认为最长的链才是正确的链。如果这时候有人想把某个区块高度上某个交易信息进行修改,他需要从这个区块开始把之后所有的区块都重新计算一遍,把账本再同步给其他人。而在他进行计算的同时,其他矿工们已经在原来的链上继续往前进行记账了。这个恶意篡改的人,需要在很短的时间内赶上现有区块的高度,让自己的这条区块链成为最长的链,让其他矿工误以为这是正确的账本。除非这个恶意篡改的人,拥有非常大的算力,至少超过50%,否则基本上没有可能进行这样的篡改。

威尼斯官网9778818,从网络大环境来看,由于去中心化的存在,整个网络非常警惕篡改比特币这一情况出现。从经济学的角度来说,这种51%的攻击也是非常不划算的——假设篡改者付出巨大的成本获得了超过51%的算力,当他发出攻击篡改后,比特币的价格将会变得一文不值,篡改者的利益也会受到很大的损失。总而言之,想篡改比特币账本,简直是比登天还要难,同时也无利可图。

比方说,一个圈子里有10个人,每个人都有一台电脑和一个自己的签名,每台电脑里都有一个账本,里面记录了这10个人的余额和交易;每次圈子里的人做了一笔交易的时候,就要更新所有电脑上的账本,10份账本时时同步来确认交易完成。

不可伪造

比特币的UTXO结构使得它不可伪造。在比特币之前,一直没有数字资产能够解决重复支付,即双花的问题。中本聪用UTXO机制,解决了数字货币的重复支付,从而解决了这个信任问题,使得比特币能够被广泛的应用。

UTXO,英文全称为Unspent Transaction Outputs,具体的意思是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。

比特币的UTXO是这样的结构:在比特币世界里的每一笔转账,都能够追溯到上一笔交易。每一笔付款,都可以追溯到上一笔的收款。我给你的0.1个比特币,必须是别人给我的、我还没有进行花费的比特币。然后可以一直往上追溯到它诞生时矿工挖出来的那个区块。这个机制,保证了比特币不可被伪造,不可以被重复支付。

这个账本就是区块链。

账本是一页一页的,每一页写满了交易记录,一页页堆在一起成了一本本子就是账本;区块链是一块一块的,每一块写满了交易记录,连在一起成了一条链就是区块链。

比方说,甲转给乙100元,甲就对圈子里的所有人喊一声,“我要转给乙100块了”,然后,其他人就在自己电脑的账本上都写上:XXXX年XX月XX日甲和乙做了这么一笔交易,甲转给了乙100元。现在圈子里所有的电脑上都有这么一条甲的转账记录,这样一来,圈子里的人就都知道了甲的钱少了100,乙的钱多了一百。

下面举一个具体的例子,说明区块链系统是如何运作的。

首先,我们通过工具生成一个私钥,然后通过私钥与椭圆加密算法算出公钥。私钥是我们的身份证明,是我们的交易密码并且不可修改与追回,这个是要绝对绝对保护与保密的。公钥公开,相当于身份证号,别人可以通过公钥找到我们。身份证号是可以冒充的,但交易密码只有你自己知道,所以只要保护好私钥,就是安全的。

有了私钥和公钥以后,进行如下操作:

  1. 对公钥进行哈希运算,得到公钥哈希值;
  2. 再对公钥哈希值进行Base58编码,得到另一串数据,这一串数据,就是钱包地址。

通过私钥,我们得到了公钥,再通过公钥,我们就得到了钱包地址。

钱包是用来干嘛的?放钱的!

是的,比特币就放在钱包地址里。那比特币是怎么交易的呢?

比如,小明要给小红转账100元,他得记录下转账金额100元,然后是小红的钱包地址,他自己的公钥地址,但如果就这样转的话,小红无法确定这100元是小明转给她的,因为小明的公钥是公开的,所以,小明要用自己的私钥对数据签名,所谓的签名就是使用私钥对数据的摘要进行加密得到一个签名,小红得到了小明的签名和公钥后,用公钥解密,发现解密出来的数据摘要与实际的一致,确认这是小明的签名,OK,交易确认。

这笔交易就这么记录到账本里去了。回答中说过,圈子里每个人有一本账本,小明刚刚只是在自己的账本里写了这么一笔交易,接下来就是账本同步了。

请注意,账本不是你一部分,我一部分,而是你一份,我一份,两份相同。有一万个人,就是一万份相同的账本,如果觉得这不是很浪费很冗杂吗?那就对了,区块链就是用的很冗杂很冗杂的冗杂存储。

好了,现在有了这么多份账本,但交易总是先发生在其中一个账本上,这么多账本怎么同步呢?靠什么?靠吼。

就是靠吼,小明在圈子里吼了一声,他转了100元给小红,其它人听到了,开始记账(这里涉及了工作量证明,区块链生成和比特币的产出,挖矿指的就是这一步的动作),技术上这个吼叫做广播(P2P协议)。

在这整个过程中,没有任何中心化机构的参与。

下面延续甲转钱给乙的例子,讲讲区块链的特点:

每个人如果想要知道甲还有多少钱,不需要去银行查账,只需要查自己那本帐就知道了;两个人想要交易,不需要银行,直接可以转账,等待圈子里的每个账本同步就行了。不需要通过中心权威机构确认和查询,这叫去中心化

每个人都能通过电脑看到所有人的交易记录,这叫透明性

圈子外的人可以看到账本,只要你复制了他们的账本并且有一个自己独有的签名就可以加入圈子了,这叫开放性

如果谁想耍赖,比方说甲硬说自己没给乙汇100元,还把自己的账本给改了,这没用,其他9本账本都说他汇了。除非甲篡改了6本账本,不然他就无法抵赖,这就是信息的不可篡改

人跟人之间的交易,不需要相互的姓名、身份证号等等一堆个人隐私的东西,只要你的签名就行了(这个签名只是一串独一无二的数字字母组合,跟个人信息无关),这就是匿名性

目前最大的圈子是比特币圈子。还有一些比较大的圈子,如以太坊、莱特币等。

链接:

著作权归作者所有,转载请联系作者获得授权。

我的微信公众号

威尼斯官网9778818 1

本文由威尼斯官网9778818发布于区块链专题,转载请注明出处:二是无中心、有中心所采用的数字认证密码技术是可以不同的,其他人就在自己电脑的账本上都写上

关键词: