首页 > 百科 >正文

加密货币的价格大起大落,区块链技术却不温不火(1)

2021-05-26 12:00:15    来源:互联网    

什么是区块链

所谓区块链就是由一个一个区块链接而成,每一个区块都记录一定数量交易,那么可以将每一个区块理解为一个账本。所以区块链可以理解是一个数据库,也是一个用于记账的系统。这些账本是保存在每一个人的手里,而非某一个人手里,所以这是一个分布式的记账系统。每个人都可以去记账,大家通过达成共识给记账人一定奖励来激励每个人都积极参与记账。

区块链和数字货币之间关系是,区块链是服务于数字货币,而数字货币又可以用于激励区块链的生成。

密码学

比特币被称为加密货币,既然是加密货币,那么哪些密码学被应用到了区块链中。在区块链中主要使用了密码学中的哈希算法和签名。接下来就分别介绍一下区块链中是如何应用哈希算法和签名的。

哈希运算

先说哈希运算,在区块链中会用到哈希运算的哈希无碰撞(hash collision resistance)。那么什么又是哈希无碰撞(hash collision resistance),要理解这个概念,我们先解释什么是哈希碰撞,理解了哈希碰撞后自然也就理解哈希无碰撞。所谓碰撞也就是将两个数值或者字符串经过某种哈希运算后得到相同哈希值,这种现象就称为哈希碰撞。简单解释一下为什么会有哈希碰撞(hash collision)的情况呢?这是因为输入空间远远大于输出空间,也就是如果一旦哈希值位数不够多,也就是哈希值存在空间要远远小于计算数值所存在的空间就很容出现哈希碰撞。

好了有了上面的解释,哈希无碰撞(hash collision resistance)就不难理解,而且这性质对于加密来说的重要性在这里也不言而喻。通常我们是无法找到一种方法来制造出哈希碰撞。但是并不是绝对的,现在有人就破解我们一直认为比较安全的 MD5。

第二个性质就是 Hiding,这里进一步解释什么是 Hiding,以及 Hiding 性质在区块链中的应用。Hiding 哈希函数的计算过程,是单向的是不可逆的。例如通过 Hash 算法对信息 x 进行加密后得到 H(x),那么拿到 H(x) 后是找不到一个函数可以根据 H(x) 计算出 x。那么 Hiding 有什么好处呢? 有了 Hiding 这个特性我们就可以通过对比两个哈希值来判断两个值是否相等,例如我们保存一个文件,然后用这个文件生成一个哈希值,随后我们想要了解这个文件是否被别人篡改,只要对比其生成哈希值和之前哈希值是否相等即可。

通常许多专家会通过分析对球赛的胜负和股市的涨停给出自己见解和预测。如何判断专家给出预测的准确性呢?如果让专家预先公布自己的预测,然后再对比预测和真实情况来评判专家的预测效果。这样做显然存在问题,因为专家给出预测可能会影响随后结果。所以通常会把专家预测进行封存,然后再公布与众。那么公众如何确信在公布时候这条信息没有被篡改呢?这里。

签名

签名主要应用在比特币中的账户管理和交易。在比特币中开户很简单,而且需要任何审批流程,只要用户申请开户,系统就会为开户人创建了一对公钥和私钥的对象。一个公私钥对在比特币中就代表一个账户。

公钥和私钥的来源非对称加密体系(asymeetric entryption algorithm)。加密和解密用的是同一个秘钥,所以这样加密体系被称为对称加密体系。因为对称加密中存在着密钥被盗取的风险,后来才出现了更安全的非对称加密体系。

在非对称加密体系中,为了解决秘钥在分发中的安全问题,在非对称加密系统中采用了一对秘钥,公钥和私钥,加密时用公钥,解密时用私钥。

User2 将自己公钥给 User1,User1 用 User2 公钥对信息加密后发送给 User2,User2 收到信息后用自己私钥进行解密,这种加密解密方式就是非对称加密。那么加密和解密都是用接收方 User2 的公钥和私钥。而且解密的秘钥是由 User2 自己保管。

在比特币中公钥等于你的银行账号,别人要给你转账就用这个公钥,而私钥就相当于你的账户密码。在比特币公钥和私钥用于签名。

这里还是通过例子解释在比特币中任何进行签名,User1 发布一个转账给 User2

,处理在转账给出 User2 的公钥需要用 User1 私钥进行签名,从而避免其他人冒充 User1 进行转账,对于转账真实性,其他人用 User1 的公钥来验证签名是不是 User1 的私钥,从而避免了其他用户冒充 User1 进行转账。

[责任编辑:editor]

相关新闻