如何快速学习了解区块链?(如何入门区块链)

柚子 170

如何快速学习了解区块链?

一,如何快速学习了解区块链?

谈谈个人对区块链技术学习的一些路线看法:

前言

首先明确一点,区块链技术随比特币诞生,并支撑着比特币的运行,所以在理解区块链技术之前,应了解比特币。

基础入门

个人学习需要了解的知识点分以下几个步骤:

  1. 比特币是什么,对比特币的理解。
  2. 比特币的记账原理,主要是为了了解比特币的结构。
  3. 理解比特币所有权以及隐私问题,主要理解一些概率,如地址私钥、非对称加密应用。
  4. 比特币的挖矿原力,理解挖矿工作量证明。
  5. 比特币共识机制的理解。
  6. 知识点拓展学习,加深自己对比特币的理解:什么是拜占庭将军问题。
进阶阶段

进阶阶段主要是理解分布式网络、交易验证,有以下几点内容:

  1. 分析比特币网络:一种去中心化,点对点的网络架构。
  2. 比特币区块结构Merkle树及简单支付验证分析。
  3. 比特币脚本及交易分析,这个是智能合约的雏形,可以重点研究一下。


技术实践

通过上面这些知识点,大家应该可以理解区块链了,现在还缺乏一个实现的应用案例,推荐理解以太坊【以太坊是建立在区块链技术上的一个去中心化的应用平台】

了解以太坊需要学习以下知识:

  1. 以太坊开发入门;
  2. 智能合约开发环境搭建及hello world合约;
  3. 以太坊客户端Geth命令用法;
  4. Geth控制台使用实践及Web3.js使用;
介绍一些开源的区块链技术以及资源链接

比特币

全球使用最广泛,真正意义上的去中心化区块链技术。

开源地址:
https://github.com/bitcoin/bitcoin

以太坊

图灵完备的区块链一站式开发平台,采用多种编程语言实现协议,并利用Go语言编写的默认客户端。

开源地址:
https://github.com/ethereum

IBM HyperLedger fabric

带有可插入各种功能模块架构的区块链实施方案,目的打造成一个由全社会来共同维护的一个超级账本。

开源地址:
https://github.com/hyperledger/fabric

比特股BitShare

区块链里程碑产品之一,是完整度最高,功能最丰富,性能最强大的区块链产品之一;核心技术结构采用C++语言编写。

开源地址:
https://github.com/bitshares

公证通Factom

利用比特币的区块链技术革新商业社会和政府部门的数据管理的数据记录方式,被理解为不可撤销的发布系统。

开源地址:
https://github.com/FactomProject/FactomCode

瑞波Ripple

世界上第一个开放式支付网络,是基于区块链的点对点全球支付网络。

开源地址:
https://github.com/ripple/rippled

未来币NXT第二代去中心化虚拟货币,使用全新代码编写,非比特币的山寨币,技术架构采用JAVA编写。

开源地址:
https://bitbucket.org/JeanLucPicard/nxt/overview

二,如何入门区块链

答:本文邀请thomas来回答,他会从基础数据结构展开,对构建简易区块链所涉及的几个知识点做一个简单梳理~

1、区块与交易数据结构

如下图是官网给出简化区块链结构图,一个区块有区块头和交易组成,每一个区块头部主要包含前一区块hash,merkle root data,时间戳,计算器等值,可用于工作量证明。

大部分简易区块链的文章中都简化了这部分设计,实际把交易结构直接放入区块中(也可以是其他数据),而不会有区块/区块头之分。

再看交易结构,交易作为比特币的核心部分,根据官网给出示列可以看出交易在区块链中的流转过程。

首先,先归纳出交易相关数据结构:

其实理解交易的整个流转过程并不难。每一笔交易有输入输出组成,输入会引用之前交易的输出,交易的输出包含了资产实际存储值。为了方便理解,我们假设有甲乙两人(可理解为地址)发生交易,甲 向 乙 转入100k(甲有足够资金),产生交易订单:TX0;input0为引用甲之前交易的输出output(引用甲需要的资金>=100k);output0为甲剩余资金;output1为乙获得资金。

