区块链金融:重塑互联网经济格局
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 加密和授权

区块链中有多个区块,每个区块中都包含一次交易的信息。非对称加密技术是为了检验信息是否有效而生成下一个区块的技术,区块链中的信息虽然是高度透明的,但是关于用户的信息却是高度加密的,只有得到用户的授权,才能得到用户的身份信息,这样的机制就保证了数据的安全性和隐私性。非对称加密技术包含两种密钥,一种是公开密钥,一种是私有密钥,即公钥和私钥。

2.2.1 唯一私钥由用户保管

现代加密算法由加密算法、解密算法、公钥、私钥构成。利用加密算法和公钥进行加密,利用解密算法和私钥进行解密,唯一的私钥由用户保管。公钥与私钥一致时被称为对称加密,不一致时则被称为非对称加密。这两种加密模式在不同的场景中被使用,是一种互补关系,但在一些情况下也可以组合起来使用,形成组合机制。

1.对称加密

对称加密模式的优点非常明显,由于加密、解密用的是同一个密钥,所以解密的速度比较快,占用的空间比较小,保密性较好,强度也比较高。

但是对称加密模式也有缺点。因为加密和解密使用的是同一个密钥,所以如果有人将密钥泄露,这种加密模式就不具有很高的安全性。由此来看,对于对称加密模式而言,需要考虑的首要问题就是如何发放密钥。虽然这种加密模式因其解密速度比较快而被用于大量数据的解密,但是却并不适用于需要签名的情况。

AES系列算法是对称加密算法的一个代表,因为这种算法的安全性高,灵敏度好,能在很短的时间内建立出密钥,所以在对长文本信息进行加密的时候经常会被使用。

2.非对称加密

非对称加密模式有两个特点:一是公钥和私钥是分离的,容易分发。公钥就是公开的密钥,所有人都能得到,但是私钥却是由用户一个人来保管的,不会公开,除了用户本人,其他人是无法从公钥推算出私钥的;二是用公钥对其中一个密钥进行加密后,只能用相应的另一个密钥才能解密。

进行非对称加密,首先要按照某种算法完成密钥的生成,例如 SHA256算法、哈希算法、Base58编码等。在系统中输入数字,经过计算后可以得出一串字符串,这串字符串就是计算得出的私钥。然后在另一套算法(如secp256k1、椭圆曲线)中通过私钥生成公钥,这个过程是不可逆的,即无法从公钥逆推出私钥。所以,从密码学角度来看,这种加密方式是安全的,有助于保证数据的安全性。

非对称加密的优点是每一对密钥都是唯一有效的,保密性较高;缺点是加密和解密的速度比较慢。在区块链中,数据解密、数字签名及登录认证常常采用非对称加密。

但不得不承认的是,当需要对大量数据进行加密和解密的时候,这种模式便不适用。实际上,有许多算法能代表非对称加密算法,如RSA、ElGmal、椭圆曲线加密算法等。由于 RSA 算法具有较低的安全性,因此当前主要使用椭圆曲线加密算法来完成非对称加密。

以比特币为例,比特币系统中会随机生成256位随机数作为私钥。从密码学角度来看,这庞大的私钥总量完全可以保证私钥的安全性。但是为了易于识别,这256位随机数私钥会通过SHA256算法、哈希算法、Base58编码的转换形成一串固定长度的数字串,这段数字串就是交易中的私钥。

以私钥为基础,再通过 secp256k1、椭圆曲线加密算法进行转换,生成长度为65字节的随机数,这个随机数序列可以转换成比特币交易时所使用的地址。

不仅如此,生成的长度为65字节的随机数经过SHA256和PIPEMD160算法运算转换后,可以生成20字节的比特币地址摘要,利用 SHA256算法对地址摘要的结果进行两次运算后可以得到一串数字串,取哈希值前四位为地址校验码,在摘要的前面添加版本号信息,并且在其末尾添加地址校验码,最后就可以将整合好的信息经过 Base58算法转换为33个字符的比特币地址,如图2-3所示。

图2-3 比特币非对称加密机制

