本文将介绍区块链的8种特性

分布式数据库

区块链是一种分布式数据库,大部分区块链技术在底层是线上采用了传统的数据库保存数据。例如:维护比特币代码的Bitcoin Core团队实现的比特币就采用LevelDB 来索引和保存区块链的链状态信息,而在比特币的钱包则采用Bekerly DB。不同的区块链可能采用不同的数据库系统实现,同一种区块链的不同节点也可能采用不同数据库。

数据库可视为电子化的文件柜——存储电子文件的处所,用户可对文件中的数据运行新增、截取、更新、删除等操作。

分布式数据库是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元被称为站点或节点。分布式数据库有一个统一的数据库管理系统来进行管理,被称为分布式数据库管理系统。

区块链网络各个节点是复制同步的分布式数据库。每个节点上的数据库都有着完整的区块链上的所有数据和历史信息。由于每个节点上都有完整的检索数据,因此每个节点都直接查询到区块链上的任何记录,不需要依赖第三方。

图1-1 中心化账本和分布式账本的比较示意

共识机制:让各个节点的数据库保持一致的方法

谈到区块链,我们经常会听到“共识”(Consensus)这个概念,各种共识算法的名称,例如工作量证明(Proof of Work, 缩写POW)、 权益证明(Proof of Stake, 缩写POS)

工作量证明(POW)是一种经济对策。一般要求用户进行一些耗时适当的复杂运算,且答案能被服务方快速验算,以耗用的时间、设备、能源作为担保成本,来确保服务与资源被真正使用。

工作量证明现已成为以比特币为代表的加密货币或区块链的主流共识机制。

权益证明(POS)(又称持有量证明)权益证明(又称持有量证明)是2012年出现的共识机制。与工作量证明不同,权益证明要求一组验证者轮流对下一个区块进行提议和投票,每个验证者的投票权重取决于其持有权益证明的多少。权益证明的显著优势在于具备安全性、降低集中化的风险以及提升能效

区块链就是一种分布式数据库,是有很多节点的数据库,并且每个节点可以独立验证数据,不需要依赖第三方。那么,一个问题就诞生了:如何让这些节点的数据库保持一致?传统的分布式数据库有一个重要的假设,即分布式数据库的每个节点都是“友好的”。因此,要保持数据一致,主要克服一些技术性问题,比如网络延迟怎么办?网络临时中断怎么办?不同节点上的用户想篡改数据怎么办?……但这些问题都不可能忽略。除此之外,区块链一个重要的想法,不能默认各个节点都是“友好“的。有可能有些节点有意”制造麻烦”。

“共识”的概念很容易理解。共识的本质,就是让区块链各个节点上的数据保持一致的方法。而各种不同的共识算法,就是为了此目的采用的不同技术方法。“共识机制”的根本母的在于确保区块链各节点的数据是一致的。

达成共识是一个“慢”且“费劲”的过程,这就是代价——为了实现区块链系统的分布式、去中心化、独立验证、数据难以被篡改等特征。由于达成共识是一个“慢”且“费劲”的过程,故可以肯定的是区块链系统的性能始终低于集中式系统。

共识算法对公链(公共区块链)尤其重要。因为任何人不需要许可就能加入这类区块链网络,因此有可能出现由“恶意”的区块链网络,这就导致了共识算法几乎是保证这类区块链系统可靠的唯一途径。而需要许可的区块链,例如联盟链,其成员被一定规则约束,从身份识别验证、加入网络、访问权限到参与活动都受控制。在这类受约束的区块链中,不只有共识机制这一方法保证系统的安全和数据的一致性。例如实用拜占庭容错算法(Practical Byzantine Fault Tolerance 缩写为PBFT),而在联盟链选择工作量证明机制(POW)是不必要的。

P2P通信

成为一个有“共识”的、可靠的分布式数据库,且不依赖任何中间机构,解决这个问题的方法就是P2P(点对点)通信。所谓点对点,即Point to Point,节点之间的通信不需要经由第三方。P2P通信是最简单、直接、“原始”的通信方式,是任何网络通信的基础。这种通信方式可以减少网络依赖关键的中间节点,可以防止部分节点恶意操控整个区块链产生影响。由于采用了P2P通信方式,区块链“去中心化”特性更强。

P2P在隐私性要求高的网络中和文件共享领域得到了广泛的应用,由于其点对点的特性,可避免经过“中间人”。

图1-2 客户端服务器架构与点对点架构的比较示意

公开可验证的数据

区块链的节点是可见的。对于比特币和以太坊这种典型的公链来讲,链上的任何数据都是完全公开的,全世界任何人都可以看到,而且区块链上的数据是难以删除或修改的,因此数据一旦在区块链上发布就成为公开的信息。