在结合官网给的结构图发现每次交易缺少10k satoshi,官网解释为对挖出区块的矿工的奖励(实际这是一种激励形式,后续有介绍)。个人理解其表现形式应该也为一项有效交易的输出。这笔交易一旦成功并加入区块,实际上这笔交易所引用的输出就要作废。因为在这里每一笔交易引用的输出在整个链路中只能出现使用一次,这是为了防止双花即同一输出多次使用的结果发生。所以这里还会还涉及几个概念, 后面继续介绍。

2、utxo集

utxo(unspent transactions outputs)集,字面意思未花费交易输出。一笔交易的输入需要获取以往交易的输出来获取余额信息,当整个区块链达到一定高度时,每次交易便利整个区块链时不可取的。引入utxo集,将未被任何交易输入所引用的输出集合管理,加快交易的相关操作。在构建简易区块链实现中,较简单通过遍历整个链路过滤出符合要求的未花费集合。这里符合要求可理解为与己相关,可被自己解锁的且未被其他输入所引用的输出(上面提到的防止双花),这样以保证未花费输出被恶意消费。

3、merkle树

前面提到区块中存储的merkle root data。每个区块包含一个或者多个交易记录,为了验证某笔交易难免会遍历或下载区块及交易数据。针对这中情况,比特币中采用merkle树,merkle root data被存储在区块头中, 交易数据hash后两两合并在hash(如果区块中交易数为单数,则取最后一笔交易凑足双数节点),直到归并为一个hash节点merkle root data。其过程如下图所示。

比特币中的简单支付验证(SPV)部分,是通过从Merkle根节点进行遍历,只需取得所需的交易hash和待验证交易hash就可完成验证,这样就无需下载整个交易区块数据。列入上图中,证明D交易被添加到这个区块中,一个SPV客户端只需要拷贝merkle树路径中C、AB和EEEE 哈希到Merkle根节点,而客户端不需要知道其他的交易的任何信息。

4、密钥 地址 签名

在整个比特币交易过程中,比特币的所有权是通过密钥、地址以及数字签名来确立的。在交易中必须要知道交易的发送方和接收方才能完成交易。只需知道一方的地址便可以向这个地址发送货币产生交易。首先,密钥是成对出现的,由私钥和公钥所组成,在比特币中被存储在钱包文件中。公钥可对外公开,但是私钥是证明所有者身份的存在,只有所有者知道。如果丢失,那就失去了名下所有交易的所有权于控制权。

4.1 密钥

比特币实现中使用椭圆曲线算法生成密钥对,使用ECDSA对交易数据签名,算法原理暂不介绍。其代码实现如下:

4.2 地址

比特币中的地址实际上由1字节version,20字节的公钥hash以及4字节checksum组成,人们可见的地址是有实际地址经过base58编码后得到的可读地址。其中version取值为0x00。

其生成规则与代码实现如下:

base58(version+公钥hash+checksum)(位数不固定)因为base58编码格式与十六进制格式转换结果位数不确定。

4.3 签名生成

为了保证交易数据的有效,当前交易所有者需要在交易中提交其公钥和签名(每次交易的签名都不同,但均从同一个私钥生成)。比特币网络中的所有人都可以通过所提交的公钥和签名进行验证,并确认该交易是否有效,即确认支付者在该时刻对所交易的比特币拥有所有权。私钥生成签名signature(privkey + txdata).公钥验证 pubkey+txdata 是否有效。

这里有必要介绍一下P2PKH(Pay-to-Public-Key-Hash),比特币中大部分交易以p2pkh交易脚本实现,用scriptpubkey锁定脚本,script解锁。在以上实现中,直接用公钥,公钥hash,签名实现锁定与解锁的过程,简化了script脚本语言这一过程。

也正是因为这样的脚本语言,可以表达出无数的条件变种,也使得智能合约成为可能。

5、共识pow

当交易完成,一切必要数据均以生成,区块生成就可以直接加入区块链中吗?在比特币中,在去中心情况下各节点需要对这个交易的有效性达成共识,才能真正加入区块链中。

比特币实现这个共识的方法主要包括两个部分:

(1)激励:通过每个区块产生一定量的新比特币来激励参与者;

(2)工作量证明(pow):矿机需要证明自己生成区块的工作有效。

