几年前,比特币诞生了,当时的技术经济环境并没有给予足够的重视,但现在比特币的价值在3万元左右。 为什么它的存在有如此大的价值,它作为数字货币的存在有什么意义?比特币作为众多数字货币之一,之所以具有如此大的价值,是因为它使用了一种可以取代第三方作为信任机构的技术,那就是区块链技术。 如今,***支付的盛行、各种第三方网络支付机构的出现、无现金文化的推广等,都出现了支付安全问题。 区块链技术已经开始受到重视,尤其是 JD.com 和阿里巴巴等大型在线购物平台。
自网购诞生以来,摆在人们面前最严重的问题就是信任问题。 为了解决这个问题,JD.com 提出了自营策略,希望通过自身的口碑来解决客户信任的问题。 阿里试图通过支付宝的第三方担保来解决问题。 然而,这些方法并不能解决信任危机的根源。 因此,本文要研究的区块链技术,是目前最流行的比特币使用的技术。 下面重点介绍一下区块链技术的讲解。
简单来说,区块链是一种分布式账本技术。 它使用密码学来确保其数据不被篡改,然后使用共识算法对新数据达成共识。
1. 区块链是放置在非安全环境中的分布式数据库
首先,它是一个分布式的、去中心化的系统。 因此,如果有中央服务器或节点,它就不是区块链。 这些节点都是安全的,非恶意的,这也不是区块链。 同样,从应用程序的角度来看,如果您的应用程序必须使用中心节点(例如,用于深度学习的超级计算机),或者不需要考虑节点不安全的情况(例如,安全工厂中的传感器),那么您不需要考虑区块链技术。
至于后一个词“数据库”,大多数成熟的区块链都是数据库,比如比特币就是一个分布式账本,账本其实就是数据。 然后,根据数据的格式,可以分为另外三种类型:
1、数据完全无关,只是一个共识,没有有效或无效的区分;
2、数据具有一定的逻辑结构,例如,在账本中,一笔交易除了金额之外,实际上还有输入和输出,这与前一笔交易有关,这些数据需要通过逻辑进行验证(例如,在交易中,节点需要验证输入的交易是否有效);
3.数据具有图灵完备逻辑,验证需要由节点利用算力进行计算,每笔交易可以有不同的输出和状态,每个节点不仅要验证交易的真实性和输入的正确性,还要根据交易中的逻辑读取值, 检查并验证结果。比特币的系统是第二种类型,也称为分布式账本以太坊是第三个。 第三个可以支持智能合约。 例如,使用比特币,它是一个完全去中心化的系统;它被放置在一个不安全的环境中,并不要求所有使用比特币的人都没有恶意。
2.区块链使用密码学,确保现有数据不被篡改
本节的两个核心点是:加密哈希函数和非对称加密。 两者都是密码学(cryptography)的基础 哈希函数:一个函数 y=h (x) 具有以下属性:x 使计算 y 变得容易;不可能计算 x;使用 y不可能找到另一个具有 y 的 x,使得 h (x) = y;如果 x 和 x 相差很小,则 h(x) 和 h(x) 是完全不相关的。 这个东西主要用来验证信息的完整性,信息的哈希值放在一条消息后面,消息很小,比如256bit,很容易计算。 收到消息后,收件人再次计算哈希值,并将两者进行比较,以了解消息是否已更正。 如果被篡改,即使只有1位,整个哈希值也会完全不同。 由于哈希函数的性质,没有人可以伪造另一条具有相同哈希值的消息,这意味着被篡改的数据完全不可能通过哈希检查。
非对称加密:这个东西很容易理解——一对一的对称加密就是有一个密钥,可以理解为安全密钥,你把消息加密成密文,没人能看懂它是什么,然后用同一个密钥解密原来的消息。 非对称加密是指有两个密钥,一个叫公钥,另一个叫私钥,如果用其中一个加密,就只能用另一个解密,反之亦然。 另一个重要的属性是,如果你得到密文、明文和其中一个密钥,你仍然无法弄清楚另一个密钥是什么。 该原理基本上是基于比特币中使用的因式分解和离散对数等困难的数学问题,这些常用的RSA,Diffihellman和ECC(圆曲线)。 非对称加密除了用于信息加密之外,还有另一个用途,那就是认证。 因为通常我们假设一对公钥和私钥是公钥,而私钥只归个人所有,所以如果一个人有对应的私钥,我们可以假设他就是他自己。 最重要的应用之一是对发件人散列的消息进行数字签名,然后使用私钥对其进行加密。 然后接收者首先对消息进行哈希处理,然后用对应的公钥解密数字签名,然后比较两个哈希值,如果它们相同,则表示该消息是由该人发送的,没有被篡改。
区块链将交易(数据)写入区块:第一个区块称为创世区块,内容是任意的。 从第二个区块开始,每个区块的第一部分具有前一个区块的哈希值。 此外,区块中的每笔交易(数据)都有发起人的数字签名,以确保真实性和合法性。 因此,前一个块中的任何数据都不能被篡改。 此数据库不是静态的。 数据库中的数据会增加,每次添加数据,都是一个块,所以这些生成时间不同的块以这种形式链接在一起。
3. 区块链使用共识算法对新数据达成共识
共识算法的目的是让所有节点对新区块达成共识,即每个人都必须批准新区块。 对于一个有中心的系统来说,很简单,大家都同意中心说的话,但是在一个去中心化的系统中,尤其是当一些节点有恶意的时候,这件事就非常复杂了,在计算机科学中有一个对应的问题叫做“拜占庭一般问题”或“拜占庭容错”(BFT)公链,以比特币为代表, 以太坊和所有正在考虑的币种,都使用比特币共识,而共识算法基本上都采用了一种工作量证明机制,即挖矿,这在其他答案中已经解释得足够清楚了。工作量证明机制没问题,除了电费。 电费是多少?比特币,它大约是一个拥有一百万人口的城市那么大。 此外,以太坊的创始人特别喜欢权益证明,似乎很快就会小规模投入使用(100个区块中有一个)。 但到目前为止,人们对其可靠性一直持观望态度。
私有链和联盟链。 IBM 的 Hyperledger-Fabric,以及 TenderMint 等一大堆其他产品,甚至 R3Corda 和 Ripple,都以 BFT 共识为代表。 其实这个领域有很多应用,但问题是,基本上所有的应用还是给人一种为了区块链而区块链的感觉,基本上没有应用真正觉得这个东西这么好,不可缺少。
它是安全的,没有大账本,所以不能被销毁(不受电脑控制),不能被骗,每个人都有同一个账本,可以保证账本记录过程公开透明。
全国记账的效率也会提高,不会有集中的中介机构,让一切都通过预先设定的程序自动运行,可以大大降低成本,提高效率。
为了解决中介信用问题,两个人之前合作过,如果彼此不信任,就得依靠第三方,就像转账要通过银行一样。 但通过区块链技术,人们可以在没有中介的情况下在双方之间转移资金,比如比特币,这是区块链的实际应用之一。
资料来源:中国信息化。
原标题:基于网络交易的区块链安全技术研究.
由焦峰撰写。