《区块链开发指南》一一第1章 区块链基础
第1章 区块链基础
区块链究竟是什么?狭义地说,区块链就是比特币的底层技术;不过,经过7年的发展,区块链已经不再“依附于”比特币,而是独立地发展成为了一种革命性的技术,比特币则是区块链最大、最成功的应用。
从技术层面来看,区块链是一个基于共识机制、去中心化的公开数据库。共识机制是指在分布式系统中保证数据一致性的算法;去中心化是指参与区块链的所有节点都是权力对等的,没有高低之分,同时也指所有人都可以平等自由地参与区块链网络,唯一的限制就是个人自己的选择;公开数据库则意味着所有人都可以看到过往的区块和交易,这也保证了无法造假和改写。基于以上特性,可以总结得出:区块链由许多对等的节点组成,通过共识算法保证区块数据和交易数据的一致性,从而形成一个统一的分布式账本。
从价值层面来看,区块链是一个价值互联网,用于传递价值。目前的互联网仅用来传递消息,但是还不能可靠地传递价值;而比特币区块链却可以在全球范围内自由地传递比特币,并且能够保证不被双花、不被冒用。从这个角度来说,区块链是记录价值、传递消息和价值本身转移的一个可信账本。
这里要提一下区块链在维基百科上的官方定义:一个区块链是一个基于比特币协议的不需要许可的分布式数据库,它维护了一个持续增长的不可篡改的数据记录列表,即使对于该数据库节点的运营者们也是如此。简而言之,区块链就是区块用某种方式组织起来的链条。在区块链中,信用或记录被放在各个区块中,然后用密码签名的方式“链接”到下一个区块。这些区块在系统的每一个节点上都有完整的副本,所有的信息都带有时间戳,是可追溯的。事实上,在区块链创建之初,我们在大多数情况下谈论的区块链都是比特币的底层实现方式。
基于区块链的系统和以往的其他系统存在很多不同之处,以区块链技术为核心的系统包括如下四大最主要的特点。
Distributed(分布式的)
区块链是全球化的,系统上的节点是运行在太平洋某个小岛的笔记本电脑上还是运行在中国某个小镇的服务器上,对系统本身来说都是一样的,除了网络连接速度有区别之外,其他没有任何区别。区块链没有中心节点,数据分布式地存储在各个节点上,即使绝大部分节点毁灭了,只要还有1个节点存在,就可以重新建立并还原区块链数据。
Autonomous(自治的)
区块链是一种去中心化的、自治的交易体系,这种自治性表现在两个方面:1)所有节点都是对等的,每个节点都可以自由加入和离开,并且这一行为对整个区块链系统的运行没有任何影响。所有的节点都是按照相同的规则来达成共识,且无需其他节点的参与。2)区块链系统本身一旦运行起来,就可自行产生区块并且同步数据,无需人工参与。
Contractual(按照合约执行的)
区块链是按照合约执行的,第一体现在各个节点的运行规则(指的是交易、区块链或协议)上,按照既定的规则执行,一旦出现违背规则的行为,就会被其他节点所抛弃;第二体现在智能合约上,智能合约是一种可程序化的合同条款、规则或规定,包含在每个交易中,交易验证时必须先运行智能合约,只有通过了验证的交易才能被
接受。
Trackable(可追溯的)
区块链的数据是公开透明的,不能被篡改,而且相关交易之间有一定的关联性,因而很容易被追溯。比如比特币区块链,每一枚比特币都有其特定的来源,通过输入可以追溯到上一个交易,或者通过输出追溯到下一个交易。
此外,区块链代码本身也是可追溯的,区块链系统是开源软件,其对于所有的人都是公开的,因此任何人都可以查看并修改这些代码,不过修改后的代码需要经过开源社区上其他程序员的审核。
本书主要讨论区块链技术,这不仅包括了比特币区块链技术,还包含了比特币区块链所没有的一些技术,本章接下来将对区块链的一些基本知识做一个详细的介绍,包括交易和交易链、区块、挖矿、矿池、脚本、智能合约等。
《区块链开发指南》一一第1章 区块链基础相关推荐
- 《区块链开发指南》一一导读
前 言 Preface 比特币于2009年诞生,在很长一段时间内,人们只知比特币,不知区块链.从2015年开始,区块链像狂风一样席卷全球,倍受金融界和科技界的关注:2015年年底,区块链技术逐渐得到国 ...
- 003《区块链开发指南》一一1.2 区块和区块链 转
摘要: 本节书摘来自华章计算机<区块链开发指南>一书中的第1章,第1.2节,作者:申屠青春 主编 宋 波 张 鹏 汪晓明 季宙栋 左川民 编著更多章节内容可以访问云 ...
- 区块链开发指南_区块链开发权威指南
区块链开发指南 by Haseeb Qureshi 由Haseeb Qureshi 区块链开发权威指南 (The authoritative guide to blockchain developme ...
- 【翻译】How To Become A Blockchain Developer: Crash Course! 区块链开发指南!
为什么80%的码农都做不了架构师?>>> In this guide, we are going to map out your journey for becoming a ...
- aelf区块链开发指南(一) | 如何将以太坊合约转为aelf合约?
2021年12月12日,aelf元宇宙黑客马拉松正式开启,为帮助更多的开发者快速加入aelf生态,开发更多创新项目,aelf特别开放黑客马拉松开发指南系列课程. 在本期aelf区块链开发指南中,ael ...
- 区块链开发指南_区块链开发完全指南
区块链将是技术的发展方向. 我认为未来将围绕区块链一新兴技术构建,这绝不是什么牵强附会.区块链最初被设计成一种公共的,无权限的技术,后来引入了另一种区块链,每种区块链都有自己独特的用例集.公共/无权限 ...
- 【区块链开发指南】区块链基础之区块和交易
在区块链网络当中,所有的数据都以区块的形式记录在各个节点上.而每个区块又以单独的文件保存在节点本地磁盘上,在比特币(Linux系统)中所有的区块信息都保存在~/.bitcoin/blocks/目录下面 ...
- 《iOS 9 开发指南》——第6章,第6.4节 Interface Builder中的故事板——Storyboarding...
本节书摘来自异步社区<iOS 9 开发指南>一书中的第6章,第6.4节 Interface Builder中的故事板--Storyboarding,作者 管蕾,更多章节内容可以访问云栖社区 ...
- 《NodeJS开发指南》第五章微博实例开发总结
所有文章搬运自我的个人主页:sheilasun.me <NodeJS开发指南>这本书用来NodeJS入门真是太好了,而且书的附录部分还讲到了闭包.this等JavaScript常用特性.第 ...
最新文章
- 数据结构与算法:15 树
- linux ftp做yum源,在RedHat5下架设yum源服务器(FTP)
- JZOJ 5622. 【NOI2018模拟4.2】table
- springmvc学习笔记(17)-上传图片
- Liunx系统命令sed的使用
- 层次分析法(小白必看手机查看)
- w ndows10怎么关闭启动项,win10怎么关闭开机启动项
- 【转】腾讯云PCDN:从P2P到万物互联服务框架
- Android 项目必备(十七)-->实现身份证认证功能
- c语言注释不能嵌套什么意思,C语言嵌套注释问题
- 【机器学习】泛化误差上界
- java mediator模式_设计模式之Mediator 中介者模式 - 解道Jdon
- POI实现EXCEL导出(resources配置路径下或者网络图片)
- pycharm连接云端服务器后实现远程debug调试
- 什么是CV2以及如何安装?
- 毒液蛋白质相互作用分析
- ​现代计算机的雏形-微型计算机MCS-4
- Android 关于禁止应用截屏和录屏
- 蔚来汽车提前批智能座舱C++开发笔试复盘
- 贝努利模型 matlab代码,贝努利(Bernulli)-模型.ppt