这种有效激励及证明,维护了整个网络的正常运转,保证区块安全的加入到区块链中。其实现过程简单来说是对给定数据data与计数器nonce组合进行SHA256哈希运算,如果得到满足规定的哈希结果(满足规定个数的0开头的hash值),则验证通过。为了得到有效结果,我们需要不停的递增nonce计数器值进行sha256计算,直到结果有效。

在比特币实现中采用的是hashcash算法。其实算法的思路简单较易实现,各节点间只需通过验证计数器nonce即可达成共识。当然这里也暴露出一些安全问题,如果只要有足够的挖矿算力(超过整个系统算力的51%)就能对系统成功进行攻击。所以这里也衍生了其他的一些共识机制,比如权益证明pos(proof of stake)这里就不介绍了。

6、网络

说道网络组成,我们都知道比特币的网络部分属于去中心化的p2p网络。每一个网络节点客户机器根据其功能有不同的划分。比如包含区块链完整数据的全节点,负责挖矿的矿工节点,客户端节点等。初始节点加入网络,通过种子节点连接到网络中其他节点,连接建立后通过getblock,getaddr,getdata等消息于其他节点交换信息,比如发现新节点,交换数据数据等等。

总结:

对基本概念有所了解后,不考虑网络实现实际可以动手实现一个简易程序。网络实现部分在开源社区也有很多解决方案,有基于go-libp2p实现网络部分的区块链demo,但是相关概念不算丰富,但是却给了一个实现方式的思路,可以基于go-libp2p完善这部分的结构。

三,怎么了解区块链

快速学习的话,入门可以比较快,但是要熟练掌握还是要花一阵子时间的。

具体怎么学要分情况讨论。


如果是非程序员出身:


入门阶段:对区块链没有任何基础认识,非常想要了解区块链是什么,有什么用,现在的发展情况是怎样的了。

这个阶段需要构建最基础的区块链认知,理解清楚区块链的机制,特点以及意义。


推荐:如果喜欢看书的话,推荐《区块链——领导干部读本(修订版)》,当然这本书的话,是包括入门阶段与掌握阶段的。


如果不喜欢看书,想看视频的话,这里也有一些圈内的大公司做的科普视频,比如OKEx与新浪联合出品的区块链基础课程。(可以长按下方链接,选择搜索,然后点击右上角“前往”,即可查看)

https://www.okex.me/academy/zh/category/industry-analysis/60-classes-on-blockchain


建议:不要去参加各种区块链大会,听不到干货的。许多演讲嘉宾都只是讲的观点和自己的一些“重新定义”,而在这个阶段,最需要的是静下心来,认真学习区块链的本质,需要的是事实,而不是观点。


掌握阶段:经过了入门阶段,可能对区块链的特点有所了解,但是可能会知其然不知其所以然。

所以,这个阶段需要深入地理解清楚区块链的原理,它是如何实现各种特点的,以及区块链的实际应用场景有哪些。


推荐:区块链的原理部分,可以看看《区块链:从数字货币到信用社会》的前面讲原理的部分。后半截因为是不同作者写的,个人主观的地方有点多,看看就好。

或者觉得自己理解能力强的,可以直接细看中本聪写的比特币的白皮书中文版,或者直接看《精通比特币 第2版》这本书。(可以跳过技术部分)

区块链应用方面可以继续看《区块链——领导干部读本(修订版)》。

以及可以看一些区块链行业报告和产业报告。

网站上的话,可以推荐国内一些区块链公司的官网,比如趣链科技,去看看他们实际案例是如何实现的。国外的公司推荐看IBM的(有中文),目前IBM已经与许多跨国企业协作,实践了许多区块链案例,这些是非常宝贵的经验。

当然,也可以关注我,每天我都会分享一些行业前沿的观点和案例。


建议:这个阶段,目前没有看到比较合适的视频,所以最核心的还是推荐的书和一些报告。

如果熟练掌握以上这些,之后就可以结合自身的专业去探索区块链与本专业的如何结合。


专业阶段:要达到专业阶段,深度要够还要有广度,深度就看是否有自己有一定专业度的见解,广度则在于是否了解整个行业的过去、现在和未来会是什么样的。