区块链上的数据普遍使用常用的加密和签名算法来保证数据的正确性和一致性。在每个区块链节点上都可以立即验证链上数据的正确性。

区块链是如何进行数据的验证呢? 这涉及到两个重要的计算机密码学相关技术:一是哈希算法,二是数字签名技术

①哈希算法又称散列算法、哈希函数、哈希算法的特点是任何原始数据的小改动都会改变输出数字的大变化,比那个且无法反向推导出原始数据的变化。

②数字签名是一类用于快速验证的算法。 每个使用者有一对密钥:一把公钥一把私钥。用户会使用私钥生成签名,用公钥验证签名。

难以篡改的数据记录

难以篡改的数据记录经常有人理解为“不可篡改”数据记录。严格来讲,这并不正确,区块链上的记录并不是不可篡改,而是“难以篡改”。在前面提到,区块链是一种分布式数据库,每个节点都有独立验证的能力,通过共识保证各个节点数据一致。也就是说,要想“篡改数据”就得骗过每个节点的验证算法,其次还得骗过整个区块链的共识机制,让所有节点改变,这变得更困难。

区块链是个“不支持删除操作”的数据库,区块链的数据只能不断增加,不会被删除。由于这个特点,使得区块链比较适用于非常重要、需要留下记录的场合。

区块链的数据虽然难以被篡改,但并不意味着“不可篡改”或“数据永不丢失”。一般情况下,区块链的节点越多、越分散,数据被篡改或完全被破坏的难度就越大。在一个去中性化程度非常高的区块链上,要篡改或破坏数据是十分困难的。

智能合约:链上的“代码逻辑”

