[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,密钥存放位置,

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

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

相关文章
|
4月前
|
存储 供应链 安全
区块链技术在选举中的应用:透明与安全的新时代
区块链技术在选举中的应用:透明与安全的新时代
172 16
|
4月前
|
存储 人工智能 安全
基于区块链的数字身份认证:重塑身份安全的新范式
基于区块链的数字身份认证:重塑身份安全的新范式
554 16
|
4月前
|
存储 安全 数据管理
区块链在医疗数据管理中的应用:安全与隐私的新纪元
区块链在医疗数据管理中的应用:安全与隐私的新纪元
416 16
|
6月前
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
6月前
|
存储 供应链 安全
重塑信任:区块链技术如何打造数字世界的全新安全生态
【10月更文挑战第32天】区块链技术自比特币诞生以来,以其去中心化特性吸引了全球关注。本文通过最佳实践探讨区块链如何重塑数字世界的信任体系,包括保障数据真实性、身份验证与隐私保护以及提升投票系统的安全性和透明度。通过智能合约示例,展示了区块链在供应链管理、身份管理和投票系统中的应用。区块链技术正推动各行各业的创新与发展。
186 2
|
6月前
|
存储 人工智能 安全
区块链技术入门与应用前景
区块链技术入门与应用前景
87 0
|
7月前
|
传感器 安全 物联网
新技术趋势与应用随着科技的不断进步,新兴技术如区块链、物联网和虚拟现实等正迅速改变我们的世界。这些技术不仅在各自领域内展现出强大的潜力,还在相互融合中催生出更多创新应用场景。本文将探讨这些新兴技术的发展趋势及其在各行业中的应用前景,通过通俗易懂的语言和清晰的条理,带领读者了解其内涵和意义。
本文旨在探讨区块链技术、物联网和虚拟现实等新兴技术的发展趋势及其在各个行业的应用场景。通过分析这些技术的独特优势和潜在缺陷,揭示它们对未来社会和经济可能带来的深远影响。同时,结合实际案例,展示这些技术如何解决现实问题,为各行各业提供新的发展机遇。
191 4
|
8月前
|
人工智能 监控 安全
引领区块链安全新时代,绽放创新光芒
在区块链安全需求不断升级的时代,AI StarTowerChain 以创新安全体系,引领区块链安全新潮流。其分散式架构通过智能设备节点的协作,增强抗攻击能力;安全审计如专业医生,全面审查交易与合约;监控功能实时警报异常;社区参与提升透明度与安全性,共同守护区块链安全。
|
8月前
|
存储 供应链 安全
掌握未来:区块链技术的简易入门指南
想象一下,有一种魔法可以安全地储存你的财富和信息,不受任何中心化机构的控制。听起来像是幻想?其实不是!这就是区块链技术的魅力所在。本文将带你走进区块链的世界,了解它如何工作,以及为什么它可能改变我们的未来。无论你是完全的新手,还是对这项技术略知一二,这篇文章都将为你提供有价值的见解。
|
9月前
|
Rust 安全 算法
揭秘Rust语言如何重塑区块链安全:打造坚不可摧的分布式账本新篇章!
【8月更文挑战第31天】自比特币诞生以来,区块链技术凭借其去中心化和不可篡改的特点备受关注。为了应对安全性挑战,Rust 语言凭借其内存安全特性逐渐成为区块链开发的优选。本文探讨了 Rust 如何助力区块链实现更安全的分布式账本。通过示例展示了 Rust 在避免内存泄漏、空指针引用及数据竞争等方面的优势,预示着 Rust 在高性能、高安全性需求的区块链应用中拥有广阔前景。
195 1

热门文章

最新文章