区块链笔记3-区块链典型技术

本学习笔记为本人从正规合法信息来源获取的信息,且为个人学习笔记,未用于商业用途。并且是关于IT领域区块链知识的介绍,并非违法违规内容。主要信息来源于清华大学出版社 《区块链技术及应用》一书

继续之前专栏中的内容,完成区块链技术中关键技术种类的介绍,主要对象为数字签名、共识算法、智能合约、P2P网络。

①数字签名

使用数字签名来实现区块链网络中的权限控制,并识别交易发起者的合法身份,防止恶意节点冒充身份对整个网络的影响。
数字签名并不是电子版的签名图片,而使使用密码学领域的相关算法对签名内容进行处理后获取的内容。数字签名常常采用非对称加密算法,使用公开的公钥进行验证以获得节点的身份合法性,私钥为签名所用,产生附着在原消息中的额外消息。

数字签名与验证数字签名的基本流程
①发送方A对原始的数据通过哈希算法计算数字摘要,并使用私钥对数字摘要做加密,得到加密后的数字签名。
②数字签名与A的原始数据一起发送给验证签名的一方。

①签名的验证方需要持有发送方A的非对称密钥对的公钥。
②在接收到发送方A传递的数据之后,首先使用公钥对数字签名进行解密,得到初始的摘要值。
③对A的原始数据用同样的哈希算法计算摘要值,并进一步对比这个摘要值和解密得到的摘要值是否相同,若相同则验证通过。
数字签名在区块链中的使用
节点在进行交易时,将交易内容使用私钥进行签名,将签名附加在交易信息中,其他节点在收到广播消息之后,先对交易中附加的数字签名进行验证,校验通过之后该交易才能进入到后期处理中。

②共识算法

功能算法解决的是区块链网络中各个节点之间传递和纪录信息的正确性和安全性问题——考虑到庞大的网络中有数量众多的节点,需要使用一种算法保证各个节点纪录的交易内容和顺序一致,并排除可能存在的恶意节点对网络正常工作情况的干扰。
当前主流的共识算法分为四大类:
①工作量证明算法PoW
当前BTC网络和ETH网络中使用的共识算法,通过使用一道难题提供给全部节点,并赋予率先解题的节点记账权(挖出一个区块)的方式实现节点共识。使用PoW方式的记账便于控制链增长的速度,并根据全网节点数量动态调整难度,在第一个节点完成了求解之后,便于在全网所有节点之间传播并验证,降低恶意节点控制区块后续生成的可能性。
但是,PoW算法给每个节点产生了巨大的计算开销,随着全网节点数的增长,难度也产生了巨大的提高,这带来了巨大的能源浪费。
②凭证类共识算法Po*
使用节点的某些属性(币时=持币数*持币时长;可贡献的计算资源;声誉情况等)进行节点的信用证明,使用POS为例的共识算法取代PoW算法,可以极大地降低网络整体的出块开销,有选择性地分配出块资源。
但是,这种共识算法的中心化程度更高,与区块链去中心化的思想相违背,给网络中每个节点的激励不够明确,很难调动节点参与共识的动力。
③拜占庭容错类算法BFT
所有节点协同工作,使用协商的方式产生被所有节点认可的区块,优化BFT算法最早被用来解决拜占庭将军问题,但是此类算法的协商轮次很多 ,产生的沟通开销较大,此类算法不适用于节点数超过100的较大的系统。
④结合可信执行环境的共识算法
软硬件结合的算法,保证在可信的硬件资源上有更为可信的执行环境,消除恶意节点的恶意操作,大幅提升共识算法的性能。

③智能合约

使用程序代码进行控制的合约,在设置了固定的响应时间和响应条件的基础上,设置高效简单的裁决合约。避免了现实合约中可能由于恶意违约产生的耗费时间和金钱成本的司法解决程序,提高合约的履行度并降低合约成本。
基于区块链的智能合约需要包括事务处理机制、数据存储机制以及完备的状态机用于接受和处理各种条件。智能合约的事务出发、处理与保存都必须在链上进行。当满足了触发条件之后吧,智能合约会根据预设逻辑,读取响应数据并进行计算,最终将计算结果永久保存在链式结构中。
智能合约虽然拥有简单有效的特点,但同时也由于开发工作由软件从业者而不是专业律师完成,相对传统合约可能会更容易产生逻辑上的漏洞;此外,使用不同的程序语言进行编写的智能合约也可能产生逻辑漏洞或分歧,需要注意智能合约的合法性和逻辑的完备性。
为了避免这些问题,以太坊项目规定用户被限制使用制定的以太坊语言完成智能合约的编写以保证其上运行的智能合约在执行动作上的确定性。

④P2P网络

即对等计算机网络(Peer-To-Peer Network),消除了中心化的服务节点,将多有的网络参与者视为对等者(Peer),并在他们之间进行任务和工作负载的分配。P2P模式不同于传统的CS模式,去除了中心服务器,依靠用户群体共同维护,由于不再以来中心服务节点,因此P2P网络具有极强的可靠性,通常情况下,P2P网络中的节点数目越多,P2P网络提供的服务质量也越高。

