写点什么

区块链中的密码学 -- 构建信任体系的基石

  • 2019-12-25
  • 本文字数:1479 字

    阅读完需:约 5 分钟

区块链中的密码学 -- 构建信任体系的基石

相信同学们肯定都熟悉《孙子兵法·军争》中的名句“其疾如风、其徐如林、侵掠如火、不动如山”,毕竟“风林火山”在二次元和游戏中有着超高登场频率。不过这名言后面还有两句“难知如阴,动如雷震”,强调的是对己方信息的保密——拉开架势打堂堂之阵是成本最高的战术,隐藏意图以奇兵胜才是大智慧。


其实这也算是兵家常识——不懂的都被灭了,但道理简单,如何能做到信息保密落地可就需要许多人殚精竭虑了,这也催生了一门重要学科——密码学,意义在于如何把所要传输的信息在发给接收者之前进行秘密转换以防止第三者对信息的窃取。


密码学应用可谓森罗万象,区块链也是其中之一,可以说诞生伊始,区块链就与密码学的技术不可分割。


在区块链的传世之作——中本聪撰写的《比特币:一种点对点的电子现金系统》中,就对密码学在区块链交易系统中的作用有着很好的诠释:用户的账户或者资产在区块链上就是使用密码学中数字签名算法的公钥进行表示的,换句话说拥有这个公钥对应私钥的人就对相应的账户或资产拥有控制权;当要将数字资产发送给下一个拥有者时,就需要使用对应私钥对整个交易进行数字签名,区块链的其他使用者通过公钥验证数字签名的合法性,从而可以确认该次转账是否经过资产所有者授权。



区块链之所以能称之为“链”,就是因为通过密码学中哈希函数构成指针的链表,这个链表链接一系列的区块,每个区块包含数据以及指向标准前一个区块的指针。前一个区块的指针使用的是其哈希值,这个哈希值会存储在后一个区块中以方便查找其位置。同时,这个哈希值也能进行验证这个区块所包含的数据是否发生变化。在区块链底层数组结构中存储中也用到了密码学哈希函数来进行存储以方便查找。


//


简单而言,密码学是构建区块链信任体系的基石,为区块链提供五种信任能力。


1


第一种是保密性:通过加密算法,防止未经授权的信息泄露;


2


第二种是认证性:通过签名或认证算法,确认信息发送方的身份,确认区块链上信息的来源;


3


第三种是完整性:通过哈希和签名算法,确认数据未被篡改,验证区块链的状态;


4


第四种是不可否认性或抗抵赖性:通过签名算法,防止否认已做过的事;


5


第五种是访问控制:可以确定谁在什么条件下可做什么事,保证区块链上加密的数据只被授权用户看到。


随着密码技术的不断发展,现在同态加密、零知识证明和安全多方计算等高级密码算法和协议,还可以为区块链提供密态计算、密态校验和分布式密钥管理的能力,为区块链更多场景提供信任的基础。



在区块链的隐私保护方面,除了使用一般的对称加密算法,还可以使用密码学上同态加密与零知识证明技术,将交易的金额加密起来。这样既可以在密文上对交易的金额进行同态操作,完成密态计算,又能在不泄露交易金额的情况下,“零知识地”证明交易符合业务逻辑,完成密态校验。


在分布式密钥管理方面,结合密码学中的承诺、零知识证明和不经意传输等密码技术,通过将私钥“拆分”成多个分片并由多方分别持有,使得私钥在其整个生命周期内都不会完整出现,签名时由多方共同参与。这样既有效地保护私钥的安全性又不影响其功能,类似于中国古代战争中调兵遣将使用的虎符。


蚂蚁区块链团队深耕密码学技术的研究和创新,在标准算法加速、零知识证明、密文上访问控制、分布式密钥管理都有创新性的研究成果并落地到区块链业务方案中给客户创造价值。例如,在同态加密算法 Paillier 中,蚂蚁区块链团队对其底层代数结构进行了深入优化,将算法的加解密性能提升了 6 倍以上。蚂蚁区块链会继续将安全性和隐私性放在重要位置上,用密码学技术为客户创造价值。


