区块链入门学习—概念

大家好,这里是链客区块链技术问答社区。
链客,有问必答!!

       区块链(Blockchain)是近年来的大热门,最近开始学习区块链,以及主流平台以太坊的一些内容,不得不说对于小白而言,内容概念确实多,且杂。以此记来梳理一下知识点,分享一下经验内容。
一、区块链的实质
        区块链,第一反映联想到前段日子疯涨的比特币。没错,比特币是依赖于区块链底层框架,是一种数字货币,早在2009年,比特币系统开始运行,并且为没有中心机构运维下,运行了9年多的时间,它依赖于加密和共识算法。
        而区块链的本质就是一个去中心化的的数据库,结合分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,说白了,就是一个分布式账本。具有以下特点:

它是一个链式的数据库,每个区块打包了一段时间内的交易信息,通过共识算法以更新数据信息。通过 哈希(hash)值与上一个区块相关联。

采用共识算法更新、生成数据,保证了信任与交易安全,取代了传统第三方中介机构。
与密码学高度关联,采用非对称加密的方式,使用数字签名技术保证交易安全。
 二、区块链中的核心概念
非对称加密:通过同一个密匙进行加密解密,称之为对称加密。顾名思义,非对称加密就是有两把密匙进行加密与解密,其中一把称为私有密匙(Private key),另一把称为共有密匙(Public key),密匙是成对出现的。
区块:区块包含区块头与区块体两部分。区块头包含了上一区块打哈希值、Merkle树等信息,而区块体内包含该区块内所有的交易信息。区别一个区块可以通过区块的哈希值。所谓哈希值,就是一种数字指纹,将信息提取并打乱随机生成打,常用的哈希算法有SHA1、SHA2、SHA256等(1,2,256表示哈希值位数),区块中采用SHA256算法。Merkle树,是一棵二叉树,通过有效的存储,递归访问的手段,对两个节点进行哈希运算,将运算的哈希值叠加,再进行哈希运算,直至剩余一个哈希值,称为Merkle树的根,便是区块头结构中的哈希值。

共识机制:通过该机制,可以使得区块链这个去中心化的数据库中,各个节点达成共识。例如比特币系统,采用一种工作量证明共识(Proof of Work,PoW)的机制保证了分布式账本的一致,简单打来讲,就是不断改变随机数,进行SHA256运算,求区块头的哈希值,这个过程,就是我们俗称的“挖矿”,做这件事的人,称为“矿工”。显而易见,这需要一定的算力,费时费力,但是存在一定的激励措施,例如,发现新的区块时,将奖励给矿工比特币(2018年,12.5个,每4年减半)。因此,一些人提出了多种共识机制,如股权证明机制(PoS)等。
 三、区块链的平台
        比特币并不是区块链的全部,它是PoW共识机制,任何人可以加入,是公有链(区块链可以按公有链,联盟链,私有链),但是它不支持智能合约,可以支持一些脚本来进行编程操作。
        以太坊(Ethereum)是区块链的一个开发平台,是一个开源的有智能合约功能的公共区块链平台。通过其专用以太币(Ether)提供的虚拟机来处理点对点的合约。它提供一些界面,降低了开发难度。在接下去打学习中,将围绕以太坊展开,主要有Meteor、Truffle、Remix-IDE等内容。
        Hyperledger Fabric是 The Linux Foundation主办的 Hyperledger项目之一。Hyperledger Fabric 旨在作为开发模块化体系结构的区块链应用程序的基础,以便诸如共识和会员服务等组件可以即插即用。它使用容器技术来托管构成系统应用逻辑的智能合约(也称为链代码)。该架构将交易处理分为 3 个阶段:分布式逻辑处理和协商(“链代码”)、交易订购,以及交易验证和提交。这种分离提供了一些优势:不同节点类型之间需要的信任和验证水平更低,网络可伸缩性和性能得到了优化。      