比特币的公钥与私钥一般都保存在比特币钱包文件中,私钥在区块链系统中最重要,因为如果将私钥丢失,就意味着这个私钥所对应的公钥地址和地址中的财产也一并丢失。

非对称加密技术在信息加密中的应用过程如下:信息发送人(记为A)先通过信息接收人(记为B)的公钥对信息进行加密,然后再将加密的信息发送给B, B接收到加密信息后用自己唯一的私钥对信息进行解密。比特币的加密过程与之类似。

数字签名是指用户能对自己的信息进行处理,并且生成一段数字串。这段数字串无法被他人伪造,是信息发送人发送信息的真实性的有效证明。通过数字签名技术,信息传输的完整性和信息发送人身份认证的有效性都可以得到保证,有助于防止交易中抵赖事件的发生。

非对称加密技术在数字签名情况下的应用过程如下:首先由A使用唯一私钥来加密信息,然后将加密的信息发送给B, B通过使用A的公钥来对加密的信息进行解密,从而保证该信息的确是由A发送过来的。

非对称加密技术在登录认证场景中的应用过程如下:用户先在客户端使用唯一的私钥对登录信息进行加密,然后将加密信息发送至服务器,服务器接收到信息后就可以利用此客户端的公钥进行解密,从而对登录信息进行认证。

区块链交易由两步组成,第一步是交易签名,第二步是交易验证。交易签名是指本次的信息接收人(B)先使用公钥对上一次交易的信息进行加密,然后本次的信息发送人(A)用自己唯一的私钥在加密的信息上签名。

交易验证是指本次的信息发送人(A)先利用公钥对其签名进行解密,解密后就可得到一个信息 X,再将上一次交易的信息与本次的信息接收人(B)进行拼接。然后采用哈希算法进行运算就可得到一个信息Y,只要信息X与信息Y一致,就表示本次交易的信息发送人确定是A,接收人确定是B, A与B是进行这次交易的对象。这种非对称加密技术的运用使区块链交易的私密性和真实性都大幅提高。

随着区块链技术的深入发展,以及社会对区块链技术需求的增加,非对称加密技术被广泛应用在多个领域,并且不断地进行技术更新,在交易签名验证的应用基础上添加了新的技术。

例如,当需要达到有限匿名的目的的时候,就可以考虑对记录在区块链上的数据进行加密,但要想通过区块链进行查看就必须拥有解密的钥匙,这便要求生成一种多重签名技术,存储在区块中的信息需要被其他节点检验,但如果不愿让校验者看到某些真实信息,就需要盲签名技术的支持。

2.2.2 交易可匿名

在信息系统中,有一些信息是信息拥有者不愿向外界透露的,这些信息就是信息系统中的隐私。区块链系统因为其特有的透明性,所以每个节点的信息都具有同步性。为了维持信息的同步性,让大多数网络参与者对交易达成共识,区块链中的某些信息就必须公开。

然而,为了保护用户的隐私,还要对一部分拥有者不愿公开的敏感信息进行处理,从而降低隐私泄露的风险。一般情况下,根据区块链技术的特点,区块链中的隐私可以被分为以下两种。

1.身份隐私

身份隐私指的是用户信息和区块链地址之间的关联。区块链地址通常是利用非对称加密算法生成的,可以用作交易的输入地址或输出地址。由于区块链地址是由算法生成的,所以其自身的信息与用户的信息没有关联,用户可以自由创建并使用区块链地址,这个过程不需要第三方的参与。因此,相较于银行账号这类传统账号,区块链地址的匿名性更好。

但是,当用户使用区块链地址进行交易的时候,网络层中会留下传播轨迹,这些轨迹可能被他人看到,而且还很有可能被不法分子利用,例如推测与该区块链地址对应的个人信息等,因此还是存在一些私密信息泄露的问题。

2.交易隐私

交易隐私主要是指储存在区块链中的交易历史记录等信息。在早期的区块链电子货币交易中,交易记录一般是公开的,对交易记录也没有其他的保护措施。但是随着区块链应用领域的扩大,区块链技术开始被银行等金融机构使用,于是交易记录就成了非常重要的敏感信息,例如从用户的购物记录可以推测该用户的生活水平和生活状态。因此,就需要采取一些特殊的措施来防止信息泄露,以保护用户的交易隐私。

