基于区块链的端到端加密通信

基于区块链的端到端加密通信

端到端加密通讯的基本原理

端到端基本上都是基于非对称加密手段来实现:假设通讯双方为A和B,AB都 自己生成一个随机的 私钥(p) 并私密地保存起来,然后通过数学算法,生成一个 公钥 (L),把公钥发送给想要跟自己通讯的点(peer)。当他们要给对方发送信息的时候,将信息用对方给的公钥进行加密,然后通过网络发送到对方;此时对方可以用已保存的私钥,解密加密后的数据,得到信息原文,实现了信息在传递过程的私密性。用描述语言如下:

A gen  pA/LA, store pA, send LA to B
B gen  pB/LB, store pB, send LB to A

发送消息时:
A.sendTo(encrypt(message, LB), B),发送的是用B的公钥加密过的信息。
B给A发送的状况类似。

接收消息时:
B.receiveFrom(A).decrypt(pB),接收到A发过来的加密信息后,用B的私钥解密,得到信息原文。
A 接收到加密信息之后的处理方式类似。

有中心化服务器的加密通信

去中心化的身份标识(DID)

去中心化的身份标识(DID)

前几日(2022年7月19日),w3c发布了去中心化身份标识(DID)1.0版的标准,意味着这个标准已经成熟可落地。

DID全称叫去中心化的身份标识,可以认为是类似于区块链网络帐户地址或者能唯一确定一个用户的身份(例如每一笔比特币的交易记录都可以确认到发起人的帐户公钥,也就能知道地址)。核心还是基于密码学上的非对称加解密算法,生成一对私钥和公钥的密码对,身份持有者私密的持有密钥,而需要用于身份标识验证的时候,验证方可以拿到公钥进行验证。 在之前的区块链钱包文章我们说过,椭圆曲线算法基于非对称的加密方式,提供两个方向的用途:1)公钥加密私钥解密,适用于加密通信;2)私钥签名公钥认证,适用于数据验证。理论上非对称加密的身份认证不基于区块链网络或者分布式账本技术(DLT)也能运转,但区块链或者分布式账本的存在,让DID才真正实现去中心化的可广泛使用的用途,下面我们来说说不用区块链(分布式账本)的情况下,DID存在什么问题、区块链是解决这个问题的。

公钥分发难题

区块链钱包

区块链钱包

直观概念
区块链钱包,存储的仅仅是区块链帐户的私钥,其他相关概念都是通过私钥衍生出来的:比如帐户地址、帐户余额等等,并不是说有钱存储在钱包里面。

钱包的分类
钱包从管理权上分为托管式的和非托管式的。托管式的钱包:比如你在区块链交易所,交易所会自动给你生成一个软钱包,这样别人才能把资产转移到你的帐户里,但你的钱包的密钥都放在交易所上面加密保存,存在一定风险。非托管式的钱包:你自己管理私钥,通过软件、硬件等方式管理你自己的私钥,在需要转移账户上的资产时,用私钥做签名运算即可。

钱包从电子技术方面分为软件钱包和硬件钱包。 软件钱包一般是通过钱包APP来帮助生成私钥(通常会有助记词),然后在线上用区块链资产消费时,可以直接这些钱包APP进行支付,收款等方式。这类的钱包App特别多,基本上都声称数据存在本地,但安全性方面不好说。硬件钱包一般是通过一些安全硬件来实现,在需要签名使用时,通过USB等方式连接到电脑或手机,硬件层面直接做签名,不往外泄露任何私钥信息,安全性较高一些。

钱包从存储介质方面分为冷钱包和热钱包。冷钱包是通过物理的方式,把钱包的私钥信息(或者助记词)记录到物理介质上:比如手写笔记本,拓印的钢板等等(注意这些都要安全保存起来),主要用于备份私钥,防止软硬件钱包丢失后,帐户找不回的麻烦(区块链钱包因为是去中心化的,没有一个中心方负责管理,一旦丢失了密钥,整个帐户也就意味着丢失了,再也找不回来)。热钱包就是泛指前述的几种电子化的钱包,使用比较频繁。

非对称加密算法

关于比特币区块链网络

关于比特币区块链网络

题外话

关于比特币,或者区块链,我了解是比较晚的,第一次接触到区块链这三个字是在11年左右,当时还在阿里上班,当时去听了一个facebook的「区块链」分享,后来了解下来,他们当时说的区块链并不是一个分布式账本,而是一个PC广告相关的业务,也不知道当时是刚好撞名了还是故意蹭的,反正当时了解下来不是很感冒。后来15-16年左右慢慢了解到一些相关概念,大致是了解区块链的分布式账本性质,并没有太多去深入研究。后来公司招了一些人,手上有一些币,一直在跟我们安利区块链的共识机制,我当时也是太年轻,感觉这玩意就是炒做而已,嗤之以鼻。直到近2年才比较系统的去了解这个东西。手上没有比特币,本文也不是为了鼓吹炒币,而是把自己理解的比特币区块链的一些东西分享处理,做个总结(肯定很多理解还是错的,可以评论交流)。

1. 关于区块链的安全性保证