本文转载自蚂蚁区块链公众号。


原文链接:https://mp.weixin.qq.com/s/WnjyyqJLeSh1gvvsrnc9nA


2019-12-25 18:081022

评论

发布
暂无评论
发现更多内容

react源码分析:babel如何解析jsx

flyzz177

React

【IntelliJ IDEA】idea中的插件之一:Free Mybatis plugin跳转插件的使用(方便在Dao接口和Mappper XML文件之间进行切换)

No8g攻城狮

插件 IntelliJ IDEA

Flomesh Ingress 使用实践(三)多租户 Ingress

Flomesh

命名空间 多租户 ingress Ingress Controller

版本控制 | 如何利用虚幻引擎进行虚拟制作,为电影制作带来更多可能

龙智—DevSecOps解决方案

游戏引擎 虚幻引擎 虚幻引擎5 虚拟制作

前端leetcde算法面试套路之树

js2030code

JavaScript LeetCode

从历代GC算法角度刨析ZGC

京东科技开发者

ZGC JVM GC算法 垃圾回收算法 企业号 2 月 PK 榜

直呼牛逼!阿里最新SpringBoot进阶笔记涵盖了SpringBoot所有骚操作

程序知音

Java ssm springboot Java后端 Java进阶

KCL 与其他 Kubernetes 配置管理工具的异同 - Helm 篇 - Helm 篇 [一个自研编程语言能做什么?(系列 3)]

Peefy

Kubernetes DevOps 编程语言 #开源

助力芯片产业蓬勃发展,诚翔滤器推出光刻机过滤器

电子信息发烧客

区块链DEFI质押挖矿系统开发流程丨土狗币智能合约系统开发源码方案

I8O28578624

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

ITSM | Atlassian被Gartner评为IT服务管理平台魔力象限的领导者

龙智—DevSecOps解决方案

Atlassian ITSM Gartner

用javascript分类刷leetcode21.树(图文视频讲解)

js2030code

JavaScript LeetCode

携程MySQL迁移OceanBase最佳实践|分享

OceanBase 数据库

数据库 oceanbase

量化Python交易系统开发技术,合约量化系统开发源码部署方案

I8O28578624

Spring Data + DDD = 王炸!!

程序知音

用 AI 取代人工?或许 LLMs 可以给你答案

鼎道智联

#人工智能

简单好上手!1分钟带你体验Apipost

叶小柒

drools规则动态化实践

京东科技开发者

Java 规则引擎 业务逻辑 企业号 2 月 PK 榜 drl

react源码中的生命周期和事件系统

flyzz177

React

Elasticsearch dynamic_templates 实战 通用配置

alexgaoyh

elasticsearch dynamic_templates index template

Flink Table Store 典型应用场景

Apache Flink

大数据 flink 实时计算

【IntelliJ IDEA】idea常用快捷键汇总

No8g攻城狮

IDEA intellij IntelliJ IDEA

云小课|GaussDB(DWS)数据存储尽在掌控,冷热数据切换自如

华为云开发者联盟

开发 华为云 数据存储 企业号 2 月 PK 榜 华为云开发者联盟

react源码中的协调与调度

flyzz177

React

chatgpt背后的人工和智能

刘旭东

ChatGPT

A100 买不到了,只有小显卡怎么训大模型

MegEngineBot

深度学习 开源 大模型 显卡、gpu MegEngine

架构作为6

梁山伯

“堆外内存”这玩意是真不错,我要写进简历了。

why技术

Java 程序员 面试

开源工具系列3:Prowler

HummerCloud

云安全

一文详解TensorFlow模型迁移及模型训练实操步骤

华为云开发者联盟

人工智能 华为云 昇腾AI 企业号 2 月 PK 榜 华为云开发者联盟

区块链中的密码学 -- 构建信任体系的基石_语言 & 开发_Geek_d42ef0_InfoQ精选文章