[Solidity][区块链安全入门]Solidity语言关于密码学知识的运用以及存在漏洞

简介: 密码学在区块链中扮演关键角色,确保机密性、完整性、身份认证和不可否认性。对称密钥加密用于快速加密,但不支持不可否认性。非对称加密(如RSA)解决了这一问题,每个用户拥有公钥和私钥。散列函数(如SHA-1、SHA-2)用于数字签名,保证信息来源和完整性。同态加密允许在不解密情况下处理加密数据,增强隐私保护。零知识证明则能验证信息正确性而不泄露额外信息,如ZCash使用该技术隐藏交易详情。环签名技术(如在门罗币中)隐藏签名者身份。区块链隐私保护措施包括混币技术,旨在混淆交易路径。网络和应用层面上也存在隐私挑战,需要综合策略来防御。

密码学

区块链通过密码学算法想要实现的性质有:机密性 完整性 身份认证和不可否认性

对称密钥算法:通过安全的方式或者信道去共享加密密钥 但是没有解决不可否认性,意味着所有拥有密钥的人都能加密 每当有成员离开时,密钥需要进行更新

常见的对称密码算法:

公钥密码算法&非对称密钥算法

每个用户都有公私钥对

常见算法

散列函数

根据消息内容得出唯一的 有固定长度输出值的函数 如SHA-1 SHA-2 MD5 等,通常又称杂凑算法

可以用于数字签名和文件校验等,只能单向运算

数字签名的两个明显作用:向接收方保证信息来自声明的发送者 且过程中不可否认;向接收方保证传输过程中不会被改变

同态加密:在不透露出元数据的情况下,对同态加密的数据处理后再将输出进行解密,与元数据按照同一方法进行运算的结果是一样的

代数同态:既是加法又是乘法同态 算术同态:同时满足加减乘除四种同态

同态加密是一种公钥加密算法 能够让密文拥有计算功能 无需解密就能直接对密文进行处理,使用同态加密可以让智能合约能够处理密文,但无法获得真实数据,极大提高隐私安全性

零知识证明:

证明这可以在不向验证者提供更多有用信息的情况下,使验证者相信某个论断是正确的。如用户注册密码的保存 向实习公司提供未挂科证明却并未看到成绩 用公私钥验证身份等

在区块链的世界中,用地址来表示交易双方,这样达到了匿名的作用。然而,链上的信息虽然是匿名的,但是通过链上信息绑定的链下信息,像很多交易所都绑定了链上地址与链下的银行账户、支付宝,这样可以很方便的追溯真实世界的交易双方,使得匿名性荡然无存。

那么,有没有一种方法,能够在隐藏发送方、接受方以及交易金额等其他细节的情况下,保证交易有效呢?

答案就是:零知识证明
 通过利用零知识证明机制,可以将交易双方的地址、交易细节隐藏起来。
 目前ZCASH(大零币)使用零知识机制来证明交易有效,在ZCASH中,摒弃了之前的UTXO方式,而是使用了一种基于UTXO,被称为NOTE(支票)的新方式代替。NOTE代表了当前账户对资产的支配权,与UTXO不同,账户余额的存储方式不再是“未消费的交易输出”,而是“未被作废的支票(NOTE)”;一个NOTE是由所有者公钥PK、所拥有金额V、和唯一区分支票的序列号r组成,表示为NOTE=(PK, v, r)。

ZCash交易分为两类:透明地址交易和隐藏地址交易。透明地址交易的输入、输出直接是可见的NOTE信息;

隐藏地址交易,输入和/或输出的地址和金额是隐藏的。

在ZCASH的隐藏地址交易中,交易的输入输出不再是明文的NOTE,而是NOTE的签发和废弃通知。如下图:

左侧代表的是“签发的新的NOTE”,右侧代表的是“作废的NOTE”。每次进行转账,就会把转账方的NOTE放到作废列表里,代表此NOTE已经作废,同时为收款方创建一张等额的NOTE。这样就实现了“资产的转移”,并且由于都是记录的NOTE的哈希值,因此并不知道被废弃的和新签发的NOTE的内容,这样就做到了隐藏交易双方及交易细节。

