区块链是什么


文章目录



什么是区块链

区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;
它具有分布式数据存储、点对点传输、共识机制、加密算法等计算机技术,通过维护数据块的链式结构进行持续增长的、不可篡改的数据记录.

区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块.


工作原理

区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成.

数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;
网络层则包括分布式组网机制、数据传播机制和数据验证机制等;
共识层主要封装网络节点的各类共识算法;
激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;
合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;
应用层则封装了区块链的各种应用场景和案例.

区块链底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前导区块的哈希(Hash)值;
可通过计算哈希值的方式进行快速检验区块里的交易是否合法;
网络中节点可以提议添加一个新的区块,但必须经过共识机制来对区块达成确认;

DAC(Distributed Autonomous Corporation)翻译为分布式自治机构。所谓DAC,就是通过一系列公开公正的规则,以无人干预和管理的情况下自主运行的组织机构。 这些规则往往会以开源软件的形式出现,每个人可以通过支付手段获得不定形式的回报,分享收益,参与系统的成长


区块链的特点

  • 去中心化分布式账本

就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证

  • 非对称加密和授权

存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私

  • 匿名性

区块链的匿名性是基于算法实现了以地址来寻址 ,而不是以个人身份信息进行交易流转;区块链的匿名性是指别人无法知道你的区块链资产有多少,和谁进行了转账等.

  • 共识机制

所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段.

  • 公开透明

区块链系统是公开透明的,除了交易各方的私有信息被加密外,数据对全网节点是透明的,即任何人或参与节点都可以通过公开的接口查询区块链数据记录或者开发相关的应用,这也是区块链系统值得信任的基础.

  • 不可篡改

区块链系统的信息一旦经过验证并添加至区块链后,就会得到永久存储,无法更改(具备特殊更改需求的私有区块链等系统除外)。除非能够同时控制系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高.

  • 可追溯性

它的机制是设定后面区块拥有前面区块的哈希值,就像挂钩一样,只有识别了前面的哈希值才能挂得上去,从而形成一整条完整可追溯的链.

  • 自治性

区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用.


实际应用


数字货币,证券交易

它正对金融业产生颠覆式变革,支付结算方面,在区块链分布式账本体系下,市场多个参与者共同维护并实时同步一份“总账”,短短几分钟内就可以完成现在两三天才能完成的支付、清算、结算任务,降低了跨行跨境交易的复杂性和成本


数字政务

区块链的分布式技术可以让政府部门集中到一个链上,所有办事流程交付智能合约,办事人只要在一个部门通过身份认证以及电子签章,智能合约就可以自动处理并流转,顺序完成后续所有审批和签章.


存证防伪

区块链可以通过哈希时间戳证明某个文件或者数字内容在特定时间的存在,加之其公开、不可篡改、可溯源等特性为司法鉴证、身份证明、产权保护、防伪溯源等提供了完美解决方案

知识产权领域,通过区块链技术的数字签名和链上存证可以对文字、图片、音频视频等进行确权,通过智能合约创建执行交易,让创作者重掌定价权,实时保全数据形成证据链,同时覆盖确权、交易和维权三大场景.


区块链开发语言


go语言

以太坊,IBM
Go提供了一个软件构建模型,使依赖分析更容易.


C++

比特币、公正通、瑞波ripple
c++是C语言的继承,它可以是C语言程序设计的过程,也可以是抽象的数据类型,作为基于对象的编程的特征,也可以承担面向对象编程的继承和多态性.


java

未来币
Java是一种面向对象的编程语言,不仅吸收了c语言的优点,也抛弃了在c、指针等概念中难以理解多重继承的困难,因此Java语言具有强大且易于使用的两个特性

出自:区块链是什么

回到顶部