推荐:这个阶段很难有一般的书籍可以推荐了,基本上,属于自己去细看案例,比如各种区块链的白皮书,以及与从业人员对话,理解许多案例背后具体实现的逻辑是怎样的。


建议:如何检验自己深度和广度足够,可以多跟业内人士沟通,如果跟不上节奏,就说明水平还不够,要再接再厉地学习。


P.S.如果有人说不懂编程就学不会区块链的,说出这种话,那他基本上对区块链的意义是一知半解的。区块链是一门技术,只有与其他专业相结合,才能获得最好的效果。比如联盟链,都是一个传统的行业巨头去找到区块链技术解决方案提供商比如IBM、趣链科技,来解决一些行业问题的。这其中就需要懂传统的人,学习并深刻理解了区块链,双方才能更好地协作。


如果是程序员出身,那我就不按照最基础的介绍了,直接从代码层理解:


入门:《精通比特币 第2版》


掌握:学习ETH的solidity语言,IBM的Hyperledger Fabric,熟练掌握好这两款,这是基础。以后会遇到许多都是基于这两个语言来改的项目。

精通:要做到精通,就要多了解各个项目语言。

以后若是想了解公有链,可以学习rust语言,进而去学习 Substrate框架,了解polkadot这个项目,这个项目也是以太坊的CTO设计的。

若是想了解联盟链,可以学习国内的知名联盟链的代码,比如趣链科技的Hyperchain,腾讯和阿里的链,以及FISCO BCOS。


再往后就是自创一个区块链项目了。这个是最难的了。


不过一般来说学到精通就够用了。现在国内对区块链技术人才需求极大。如果学习联盟链的话,可以同时看看一些大厂,比如BAT或者银行对于区块链人才的需求,说不定还能找到份不错的工作呢。

四,从零开始学区块链

区块链是什么

区块链本质上是一个去中心化数据库。是一种分布式数据存储,点对点传输,共识机制,加密算法等计算机技术的新型应用模式。

举个例子:

比如说小明找大康借一百块钱,但大康怕他赖账,于是就找来村长做公证,并记录下这笔账,这个就叫中心化。但如果,你不找村长,直接拿个喇叭在村里大喊“我大康借给小明一百块钱!请大家记在账本里”,这个就叫去中心化。

以前村长德高望重,掌握全村的账本,大家都把钱存在他这里,这是过去大家对中心化的信任。现在,大家都担心村长会偷偷挪用大家的钱,怎么办呢? 于是大家就给每个人都发了一本账本,任何人之间转账都通过大喇叭发布消息,收到消息后,每个人都在自家的账本上记下这笔交易,这就叫去中心化。有了分布式账本,即使老孔或老周家的账本丢了也没关系,因为老朱、老杨等其他家都有账本。

区块链有什么特点:

去中心化:因为区块链的去中心化,它可以帮助点对点交易,因此,无论你是在交易还是交换资金,都无需第三方的批准。区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。去中心化是区块链最突出最本质的特征。

开放性:区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。开放性比较少被提到,但它也很重要,甚至可以说开放性是去中心化特性的保证之一。

安全:不受任何人或实体的控制,数据在多台计算机上完整复制(分发),攻击者无单一的入口点。只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。

不可篡改:信息通过密码学技术进行加密,一旦进入区块链,任何信息都无法更改。

匿名性:除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。区块链的匿名性特点,在一定程度上很好地保护了用户的隐私。但是区块链的匿名性也颇具争议,因为它在人们交易、隐私方面起到了重要的保护作用,也为一些违法犯罪行为提供了“保护伞”。

区块链应用领域

金融领域

区块链在国际汇兑、信用证、股权登记和证券交易所等金融领域有着潜在的巨大应用价值。将区块链技术应用在金融行业中,能够省去第三方中介环节,实现点对点的直接对接,从而在大大降低成本的同时,快速完成交易支付。

首先是因为区块链的去中心化特性带来的优势。在传统的金融机构,如银行,老王想给小张转一笔钱,他需要先通过中心机构银行的确认才能把钱转到小张手中,而在区块链网络中,老王不需要通过银行就能把钱转给小张,这不仅提高了交易的效率,还在一定程度上节约了交易的成本。