以太坊是第一个引入更复杂的代码逻辑的区块链,并沿用了Nick Szabo在1995发明的词汇“智能合约(Smart contract”。从名字上看,可能“误导”了一部分大众。以太坊的智能合约不具备人们所说的“智能”(人工智能等),也不是大众理解的“合约”(合同、法律条款),而是一种新的结合了区块链的计算模型,配合了一个图灵完备的虚拟机和一种新的程序设计语言。

  1. Nick Szabo在其论文《智能合约:数字化市场的构建模块》中首次提出“智能合约”的概念。智能合约是一套以数字形式定义的承诺,合约参与方可以在上面执行这些承诺的协议,其基本理念是把合约条款嵌入硬件和软件中。以太坊实现了智能合约这一概念。

图灵机的提出是为了研究可计算问题而构思的抽象计算模型——将传统的纸币计算过程进行抽象,由虚拟机器人进行的数学运算,是现代计算机的雏形。

虚拟机是一种特殊的架构软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于虚拟机这个软件所创建的环境来操作其他软件。以太坊的虚拟机(Ethereum Virtual Machine,缩写EVM)。

自主账户体系

区块链上的“账户”是没有“人”给你“分配”的。这与传统的互联网服务,或者是更传统的银行、证卷公司等,用户需要在对方提供服务时,首先要做的就是在其平台上申请和开通账户。为什么在区块链中有价值的数字货币,却不用开设账户呢?所谓的账户,是某个机构在本记账系统中给用户分配一个标示,这个标示属于用户且受机构规范的分账记录。也就是说用户得先从银行或证卷公司等平台“注册”一个账户,才能在这些平台中享受服务。而在自主账户体系中用户不需要向任何平台“注册”账户。

所谓自主账户,指账户的产生不是由其他人分配、产生,而是用户自我产生、自我申明。用户只需按照一个算法执行一下,就可以获得自己独特且安全的账户。自主账户体系相当于——去中心化身份,人作为个体,身份是自主的,不需要向任何人证明自己的身份。

区块链并不是真正匿名的

区块链普遍采用的自主账户地址往往是一长串字符或数字。除少数隐私区块链技术外,大部分区块链上的数据是完全公开的,人们可以清晰知道每笔交易的相关账户,如果是一笔转账,转账的金额和交易账户都清清楚楚,这个账户的一举一动都可以被全世界看到,且一公开就不能被抹去。

区块链之所以能够保护用户隐私,原因在于区块链账户无法对应用户的真实身份。正如前段提到的自主账户体系。自主账户不需要向任何人或机构申请,因此用户在使用自主账户时,没有任何信息能把账户与真实世界的个人信息关联起来。从这个角度看,区块链的匿名性相比于互联网应用会更好。这种“匿名性”和“隐私性”一度为地下交易、暗网提供便利。

区块链具有的8种特性相关推荐

  1. 二,区块链理论(定义及特性)

    2.1 区块链定义 区块链是一种基于互联网的分布式点对点协议,通常又被称为一种分布式的加密账本,可以将加密后的数据(称之为一个区块)按照时间序列叠加成一个链式结构.  百度百科中对区块链做如下定义: ...

  2. 区块链具有诸多技术优势 在国外基础教育中的应用案例

    近年来,区块链技术凭借其分布式.安全性.可靠性与数据完整性等特征,得到了广泛关注.区块链技术在基础教育领域的应用也有了一些新进展,其在学分认证.证书管理.数字教育资源.学习者能力与学习成果管理.产学合 ...

  3. 百度智能云区块链产品负责人刘尧:Web3.0时代加速区块链到来,具有五大特性...

    "下一代区块链有三个特征,一是更好的公链,二是更好的企业级区块链,三是更强边界的区块链." 本文旨在传递更多市场信息,不构成任何投资建议. 8月20日,由火星财经主办的" ...

  4. 区块链开发语言python_6种最常见的区块链编程语言

    无论您是在寻找区块链开发工作还是只想了解幕后发生的事情,您都需要选择正确的语言来编写区块链.下面列出的六种语言是区块链开发领域中目前最热门的编程语言. 1. C ++ C ++是一种经得起考验的编程语 ...

  5. 太极链,区块链中的一种及其技术奥义

    太极链是一种安全且灵活的机制,允许在不需要中介的情况下进行任何有价值的对等传输.它通过三个关键特性实现这一点:用于进行交易的对等网络,用于记录和查看这些交易的分布式,不可变的分类账,以及用于在检测欺诈 ...

  6. 国内真正有技术开发能力的不足200人,区块链是否“只是一种传说”?

    1月8日下午,老牌互联网企业人人网,被监管部门请去"喝咖啡",并叫停其RRcoin(人人网内部组建的人人坊项目发行的虚拟代币)项目. 一时间,坊间议论纷纷,而舆论的焦点就是三个字: ...

  7. 「深度」国内真正有技术开发能力的不足200人,区块链是否“只是一种传说”?...

    区块链目前还没有有价值的行业应用,其技术也并未具有完全的不可替代性,本身发展阶段也只是尚在初期. 昨天(1月8日)下午,老牌互联网企业人人网,被监管部门请去"喝咖啡",并叫停其RR ...

  8. diss一时爽, 打脸啪啪响! 05年互联网不如传真机, 如今区块链也是一种肮脏的......

    来源 | Medium 译者 | 王柯凝 责编 | 佩奇 出品 | 区块链大本营(blockchain_camp) 近期,伦敦作家兼记者 David Gerard 在<外交政策>等主流媒体 ...

  9. 区块链赚钱的9种方式

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 物联网火了一段时间,人工智能火了一段时间,无人驾驶火了一段时间.现在,通通被区块链的风头盖住了,都说是区块链的风口,区块 ...

最新文章

  1. python装饰器教学_Python装饰器学习(九步入门)
  2. php 动态彩码辨色 接口的调用_好用的云函数!后端低代码接口开发,零基础编写API接口...
  3. 实时摄像头数据传输丢包问题
  4. JavaScript回调函数(callback)概念和应用,千万别错过!
  5. IOS 长按默认事件阻止 【坑】
  6. 为什么Visual Studio的安装目录下有名为1033或2052的文件夹?
  7. Loonframework-DAO-Alpha-0.1.0发布
  8. 最新版微信上墙功能齐全无BUG版大屏幕+演示系统常用主题和音乐
  9. 计算机组成原理学习笔记——数据通路
  10. 笔记本拆机后无法开机是什么原因
  11. UWB定位与蓝牙定位的优缺点分析
  12. linux下获取按键响应事件(转)
  13. 瞬态抑制二极管TVS的基本知识
  14. Ruoyi的功能简单介绍
  15. MySQL 文件结构、逻辑架构及 sql 执行流程分析作者:Java后端架构
  16. vue:element ui分页改变pageSize,触发两次回调请求
  17. javascript:用js实现tirm函数
  18. 百度地图 地址查询经纬度 插件vue-baidu-map
  19. 量化评价和质化评价举例_课程评价中的量化评价与质性评价
  20. 第八届中国R语言会议(北京)纪要

热门文章

  1. 整型转换为32位二进制字符串
  2. WeGeek Talk | 美团外卖
  3. 利用Vant完成登录页面!
  4. oracle 发的邮件qq,python基于SMTP发送QQ邮件
  5. 1400——489C,520B,279B,479C
  6. folium,绘制线段,连接成多边形
  7. Qt高级教程图形视图部分
  8. Spring boot实训开发个人博客(二)详情页
  9. CnOpenData中国小区及二手房交易数据简介
  10. 2022-03-15 工作记录--PHP-判断数组的长度 + 展示数组的长度