001-区块链开源项目简介
一、区块链开源项目
1、比特币体系
- 比特币BTC源码 :https://github.com/bitcoin 【C、C++,使用qt开发】【数字货币】
比特币是一种实验性数字货币,可以向世界任何地方的任何人提供即时支付。比特币使用点对点技术在没有中央权限的情况下运营:管理交易和发行货币由网络共同执行。
是Blockstream的开源侧链项目,同样使用比特币双向挂钩技术,除了智能合约外,他还给比特币快速带来许多创新技术,包括私密交易、证据分离、相对锁定时间、新操作码、签名覆盖金额等等特性。
- 比特币web钱包开发包:https://github.com/bitcoinjs/bitcoinjs-lib【js】
比特币web钱包开发包
2、以太坊ETH源码 :https://github.com/ethereum 【go】【平台解决方案】
源码分析:https://github.com/dragontc/go-ethereum-code-analysis
以太坊是一个分散的平台,运行智能合约,应用程序完全按照程序运行,不会出现停机,审查,欺诈或第三方干扰。
Go Ethereum是以太坊协议的三个原始实现之一(以及C ++和Python)。它是用Go编写的,完全开源并在GNU LGPL v3下获得许可。
以太坊是一个图灵完备的区块链一站式开发平台,采用多种编程语言实现协议,采用GO语言写的客户端作为默认客户端(即与以太坊网络交互的方法, 支持其他多种语言的客户端)。基于以太坊平台之上的应用是智能合约,这是以太坊的核心。智能合约配合友好的界面和外加一些额外的小支持,可以让用户基于合约搭建各种千变万化的DApp应用,这样使得开发人员开发区块链应用的门槛大大降低。
3、以太经典ETC源码 :https://github.com/ethereumproject 【go】【平台解决方案】
简而言之,区块链提供了一种跟踪数字资产(金钱,物品)的方法,而无需中介机构,如银行和其他金融机构。
以太坊经典(ETC)是一个更智能的区块链,它是一个网络,社区和加密货币,可以进一步利用数字资产。除了允许人们相互发送价值之外,ETC还允许自主运营且无法修改或审查的复杂合同。
4、小蚁NEO源码 :https://github.com/neo-project 【C#】 【数字资产】
NEO使用数字身份和区块链技术对资产进行数字化,并利用智能合约实现自主管理的数字资产,从而在分散的网络中创建“智能经济”。
采用改进的拜占庭容错算法-dBFT共识算法,支持智能合约,目前重点领域在数字资产应用
5、标准链CZR源码:https://github.com/canonchain【Objective-C,C++】【钱包】
标准链将从通讯的协议层,芯片层出发,为整个区块链行业提供健壮的基石。
6、柚子EOS源码 :https://github.com/eosio 【C++】【智能合约平台】
这是一个区块链操作系统
提供帐户,身份验证,数据库,异步通信以及在数以百计的CPU或群集上的程序调度
7、量子链QTUM源码 :https://github.com/qtumproject【C++】【平台整合,钱包】
Qtum是一个基于比特币UTXO模型的分散式区块链项目,支持基于以太坊虚拟机的智能合约,并通过股权共识模型证明。它通过革命性的帐户抽象层实现了这一点,它允许EVM与Qtum的类比特币UTXO区块链进行通信。
8、比原链BTM源码 :https://github.com/bytom【go】【数字资产】
Bytom是设计用于操作和连接到高度可扩展的区块链网络的软件,确认了Bytom区块链协议,这允许共产者在多资产共享分类账上定义,发布和转移数字资产。
9、莱特币LTC源码 :https://github.com/litecoin-project【C++,比特币fork】【数字货币】
Litecoin是一种实验性数字货币,可以向世界任何地方的任何人即时付款。Litecoin使用点对点技术在没有中央权限的情况下运营:管理交易和发行货币由网络共同执行。
10、公信宝GXS源码 :https://github.com/gxchain【WebAssembly】
公信宝是个基于区块链技术的去中心化交易所,能帮助数据买家和卖家实现高效的点对点数据交易,拥有不缓存数据、保护用户隐私、丰富一手数据源接入等优势。公信宝的公链-公信链,本身也是一个支持开发应用以及发行数字货币的公链,开发者可以在公信链上开发应用和发行数字货币,通过利用公信链上的丰富数据,提升服务和经营效率。
11、比特股BTS源码 :https://github.com/bitshares【C++】
比特股是一种支持包括虚拟货币、法币以及贵金属等有价值实物的开源分布式交易系统。该系统主要能够提供一个去中心化交易所的解决方案。让每个人都成为交易所。该系统是由Invictus公司推出。
比特股(BitShares)是区块链历史上里程碑式的产品之一,截至目前仍然是完整度最高、功能最丰富、性能最强大的区块链产品之一。比特股是可以看作是一个公司、货币甚至是一个社区。它提供的BitUSD等锚定资产是虚拟币历史上的一个最重要变革之一,能够极大消除虚拟货币被人诟病的波动性大的问题。
比特币低效率高能耗的POW算法,使得比特股及其DPos共识算法应运而生。有别于比特币特定的共识机制,DPos有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。与比特币相比,比特股系统的投票权牢牢掌握在股东手里,而不是雇员。比特股系统的去中心化程度紧紧掌握在比特股持有者们的手中,他们决定了出块受托人的个数。同时,作恶的受托人不会得到任何好处,并且很快就会被投票出局。此外,比特股内置了强大的账户权限设定、灵活的多重签名方式、白名单等特性,足以满足企业级的功能定制需求。
12、ADA源码 :https://github.com/input-output-hk【Haskell】
Cardano SL(或Cardano结算层)是由IOHK设计和开发的加密货币。
13、AE源码 :https://github.com/aeternity
14、ELF源码 :https://github.com/aelfProject
15、OMG源码 :https://github.com/omise
16、SNT源码 :https://github.com/status-im
17、波场TRX源码 :https://github.com/tronprotocol
18、IBM超级账本:https://github.com/hyperledger/fabric【go】
IBMHyperLedger,又叫 fabric,是一个带有可插入各种功能模块架构的区块链实施方案,他的目标是打造成一个由全社会来共同维护的一个超级账本。Elwin个人感觉fabric分层设计比较合理,模块化程度非常不错,虽然目前还是在完善阶段,并没有真正商用(最近IBM携手中国银联打造区块链为基础的忠诚积分交易系统,但还是属于探索试样项目),但以IBM的多年技术底蕴,fabric应该是大企业构建区块链底层的选择之一。
fabric架构核心逻辑有三条:Membership、Blockchain和Chaincode。MembershipServices这项服务用来管理节点身份、隐私、保密性、可审计性。Blockchain services使用建立在HTTP/2上的P2P协议来管理分布式账本,提供最有效的哈希算法来维护区块链世界状态的副本。采取可插拔的方式来根据具体需求来设置共识协议,比如PBFT,Raft,PoW和PoS等等,IBM首选PBFT算法。Chaincode services 会提供一种安全且轻量级的沙盒运行模式,来在VP节点上执行chaincode逻辑,类似以太坊的EVM虚拟机及其他上面运行的智能合约。
19、公正通:https://github.com/FactomProject/FactomCode【go】
公证通(Factom)利用比特币的区块链技术来革新商业社会和政府部门的数据管理和数据记录方式,也可以被理解为是一个不可撤销的发布系统,系统中的数据一经发布,便不可撤销,提供了一份准确、可验证、且无法篡改的审计跟踪记录。利用区块链技术帮助各种各样应用程序的开发,包括审计系统,医疗信息记录,供应链管理,投票系统,财产契据,法律应用,金融系统等。
建立在Factom基础之上的应用程序寻求能够直接利用区块链实现追踪资产和实现合约,而不用将交易记录写入区块链,Factom在自己的架构中记录条目。跟以太坊类似,Factom系统会创造一个叫Factoids的电子币。持有Factoids意味着有权使用Factom系统。只要把Factoids转化成输入积分便有权把数据写入Factom系统中。同时运行着Factom的联邦服务器也能收获Factoids作为维护系统的回报。Factom虽然同样基于比特币网络,但却并不是之前提到侧链或染色币的技术架构,Factom只将目录区块的哈希值锚定到比特币区块链。Factom很好地解决了比特币三个核心的约束和问题,速度、成本和区块链膨胀。
Factom中的政策和奖励机制与POS机制有相似之处。与其不同之处在于,Factom中只有一小部分的用户权益能够被认可。只有已经提交到系统的权益有投票权,而可转移的Factoid权益没有投票权,避免了POS机制的“股份磨损”和“没有人进行POS”问题。
20、瑞波Ripple:https://github.com/ripple/rippled【C++】
瑞波(Ripple)是世界上第一个开放的支付网络,是基于区块连的点到点全球支付网络。通过这个支付网络,使你轻松、廉价并安全的把你的金钱转账到互联网上的任何一个人,无论他在世界的哪个地方,他可以转账任意一种货币,包括美元、欧元、人民币、日元或者比特币,简便易行快捷,交易确认在几秒以内完成,交易费用几乎是零,没有所谓的跨行异地以及跨国支付费用。
Ripple有两个重要概念,其一是推出Ripple币瑞波币——XRP,它作为Ripple网络的基础货币,就像比特币一样可以整个网络中流通,主要是燃料Gas的作用,每产生一笔交易就会消耗一些 XRP;其二是引入网关(Gateway)系统,它类似于货币兑换机构,允许人们把法定货币注入、抽离Ripple网络,并可充当借、贷双方的桥梁。
Ripple引入了一个共识机制RPCA,通过特殊节点的投票,在很短的时间内就能够对交易进行验证和确认。Ripple客户端不需要下载区块链,它在普通节点上舍弃掉已经验证过的总帐本链,只保留最近的已验证总帐本和一个指向历史总帐本的链接,因而同步和下载总帐本的工作量很小。
21、未来币NXT:https://bitbucket.org/JeanLucPicard/nxt/overview
未来币(Nxt、Nextcoin)是第二代去中心化虚拟货币,它使用全新的代码编写,不是比特币的山寨币。它第一个采用100%的股权证明POS算法,有资产交易、任意消息、去中心化域名、帐户租赁等多种功能,部分实现了透明锻造功能。
Nxt是且是第一个100%的股权证明机制的电子货币,Nxt不再通过消耗大量的资源“挖矿”产生新货币,而是通过现有账户的余额去“锻造”区块,并给与成功“锻造”区块的账户交易费用奖励。
Nxt具有一个非常灵活的特性,称为“透明锻造”。这一机制使得每一个用户客户端可以自动决定哪个服务器节点能够产生下一个区块。这使得客户端可以直接将交易发送到这个节点,从而使得交易的时间达到最短。实时和高优先级的交易可以通过支付额外的费用来被优先处理。
Nxt区块链2.0,其核心思路就是要通过主链(Main Chain)和子链(Child Chain)的这种架构来增加Nxt区块链的可扩展性和可删减性,从而解决长期存在的区块链膨胀等问题;
22、英特尔的锯齿湖:https://github.com/intelledger【python】
英特尔的锯齿湖(Sawtooth Lake),目前是用于建造、部署和运行分布式账本的高度模块化平台,重点领域在数字资产,在锯齿湖的数据模型和交易事务语言中,是由称为“transaction family”的体系来实现的, 給用户可以有开箱即用的功能齐全的市场数字资产管理体系。采用PoET和Quorum Voting两种共识算法
23、基于网页的交易市场:https://github.com/askmike/gekko
二、bat区块链发展
百度超级链:https://xchain.baidu.com
腾讯可信区块链:https://trustsql.qq.com
阿里蚂蚁区块链:http://blockchain.alipay.com
其他参考
https://github.com/itheima1/BlockChain
三、共识机制
共识机制是区块链技术的关键点。共识机制的核心是在分布式网络中,利用一种规则(算法)来保证全网对于Block的创建是一致的,下面是主要的共识算法。
1、Pow工作量证明,就是大家熟悉的挖矿,通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;
2、Pos权益证明,Pow的一种升级共识机制;根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。
3、DPos股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
4、Pool验证池,由布比构建,基于传统的分布式一致性技术,加上数据验证机制;是目前行业链大范围在使用的共识机制
5、PoET(Proof ofElapsed Time),也就是‘消逝时间量证明’,它是由英特尔构建在可信执行环境的一种彩票协议。
6、QuorumVoting,属于Quorum拜占庭协议,仲裁投票算法,它采用了瑞波和恒星的共识协议,用来解决需立即交易定局的需求。”
7、Casper,以太坊社区提出的正在研发中的类POS共识协议。Casper的基本思路是,任何人抵押足够多的以太币到系统中就可以成为矿工参与到挖矿过程。共识算法要求所有的矿工诚实工作,如果一个矿工有意破坏,不遵守协议,系统就会对矿工做出惩罚:没收之前抵押的以太币。有人把Casper这样的挖矿机制称为“虚拟挖矿”。
8、PBFT(PracticalByzantine Fault Tolerance)算法,拜占庭容错算法,属于状态机拜占庭协议,IBM HyperLedger fabric实现和推荐的共识算法,采取一个节点一票的方案确定记账结果,少数服从多数投票,性能较好,主要用于联盟链。
消息