目前火爆的defi,就是去中心化金融,虽然现在还在初始阶段,各方面都还不够成熟,但相比2017年的1-C-0空气,已经有了一定的落地。

物联网和物流领域

区块链在物联网和物流领域也可以天然结合。通过区块链可以降低物流成本,追溯物品的生产和运送过程,并且提高供应链管理的效率。将物流和供应链行业带入现代化将在全球范围内产生广泛影响。通过降低整体成本并允许物流流程中的实体与更多的个体代理商合作,整个物流将会有全面的改进。这些效率的提高最终将导致在流程的每个阶段节省成本。该领域被认为是区块链一个很有前景的应用方向。

公共服务领域

区块链在公共管理、能源、交通等领域都与民众的生产生活息息相关,但是这些领域的中心化特质也带来了一些问题,可以用区块链来改造。比如,对于普通企业来说,往往最难的就是去政府部门办事,不但需要各种证明文件,而且还需要跑多个部门,不同的部门要求还不一样。主要原因就是原先各个政府部门的数据都是孤立的,彼此不共享,但如果都能在信息高度安全的基础上“上链”,数据实现共享,则办事人就能实现只需在一个部门内解决多数问题。因为所有办事流程交付给智能合约后,后面就可以自动处理并流转,所谓“一网通办”并不再是梦想。

数字版权领域

通过区块链技术,可以对作品进行鉴权,证明文字、视频、音频等作品的存在,保证权属的真实、唯一性。作品在区块链上被确权后,后续交易都会进行实时记录,实现数字版权全生命周期管理,也可作为司法取证中的技术性保障。拿一首歌曲来说,如果原作人申请了该歌曲的版权,但是由于中心化机构存在存储不安全、不公开透明以及易被利益驱使的缺陷,版权可能被他人进行篡改,这样很可能损害了歌曲原创者的权益,而如果说该歌曲的数字信息及版权信息记录在了区块链上,借助区块链的公开透明以及防篡改性等优势,就能很好地避免版权信息被恶意篡改的情况发生了。

保险领域

在保险理赔方面,保险机构负责资金归集、投资、理赔,往往管理和运营成本较高。通过智能合约的应用,既无需投保人申请,也无需保险公司批准,只要触发理赔条件,实现保单自动理赔。未来区块链作为保险行业重要的基础设施及工具,将与云计算、大数据、人工智能、物联网等众多新兴技术融合,实现更多的保险行业创新应用,构建创新型、平台式的保险服务创新生态体系。在区块链的推动下,未来将出现开放保险。利用区块链技术的开放性,将可改变传统保险业中的“信息孤岛”情况。另外,区块链未来也可提升保险互信、成就保险普惠。

区块链的应用前景巨大,将彻底革新现有价值传递体系在民生的各个领域,未来在区块链都会应用的到,可以想象的是,当社会的各个领域广泛用上了区块链,它将成为信息时代的重要基础设施,能解决很多当前令我们头疼的事儿。

五,区块链怎么自学

作为一名专业的区块链从业者和资深的区块链意见领袖,我不认为有什么方法能够快速地进行区块链知识的学习。

从知识体系上来说,区块链涉及了多种不同的学科专业领域。从最底层技术层面的密码技术和计算机网络技术,到中间激励层面的经济金融制度设计,再到上层的社会治理,以至更顶层的哲学思辨,区块链可以说无所不包。任何一个人也不可能把区块链每一个细分领域的知识都掌握得十分通透,最多只能在相关领域具体层面的内容学习上做到一定程度的专业性。

学习区块链,还是要结合自己的基础,合理确定自己的目标,规划自己的学习时段,科学地安排学习内容。在此基础上,如果再能对其他领域的知识进行必要的涉猎和补充,打牢自己区块链领域的知识基础,逐步建立自己在这一领域的知识独特性,再在实践当中跟其他有独特性知识的专业人士进行深度结合,就已经是非常成功的了。


总结:以上内容就是优手游提供的如何快速学习了解区块链?(如何入门区块链)详细介绍,大家可以参考一下。

折扣手游手游

折扣手游手游

最低折扣游戏盒子

下载游戏折扣

扫描二维码下载