【OK交易所是什么公司】三大核心技术
区块链除了构建了强大的区块链基础架构以保证区块链系统的灵活性和稳定性之外,为保证存储于区块链中的信息的安全与完整,还使用了一些强大的密码学核心技术。区块及区块链的定义和构造中使用了包含哈希算法(哈希函数)、非对称加密算法(公钥密码算法)和共识算法(共识机制)在内的多种核心技术。区块链技术采用非对称加密算法对交易进行签名,使得交易不能被伪造;利用哈希算法保证交易数据不能被轻易篡改;借助分布式系统各节点的共识算法形成强大的算力来抵御破坏者的攻击。
哈希函数
哈希函数,也称为哈希算法。哈希函数是一种密码学算法。在区块链中的作用是:为信息加密,用于为原始信息添加“密码语言”。哈希函数是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为固定长度的二进制串,其输出值称为哈希值,也称为散列值。哈希函数在现代密码学中扮演着重要的角色,常用于实现数据完整性和实体认证,同时,也构成多种密码体制和协议的安全保障。
在比特币系统中使用了两个密码学哈希函数,一个是 SHA256,另一个是 RIPEMD160。SHA256 算法的一个主要用途是完成 PoW (工作量证明)计算,RIPEMD160 则主要用于生成比特币地址。哈希函数的三个性质: 1碰撞阻力碰撞是与哈希函数相关的重要概念,体现着哈希函数的安全性。
所谓碰撞是指两个不同的消息在同一个哈希函数作用下,具有相同的哈希值。哈希函数的安全性是指在现有的计算资源(包括时间、空间、资金等)下,找到一个碰撞是不可行的。举例:如果无法找到两个值,x 和 y,x≠y,而 H (x)=H (y),则称哈希函数 H 具有碰撞阻力。哈希函数的碰撞阻力是指寻找两个能够产生碰撞的消息在计算上是不可行的。
值得注意的是:找到两个碰撞的消息在计算上不可行,并不意味着不存在两个碰撞的消息。由于哈希函数把大空间上的消息压缩到小空间上,碰撞肯定存在。通过简单的技术论证,是可以证明碰撞的确存在的。
哈希函数的输入空间包含所有长度的任意字符串,但输出空间则只包含特定固定长度的字符串。因为输入空间比输出空间大(输入空间是无限的,而输出空间是有限的),一定会有输入字符串映射到相同的输出字符串,也就是说,碰撞是存在的。打个比方:输入 100 个值,经哈希函数 H 之后,输出仅 80 个值。
因为输出的数量小于输入的数量,我们可以确定,某个输出肯定对应多个输入。也就是说存在 x≠y,而 H (x)=H (y),存在碰撞;但在计算上,找不出来 x 和 y 这两个值,所以称哈希函数 H 具有碰撞阻力。哈希函数的碰撞阻力特性常被用来进行完整性验证。
完整性是信息安全的 3 个基本要素之一,是指传输、存储信息的过程中,信息不被未授权的篡改或篡改后能被及时发现。如果原消息在传输过程中被篡改,那么运行哈希函数后得到的新哈希值就会和原来的哈希值不一样,这样就很容易发现消息在传输过程中完整性受损。在区块链中,某个区块的头部信息中会存储着前一个区块的信息的哈希值,如果能拿到前一个区块的信息,任何用户都可以比对计算出来的哈希值和存储的哈希值,来检测前一个区块信息的完整性。
SHA256 是一个主要被比特币世界采用,并且效果还很不错的哈希函数,而且 SHA256 还获得了安全哈希算法的美名。但是,我们必须谨记,在理论上来讲,世界上是没有哈希函数具有坚不可摧的碰撞阻力的。我们实践中使用的安全哈希算法(SHA256),仅仅是人们经过不懈努力之后,暂未成功找到碰撞的函数。如果有一天,我们最终找到了 SHA256 哈希函数的碰撞,那么,就如之前的 MD5 哈希函数一样,在找到 MD5 哈希函数的碰撞之后,该函数在实践应用中被逐渐淘汰。
2原像不可逆原像不可逆,通俗地说,是指知道输入值 x,很容易通过哈希函数 H 计算出哈希值 H (x);但是知道哈希值 H (x),却不能通过哈希函数 H 计算出原来的输入值 x。为什么哈希函数会具有这个特性?因为 x 的取值来自一个非常广泛的集合(输入空间是无限的)。原像不可逆的应用是承诺方案(Commitment Scheme),承诺方案被认为是密码学领域中一类重要的密码学基本模型,承诺具有隐藏性和约束性。承诺模型可以看做一个密封信件的数字等价体。
如果 Tom 想承诺某个信息 m,则他可以把 m 放进一个密封的信封内,无论什么时候他想公开这个信息,则只需要打开信封。这个过程要求数字信件能够隐藏信息,即承诺的隐藏性,同时 Tom 也不能改变 m;而通过承诺的打开,任何人都能验证他所得到的 m 其实就是 Tom 最初承诺的信息 m,即承诺的约束性。
利用哈希函数的碰撞阻力和原像不可逆两个特性,承诺的隐藏性和约束性均能成立隐藏性——如果仅仅知道承诺函数的输出,就如同只看到信封并不能得到信中的内容;约束性——这就确保了 Tom 一旦承诺信封内的内容,就不能再改变主意。
3谜题友好通俗地说,难题友好性指的是没有便捷的方法去产生可满足特殊要求的哈希值。也就是说,如果有人想通过锁定哈希函数来产生一些特殊的输出 y,而部分输入值以随机方式选定,则很难找到另外一个值,使得其哈希值正好等于 y。哈希函数的难题友好特性,构成了基于工作量证明的共识算法的基础。
例如,给定字符串“blockchain”,并在这个字符串后面连接一个整数值串 x,对连接后的字符串进行 SHA256 哈希运算,要求得到的哈希结果(以十六进制的形式表示)以若干个 0 开头的。按照这个规则,由 x=1 出发,递增 x 的值,我们需要经过 2688 次哈希计算才能找到前 3 位均为 0 的哈希值,而要找到前 6 位均为 0 的哈希值,则需进行 620969 次哈希计算。也就是说,没有更便捷的方法来产生一个满足要求的哈希结果。
这样通过哈希运算得出的符合特定要求的哈希值,可以作为共识算法中的工作量证明。正是因为哈希函数具备这三个核心性质,使得哈希函数具备“保证交易数据不能被轻易篡改”的功能。
非对称加密算法
非对称加密算法,也叫公钥密码算法。非对称加密算法也是密码学算法,在区块链中的作用是:为交易加密,用于对交易发起、确认、签名、验证。公钥密码算法是现代密码学发展过程中的一个里程碑。
这类密码学算法需要两个密钥:公开密钥和私有密钥。因为加密和解密使用的是两个不同的密钥,另外,私钥可以推导公钥,而公钥不能倒推私钥,所以这种算法也叫做非对称加密算法。
(1)非对称加密算法的特点加密和解密使用的是两个不同的密钥;公钥是全网可见的,私钥只有信息拥有者才知道;私钥可以推导公钥,公钥不能倒推私钥。
(2)非对称加密算法的用途非对称加密算法主要有两个用途:一是在发送信息过程中使用公钥加密私钥解密,二是在数字签名过程中使用私钥签名(加密)公钥验证(解密)。
发送信息过程:公钥加密:发送方 A 用接收方 B 的公钥对信息加密,并将该加密后的信息传输到区块链网络。私钥解密:接收方 B 用其独有的私钥对信息解密,从而确保信息获得传递的同时还保证信息的真实性。图表 1:非对称加密解密过程
数字签名过程:私钥签名:信息发布者用私钥对交易进行签名。用户发起交易时,用私钥对交易信息签名(加密),表明对交易具有所有权,并对真实性负责。公钥验证签名:矿工用公钥对信息发布者的签名进行验证。矿工收到信息后,用公钥对签名进行验证(解密),若验证通过,则说明:第一,该信息是由特定的私钥的拥有者“签名”的;第二,该信息在签名后没有被改变过。那么,该信息可予以记录到区块链。在比特币系统中,生成比特币地址的流程中也会用到公钥和私钥。
(3)生成比特币地址流程:①比特币系统随机产生一个随机数为私钥;②私钥通过 Secp256k1 椭圆曲线算法生成公钥;③公钥通过双哈希运算+Base58 处理生成比特币地址。图表 2:生成比特币地址流程
私钥生成公钥过程所使用的 Secp256K1 椭圆曲线算法是一种单向加密函数,公钥生成比特币地址的过程中所使用的也是单向加密哈希函数。基于这些数学函数的密码学,使得生成数字密钥和不可伪造的数字签名成为可能。(4)非对称加密算法的种类非对称加密算法主要有以下几种:图表 3: 非对称加密算法种类
非对称加密算法在区块链中的使用,具有重大意义。区块链系统中,所有权验证机制的基础是非对称加密算法。从信任的角度来看,区块链实际上是用数学方法解决信任问题。在区块链系统中,所有的规则事先都以算法程序的形式表述出来,人们完全不需要知道交易的对手是“君子”还是“小人”,更不需要求助于中心化的第三方机构来进行交易的信用背书,区块链通过严谨的数学算法就可以建立互信。区块链技术的背后,实质上是算法在为人们创造信用,达成共识背书。
共识机制
共识机制,也称为共识算法。在区块链中,共识机制更多的是体现为:一种确保记账一致性的措施、机制。利用区块链构造基于互联网的分布式账本,需要解决的首要问题是如何实现不同账本节点上的账本数据的一致性和正确性。这就需要借鉴已有的在分布式系统中实现状态共识的算法,确定网络中选择记账节点的机制,以及如何保障账本数据在全网中形成正确、一致的共识。
区块链中常用的共识机制主要有以下几类:
①PoW:
工作量证明机制简单地说,PoW (Proof of Work)就是一份确认工作端做过一定量工作的证明。PoW 机制的主要特征是计算的不对称性。工作端需要做一定难度的工作得出一个结果,验证方却很容易通过结果来检查工作端是不是做了相应的工作。PoW 机制的用例:比特币。
②PoS:
权益证明机制 PoS (Proof of Stake)机制在创始区块内写明了股权分配比例,之后通过转让、交易的方式,逐渐分散到用户手里,并通过“利息”的方式新增货币,实现对节点的奖励。PoS 机制使用一个确定性算法以随机选择一个持币者来产生下一个区块,该算法中账户余额决定了节点被选中的概率。简单地说,就是一个根据用户持有代币的数量和时间(币龄),发放利息的一个制度。类似于股票或者银行存款,如果用户想要获得更多的代币,那么就要打开客户端,让它保持在线,这样就能通过“利息”来获益,同时保证网络的安全。PoS 机制的用例:未来币。
③PoW+PoS:
PoW 发行新币,PoS 维护网络安全 PoW+PoS 结合的机制是指,采用工作量证明机制 PoW 发行新币,采用权益证明机制 PoS 维护网络安全。这种共识机制最早是于 2012 年 8 月,由一个化名 Sunny King 的极客推出 Peercoin 时采用。该机制中,区块被分为两种形式:PoW 区块及 PoS 区块。在这种新型区块链体系中,区块持有人可以消耗他的币龄获得利息,同时获得为网络产生一个区块和用 PoS 造币的优先权。在 PoW+PoS 机制下,只要是持币人,不论持币的数量是多少,都可以挖到数据块,而不用采用任何的矿池导致算力集中;同时,由于多采用币龄生成区块,而不是算力,所以降低了资源消耗,解决了单纯 PoW 机制在维护网络安全方面的先天不足。PoW+PoS 机制的用例:Peercoin。
④DPoS:
授权股权证明机制 PoS 面临的挑战是如何通过及时而高效的方法达成共识。为了达到这个目标,每个持币节点可以将其投票权授予一名代表。获票数最多的前 100 位代表,按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块,所有的代表将收到等同于一个平均水平的区块所含交易费 1% 作为报酬。如果一个平均水平的区块含有 100 股作为交易费,则 1 名代表将获得 1 股作为报酬,这样可以大大提高共识效率,这就是 DPoS (Delegated Proof of Stake)的核心思想。这 100 位代表可以理解为 100 个“矿池”,这 100 个“矿池”之间的权利是完全相等的。如果这些代表提供的算力不稳定、计算机宕机、或者试图利用手中的权利作恶,那么,那些手里握着代币的用户可以通过投票的方式随时更换这些代表,后备代表则可以代替他们。DPoS 机制的用例:比特股。
⑤其他分布式一致性算法
除了以上详列的 PoW、PoS、PoW+PoS、DPoS 等共识机制外,还有一些分布式一致性算法,比如:PBFT、Paxos 和 Raft 等。这类分布式一致性算法常用于联盟链、私有链。而这些分布式一致性算法又分为解决拜占庭将军问题的拜占庭容错算法(PBFT)和非解决拜占庭问题的分布式一致性算法(Paxos、Raft)。图表 4:共识机制汇总
除此之外,最近两年还诞生了非常多的新共识机制,例如:Axonomy 首创的有效行为挖矿机制(可以称为 PoB)、BHD 的 PoC 等等。
这些共识机制各有优劣。例如 PoW 共识机制在安全性和公平性上比较有优势,也依靠其先发优势已经形成成熟的挖矿产业链,但也因为其对能源的消耗而饱受诟病。而 PoS 和 DPoS 等则更为环保和高效,但在安全性和公平性方面比不上 PoW 机制。
在设计了共识机制的区块链网络中,每个节点只有保持诚实记账,才能获得网络中的奖励。本质上,共识的达成,是基于人类的趋利避害的本能。一般而言,各种共识机制并没有严格意义上的优劣之分,只是分别适用于不同的环境。
来源:Axonomy社区
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。