初识区块链(二)

区块链技术中几个关键问题

第一,去中心化

  去中心化并不是一个时髦的名词,简单说就是点对点交换信息,不存在第三方中介。我们日常使用的Internet、Email Service、SMTP等都使用了去中心化思想。

第二,分布式共识

  在去中心化的分布式系统中,如果要达成受信任的记账系统,需要考虑共识问题,也就是如何让点对点通信的各方达成一致,并解决叛徒或者恶意结点的问题。

  分布式共识要保证所有诚实结点的输入一致,且共识是由所有诚实结点达成的。拜占庭将军问题是一个典型的案例,但当叛徒数量超过总人数的1/3时,共识问题就无法解决了。这些算法都会出现一些漏洞。

  在区块链技术中,并未完全应用之前的分布式共识算法,而是结合了独有的奖励机制和逐步确认机制。可以说中本聪在用阳谋来对付阴谋。

  共识算法简要:

  一,广播交易。

  二,诚实节点将交易打包进区块。(矿工,看谁算力强)

  三,随机的节点广播该区块。

  四,如果区块中所有的交易都是有效的(有验证算法),则其他节点接受这个区块,并在之后创建的新区快中加入这个区块的哈希(链入算法)。

第三,奖励机制

  比特币是一种货币,大部分节点愿意通过维持这个系统的正常运转获得奖励,从而保证大部分结点是诚实的。

  目前由两部分组成:区块奖励和交易小费。

第四,逐步确认机制

  区块链中的共识不是立即确认,而是分两步走。

  第一步是第一个区块(一笔交易)的确认需要等待一个小时,可以基本确定这次交易是合法的(比如,A send 10 BTC to B,来购买B的货物,这个区块产生后,B需要等待再次链入6个区块的时间,才会完成交易,把货物交给A,这个时间可以认为之前的待确认区块基本无法更改)。

  第二步,随着链入的区块却来越多,代表这次交易的区块被更改的概率越来越小,合法性逐步增强。

第五,双重支付问题

  什么是双重支付?

  假设A广播一条交易信息,A send 10 BTC to B,矿工(其他节点)会将这个区块打包链入区块链,B发现该区块后,如果立刻将货物交给A(零确认机制),这时,A可能会利用自己强大的算力迅速将另一个区块也加入区块链,即A send 10 BTC to A,如果A可以成功将这个区块加入,并且利用算力在这个区块后继续加入新的区块,则真实的区块则会被忽略。因为诚实的结点会沿着最长的区块链创建的区块。

  怎么解决的?

  基本基于两点:第一,用上面提到的逐步确认机制代替零确认机制。第二,A很难达到能够在逐步确认机制下,仍能在假区块后控制链入6个以上新区块的算力。第三,即使真能达到这种算力,那么整个比特币系统就会因A这个强大BUG而失去其公信力,即信任崩塌,失去信任的BTC则一文不值,那么掌控强大算力的A也会一无所得,成本高于收益。这也是赤裸裸的阳谋,即想玩就一起好好玩,想捣乱,大家都别玩了。

(文章内容仅为区块链技术的学习记录,如有失误或考证不严谨的地方,请多多指教。)