章,与爱好者一起分享。
什么是区块链共识?
共识(Consensus)过程是一个非常有趣的过程。
在我们的日常生活中,几乎所有的事情都是达成共识的过程。
达成共识越分散的过程,其效率就越低,但满意度越高,因此也越稳定;相反,达成共识越集中的过程,效率越高,也越容易出现独裁和腐败现象。
达成共识常用的一种方法就是通过物质上的激励以对某个事件达成共识;但是这种共识存在的问题就是容易被外界其它更大的物质激励所破坏。
还有一种就是群体中的个体按照符合自身利益或整个群体利益的方向来对某个事件自发地达成共识;当然形成这种自发式的以维护群体利益为核心的共识过程还是需要时间和环境因素的,但是一旦达成这样的共识趋势,其共识结果也越稳定,越不容易被破坏。
在比特币和其它区块链币中,也存在如何达成共识的问题。或者说,比特币或其它区块链币最核心的问题也是如何在去中心化的环境中达成共识。
区块链是比特币背后的核心技术,也是支撑比特币的基础架构。因此在谈区块链共识,就必然要谈比特币的共识。
比特币最核心的突破是在去中心化的情况下对交易事件达成了共识,即在没有中心组织的情况下对某个交易的有效性达成了一致。
比特币实现这个共识的方法主要包括两个部分:
激励;即通过每个区块产生一定量的新比特币来激励参与者;
引入外部资源确保安全;即通过大量的外部计算来确保共识的安全性,也就是工作量证明(Proof of Power);
这也是几乎所有PoW币种所采用的的方法。
而这套方法要能持续长期运行下去的前提就是:
这种激励对参与者要有足够的吸引力;也就是说比特币要一直涨价,才能吸引参与者持续参与挖矿计算,以维护整个网络的运行;否则就会导致参与的人减少,破坏网络安全;
没有外部攻击;由于比特币引入了外部计算来确保安全,因此只要有足够的挖矿算力(超过维护系统算力的51%)就能对系统成功进行攻击,这也是比特币长期存在的安全隐患之一;因为只要有钱,就能买到设备和算力。
正是由于比特币存在的问题,例如消耗大量的资源、外部51%攻击等,出现了PoS(Proof of Stake)共识机理。
总体上,PoS共识理论和实践目前仍处在探索阶段。
最原始的PoS机理就是用股权代替PoW中的挖矿算力,来模拟比特币的挖矿过程。请注意,这个过程没有引入外部资源,而是仅仅依靠自身的币种股份来维护网络安全,因此其不需要消耗大量能源来进行计算;而且由于其没有引入外部的资源,因此不会担心外部攻击,例如外界的算力攻击。
看起来PoS是很完美的,但是它存在一个严重漏洞。
PoS存在内部的Nothing-at-Stake攻击。
什么是Nothing-at-Stake(常写作N@S)攻击?
假设系统中出现了两个分支链,那么对于持有币的”挖矿者“来讲,最佳的操作策略就是同时在两个分支上进行“挖矿”,这样,无论哪个分支胜出,对币种持有者来讲,都会获得本属于他的利益,即不会有利益损失。而且由于不需要算力消耗,因此PoS中在两个分支上挖矿是可行的。
第二个问题是重写历史攻击;即攻击者可以通过购买原始持有币种的账户来从头发起攻击,重新分叉一个区块链。因为原始的币种持有者可以将币转移至其它账户,因此他是可以在没有损失的情况下将原始账户出售给攻击者的。攻击者需要的就是有足够数量币的原始账户;当然了,这也只是概率问题,因为有可能原始账户持有者不会出售他们的账户,但是理论上确实存在这种攻击。
第三个问题是,尽管PoS中的挖矿不用消耗算力,运行成本很低,但是也存在如何激励矿工的问题。因为一般的PoS系统是没有新币产生的,矿工只能赚取交易费,而且在交易费不高的情况下,对矿工的激励也是很有限的。
上述3个问题是PoS要解决的,尤其是N@S的问题尤为重要,因为如果没有其它约束机制,这种攻击是完全有可能实现的。
以现实为例,事件的信息越透明、所涉及到的人员参与度越高,最终形成的共识也就越稳定、越持久。这与区块链共识是一致的。
以上是个人的对区块链共识的一些学习心得,期望能看到更多这方面的讨论和研究文章,与爱好者一起分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值