区块链笔记3-区块链典型技术相关推荐

  1. 区块链笔记:区块链概念、相关对比、技术特点、CAP定理、FLP定理、价值网络

    什么是区块链 对于区块链这个技术名词出现在很多文章里面,有很多解释.站在技术角度来说,它是指一种数据的记录格式,任何系统都要记录数据,区块链对于其他的数据库或者工具有什么不一样的地方呢? 记录数据的方 ...

  2. [区块链笔记9] 区块链相关概念

    文章目录 通俗理解区块链 比特币与双重支付问题 工作量证明 挖矿与区块链的生长 默克尔树 通俗理解区块链 如果和集中式服务来对比着看,就可以很容易理解. 普通的服务就是前端配合着后台服务器为用户提供服 ...

  3. 区块链笔记 - 《区块链技术核心概念与原理讲解》

    说明:笔记内容来源于慕课网<区块链技术核心概念与原理讲解>视频课程.如有侵权,请联系删除. 目录 1.区块链前世今生 2.区块链前景 3.比特币是什么 4.比特币原理 4.1 账本如何验证 ...

  4. 区块链笔记:技术栈、对等网络、密码技术、账户模型、网络共识、脚本系统、扩展技术

    技术栈 从比较技术化的一个角度来对区块链进行一个阐述 从技术站的组成来来阐述一下区块链,作为一种软件系统的开发人员或者说是技术爱好者,更希望从技术的角度来进行一个理解,到底它包含哪些技术模块?又分别产 ...

  5. 区块链读书笔记01-区块链基础

    区块链读书笔记01 - 区块链基础 基本概念 加密哈希函数(cryptographic hash function) 哈希指针 父区块(parent block) 创世区块(genesis block ...

  6. 笔记:区块链基础(一)

    理论 1.区块链 区块链是一种分布式(去中心化)的资料库(数据库.记账本),所谓去中心化,就是与我们平时所说的数据库(或者账本)不同,并不是只有系统维护者才可以更改数据库(记账),在区块链网络中,每一 ...

  7. 区块链笔记-Hash算法

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链笔记-Hash算法 区块链技术是一系列技术的结合,建立新的技术架构,hash算法是很重要的一块,如果理解不当的地方 ...

  8. 学习笔记:区块链概念入门

    本文是100天区块链学习计划的第二篇学习笔记,其实就是按照阮一峰的网络日志-区块链入门教程的讲解进行的简单梳理.也是时间有点紧张的原因,相比于上一篇SHA256算法原理详解,个人感觉质量和原创程度明显 ...

  9. 区块链笔记 - 1、区块链的来龙去脉

    目录 1.区块链的来龙去脉 1.1 了解区块链技术起源 1.2  了解比特币产生背景 1.3 了解数字货币的概念 1.4 了解比特币的技术原理 1.4.1 比特币网络 1.4.2 防伪方案:公钥.私钥 ...

最新文章

  1. linux rootkit 新型 HORSE PILL 简介
  2. 有了这篇网络排错思路大总结:我帮了不少同事~
  3. 【转】C# DateTime 日期计算
  4. 科大星云诗社动态20201118
  5. (视频+图文)机器学习入门系列-第1章 引言
  6. PHP的工作原理和生命周期
  7. php 强制刷新一次,强制浏览器使用PHP刷新所有内容
  8. 计算机一级发邮件发送多个抄送,计算机一级考试IE题和收发邮件模拟题.docx
  9. 【算法刷题2】二叉树的后序遍历
  10. Mycat读写分离笔记Windows
  11. UserWarning: Error checking compiler version for cl
  12. 第五章:Redis pipeline流水线
  13. 《Spring实战》读书笔记-第1章 Spring之旅
  14. 模拟电子技术动画-PN结(动画是转的)内容再修改
  15. 学生个人网页设计作品:旅游网页设计与实现——成都旅游网站4个页HTML+CSS web前端网页设计期末课程大作业 学生DW静态网页设计 学生个人网页设计作品
  16. Java学习分享---【面向对象基础】抽象
  17. 未转变者怎么调服务器难度,未转变者服务器怎么设置出生点 | 手游网游页游攻略大全...
  18. SQL ifnull、nullif 等函数
  19. halcon算子中文对照
  20. RenderTexture实现小地图和炫酷的传送门!(干货收藏)

热门文章

  1. 咪咕盒子MGV2000KL南传_S905L3B_MT7668-当贝纯净桌面-线刷固件包
  2. Jodd发送json
  3. 如何批量处理word中的表格
  4. 王子走到公主代码java,迷宫营救公主算法
  5. css 内联元素浮动
  6. windows-PSPing
  7. html中隐藏域hidden的作用
  8. Latex如何首行不空格/不缩进
  9. 照我说的做,你的英语会飙升
  10. 你中奖了吗?低代码开发师(高级)认证中奖名单揭晓啦