区块链
文章平均质量分 96
区块链教程
flydean程序那些事
懂程序更懂你!微信公众号:程序那些事 个人主页:www.flydean.com 最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在程序那些事!
展开
-
一篇文章让你彻底弄懂SSL/TLS协议
文章目录SSL/TLS的应用TLS协议的架构握手协议主密码和预备主密码TLS记录协议一篇文章让你彻底弄懂SSL/TLS协议SSL/TLS是一种密码通信框架,他是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码,消息认证码,公钥密码,数字签名,伪随机数生成器等,可以说是密码学中的集大成者。SSL(Secure Socket Layer)安全套接层,是1994年由Net...原创 2020-04-19 07:44:23 · 15431 阅读 · 1 评论 -
基于口令的密码(PBE)
基于口令的密码(PBE)基于口令的密码(Password Based Encryption,PBE)是一种基于口令生成密钥,并使用该密钥进行加密的方法。其中加密和解密使用的是同一个密钥。根据用户自己的口令和salt生成口令密码,我们先看下加密的过程:加密的过程可以分为这几步:生成KEK密钥使用伪随机数生成器来生成salt将salt和用户自己的口令使用单向散列函数算法生成KEK密...原创 2020-04-18 07:47:27 · 10278 阅读 · 0 评论 -
更加安全的密钥生成方法Diffie-Hellman
更加安全的密钥生成方法Diffie-Hellman之前我们谈到了密钥配送的问题,这个世界是如此的危险, 一不小心通信线路就会被监听,那么我们怎么在这种不安全的线路中传递密钥呢?这里我们介绍一下Diffie-Hellman密钥交换算法。这个算法是由Whitfield Diffie和Martin Hellman在1976年共同发明的一种算法。通过这个算法,双方只需要交换某些共同的信息就可以生成出...原创 2020-04-17 07:27:25 · 9993 阅读 · 0 评论 -
有关密钥的最全总结都在这了
文章目录各种密钥总结其他密钥分类密钥的管理密钥详解在之前的文章中,我们讲到了对称密码,公钥密码,消息认证码和数字签名等密码学的技术,这些技术中都使用到了一个叫做密钥的东西。那么到底什么是密钥呢?密钥就是一个key,通过这个key可以获得最终的明文。所以密钥其实是和明文等价的。举个例子,保险箱里面放着十万美元,保险箱被锁住了,并且有一个钥匙。那么这个拥有钥匙的人和拥有了十万美元是等价的。各...原创 2020-04-17 07:19:48 · 20648 阅读 · 4 评论 -
一文读懂密码学中的证书
一文读懂密码学中的证书之前的文章中,我们讲到了数字签名,数字签名的作用就是防止篡改和伪装,并且能够防止否认。但是要正确运用数字签名技术还有一个非常大的前提,那就是用来验证签名的公钥必须真正的属于发送者。如果你获取到的公钥是伪造的,那么不管你的签名算法多完美,也是会得到错误的结果。那么我们怎么才能安全的获得发送者的公钥呢?这里就需要使用到证书了。所谓证书就是通过第三方的可信机构对发送者的公钥进...原创 2020-04-16 07:24:26 · 10645 阅读 · 0 评论 -
使用VSCode连接到IBM Cloud区块链网络
文章目录从IBM Cloud控制面板导出连接信息在VSCode中创建gateway和wallet在VSCode中提交transaction上篇文章我们讲到怎么在IBM Cloud搭建区块链环境并且将本地的智能合约导出并安装在IBM Cloud网络环境中。本篇文章我们会继续讲解如何通过本地的VSCode来远程连接和调用部署在远程的IBM Cloud上的智能合约。从IBM Cloud控制面板导出...原创 2020-01-25 11:59:20 · 11764 阅读 · 0 评论 -
在IBM Cloud中运行Fabric
文章目录打包智能合约创建IBM Cloud services创建fabric网络创建org和相应的节点创建order org和相应节点创建和加入channel导入智能合约上篇文章我们讲了怎么使用IBM blockchain platform extension在VS Code编辑器中创建本地运行的智能合约。创建完智能合约之后,可以在自己搭建的blockchain环境中运行,也可以在各大云平台上...原创 2020-01-20 09:34:32 · 11772 阅读 · 4 评论 -
使用IBM Blockchain Platform extension开发你的第一个fabric智能合约
文章目录安装IBM Blockchain Platform extension for VS Code创建一个智能合约项目理解智能合约打包智能合约Local Fabric Ops安装智能合约实例化智能合约提交和查询事务使用IBM Blockchain Platform extension开发你的第一个fabric智能合约IBM Blockchain Platform extension是VSC...原创 2020-01-19 10:49:38 · 12160 阅读 · 4 评论 -
Solidity的Bytecode和Opcode简介
Solidity的Bytecode和Opcode简介随着我们更深入地编写智能合约,我们将遇到诸如“ PUSH1”,“ SSTORE”,“ CALLVALUE”等术语。 他们是什么,我们什么时候应该使用到他们?要了解这些命令,我们必须更深入地了解以太坊虚拟机(EVM)。本文将会尝试尽可能简单地解释一些EVM基础。希望大家都有所收获。像许多其他流行的编程语言一样,Solidity是一种高级编程语...原创 2020-01-17 10:24:50 · 12736 阅读 · 6 评论 -
Fabric的6大特性
文章目录什么是Hyperledger Fabric1. 成员准入2. 性能,可伸缩性和信任级别3 需要了解的数据4 通过不可变的分布式账本进行复杂查询5 支持插件组件的模块化架构6 保护数字钥匙和敏感数据什么是Hyperledger Fabric为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产的业务区块链框架,称为Hyperledger Fabric™,这是...原创 2020-01-17 10:06:34 · 12885 阅读 · 1 评论 -
分布式账本简介
文章目录什么是分布式分布式账本分布式账本在现实业务中的作用当前业务分布式账本的问题什么是区块链区块链网络如何工作区块链的商业利益区块链的使用什么是超级账本企业区块链要求什么是分布式分布式账本分布式账本是一种数据库类型,可在分散网络的成员之间共享,复制和同步。分布式账本记录网络参与者之间的交易,例如资产或数据交换。网络的参与者对分布式账本中记录的更新进行管理并达成共识。不涉及中央机构或第三方调...原创 2020-01-07 11:02:09 · 15675 阅读 · 1 评论 -
Hyperledger Fabric基础知识
文章目录什么是Hyperledger Fabric?Hyperledger架构是怎么工作的?Hyperledger交易如何执行总结Hyperledger Fabric基础知识本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架。区块链技术为创新提供了丰富的机会。它提供了一种新的交易方式,从而可以从根本上改变业务的实现。那么,在众多的区块链框...原创 2020-01-06 09:51:15 · 11794 阅读 · 0 评论 -
Libra教程之:move语言的特点和例子
文章目录move语言的特点资源优先灵活性安全性可验证性Move语句初探点对点支付交易脚本Currency Modulemove语言的特点Libra的目标是打造一个全球话的金融和货币的平台,从而赋能地球上的几十亿人。那么作为Libra的move语言就需要在安全性和可编程性上面提供大力的支持。为了实现这样的目标,move遵从如下四大设计原则:资源优先在区块链中我们需要通过程序来存取数字资产,...原创 2019-12-16 22:02:46 · 12773 阅读 · 1 评论 -
Libra教程之:数据结构和存储
文章目录存储的数据结构账本历史账本状态账户事件前面的文章我们知道,libra会把所有的数据都存储在账本中。为了方便业务逻辑和数据的校验,这个存储是以特定的数据结构来实现的,这里我们叫做验证的数据结构。验证的数据结构是通过Merkle树来实现的。如果大家熟悉其他的区块链的话,大家可能知道Merkle树由于其特殊的结构,被用在大多数区块链中。下面我们来分别讨论。存储的数据结构如下图所示,我们...原创 2019-12-16 21:54:55 · 11650 阅读 · 0 评论 -
Libra教程之:执行Transactions
文章目录Transactions是什么Transactions运行的基础条件Transactions的结构执行TransactionsTransactions是什么我们讲到了Libra是一个分布式账本,存储着账本状态,从账本状态里面,我们可以获取现在每一个账户的资金情况和存储的相应资源。而这个账本状态就是通过执行Transactions来进行改变的。用户定义的Transactions是通过...原创 2019-12-16 21:50:47 · 11440 阅读 · 0 评论 -
Libra教程之:Libra protocol的逻辑数据模型
文章目录Libra protocol简介逻辑数据模型账本状态交易账本历史Libra protocol简介Libra区块链本质上是一个加密数据库,这个数据库是通过Libra protocol来维护的。所以Libra protocol是Libra区块链的核心。Libra protocol的核心是账户,resources和module.数据库主要存储可编程的resources账本,比如:Libr...原创 2019-11-07 09:08:43 · 11570 阅读 · 0 评论 -
Libra教程之:运行自定义move modules
文章目录简介创建Move modules启动本地网络创建账号并送测试币编译Move Module发布编译好的Module创建交易脚本编译编译脚本执行脚本简介因为Libra和Move都是在不断发展的过程,在本文发布的时候,自定义Move modules还不能在testnet上面发布,只能在本地环境发布,下面我们将会看一下到底怎么才能在本地网络上面运行一个自定义Move程序。创建Move mod...原创 2019-11-07 08:57:16 · 11312 阅读 · 0 评论 -
Libra教程之:来了,你最爱的Move语言
文章目录Move语言Move的核心概念Move交易脚本Move modulesMove resources写一个Move程序编写交易脚本编写自己的ModulesMove语言Move是一种新的编程语言,旨在为Libra区块链提供安全且可编程的基础。 Libra区块链中的帐户就是由任意数量的Move resources和Move modules组成的。 提交给Libra区块链的每个交易都使用Mov...原创 2019-11-07 08:53:32 · 11720 阅读 · 0 评论 -
Libra教程之:Libra testnet使用指南
文章目录Libra testnet网络下载和安装Libra编译Libra client并连接到Testnet网络创建两个A和B的两个账号检查libra cli Client是否运行创建A的账户创建B的账户查看账户列表给A和B添加Libra币给A添加110 LBR给B添加40 LBR查询余额转账查看是否转账成功搭建私链Libra testnet网络Libra的测试网络testnet已经上线了,那...原创 2019-11-07 08:50:08 · 12062 阅读 · 0 评论 -
Libra教程之:Transaction的生命周期
文章目录Transaction的生命周期提交一个Transaction交易入链的详细过程接收Transaction和其他Validators共享这个Transaction区块Proposing执行区块并达成共识提交区块Transaction的生命周期本文会以一个提交到Libra validator的transaction为例,来讲解Transaction和其他组件的交互,和具体的状态变化过程。...原创 2019-10-15 21:54:13 · 11415 阅读 · 4 评论 -
Libra教程之:Libra协议的关键概念
文章目录Libra协议交易和状态交易详解账本状态详解版本数据库账户账户地址Proof验证节点存储Libra协议Libra协议是Libra区块链的基础,本文主要讲解Libra协议的一些关键概念。交易和状态我们知道区块链也可以叫分布式账本,它主要的作用就是存储各种交易。而为了便于查询和提升效率,现代的区块链都会引入状态的概念,来代表某时刻链上数据的当前快照。交易会改变相应的状态,如下图所示:...原创 2019-10-15 21:45:03 · 11908 阅读 · 4 评论 -
Libra白皮书解读
文章目录Libra简介Libra区块链Libra货币和存储Libra协会Libra简介Libra是facebook发起的一个区块链项目,其使命是建立一套简单的、无国界的货币和为数十亿人服务的金融基础设施。facebook认为传统的金融服务离穷人太远,并且被收取各种不菲且难以预测的费用。全球仍有17亿成年人从来没有接触过金融系统,虽然他们中的10亿人拥有手机,其中的5亿人可以上网。faceb...原创 2019-06-30 21:21:20 · 6763 阅读 · 4 评论 -
MAC攻击及缺陷
MAC攻击及缺陷MAC有好几种实现方式对MAC的攻击重放攻击重放攻击的防护密钥推测攻击MAC算法的缺陷第三方证明防止否认前面我们在讲HMAC的时候简单讲过了什么是MAC消息认证码。简单点说MAC(Message Authentication Code)是一种确认完整性并进行认证的技术,取三个单词的首字母,简称MAC。它是一种与密钥相关联的函数。 HMAC就是MAC的一种实现。MAC有好几种实...原创 2019-06-18 23:07:31 · 7767 阅读 · 4 评论 -
HMAC算法及其应用
HMAC算法及其应用MACHMACHMAC的应用HMAC实现举例MAC在现代的网络中,身份认证是一个经常会用到的功能,在身份认证过程中,有很多种方式可以保证用户信息的安全,而MAC(message authentication code)就是一种常用的方法。消息认证码是对消息进行认证并确认其完整性的技术。通过使用发送者和接收者之间共享的密钥,就可以识别出是否存在伪装和篡改行为。MAC是通过...原创 2019-05-15 22:40:22 · 7003 阅读 · 4 评论 -
女巫攻击及其防范
女巫攻击及其防范什么是女巫攻击女巫攻击的防范身份验证特征向量让伪造变得困难Model 0什么是女巫攻击之前的文章在讲拜赞庭容错的时候,我们提到了女巫攻击Sybil Attack。那什么是女巫攻击呢?女巫攻击这个词来源于Flora Rheta Schreiber 在1973年的小说《女巫》,这本小说写的是对兼具多种人格的Sybil Dorsett进行心理治疗的故事。一人化身为多人,这个就是女巫...原创 2019-05-06 23:44:18 · 8830 阅读 · 4 评论 -
一致性hash算法
一致性hash算法Hash算法的作用Hash算法的冲突一致性hash算法一致性hash算法的原理容错性虚拟节点Hash 算法也叫做散列算法,他可以让任意长度的数据M映射成为长度固定的值H。Hash算法的作用Hash算法的第一个作用就是数据的快速存储与查找。写过程序的人都知道,基本上主流的编程语言里面都有个数据结构叫做Map(dictionary或者 hash table)。它是根据key来直...原创 2019-04-27 22:47:14 · 7123 阅读 · 5 评论 -
理解分布式一致性:拜占庭容错与PBFT
理解分布式一致性:拜占庭容错与PBFT拜占庭问题拜占庭容错BFTPBFT(Practical Byzantine Fault Tolerance)why 3f+1 ?PBFT 的优点PBFT 的缺点之前的几篇文章我们讲了分布式协议里面的Paxos协议和Raft协议。这两个协议主要适用于可信节点的情况,所谓可信节点就是节点只会出现因为系统或者网络问题的宕机情况,不会有恶意节点。那么如果有恶意节点...原创 2019-04-25 23:37:56 · 7297 阅读 · 4 评论