(参考资料:https://www.zhihu.com/people/ustcsse308)

原文地址:https://www.cnblogs.com/ChengzhiYang/p/9726473.html

时间: 2024-08-30 11:37:14

初识区块链(二)的相关文章

区块链之初识区块链

大家下午好,这里是链客区块链技术问答社区,给大家讲一讲刚接触区块链的萌新需要了解什么. 首先得明白几个概念:区块链,比特币,中心化,去中心化,挖矿 区块链和比特币 区块链是啥呢?区块链和比特币有啥关系呢? 比特币是区块链,但区块链不是比特币.区块链是一种技术,比特币是其的一种体现形式,除了比特币,还有好多类似的币.区块链这种技术与普通技术的区别有啥区别呢?就是普通的技术会把一个文件存放在一台电脑上,高级点的技术会放在服务器上,而区块链会把一个文件存储在所有终端电脑上,每台电脑上都有这个文件,但是

初识区块链

浅谈区块链 从一个账本说起,早些时候,农村一般都会有一个账房先生,村子里的公共开销都有账房先生来记账,大部分情况下没有人去查账本,账本也就是账房先生来保管,一直相安无事.下图便是账本的记账权 但是有一天,有个人无意发现数字对不上,这可不行,立即保告了其他人,结果大家都不干了,经过一番讨论大家决定,轮流来记账,这个月张三,下个月李四,大家轮着来,防止账本在一个人手里,于是账本的记账权发生了如下图所示: 通过上图可以看到,大家轮流来记账一切又相安无事了,知道有一天李四想挪用公款但是他又怕被后面记账的

初识区块链(三)

工作量证明(proof of work) 区块链的一个关键是,为了保证安全稳定,要给它加一个门槛:即参与者想创建区块并加入区块链,必须证明自己完成了非常困难的工作,这就是"工作量证明",简称POW.可以理解为POW用于保持区块链的节奏. 工作的困难度通过计算量来体现,它不能被快速完成,而且困难度随时间增长而加大.中本聪在比特币中设定每10分钟出一个新块(动态设置难度值).而哈希计算(hash)的特点,就满足这种要求. 此外,完成这个工作的人,也会获得相应奖励.如"矿工&quo

初识区块链——用JS构建你自己的区块链

前言 区块链太复杂,那我们就讲点简单的.用JS来构建你自己的区块链系统,寥寥几行代码就可以说明区块链的底层数据结构.POW挖矿思想和交易过程等.当然了,真实的场景远远远比这复杂.本文的目的仅限于让大家初步了解.初步认识区块链. 文章内容主要参考视频:Building a blockchain with Javascript (https://www.youtube.com/playlist?list=PLzvRQMJ9HDiTqZmbtFisdXFxul5k0F-Q4) 感谢原作者,本文在原视频

以太坊开发完整去中心化应用 —— 区块链投票系统

第一节 课程概述 本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 -- 区块链投票系统. ethereum logo 通过本课程的学习,你将掌握: 以太坊区块链的基本知识 开发和部署以太坊合约所需的软件环境 使用高级语言(solidity)编写以太坊合约 使用NodeJS编译.部署合约并与之交互 使用Truffle框架开发分布式应用 使用控制台或网页与合约进行交互 前序知识要求 为了顺利完成本课程,最好对以下技术已经有一些基本了解

区块链风口

初识区块链 自己第一次听说区块链是在大概2016年的时候,那时候股市中听到一个叫区块链概念,国家把区块链的技术列入到 "十三五" 规划中,然后相应和区块链的相关的股票股价也是节节攀升.其实很多的公司其实都是在打擦边球来收智商税的.到了2017 年随着随着数字货币的一波大涨,在各种媒体的推波助澜下区块链技术被推到了普通大众的面前. 我们每天会听说谁又炒某个币挣了几个亿的故事. 越来越多的人开始关注比特币等各种数字货币,希望自己能够能够搭上这班快车 .正所谓人要顺势而为,在风口上猪都可以飞

以太坊 DApp 开发入门实战! 用Node.js和truffle框架搭建——区块链投票系统!

第一节 概述 面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 -- 区块链投票系统. 通过学习,你将掌握: 以太坊区块链的基本知识 开发和部署以太坊合约所需的软件环境 使用高级语言(solidity)编写以太坊合约 使用NodeJS编译.部署合约并与之交互 使用Truffle框架开发分布式应用 使用控制台或网页与合约进行交互 前序知识要求 为了顺利完成,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ru

区块链学习之:区块链初识

区块链初识: 区块链是一种特殊的分布式数据库技术的实现. 区块链的主要作用是储存信息.任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库. 其次,任何人都可以架设服务器,加入区块链网络,成为一个节点.区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库.你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致. 分布式数据库并非新发明,市场上早有此类产品.但是,区块链有一个革命性特点. 区块链没有管理员,它是彻底无中心的.其他的数据库都

第10讲 | 深入区块链技术(二):P2P网络

在上一篇文章中,我大致讲解了一下区块链技术的几个核心要素.P2P网络协议.分布式一致性算法(共识机制).加密签名算法.账户与存储模型.今天我们就来看看区块链技术的第一个核心要素:P2P网络. 如果我们简单来看P2P技术,它的应用领域已经非常广泛了,从流媒体到点对点通讯.从文件共享到协同处理,多种领域都有它的身影出现. 同样的,P2P的网络协议也有很多,比较常见的有BitTorrent.ED2K.Gnutella.Tor等,也就是我们常说的BT工具和电驴. 比特币.以太坊等众多数字货币都实现了属于