环签名技术(把身份藏进人群里 从而保护签名者) 典型的应用案例 :门罗币

环签名中签名者利用自己的私钥和集合中其他成员的公钥就能独立签名,集合中的其他成员可能不知道自己被包含在内

隐私威胁和保护:

用户身份隐私主要是指交易双方的地址信息:

通常用的方法是混币机制,即将多笔交易混合在一起,切断交易方和接收方的联系。提高加密货币的隐私性和匿名性。

混币过程的执行可以由可信第三方或者某种协议去执行 混币机制也可分为基于中心化节点的混币机制和去中心化的混币机制

网络隐私

分为节点隐私(服务器地理位置,节点物理信息,系统版本,节点IP等)和通信隐私(数据流量,节点间数据明文和密文)

对公有链来说 攻击者可以通过监听,扫描技术对整个网络进行探测攻击

应用隐私:

分为服务器隐私和客户端隐私

主要内容:支付流敏感信息 浏览器cookie,密钥存放位置,

威胁一般不是来自区块链技术本身,而是用户和服务商

服务商暴露隐私的源头主要来自操作不当或者服务漏洞。如服务商授予用户的权限不匹配,服务商公开信息中存在敏感信息,插件中存在漏洞

相关文章
|
28天前
|
安全 算法 区块链
量子计算:区块链安全的下一个重大威胁?
量子计算的飞速发展对依赖RSA和ECC加密的区块链安全构成潜在威胁。量子计算机的高效计算能力可破解传统加密,允许恶意攻击者篡改交易或盗取加密货币,影响经济安全。为应对这一威胁,研究人员正在开发抗量子加密算法,区块链平台也在考虑整合这些新算法以防御未来的量子攻击。尽管挑战重重,积极采取措施的区块链技术有望在量子时代保持安全可靠性。
|
2月前
|
前端开发 安全 物联网
《Solidity 简易速速上手小册》第10章:区块链项目实战(2024 最新版)(下)
《Solidity 简易速速上手小册》第10章:区块链项目实战(2024 最新版)
48 1
|
2月前
|
供应链 前端开发 JavaScript
《Solidity 简易速速上手小册》第10章:区块链项目实战(2024 最新版)(上)
《Solidity 简易速速上手小册》第10章:区块链项目实战(2024 最新版)
27 0
|
2月前
|
供应链 安全 算法
区块链密码学:基础知识、应用与未来发展
区块链密码学:基础知识、应用与未来发展
247 0
|
8月前
|
存储 供应链 Go
使用Go语言搭建区块链基础
使用Go语言搭建区块链基础
|
8月前
|
存储 安全 Go
Go语言在区块链开发中的应用
Go语言在区块链开发中的应用
|
11月前
|
算法 Serverless 区块链
|
1天前
|
供应链 物联网 区块链
新兴技术浪潮下的变革与机遇:区块链、物联网、虚拟现实的融合趋势
在科技不断进步的今天,区块链、物联网、虚拟现实等新兴技术正逐渐渗透到我们生活的方方面面。本文将深入探讨这些技术的发展趋势和应用场景,揭示它们如何相互融合,共同推动社会的进步。通过数据支持的分析,我们将展示这些技术在未来可能带来的变革与机遇。
5 0
|
2天前
|
安全 物联网 分布式数据库
深入探讨区块链技术的未来发展
区块链技术作为一种分布式数据库技术,不仅仅局限于加密货币领域。本文将探讨区块链技术在金融、物联网和社会治理等领域的潜力与应用,以及未来发展的关键挑战和前景。
5 0
|
3天前
|
存储 供应链 算法
区块链技术在现代供应链管理中的革新应用
随着数字化转型的不断深入,区块链技术作为一种分布式账本技术,其在供应链管理中的应用逐渐展现出独特的优势。本文将探讨区块链技术如何通过提供透明性、安全性和效率来革新传统的供应链管理模式。文章首先介绍区块链的基本原理及其对供应链管理的潜在影响,然后详细分析区块链技术如何优化库存管理、增强供应链透明度以及提高交易的安全性和效率。最后,通过实际案例研究,展示区块链技术在供应链管理中的具体应用效果,并讨论其面临的挑战与未来发展方向。

热门文章

最新文章