1. 专业技术点总结
1.1 加密算法
用于区块链的加密算法
1.2 P2P网络
Peer-to-Peer 综述
1.3 共识机制
1)拜占庭共识算法系列PBFT/DBFT机制:
拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些失效,并且这些协议还要满足所要解决的问题要求的规范。这些算法通常以其弹性t作为特征,t表示算法可以应付的错误进程数。很多经典算法问题只有在n ≥ 3t+1时才有解,如拜占庭将军问题,其中n是系统中进程的总数。
拜占庭容错能够容纳将近1/3的错误节点误差,IBM创建的Hyperledger就是使用了该算法作为共识算法。
DBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。
优点:
1)专业化的记账人;
2)可以容忍任何类型的错误;
3)记账由多人协同完成,每一个区块都有最终性,不会分叉;
4)算法的可靠性有严格的数学证明;
缺点:
1)当有1/3或以上记账人停止工作后,系统将无法提供服务;
2)当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;
对于拜占庭将军问题可自行网上查找资料,很多这里不再赘述。
2)工作量证明PoW
工作量证明,Proof of Work,通过计算来猜测一个数值(nonce),得以解决规定的 hash 问题(来源于 hashcash)。保证在一段时间内,系统中只能出现少数合法提案。
同时,这些少量的合法提案会在网络中进行广播,收到的用户进行验证后会基于它认为的最长链上继续难题的计算。因此,系统中可能出现链的分叉(Fork),但最终会有一条链成为最长的链。
3)权益证明PoS
权益证明,Proof of Stake,2013 年被提出,最早在 Peercoin 系统中被实现,类似现实生活中的股东机制,拥有股份越多的人越容易获取记账权。
典型的过程是通过保证金(代币、资产、名声等具备价值属性的物品即可)来对赌一个合法的块成为新的区块,收益为抵押资本的利息和交易服务费。提供证明的保证金(例如通过转账货币记录)越多,则获得记账权的概率就越大。合法记账者可以获得收益。
PoS 是试图解决在 PoW 中大量资源被浪费的缺点。恶意参与者将存在保证金被罚没的风险,即损失经济利益。
一般的,对于 PoS 来说,需要掌握超过全网 的资源,才有可能左右最终的结果。这个也很容易理解,三个人投票,前两人分别支持一方,这时候,第三方的投票将决定最终结果。
4)授权股权证明机制DPOS
PoS 的改进算法,DPOS与POS原理相似。与POS的主要区别在于节点选举若干代理,由代理人验证和记账。
PoW机制和PoS机制虽然都能有效地解决记账行为的一致性共识问题,但是现有的比特币PoW机制纯粹依赖算力,导致专业从事挖矿的矿工群体似乎已和比特币社区完全分隔,某些矿池的巨大算力俨然成为另一个中心,这与比特币的去中心化思想相冲突。PoS机制虽然考虑到了PoW的不足,但依据权益结余来选择,会导致首富账户的权力更大,有可能支配记账权。
股份授权证明机制( Delegated Proof of Stake,DPoS)的出现正是基于解决PoW机制和PoS机制的这类不足。
区块链目前的几大共识算法
区块链面试指南--之共识算法
1.4 分片技术
区块链—分片技术(Sharding)
1.5 闪电网络
什么是闪电网络呢?在状态通道一文中我们提到过,闪电网络是状态通道的典型应用。是一个分布式网络,通过智能合约功能以支持跨参与者网络的即时付款,同时利用区块链的特性消除将资金托管给第三方带来的风险。主要作为用于即时、高容量的微支付。
闪电网络的目的是实现安全地进行链下交易,其本质上是使用了哈希时间锁定智能合约来安全地进行0确认交易的一种机制,通过设置巧妙的‘智能合约’,完善链下通道,使得用户可以在闪电网络上进行0确认的交易。
什么是闪电网络?
1.6 PKI安全机制
PKI系统深入介绍
1.7 分布式网络
- 分布式的信息发布与传输:每个参与系统的节点都可以发起信息,每一个参与的节点可与相邻节点进行信息交互,全网公开传递有价值的信息。
- 分布式记账:每个参与系统的节点只要根据共识机制,完成工作量的设定,便能取得数据库的记账权,且记录可以追溯查询,但不可篡改。
- 分布式储存:分布式记账后在记录信息加工中加上一个时间戳,便会产生区块数据,网络广播出去后,就会在区块链中形成,每个节点可以选择储存完整的数据或者是部分数据。而且,每个节点都可以拥有一份完整的本地数据储存实时的更新。
区块链是一种分布式的网络系统,分布式系统最为关键的问题就是“一致性的问题”而如何保证一致性是分布式系统中最为重要的环节。英文叫做:Consistency ,用中文理解就是:多个网络节点必须达成一致,而这个一至必须要在一定约束操作和规定协议的前提下使得所有的网络节点的处理结果达成规定协议的一致。这种一致性规定协议在区块链中称为:共识算法。
1分钟看懂区块链,分布式网络
1.8 分布式存储
如何实现高容量大并发数据库服务 | 数据库分布式架构设计
分布式数据库架构--分库、分表、排序、分页、分组、实现
关系型数据库免费视频课程
2. 各种链的定义
2.1 公链/联盟链/私链/许可链
公有链
公有链是指全世界任何人都可以随时进入系统中读取数据、发送可确认交易、竞争记账的区块链。
公有链通常被认为是完全去中心化的,因为没有任何人或机构可以控制或者篡改其中数据的读写。
公有链一般会通过代币机制鼓励参与者竞争记账,来确保数据的安全性。比特币、以太币都是典型的公有链。
联盟链
联盟链是指由若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。
私有链和联盟链之间的设计隐私权限会有不同,联盟链中的权限设计要求往往会更加复杂。
私链
私有链是指其写入权限是由某个组织和机构控制的区块链。参与节点的资格会被严格的限制,由于参与的节点是有限和可控的,因此私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击、并且能够做到身份认证等金融行业必须的要求。
相比中心化数据库,私有链能够防止机构内单节点故意隐瞒或篡改数据。即使发生错误,也能够很快就发现来源,因此许多大型金融企业更倾向于使用私有链技术。
主要特点:给隐私更好的保障、交易成本大幅度降低、交易速度非常之快。
许可链
许可链是指参与到区块链系统中的每个节点都是经过许可的。未经许可的节点是不可接入系统中。因此,私有链和联盟链都属于许可链。
需要注意的是,有些许可链没有代币机制,因为不需要代币来鼓励节点竞争记账。
2.2 区块链的侧链/跨链
侧链
侧链,是对于某个主链的一个相对概念。英文为sidechains。侧链协议是一种实现双向锚定(Two-way Peg)的协议,通过侧链协议实现资产在主链 和其它链之间互相转换,或是以独立的、隔离系统的形式,降低核心区块链上发生交易 的次数。侧链是以融合的方式实现加密货币金融生态的目标,而不是像其它加密货币一样排斥现有的系统。利用侧链,我们可以轻松的建立各种智能化的金融合约,股票、期货、衍生品等等。
跨链
跨链技术是实现区块链之间互联互通的技术,若对标互联网则可理解为“去中心化网络 的结合”,区块链技术的特性使得跨链技术的落地,以及对于链外信息的获取都非常困 难,早期跨链技术包括以 Interledger Protocal 和 BTC Relay 为代表,更多是关注资产 的转移;现有跨链技术以 Aion、Kyber Network、Bletchley、Polkadot、Cosmos 主要 着重的是跨链基础设施。“如果说共识机制是区块链的灵魂核心,那么对于区块链特别是联盟链及私链来看,跨链技术就是实现价值网络的关键,它是把联盟链从分散单独的 孤岛中拯救出来的良药。
侧链、跨链典型项目(闪电网络)
侧链/跨链行业研究报告
2.3 硬分叉链/软分叉
分叉链简单理解就是软件升级导致产生双链现象,又分为硬分叉和软分叉。
硬分叉:当系统中出现了新版本的软件(或称协议),并且和前版本软件不能兼容,老节点无法接受新节点挖出的全部或部分区块(认为不合法),导致同时出现两条链。尽管新节点算力较大,比如99%的算力为新节点,1%的老节点依然会维护着不同的一条链,因为新节点产生的区块老节点实在是无法接受(尽管它知道网络上99%的节点都接受了),这称为硬分叉。
当必须硬分叉时,我们需要要求所有节点同时升级软件,未升级的节点将不能正常工作。如果有较多老节点不愿意升级,他们将工作在另外一条完全不一样的链上(这就是我们的ETC)。
软分叉:当系统中出现了新版本的软件(或称协议),并且和前版本软件不能兼容,新节点无法接受老节点挖出的全部或部分区块(认为不合法)。因为新节点算力较大,老节点挖出的区块将没有机会得到认可,新老双方从始至终都工作在同一条链上,这称为软分叉。
2.4 主链/子链
子链指的是在主链的平台来派生出来的具有其他功能的区块链。这些子链不能单独存在,必须通过主链提供的基础设施才能运行,并且免费获得主链的全部用户。
子链是基于用户需求不同,而派发出来的区块链,但是它又不能独立存在于主链之外,必须基于主链才能运行,同时也可以获得主链的全部用户,以降低其宣传难度,提高用户量。
区块链的侧链/跨链,硬分叉链/软分叉链,主链/子链
3. 著名公链简述
3.1 Bitcoin 比特币
比特币(BitCoin)的概念最初由中本聪在2009年提出,根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的数字货币。点对点的传输意味着一个去中心化的支付系统。
与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在2100万个。
比特币:又称“比特金”,是一种网络虚拟货币,网民可以使用比特币购买一些虚拟物品,比如网络游戏当中的衣服、帽子、装备等,网民之间也有用来购买现实物品的情况。
3.2 Ethereum 以太坊
比特币并不完美,其中协议的扩展性是一项不足,例如比特币网络里只有一种符号——比特币,用户无法自定义另外的符号,这些符号可以是代表公司的股票,或者是债务凭证等,这就损失了一些功能。另外,比特币协议里使用了一套基于堆栈的脚本语言,这语言虽然具有一定灵活性,使得像多重签名这样的功能得以实现,然而却不足以构建更高级的应用,例如去中心化交易所等。以太坊从设计上就是为了解决比特币扩展性不足的问题。
以太坊协议将尽可能简单,即便以某些数据存储和时间上的低效为代价。一个普通的程序员也能够完美地去实现完整的开发说明。这将最终有助于降低任何特殊个人或精英团体可能对协议的影响并且推进以太坊作为对所有人开放的协议的应用前景。添加复杂性的优化将不会被接受,除非它们提供了非常根本性的益处。
3.3 EOS
EOS,可以理解为Enterprise Operation System,即为商用分布式应用设计的一款区块链操作系统。EOS是引入的一种新的区块链架构,旨在实现分布式应用的性能扩展。注意,它并不是像比特币和以太坊那样的货币,而是基于EOS软件项目之上发布的代币,被称为区块链3.0。
1.EOS有点类似于微软的windows平台,通过创建一个对开发者友好的区块链底层平台,支持多个应用同时运行,为开发dAPP提供底层的模板。
2.EOS通过并行链和DPOS的方式解决了延迟和数据吞吐量的难题,EOS是每秒可以上千级别的处理量,而比特币每秒7笔左右,以太坊是每秒30-40笔;
3.EOS是没有手续费的,普通受众群体更广泛。EOS上开发dApp,需要用到的网络和计算资源是按照开发者拥有的EOS的比例分配的。当你拥有了EOS的话,就相当于拥有了计算机资源,随着DAPP的开发,你可以将手里的EOS租赁给别人使用,单从这一点来说EOS也具有广泛的价值。简单来说,就是你拥有了EOS,就相当于拥有了一套房租给别人收房租,或者说拥有了一块地租给别人建房。
EOS官方API文档中文版
EOS开发系列目录
EOS区块链开发指南
3.4 Hyperledger 超级账本
超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO)、埃森哲(Accenture)等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其他的例如制造、银行、保险、物联网等无数个其他行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。
- 相关文章:
Fabric简介
浅析Hyperledger Fabric架构原理
3.5 TrueChain
官网
源代码
白皮书
黄皮书
3.6 LemoChain
官网
源代码
- 相关文章:
LemoChain——迅捷、强大的行业跨应用数据链
3.7 DxChain
创始人:王伟
官网
技术白皮书
- 相关文章:
介绍
存储计算联手高TPS 改写公链格局
4. 各种链比较
链名 | 链分类 | 共识 | 智能合约 | 开发语言 | 发展阶段 | 代币 | 地区 | 相关网站 |
---|---|---|---|---|---|---|---|---|
Bitcoin(比特币) | 公链 | POW | 不支持 | C语言 | 上线 | BTC | 美国 | 官网 |
Ethereum(以太坊) | 公链 | POW | 支持 | GO语言 | 上线 | ETH | 美国 | 官网 |
EOS | 公链 | DPOS | 支持 | C++语言 | 上线 | EOS | 美国 | 官网 |
Hyperledger | 公链 | POW | 支持 | GO语言 | 上线 | - | 美国 | 官网, 源码 |
TrueChain | 私链&公链 | PBFT&PoW | 支持 | GO语言 | 1. 主网上线:2018年09月28日08:00 | TRUE | 新加坡 | 官网,白皮书,黄皮书, 源代码 |
LemoChain | 公链 | 独创的DPoVP | 支持 | GO语言 | 上线 | - | 中国成都 | 官网,源代码 |
DxChain | 公链 | 独创的DPoVP | 支持 | GO语言 | 上线 | - | 中国 | 官网,技术白皮书 |
5. 需要使用的编程语言
C语言
C++语言
Python
JavaScript
Go 语言教程
Solidity
web3j
6. 基础技能
Docker
精通或熟悉Linux
git源代码管理
7. 区块链组织
知识型社区
- 币问 http://www.biyong.net.cn/
- 币乎 https://bihu.com/
- 区块链兄弟 http://www.blockchainbrother.com/
- steemit https://steemit.com/
- EOS中文社区 https://eosfans.io/
- 区块链技术中文社区 https://bitshuo.com/
- 以太坊中文社区 https://ethfans.org/
- 巴比特(区块链社区) http://www.8btc.com/
项目型社区
- Nebulas(星云社区) https://nebulas.io/cn/incentive.html
- daoone https://www.dao-one.com/
- 博彩:https://www.etheroll.com/#/about
区块链产品
- qunqun(群群,社交产品) https://qunqun.io/
- iveryone http://author.iveryone.com/
区块链公司
- 北京比特大陆科技有限公司
- 北京火币天下网络技术有限公司
- 中国万向控股有限公司
- 杭州蚂蚁金服信息技术有限公司
- 北京京东金融科技控股有限公司
- 北京果仁宝科技有限公司
- 比银集团
- 北京云知科技有限公司
- 四川省区块未来科技有限责任公司(币创网)
- oklink
- 北京网录科技有限公司
- 区块宝
- 贵阳爱立示信息科技有限公司
- 雷盈企业管理(上海)有限公司
- 块链信息(深圳)有限公司
- 深圳银链科技有限公司
- 币网
- ASCH
- 深圳市硬比特信息科技有限公司
- 比特天空网
其他不出名的:
- 微位(深圳)网络科技有限公司 http://www.vibeac.com
- 矩阵元技术(深圳)有限公司 https://open.juzix.net/
- 方维(区块链服务提供商) http://www.fanwe.com/
- 金博科技(区块链服务提供商) http://qkl.jinbocc.com/
- 先达区块链(区块链服务提供商, 武汉市) http://www.fx713.com/
- 薪火科技(区块链服务提供商, 合肥) http://www.xhp2p.cn/btb.html
- 中国区块链公司排名前20名 http://www.elecfans.com/blockchain/626170_a.html
- 安链云:https://www.anlink.com/?audience=174126
关于DAO的理解
优质社群的七个特征和五个要素
8. DAPP开发
使用 Web3 和 Vue.js 来创建你的第一个以太坊 dAPP
9. 区块链基础设施
9.1 olympuslabs
Olympus 是一个突破性的金融生态系统,它为基于加密货币的金融产品定义了一套协议。 Olympus 生态系统为投资者们提供了一个由金融产品、服务和应用程序所组成的综合性的金融市场。 Olympus Labs 为投资者们提供了一系列工具,可以用来构建多元化的投资组合,对冲下跌风险,并在所有市场条件下获得正收益。
官网
源代码
开发接口
Olympus Labs简介
9.2 NULS
创始人:张星
NULS是一个可定制的区块链基础设施,是全球性区块链开源社区项目。NULS 由微内核和功能模块组成,以弱化主链的全新思维,通过事件和服务的剥离,实现高度模块化的底层架构,提供智能合约、多链并行、跨链共识等运行机制,降低开发和使用的成本,推动区块链商业应用进程。
官网
社区
开发接口
Nuls简介