动态

AOS区块链讲座——《第1讲:什么是同态加密》

By AOS - 2020-8-12

文章来源:AOS微博

众所周知,AOS公链技术使用了同态加密法,作为区块链行业最为前沿的加密技术,同态加密到底有着怎样的魅力,什么是同态加密?这种技术是如何运用到AOS公链当中来的呢?

1)同态加密起源?

1977年,麻省理工学院有三位技术极客共同提出了一种全新的加密算法,也就是著名的“RSA算法”(命名时在这三位极客名字中各取了一个字母)。1978年,”RSA算法”贡献者中的R和A又提出了一个新的加密概念——“同态加密”,并将这种加密法运用到了当时的银行业。

尽管同态加密的诞生已经有超过40多的时间,但仍然是当前最为前沿的加密方式。

2)什么是同态加密?

同态加密:是一种在不放弃对数据访问权限的情况下委托处理数据的方法。

同态加密方案最有趣的地方在于,其关注的是数据处理安全。同态加密提供了一种对加密数据进行处理的功能。也就是说,其他人可以对加密数据进行处理,但是处理过程不会泄露任何原始内容。同时,拥有密钥的用户对处理过的数据进行解密后,得到的正好是处理后的结果。

举个例子

有个叫Alice的用户买到了一大块金子,她想让工人把这块金子打造成一个项链。但是工人在打造的过程中有可能会偷金子啊, 那么会不会有一种方案,让工人可以对金块进行加工,但是不能得到任何金子?

Alice可以这么做:

· Alice将金子锁在一个密闭的盒子里面,这个盒子安装了一个手套。

· 工人可以带着这个手套,对盒子内部的金子进行处理。但是盒子是锁着的,所以工人不仅拿不到金块,连处理过程中掉下的任何金子都拿不到。

· 加工完成后。Alice拿回这个盒子,把锁打开,就得到了金子。

示意图如下:

这个过程和同态加密对应关系是:

3)同态加密技术具体是怎么运用到AOS中的?

举个例子假设现在有俩个用户Alice和Bob。我们将利用同态加密技术在AOS中为了实现从用户Alice向Bob的隐私支付。

1)首先,我们会同态加密算法对Alice和Bob的余额分别进行了加密。参照上面举的盒子和手套的例子,对Alice和Bob的余额进行同态加密,就相当于把一块属于Alice的金子和一块属于Bob的金子放入盒子中。

2)当Alice需要向Bob进行一笔转账的时候,我们会对转账金额进行同态加密。

3)随后,利用同态加密的加法特性,将Alice的余额减去转账金额,同时Bob的余额加上转账金额。这个操作就相当于通过盒子上的手套把Alice的金子切出一小块,放到了Bob的金子中。

4)完成上述操作以后,无论是Alice还是Bob通过自己的密钥解密余额时,就等于用钥匙打开了盒子。这时候Alice会看到自己的金子少了一部分,这代表Alice的余额减少了。同时Bob将会看到自己的金子多了一小块,着表示的余额变多了。

5)除了Alice和Bob其他人都不知道盒子中Alice的金子被切下来一块给了Bob。这样就在AOS中利用同态加密技术完成了一次从Alice向Bob的隐私交易。