由于区块链中的信息不能轻易被篡改和消除,所以即使发现用户的交易隐私被泄露,也很难像传统的中心化组织系统一样,通过对已经曝光的信息进行删除来阻止隐私继续传播,所以用户的交易隐私是区块链技术的重点保护内容。

因为区块链技术的去中心化特征,所以在隐私的保护方面它要比中心化的组织系统具有一些突出的优势。也正是因为这样,区块链才适用于一些需要对隐私进行保护的场景。

例如在传统的网络中,可以通过窃听网络流量来发现用户之间的通信关系,但是区块链系统是一种P2P网络,需要依靠节点与节点之间的关联实现通信和传播。在区块链网络中,交易的发起人首先要将交易信息发送给与自己邻近的节点,邻近的节点收到了信息后再将信息转发给与自己邻近的节点,以此类推,信息便可以在整个网络中传播。换言之,信息接收人无须与信息发送人进行直接通信就可以接收到信息。因此,P2P网络被成功窃听并不容易,窃听者很难通过窃听来判别信息的来源与去向。

运用区块链技术可以进行匿名交易。区块链的交易需要区块链地址作为输入地址或输出地址,而区块链地址是由用户自主创建的,整个过程无须第三方参与,所以区块链地址与用户的个人信息没有关联。

区块链地址来源于非对称加密算法,具有很大的空间,这就意味着地址出现重复的概率非常低。这种低重复率就使得每个用户都可以在交易中生成不同的区块链地址,从而进一步增强交易的匿名性。

区块链技术的组织系统是去中心化框架,账户及密码等敏感信息并不集中储存在中心服务器上,这也就避免了像传统中心化系统一样,因中心服务器遭受攻击而产生隐私泄露的问题。由此便可看出,区块链技术以密码学为基础,在非信任节点之间建立起信任关系,与传统的依靠中心机构的隐私保护模式有很大不同。

区块链系统和传统中心化机构对隐私保护的侧重点不同。因为传统的中心化组织系统是将所有的数据信息存储到中心服务器中的,所以这种模式的重点是保护信息在存储和传播过程中不会泄露。

然而,在区块链技术中,信息是公开共享的,而且具有透明性,无法采用中心化的储存方式实现对其的保护,所以这个技术将信息保护的侧重点放在了交易的匿名性上,即虽然交易的信息是公开共享的,但是攻击者无法从中找出交易者的个人信息。

从目前的情况来看,区块链技术的节点多为私人计算机,而不是传统的中心服务器,很多关于信息保护的算法无法适用于这一新兴技术。

根据区块链技术的特点,可以将区块链技术中的隐私保护机制分为三种类型。

1.网络层的隐私保护

网络层指的是包含节点设置、节点通信、数据传输机制等底层通信的整个过程。在早期区块链的应用中,任何用户都能够通过运行比特币程序成为网络中的节点,而且并不需要经过审批,节点之间也可以自主进行通信和信息传输。

这样的机制使得早期区块链系统容易被攻击者监听,攻击者还能够从中获取一些隐私。因此,网络层的隐私保护要避免被监听和攻击,也要把侧重点放在限制节点的权力上。

2.交易层的隐私保护

交易层指的是区块链中数据的产生、验证、存储和使用的过程。区块链技术基于其特有的数据结构和共识机制,数据不可以被任意篡改,这虽然增加了账本本身的真实性和准确度,但也增加了隐私泄露的风险。一旦隐私被泄露,不仅完整的交易数据会被泄露,用户的个人信息也会被泄露。因此,对交易层的隐私保护需要基于区块链共识机制,尽可能地将数据背后的隐私隐藏起来。

3.应用层的隐私保护

应用层指的是区块链技术被外部使用的过程。用户因使用区块链程序和其他程序而导致隐私泄露,例如一些用户将自己的比特币地址公布在论坛等社交网站上导致隐私泄露。因此,提高用户自身的安全意识和区块链服务商的防护水平,就是应用层方面隐私保护的侧重点。