同态加密技术与区块链技术的结合将给隐私保护提供一种新思路
更多区块链技术与应用分类:
区块链应用 区块链开发
以太坊 | Fabric | BCOS | 密码技术 | 共识算法 | 比特币 | 其他链
通证经济 | 传统金融场景 | 去中心化金融 | 防伪溯源 | 数据共享 | 可信存证
简介
人们越来越关注隐私保护,而同态加密技术将给隐私保护提供一种技术思路。现在的互联网产品,从某方面讲,根本毫无隐私可言。比如我们在微信上聊一些私密的事,非常不希望第三方人知道,微信上其他人也确实不知道。但是腾讯一定知道,像之前facebook发生信息泄露一样,所有的社交平台都有隐私泄露的风险,这让人时刻提心吊胆,这样的机制是有重大缺憾的。那如果使用同态加密技术,通信双方发的内容都以乱码的形式存在数据库,只有拥有密钥的通信双方有权查看,这不就杜绝了隐私安全问题吗?
区块链是一个去中心化系统,区块链上的交易需由全网进行共识验证,这就不得不向全网进行信息公开。也确实是,比特币、以太坊等系统上的交易都是明文存储。随着商业或者其他业态应用在区块链上,不想全链上的用户都知道某些信息,同态加密算法给我们提示了一个好方向。同态加密概念
同态加密(Homomorphic Encryption)是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,即对密文直接进行处理,跟对明文进行处理再加密,得到的结果相同。从代数的角度讲,即同态性。
同态加密算法分类
a) 如果满足 f(A)+f(B)=f(A+B), 我们将这种加密函数叫做加法同态。
b) 如果满足 f(A)×f(B)=f(A×B), 我们将这种加密函数叫做乘法同态。
注:
如果一个加密函数f只满足加法同态,就只能进行加减法运算;
如果一个加密函数f只满足乘法同态,就只能进行乘除法运算;
c) 如果一个算法能满足:加法同态和乘法同态。那么,我们称之为全同态算法。
也就是说,如果一个加密函数同时满足加法同态和乘法同态,称为全同态加密。
同态加密在区块中应用
隐私保护技术在区块链中的应用还是初期阶段,针对fisco bcos链实现同态加密的过程:凡是上链的数据可通过调用paillier库完成加密,链上的密文数据可通过调用paillier预编译合约实现密文的同态加运算,密文返还回业务层后,可通过调用paillier库完成解密,得到执行结果。具体流程如下图所示:
有一些应用场景需要用到同态加密计算,如在联盟链中,不同的业务场景需要配套不同的隐私保护策略。对于强隐私的业务,比如金融机构之间的对账,对资产数据进行加密是很有必要的。在FISCO BCOS中,用户可以调用同态加密库对数据进行加密,共识节点执行交易的时候调用同态加密预编译合约,得到密文计算的结果。
隐私模块的代码已在官方预编译合约中实现,在合约中调用即可。
// PaillierPrecompiled.sol pragma solidity ^0.4.24; contract PaillierPrecompiled{ function paillierAdd(string cipher1, string cipher2) public constant returns(string); }
利用同态加密计算1+1,控制台输出结果:
# 在console目录下启动控制台 bash start.sh # 调用合约 call PaillierPrecompiled.sol 0x5003 paillierAdd "0100E97E06A781DAAE6DBC9C094FC963D73B340D99FDA5D629E094D3B051FBBEA26F46BB681EB5314AE98A6AE26BD0DD77709C5DB15357DBEC34F8D8B9D5892FDF5F5FC56B1474CF58D6AC23AA867E34653BDCDBDC283D1FBCBCFACA7C0FE45EECDBD43FADF2C2C35027B05E901F45CB3B71479FC49FD08B3F81C82326DEF28739D6A7D090F93D1B5058CDA89134AB103DB49EA51FFFF9B3284BC6C3B6BA3BB0FCB35FEA6AF1453A4AAEB3EB82E9B99875BEA89CDB40E6E5FC906F0FF29A83CD23ACC0C832A0DE30D0CA7ABE2EA0E14DAACACDD5E285E8FB7B6D62C9AABE1BE751DD68001F492D6FD4C46583B25FF1806A954E8DB5ED935C5A2CA6816C4EDB48D4A41D146E09EF1CA5AFECC38F38E4147D9C6D07429F058266CC879AF8AA88510EC8D78400DFFA32244B99DC1ACAEA07578AF340C3C4ABED09355A006FCE99F22BE113FACB6CA9D8501EDF42A11CFCCFD081E48249B9345FA8C2F73E6CB37CB17C2A5A1EA4DC44949A63E8DA45F3DCE2FE897CDD413C84DC0BEF8ECBC99F48CBB3DA2D04B40CDCB03A6CD8FDC11277A5AA5F73DB6B828ABD0143A0A5020EE985A88EEC73FD9DF205E5CD5C54C06ADD092E839B91F28887C9BFE1BABCC7BFB08372EDD320B1BB2FEE8DC00AF93D07C0572BF3E089806EA7E3C8DB4BE61E31E389CB919FCEE834E1D9EBA624DE324D85425BCCDF8C3F8F3A94E33A307CAAE5922E46FFE96A521ECB6E7D681E7CF6A1900EEF0DDF23ADEC6EFAFF1F266AEDA7B501DBC94D20817DD43D9EB056E3DA4DA977E85A53207F2C229F9302EB5029B5C31EE40FC7E25591CDC6B4AD206BDFB50C5F7D2DA2D6B8AB7A6B575C20FDD12A37EBECF27D60BDED0F72628C1AA192DF51A1B7479EFC45A4B489FC" "0100E97E06A781DAAE6DBC9C094FC963D73B340D99FDA5D629E094D3B051FBBEA26F46BB681EB5314AE98A6AE26BD0DD77709C5DB15357DBEC34F8D8B9D5892FDF5F5FC56B1474CF58D6AC23AA867E34653BDCDBDC283D1FBCBCFACA7C0FE45EECDBD43FADF2C2C35027B05E901F45CB3B71479FC49FD08B3F81C82326DEF28739D6A7D090F93D1B5058CDA89134AB103DB49EA51FFFF9B3284BC6C3B6BA3BB0FCB35FEA6AF1453A4AAEB3EB82E9B99875BEA89CDB40E6E5FC906F0FF29A83CD23ACC0C832A0DE30D0CA7ABE2EA0DDD4C285AB8C5F53DA58502BD2E312CE591C83D009CB05676CEDE46C9BFEBA7AFF1E27A0AABB13F37CFF2DFEE5D14D52A660FDD0FFD263E211C594A0EDB7AFDA1240A2C340C44C3568FA47AB2CC00459DF31828C56CAC0284B5D0D3BC3D6F37969FACED77B03107B88F60A73E1F9FEBE6152FB00BDAECA9954AC28D4D9599FE234AF2E52748DBEB65570F2B99A638C9B887FAEA39FE12CB1BAE9AE085E353D4DC0FE141D87D98E78C46FFD0F634D498E4E4B2F87B60D505F8401DCCC1BC0D9E32B8C5AF6A6257DB61DDD166CC17EC16D00C24042D6919C1CD9E1AB2F3135D798BE795D79013C3BDEE05D88050E7DF1BD3ED0EB7405BA21EA7EBD6351E0BC77B1FA532DB9C5D9A0D4BB9F7E96BAFA259D419DB148C3EF9AE437A424E4EC10EE39260DD0058392CD83C1DFEDAE2D557E5E7DB1BB0327AB92550A66F6D636F9F638A5077D721E6BDE3FEF120C05A62DD9EB5AD680E91E0CBADB54E8A6964EBBBB182CD5EBC8910F2DE80CEEB77FCBDD852E4B6FF2CC1EBA44A5F750B2AD11240F7B95D87055F3CC5A837FAACA1787CF107C9D4B111C8B9FBBE351A8F0E3C50F536CA3304C" # 返回结果 0100E97E06A781DAAE6DBC9C094FC963D73B340D99FDA5D629E094D3B051FBBEA26F46BB681EB5314AE98A6AE26BD0DD77709C5DB15357DBEC34F8D8B9D5892FDF5F5FC56B1474CF58D6AC23AA867E34653BDCDBDC283D1FBCBCFACA7C0FE45EECDBD43FADF2C2C35027B05E901F45CB3B71479FC49FD08B3F81C82326DEF28739D6A7D090F93D1B5058CDA89134AB103DB49EA51FFFF9B3284BC6C3B6BA3BB0FCB35FEA6AF1453A4AAEB3EB82E9B99875BEA89CDB40E6E5FC906F0FF29A83CD23ACC0C832A0DE30D0CA7ABE2EA0D011D9A668B26E65506EF2E8B3EBA70B882DE36FEC5951B64B9D967EE5E05B1AF62EEC43220A756E7FB610FCBD5A366D077C48342EEDA7E609ADE2608BBF972ABDB89769E2D97EE3E308D3CA04802EF8F85BC6BFCD270F1FC6AEA5C09F51ED8BD7833D55D9AF3D0A57D531E30EDD8E777CDE8708AE7DDF83A8C5B48854FD4CD4E7372CED017C0BACD49E409C45FB12494D3955BA1D7618E196A14012B11ADB63B857CFC7FF1D5833A53ACDEFFE78F0CAEBAA27B0E5ADCDD809AEDCD5C7D2CA7F15E53AB7D62ADF04686E05B1F79CA91AFD2CE120AAD7D0F15C8E7B59968CE13BA10C99B50BE696C22A59109C3E6E5EDBE364FFC175DEEAEF67AFAEEFAD42538ACF0D1A2FF030143A0DED95F54CC158BF3A3FCD0B2278BDB6942D6E536CA45E3015B764FF5A94B57D232F86CFC66A29C55B9AFFB6D8882E6F4CE2F8D007C225B6B3DE814FC60EB278B25FB0A1F6B4A34E920CA952BC3F14D121D5438E12634AD951EBD5911B281E3ADEC43410B91DC28B68F9D79D7FE87EE1DB3883B0C925C5A9BA157AB2F07ACD9A09F89EF211EED16358E78EDAF091FBABF8A7DCDD2DD12EC0ABBC10E9E5F7DD48239B0A68CBD81637B1C0D7ED1DF89D714DFC6C1B7B6B3
由此可以看出,计算的数据和输出数据加密前都是十分简单的数字,但是需要转换为复杂的密文,这个过程也比较耗时,同态加密算法确实在现实应用中效率不高。
原文链接:同态加密与区块链
到此这篇同态加密与区块链的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qklyjmjs/7356.html