区块链是今年最热门的技术之一,目前网络上关于比特币、区块链的资料很多,这些资料要么是一些趋势和方向类的描述,要么是一些很复杂的技术类的介绍,学习起来总给人一种隔靴搔痒的感觉。而且这些资料比较杂乱和碎片化,需要耗费很多时间去查找和理解。为了使大家更容易了解区块链的一些基础知识和概念,甲骨文云专家团队整理和提炼出了100个区块链的基础问题,方便大家入门。因为区块链技术还在不断发展,有些问题的答案也不唯一,这些问题部分是根据我们的经验和理解完成的,可能会有一定的偏差,希望大家谅解。
1. 什么是区块链?
区块链(Blockchain)是用分布式数据库识别、传播和记载信息的智能化对等网络, 也称为价值互联网。(引用自:维基百科)
区块链的概念首次在2008年末由中本聪(Satoshi Nakamoto)发表在比特币论坛的论文《Bitcoin: A Peer-to-Peer Electronic Cash System》中提出。
2. 什么是比特币?
比特币(Bitcoin,缩写:BTC)被部分观点认为是一种去中心化,非普遍全球可支付的电子加密货币,而一些观点则认为比特币属于虚拟商品,并非货币。比特币由中本聪(化名)于2009年1月3日,基于无国界的对等网络,用共识主动性开源软件发明创立。自比特币出现一直至今,比特币是加密数字货币市场总市值最高的加密货币。(引用自:维基百科)
3. 区块链和比特币是什么关系?
区块链是比特币实现的底层技术,区块链技术构建了比特币数据结构以及记录交易的共识方式,该技术实现了比特币的挖矿与交易。而比特币是中本聪开发的第一个区块链应用。
4. 一共有多少个比特币?
比特币一共大致有2100万个。最终产生的比特币数量,准确的说是20999999.97690000个,比2100万少一点。这个数字可以通过计算得到:
a) 比特币约定大约每四年作为一个阶段。
b) 每四年生成的比特币将会减半。
c) 第一阶段的比特币每次生成50个。
d) 计算可得大约2140年将不会产生新的比特币。
e) 比特币在2140年以后将保持在大约2100万个。
5. 比特币的特征有哪些?
比特币的特征如下:
a) 不可伪造,除了原始签名人,其他任何人都不能代表原始签名人生成有效的签名。
b) 不可双花,同一个比特币不可同时被使用两次。
c) 可传递性,比特币可以自由的转移。
d) 匿名性,比特币的持有者均是匿名持有。
e) 独立性,不依赖于第三方中间系统而运作。
6. 什么是双花问题(双重消费)?
双花问题即指将同一笔钱同时用作两笔及以上的不同交易。举例说明:A一共有50个币,A将50个币发送给B然后广播“A将50个币发送给B”,与此同时A又广播“A将50个币发送给C“,导致A的同一笔50个币可能被交易了两次。
7. 比特币如何解决双花问题(双重消费)?
举例说明:A一共有50个币,A进行广播宣称将50个币发送给B,同时宣称将50个币付给C。广播出去两条信息后,其他的DEFGHI等节点将会进行核查和确认,当他们发现这个比特币已经被使用了,那么就会投反对票否决这笔交易。所以这笔交易就不可能成功,无法记录到区块链中,从而避免双花问题。
技术上每当节点在把新收到的交易单加入Block之前,会向前遍历检查,检查当前交易所用的币是否确实属于当前交易发起方,此检查可遍历到该币的最初诞生点(即产生它的那块Block源)。虽然多份交易单可以任意顺序进行广播,但是它们最终被加入Block时必定呈现一定的顺序。Block之间以Hash值作为时间戳生成Block,这决定了任意一笔交易资金来源都可以被唯一确定。
8. 如何获得比特币?
比特币可以通过挖矿或者交易获得。 挖矿是通过贡献算力来获得奖励比特币,而交易是通过购买获得比特币。
9. 比特币和法币有何不同?
法币由是政府发行的纸币,依靠政府的法令使其成为合法流通的货币。
比特币是加密电子货币,不受任何人控制,数量有限。
10. 比特币的挖矿是什么意思?
挖矿就是将一段时间内比特币网络中发生的交易进行确认,并记录在区块链上形成新区块的过程,挖矿的人被形象的称为矿工。
11. 如何才能挖矿?
挖矿首先需要有一个作为连入比特币网络的全节点,其次需要下载相应的挖矿软件到挖矿的机器上,然后就可以挖矿了。此外挖矿可以是节点直接挖矿,也可以是节点上挂很多的矿机或者叫服务器(这些矿机并不作为一个网络的全节点)进行挖矿。最先计算出来并被认可的节点获得奖励收益。
12. 挖矿的收益是如何产生的?
比特币中大约平均每10分钟会产生一个区块,在这期间所有的挖矿计算机都在尝试计算并打包这个区块,然后提交到节点上并广播,第一个成功生成这个数据块的矿机,就可以得到一笔比特币作为奖励。最初,大约每10分钟就可以产生50个比特币的比特币报酬。但是该报酬每4年减半,现在每10分钟比特币网络可以产生12.5个比特币。
13. 什么是比特币网络中的(全)节点?
节点就是通过互联网相连的服务器,他们彼此之间能够访问,其中下载了完整的区块链及其软件,并且能参与交易和挖矿的节点称之为全节点。目前全球有10000多个全节点。
14. 比特币如何进行转账?
举例说明:你要发送10个比特币给朋友。当你发送交易申请后,周边的节点会检查你的账户是否拥有 10 个比特币,如果有,则同意这次交易,并且把这条信息广播到附近的节点,一传十,十传百,很快整个网络都会确认这笔交易信息,然后写入到区块中,你的朋友将会收到 10 个比特币,交易就算完成了。一般人使用钱包进行比特币转账。
15. 比特币的钱包是什么?
比特币钱包是一种软件,用于管理比特币地址,以及比特币的交易。钱包往往需要同步区块链的全数据,但通常钱包安装在手机上,此时只同步与自己相关的区块链数据。
16. 什么是比特币地址?
比特币地址是一串由字母和数字组成的26位到34位字符串,比特币地址就是个人的比特币账户,所有的比特币转账交易都是通过比特币地址进行的,类似银行卡的卡号。
17. 一共有多少个比特币地址或账号?
一共有2^160(2的160次方)个,也就是
(1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,97)个地址,意味着75亿的地球人,每人可以分到2^127个地址。
18. 比特币地址如何生成?
比特币地址通过使用数字签名技术得到。首先随机选出256位二进制数字,形成私钥,由私钥生成公钥,然后通过加密函数来生成地址。这个生成方向是单向的。也就是你知道了地址是无法通过解密方法来计算出私钥的。
19. 什么是数字签名?
数字签名(又称公钥数字签名,英文为Digital Signature)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。(引用自:维基百科)
20. 什么是私钥?
是一个证明你有权从一个特定的钱包消费电子货币的保密数据块。私钥是个随机数,这个随机数的概率空间很大(256位,也即是2的256次方),因此在概率论上是不可能生成一样的私钥的。私钥决定了比特币的产权,若私钥丢失,则比特币也丢失。
21. 什么是公钥?
公钥可以看作是你的比特币账户。私钥经过椭圆曲线乘法运算,可以得到公钥。但从公钥逆推私钥是不可能的。公钥用于生成比特币地址,同时也进行签名的验证。公钥和私钥成对出现,公钥可以生成对应的唯一地址,通过该地址可以确认发送的交易是否使用了对应的私钥。
22. 比特币的记账方式是什么?
比特币是使用UTXO(Unspent Transaction Outputs,中文为未花费的交易输出)的方式来记账的,每一笔交易都会产生一笔输出,账户的余额是通过输出值的加和来算出的。所以比特币记录的是一笔笔的账目。
23. 比特币交易都存放在哪里?
所有的比特币交易最终需要被记到统一的账本区块链上,账本上的每一页也就是每一个区块上记录的就是一笔笔具体的交易。每一个新区块,都会被打上时间戳,最终依照时间前后顺序排列起来。
24. 区块的组成是什么?
区块主要包含区块头和区块体。区块头中主要记录了上一个区块的哈希值,时间戳,随机数和区块大小等。区块体记录交易信息等数据。区块相当于账本中的一页,一个区块是一些或所有最新比特币交易的记录集,且未被其他先前的区块记录。
25. 区块如何连接成区块链?
区块链由一串使用密码学算法产生的区块连接而成,比特币在生成新区块时,需要根据前一个区块的哈希值,新交易区块和随机数来计算新的哈希值和随机数,每一个区块都是由前一个区块生成的,最后连接成区块链。
26. 目前比特币的所有区块有多大?
截至2018年3月,比特币所有区块大约160GB。所有区块大小的增速取决于交易的数量,交易越多,被增加的区块就越多,区块总大小就越大。
27. 什么是51%攻击问题?
51%攻击是指掌握了比特币全网的51%算力之后,用这些算力来重新计算已经确认过的区块,使区块链产生分叉并且获得利益的行为。理论上存在,但在公网环境里实际上很难发生,因为掌握51%算力的成本及其高昂。
28. 如何保证历史交易数据不可篡改?
区块链中每个节点都完整地保留一份交易的历史记录。这样任何单个人或节点想修改这些历史记录,需要所有人确认,但是别的人或节点都可以拿出自己的那一份备份,来证明这个修改无效。
29. 什么是比特币分叉?
比特币分叉是比特币区块链产生了两条及以上的不同分支的情况。当矿工挖矿时,可能有两个或两个以上矿工都挖出了新的区块,并且都是满足要求的不同的区块。在广播后,不同的节点可能将不同的区块分别加入到各自的比特币区块链中,产生不同的区块链,就可能产生分叉。
30. 在比特币里,分叉问题如何避免?
比特币里产生分叉时,由于两条链的增长速度是不一样的,在一段时间之后,总有一条链的长度要超过另一条。当矿工发现全网有一条更长的链时,他就会抛弃他当前的链,把新的更长的链全部复制回来,在这条链的基础上继续挖矿。所有矿工都这样操作,这条链就成为了主链,分叉出来被抛弃掉的链就消失了。最终只有一条链会留下来,从而避免分叉。
31. 什么是以太坊?
以太坊(Ethereum)是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether,又称“以太币”)提供去中心化的虚拟机(称为“以太虚拟机” Ethereum Virtual Machine)来处理点对点合约。(引用自:维基百科)
32. 什么是ICO?
ICO(是Initial Coin Offering缩写),首次币发行,源自股票市场的首次公开发行(IPO)概念,是区块链项目首次发行代币,募集比特币、解决以太坊等通用数字货币的行为。(引用自:维基百科)
33. 区块链如何分类?
目前大部分人认为区块链可以分为三类:公有链、联盟链、私有链。
34. 什么是公有链?
公有链(Public Blockchain)是指任何人都可以随时进入到系统中读取数据、发送可确认交易、竞争记账的区块链。公有链通常被认为是“完全去中心化”的,因为没有任何个人或者机构可以控制或篡改其中数据的读写。公有链一般会通过代币机制来鼓励参与者竞争记账,来确保数据的安全性。比特币、以太坊都是典型的公有链。
35. 什么是联盟链?
联盟链(Consortium Blockchain)是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。联盟链可视为“部分去中心化”,公众可以查阅和交易,但不能验证交易,或不能发布智能合约,需获得联盟许可。Hyperledger Fabric是典型的联盟链。
36. 什么是私有链?
私有链(Private Blockchain)指其写入权限仅在一个组织手里的区块链。读取权限或者对外开放,或者被任意程度地进行了限制。相关的应用囊括数据库管理、审计等,在很多情形下,公共的可读性并非是必须的。
37. 到目前为止,区块链的发展的经历了几个阶段?
目前普遍认为有三个阶段:
第一个阶段,或称区块链1.0,以比特币为代表的数字货币领域创新,如货币转移、兑付和支付系统等。
第二个阶段,或称区块链2.0,以智能合约为代表的企业级应用领域,此时更多的是做一些合约方面的创新,是涉及交易方面的商业合同,比如股票、证券的登记、期货、贷款、清算结算等。
第三个阶段,或称区块链3.0,区块链进入社会治理领域,包括了身份认证、公证、仲裁、审计、物流、医疗、签证、投票等领域,应用范围扩大到了整个社会,区块链技术有可能成为“万物互联”的一种最底层的协议。
38. 区块链的特点有哪些?
区块链的主要特点有以下几点:
a) 去中心化——无需第三方介入,实现人与人点对点交易和互动。
b) 信息不可篡改——数据信息一旦被写入区块中就不能更改撤销。
c) 公开透明——极短时间内,区块信息会被复制到网络中的所有区块,实现全网数据同步,每个节点都能回溯交易双方过去的所有交易信息。
d) 集体维护性——在区块链中,是由所有节点共同维护整个区块链信息的可靠和安全性。
e) 可靠数据库——只有掌握整个系统51%节点,才能对区块链信息进行篡改,这样显然不可能做到,因为整个系统参与者众多,掌握这么多节点成本极高,也无法实现,这样能确保数据的完整性、真实性和安全性。
39. 拜占庭将军问题是什么?
由Leslie Lamport,Robert Shostak和Marshall Pease在其1982年的论文“拜占庭将军问题”中提出的,被称为The Byzantine Generals Problem或者Byzantine Failure。问题大意:在古罗马拜占庭帝国,几位将军带领各自的军队围攻一个城堡,必须有大于一半的军队同时进攻才能取胜。将军们只能通过信使彼此沟通,观察敌人后,将军们必须决定一个共同的行动计划(同时进攻或者同时撤退)。
但是,有些将军可能是叛徒,试图阻止忠诚的将军达成一致。在这种状态下,将军们必须找到一个算法来满足下面两个条件:
a) 所有忠诚的将军都决定采取相同的行动计划。
忠诚的将军们都会按照算法所说的去做,但是叛徒可以做任何他们想做的事情。该算法必须保证不管叛徒做什么,忠诚的将军能达成一致合理的计划。所以还必须保证:
b) 少数叛徒不能使忠诚的将军采取坏事计划。
什么是坏事计划,很难形式化,在这里进行简化定义为:每个忠诚的将军都正确的表达了自己的意思。不会因为叛徒的捣乱,让别的将军认为忠诚的将军是叛徒。
至此,我们将拜占庭将军问题简化成了:所有忠诚的将军都能够让别的将军接收到自己的真实意图,并最终一致行动。而形式化的要求就是,“一致性”与“正确性”。
这个算法称为拜占庭容错算法,并不容易实现。直到1999年,Miguel Castro和BarbaraLiskov提出了实用拜占庭容错算法(PBFT),能够实现只要叛徒不超过三分之一,忠诚的将军们就一定能达成一致结果。
40. 比特币区块链中如何解决拜占庭将军问题呢?
中本聪发明的比特币,对解决拜占庭将军问题提出了一种全新的思路,它就是PoW(Proof of Work) 工作量证明共识机制。在拜占庭将军问题中,如果将军们几乎同时发起消息,势必会造成混乱,造成各说各的攻击时间方案,行动难以一致。中本聪巧妙地在系统加入了发送信息的成本,降低了信息传递的速率。即:一段时间内(10分钟)只有一个节点可以传播信息。它加入的成本就是工作量,节点必须完成一个计算工作才能向其他将军传播消息,当然,谁第一个完成工作,谁才能传播消息。也就是比特币网络中每10分钟产生一个新的区块,每10分钟才广播一条消息,同时消息是签名加密的。通过PoW机制,一个节点必须经过大量尝试性计算才能得出一个结果,而其它节点只需极少的时间就能证明其真伪,这样能够减少垃圾消息、假消息在节点间传播的状况。
另外,在PoW共识机制下,如果要做叛徒,攻击整个网络,需要付出相应的成本,就是要掌握整个网络50%以上的算力。换句话说,有50%以上的叛徒才行,这是比PBFT高得多的容错率,而且大家可以想象一下这是多高的成本。如果真的掌握那么大的算力的话,用这些算力维护网络(诚实地挖矿)获得的收益其实会远高于破坏网络。
用工作量证明、加密等技术,使比特币网络从一个去中心化的不可信网络变为可信网络,使所有参与者可以在某些事情上达成一致,使价值传递成为了可能。比特币创造性的解决了拜占庭将军问题。
41. 什么是共识机制?
共识机制是为了解决拜占庭将军问题提出的,它是区块链的核心。也就是就某件事或某个交易,在分布式,互不信任的环境中,各参与者之间达成一致的过程。
42. 共识机制的目标是什么?
共识机制的目标有两点:
a) 一致性:所有诚实节点保存的区块链的前缀部分完全相同。
b) 有效性:由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。
43. 区块链目前主要有哪些共识机制?
区块链目前主要的共识机制有:
a) POW(Proof of Work)工作量证明;
b) POS (Proof of Stake) 权益证明机制;
c) DPoS (Delegated Proof of Stake) 委托权益证明机制;
d) PBFT (Practical Byzantine Fault Tolerance) 实用拜占庭容错;
e) DBFT (Delegated BFT) 授权拜占庭容错算法。
44. 几种区块链平台目前都使用什么共识机制?
目前主要区块链平台使用以下共识机制:
a) 比特币:工作量证明(POW);
b) 以太坊:以太坊前三个阶段采用的是POW共识机制,第四个阶段将采用自己创建的POS机制;
c) Hyperledger:可插拔设计,主要有 Solo, Kafka, PBFT等,可根据需要选择。
45. 工作量证明机制POW是什么?
在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。
46. 权益证明机制POS是什么?
权益证明要求证明人提供一定数量的加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。
47. 实用拜占庭容错PBFT是什么?
实用拜占庭容错的共识机制是少数服从多数,根据信息在分布式网络中节点间互相交换后各节点列出所有得到的信息,一个节点代表一票,选择大多数的结果作为解决办法。PBET将容错量控制在全部节点数的1/3,即只要有超过2/3的正常节点,整个系统便可正常运作。
48. 什么是去中心化?
去中心化(Decentralization)是相对于“中心化”而言的新型网络内容生产过程。内容不再是由专业网站或特定人群所产生,而是由全体节点共同参与、共同生产信息。
49. 什么是对等式网络(Peer-to-Peer Network)?
对等网络是指通过允许单个节点与其他节点直接交互,从而实现整个系统像有组织的集体一样运作的系统。以比特币为例:网络以这样一种方式构建——每个用户都在传播其他用户的交易。而且重要的是,不需要银行或其他金融机构作为第三方。
50. 什么是哈希散列?
哈希散列是密码学里的经典技术,把任意长度的输入通过哈希算法,变换成固定长度的由字母和数字组成的输出。在区块链里主要实现区块间的连接以及数据加密等功能。
51. 什么是智能合约?
智能合约(Smart Contract )是一种旨在以信息化方式传播、验证或执行合同的计算机程序协议。智能合约允许在没有第三方的情况下进行可信交易。(引用自:维基百科)
52. 时间戳的价值是什么?
区块链通过时间戳保证每个区块依次顺序相连。时间戳使区块链上每一笔数据都具有时间标记,任何人无法篡改。
53. 区块链的分层结构是什么样的?
区块链的分层结构可以参考下图,从底层到应用层,可以分为:
a) 数据层:包含区块链的数据处理相关技术实现,数字签名、链式结构等。
b) 网络层:包含点对点网络、传播机制、验证机制等。
c) 共识层:这层实现的是共识算法,典型的有POW、POS。
d) 合约层:主要是智能合约等的实现,以及相关虚拟机的实现等。
e) 激励机制:对于公有链里最常见,各种币的分发方式和奖励机制。
f) 应用层:基于以上基层的分布式应用的实现。
54. 区块链能避免拒绝服务攻击(DDOS)吗?
区块链本身属于分布性网络,没有一个中央服务器作为攻击主节点,在此前提下,DDOS的目标服务器只能是一台或几台节点,无法对整个区块链网络造成实质影响。
55. 目前的区块链联盟有哪些?
区块链联盟主要包含以下几家:
a) 由Linux基金会发起的超级账本(Hyperledger)。
b) 由R3CEV(一家总部位于纽约的区块链创业公司)发起的R3区块链联盟,至今已吸引了40多家银行巨头的参与。
c) 由Ripple公司发起的支付区块链联盟Ripple。
d) 由俄罗斯俄罗斯支付公司Qiwi发起的被称为“俄罗斯版R3”的俄罗斯区块链联盟。
e) 由11家国内机构共同发起的China Ledger联盟等。
56. 区块链技术平台有哪些?
区块链的技术平台主要有比特币Bitcoin、以太坊Etheruem、瑞波Ripple、超级帐本Hyperledger等。
57. 企业区块链应用一般选择什么技术平台?
企业应用区块链主要还是联盟链形式,联盟链里面目前最为有效的应该就是Hyperledger体系。
58. 几种区块链技术平台的性能有什么不同?
几种主流的区块链技术平台性能比较如下所示:
a) 比特币: 每笔交易最终确认需要60分钟;每秒7笔。
b) 以太坊:每笔交易最终确认需要15秒;每秒20笔。
c) Hyperledger: 每笔交易不到1秒;每秒上万笔。
59. 比特币每秒7笔怎么计算出来的?
比特币能承载的交易量受区块大小限制,目前每个区块上限1MB,每10分钟1个区块,一个交易记录0.25KB,每秒平均能打包1000/0.25/60/10=6.67个交易,这也是很多资料提到比特币每秒处理7笔交易的由来。
60. 一般来说,联盟链相对于公有链的优势在哪里?
联盟链相对于公有链的优势在于以下三个方面:
a) 性能更好,交易只需被几个受信的高算力节点验证就可以了,而无需全网确认。
b) 节点可管控,只有经过许可的节点才能加入区块链网络,故障可以迅速通过人工干预来修复。
c) 对用户身份进行管理,读取权限受到限制,可以提供更好的隐私保护。
61. Hyperledger是什么?
Hyperledger (超级账本)是一个开源的区块链和相关工具的总括项目,由 Linux基金会在2015年12月发起该项目,以支持基于区块链技术的去中心化账本的协作开发。详细信息可参考如下官方网站: https://www.hyperledger.org/
62. Hyperledger框架项目主要包含哪些?
Hyperledger项目孵化了众多开源项目,总体分为框架和工具两大类,其框架项目主要有以下几个:
a) Hyperledger Sawtooth
b) Hyperledger Iroha
c) Hyperledger Burrow
d) Hyperledger Indy
e) Hyperledger Fabric
以上框架类项目中,每个项目都有各自的设计理念和特色,支持的共识算法、开发语言各不相同。目前只有Sawtooth和Fabric达到了生产稳定状态,可以应用于企业开发。而Fabric是目前最流行、使用最广泛的企业级框架。
工具类项目,目前有:Blockchain-explorer、Cello、Composer等。
具体可见:https://www.hyperledger.org/
63. Hyperledger Sawtooth是什么?
Hyperledger Sawtooth是Intel贡献和主导的分布式账本技术平台,它支持PoET(Proof of Elapsed Time)和Quorum Voting两种共识机制,当节点数量很多(公有链环境)时,使用第6代Intel Core CPU所提供的SGX扩展功能提供的一种称为时间流逝证明PoET的机制来形成共识,它的性能和可靠性由Intel CPU硬件来保障,PoET算法以最少的资源消耗为目标,使我们能以较少的能源消耗建立数百至数千个节点的非常广泛和扁平的区块链网络,是公有链系统里很有价值的一个共识机制。
另一方面,当节点数量少且受控时,Sawtooth可以采用法定人数投票Quorum Voting共识机制,Quorum Voting是瑞波币和恒星币的修正版,用于满足需要即时确定交易的应用场景,非常适合于联盟链场景,这样Sawtooth就摇身一变成为很好用的联盟链了。
所以Sawtooth既可以用于需要许可的联盟链中,也可以用于不需要许可的公有链中。另外,Sawtooth提供的SDK比较多,有Go, C++, Java, Node.js, Python等。
64. Hyperledger Burrow是什么?
Hyperledger Burrow是由 Monax贡献,Intel共同赞助的智能合约解释器。它是超级账本Hyperledger中第一个来源以太坊的项目,是第一个采用以太坊虚拟机(EVM)标准的带权限许可的智能合约解释器。Burrow对EVM做了一些扩展,同时保持与EVM兼容。Burrow被设计成一个通用的智能合同机器,采用对PBFT做了优化的Tendermint共识算法,有比较好的性能。
借助遵循Apache许可的以太坊虚拟机Burrow,使Hyperledger中的其他分布式账本项目(比如Fabric、Sawtooth、Lake、Iroha)可以将EVM融合到各自的平台,比如通过与Burrow集成,Sawtooth已经可以支持以太坊的智能合约。这也意味着超级账本组织和以太坊社区,包括企业级以太坊联盟,开始建立一种富有成效的关系。
65. Hyperledger Iroha 是什么?
Hyperledger Iroha是由日本公司Soramitsu发起和贡献的轻量级分布式账本,它的设计和架构参考Fabric。Iroha的目标是:
a) 为C++开发人员提供一个为Hyperledger做出贡献的环境,在C++中创建可重用组件来补充Fabric、Sawtooth和其他潜在项目,这些组件可以使用Go等语言进行调用;
b) 为移动和Web应用程序支持提供基础设施(提供iOS, Android和JavaScript类库);
c) 提供一个框架来试验新的API和共识算法,这些算法可能会在将来被纳入Fabric。
此外,Iroha还支持数字资产(Digital Asset)的发行。
66. Hyperledger Indy是什么?
Hyperledger Indy由Sovrin基金会贡献,Sovrin基金会成立于2016年,致力于打造一个基于区块链的去中心化的全球数字身份自治管理的公共基础设施。Indy提供了工具、程序库和可重复使用的组件,用于提供基于区块链或者其它分布式账本的数字身份,从而让它们可以跨账本、跨管理域、跨应用进行互操作。Indy为Fabric、SawtoothLake、Corda等提供了强大的跨账本身份管理功能。
由于分布式账本事后无法更改的特点,因此基于分布式账本的身份用例应仔细考虑基本组件,包括性能,规模,信任模型和隐私保护。Hyperledger Indy开发了去中心化身份的规范,术语和设计模式,并实现了这些概念,可以在Hyperledger联盟内部和外部使用。
67. Hyperledger Fabric是什么?
Hyperledger Fabric是来源于IBM的分布式账本技术平台,是目前为止在设计上最贴近联盟链思想的区块链,Fabric有完备的权限控制和安全保障,数据保密机制,它采用模块化设计,可插拔架构,允许组件(如共识算法和会员管理)即插即用。 Hyperledger Fabric利用容器技术来运行称为Chaincode的智能合约。Fabric获得众多重量级企业的支持,是目前应用最广泛的企业级区块链框架。
68. Fabric的技术特点是什么?
同其他的主流的开源区块链技术平台相比,Fabric有以下特点:
a) Fabric有完备的权限控制和安全保障,兼顾数据共享和隐私保护。
b) Fabric采用模块化设计,可插拔架构,Key-Value数据库,身份管理,共识机制和加密算法等都是可插拔的,可以根据实际情况选择替换。
c) 同其他几种主流的开源技术框架相比,Fabric有更高性能和更好的扩展性。
d) Fabric提供多种语言的SDK,可根据实际的项目需要选用。
69. Hyperledger Fabric 1.0的系统逻辑构架包括哪几部分?
Fabric架构的核心包括三部分:Identity身份管理, Ledger及Transactions, Smart Contract. 如下图:
70. Fabric的成员管理(Identity)主要有什么功能?
Identity,也就是成员管理,Fabric是目前为止在设计上最贴近联盟链思想的区块链。联盟链考虑到商业应用对安全、隐私、监管、审计、性能的需求,提高准入门槛,成员必须被许可才能加入网络。Fabric成员管理服务为整个区块链网络提供身份管理、隐私、保密和可审计的服务。
71. Fabric的账本(Ledger)包括哪些内容?
Fabric账本Ledger主要包含两块:Blockchain和State。Blockchain就是一系列连在一起的Block,用来记录历史交易。State对应账本的当前最新状态,它是一个Key-Value数据库。Fabric默认采用LevelDB, 可以替换成其他的Key-Value数据库,如CouchDB。在智能合约中对账本进行读写操作。
72. Fabric的Transactions是什么?
Fabric上的Transactions事务分两种,部署事务(Deploy Transactions)和调用事务(Invoke Transactions)。
a) 部署事务把链码(Chaincode)部署到Peer节点上并准备好被调用,当一个部署交易成功执行时,Chaincode就被部署到各个Peer节点上,类似于把一个Web应用部署到应用服务器上的不同实例上。
b) 调用事务在先前部署的链码的上下文中执行操作。客户端应用程序通过Fabric提供的API调用先前已部署好的某个Chaincode的某个函数执行事务,包括读取和写入状态数据库,返回结果等。
73. Fabric的智能合约Smart Contract是什么?
Fabric的智能合约Smart Contract称为链码Chaincode,是一段代码,它处理网络成员所同意的业务逻辑。和以太坊相比,Fabric链码和底层账本是分开的,升级链码时并不需要迁移账本数据到新链码当中,真正实现了逻辑与数据的分离。
74. Fabric的账本(Ledger)数据是如何共享的?
Fabric的账本共享方式和比特币等有所不同。诸如比特币和以太坊,交易数据大家都可以查看,虽然不知道是谁的数据,但是数据本身是对所有人都可见共享的。但在 Fabric中,账本不是共享给所有人的。而是通过 Channel 隔离数据,虽然大家都在同一个区块链网络里,但是不在同一个Channel,也没办法共享账本。所以,通过建立不同的Channel可以达到按需共享的目的。
75. Fabric的业务网络由什么组成?
业务网络,也叫共识网络或区块链网络,Fabric业务网络由不同的节点构成。节点是区块链的通信实体,节点是一个逻辑概念,不同类型的节点可以运行在同一台物理服务器上。这些节点可能部署在云上面或者本地。可能来自不同的公司或者组织。在区块链网络中有两种类型的节点:Peer节点和Orderer节点。
76. Fabric里的Peer节点有哪些?
Peer节点目前有两种: 背书节点Endorser和提交节点Committer。
a) Endorser 完成对交易提案的背书处理。主要工作是验证签名,进行权限和合法性检查,检查通过则模拟运行交易,对交易导致的状态变化(读写集)进行背书并返回结果给客户端。
b) Committer 负责维护区块链和账本结构。对从Orderer发送来的批量交易区块数据结构,进行最终检查(包括交易消息结构、签名完整性、是否重复、读写集合版本是否匹配等),检查通过后执行合法的交易,将结果写入账本。
77. Fabric里的Orderer节点的作用是什么?
Orderer节点主要用于对事务进行排序(共识),批量打包,生成区块,发给Peer节点。一个区块链网络中会有多个Orderer节点,它们共同提供排序服务。排序服务可以实现为多种不同的方式,从一个中心化的服务(被用于开发和测试,如Solo),到分布式协议(如Kafka),再到PBFT的共识方式等。
78. Fabric的事务(Transaction)执行流程是怎样的?
事务执行主流程分四步,如下图:
1. 首先由客户端通过SDK提交交易初始化给Peer节点,请求背书(Endorse)。
2. Peer节点收到消息后,进行背书Endorse,并将背书结果通知应用程序。
3. 应用程序收到背书结果将之提交Ordering服务节点进行排序(也就是执行共识)并生成Block。
4. 然后Ordering服务通知Committing Peer, Committing Peer对该交易进行验证,验证通过,则写入账本。最后通知客户端交易成功。
79. Fabric的开发流程是什么?
如下图所示,开发者创建客户端应用和智能合约(Chaincode),Chaincode被部署到区块链网络的Peer节点上面。通过Chaincode来操作账本,当你调用一个交易Transaction时,你实际上是在调用Chaincode中的一个函数方法,它实现业务逻辑,并对账本进行Get、Put、Delete操作。客户端应用提供用户交互界面,并提交交易到区块链网络上。
80. 如何基于Fabric开发区块链智能合约?
Fabric的智能合约Smart Contract称为链码Chaincode,是一段代码,它处理网络成员所同意的业务逻辑。目前支持用Go、Java、Node.js语言进行开发。
81. 如何基于Fabric开发客户端的应用?
Fabric目前提供的SDK支持:Go、Python、Node.js和Java。前端应用通过SDK调用服务端的智能合约Chaincode。有些BaaS(Blockchain as a Service)云平台也提供REST接口,方便客户端调用后端的智能合约。
82. Fabric上开发好的应用如何部署?
Fabric上开发好的前端应用的部署和传统应用没什么不同,可部署在应用服务器或者云服务上。后端开发的主要工作是写智能合约,实现业务逻辑,可以部署在区块链云服务上或者自己搭建的本地Fabric环境上。
83. Fabric目前最新的版本是多少?
截止到2018年3月,最新发布的是1.1版本。1.1相比1.0版本多了以下一些功能:
a) 可以采用Node.js开发Chaincode。
b) 基于通道的事件服务 - 使客户能够按每个通道订阅区块和区块事务(交易)事件。
c) 可以把CouchDB索引和Chaincode一起打包,以提高性能。
d) 能够动态更新客户身份和隶属关系。
e) Node.js SDK连接配置文件可简化与Fabric节点的连接。
f) 性能提升,提高了交易吞吐量,并降低了响应时间。
84. Fabric在安全方面有哪些优势?
企业比较重视安全性, Fabric有以下一些优势:
a) 成员必须被许可才能加入网络,通过证书、加密、签名等手段保证安全。
b) 通过多通道Channel功能实现数据访问控制和隔离,保证只有参与交易的节点能访问到数据,其他的节点看不到。满足数据保护方面的法律法规要求。如有些行业,需要知道谁访问了特定的数据。
c) 另外Fabric的加密算法也是可插拔的,可替换的。
85. 企业如何快速上链?
企业快速上链可以采用两种方式:一是基于Hyperledger自行搭建,但周期较长;二是选择在BaaS(Blockchain as a Service)云平台上构建自己的应用,享受云计算的快速部署、按需付费、弹性扩展等好处。
86. Fabric为什么成为企业区块链框架的首选方案?
Fabric具有一些重要特性满足企业的需求,企业选择区块链技术框架主要考虑的因素有:框架的身份管理、框架的可扩展性、框架的企业安全性、框架的性能、业务逻辑实现、开放的API以及是否提供主流语言的SDK等。
87. 区块链应用与传统应用有什么区别?
主要的区别在数据存储上,传统架构基于数据库及缓存,区块链采用分布式账本存储数据。
88. 为什么说区块链是更先进的企业间共享数据的技术?
如下图,企业间的数据共享和交换经历了下面几个阶段,区块链技术的P2P架构,实时数据同步,不可篡改,数据是加密的等特点。实时性、可靠性、安全性更好。
89. 金融业区块链典型场景有哪些?
目前区块链应用最广泛的行业就是金融行业,典型的有:加密货币、支付、清算与结算、票据与供应链金融 、证券发行交易、金融领域的征信与反欺诈等。区块链诞生于比特币,应该说区块链天然适合于金融领域,尤其对于金融清结算,金融基础设施都有较大的积极意义和影响。金融的本质是价值流通,而区块链常被称为“价值网络”,因为它能让金钱的流动如同数据的流动般自由高效。资产数字化日益成为行业的发展趋势,而区块链的出现令资产数字化的时代加速到来。此外Fintech的三驾马车就有区块链、认知物联网和人工智能,如果将三者有机结合将创造巨大的价值。
90. 运输物流业区块链典型场景有哪些?
供应链场景下,可以利用区块链的数据实时同步特点进行数据共享,利用区块链的防篡改保证数据的真实性, 提高流程的自动化处理水平,降低耗时、减少人为失误、降低欺诈风险、减少争议。如:马士基联合保险机构、区块链企业等多方共同打造的全球首个针对海运保险的区块链平台,形成跨专业的链上联盟。
91. 制造业区块链典型场景有哪些?
a) 可用于制造业企业的供应链管理,如跟踪追溯原材料,零部件的来源信息。
b) 可用于制造业的供应链金融链条中,共享企业的各项资产核心企业及上下游企业的信息流、物流、资金流信息的整合至关重要。但目前各企业维护自己的数据信息,信息孤岛增大了信息整合的难度。而区块链技术将每个交易方变成网络中的一个节点,企业的各项资产、产品以数字化的形式在网络中体现,任一节点间的交易都会被全网认定,物流信息也可通过产品地理位置信息的改变在网络中体现。同时,区块链保证交易信息不可篡改。
92. 政府行业区块链典型场景有哪些?
a) 可用于食品、药品或者违禁品、危险品的追溯,利用区块链的防篡改和信息实时共享的特征。
b) 可用于房产土地等不动产交易,增强透明性,降低成本。如迪拜欲将房地产交易业务转移到区块链上。
c) 可用于颁发各种证件,如美国伊利诺伊州发起出生证明区块链试点项目,MIT把毕业证放到区块链上,防篡改并方便查询。
93. 电信行业区块链典型场景有哪些?
区块链的P2P点对点,数据加密,防篡改等特点,可以用于电信业的数据传输。美国电信巨头AT&T正在申请一项关于使用区块链技术创建家庭用户服务器的专利。该专利将成为美国电信行业在区块链领域的首个应用探索。这样一个家庭用户服务器,主要为电视订阅用户一类的群体提供身份验证和媒体传输的功能。AT&T希望通过分布式的节点存储和传输信息来提高多媒体传输的安全性。
94. 医疗行业区块链典型场景有哪些?
随着医疗保健进入数字化时代,医疗数据安全和患者隐私保障变得越来越重要。区块链技术可以让医院、患者和医疗利益链上的各方在区块链网络里共享数据,而不必担忧数据的安全性和完整性。如区块链创业公司Akiri开发一个医疗数据分布式账本平台Akiri Switch,用于在整个美国医疗系统中安全地传输包括病人记录在内的私人医疗数据。
95. 媒体行业区块链典型场景有哪些?
媒体行业主要的场景包括版权保护:区块链可用准确地追踪每个内容产品的版权所属,由此将更好地保障内容所有者的合法收入,防止侵权和盗版。
发布内容:格莱美提名的英国录音艺术家伊莫金·希普2016年通过以太坊区块链发布了单曲“Tiny Human”,每次下载0.60美元。虽然活动的收入不如人意,但希普证明了该技术的可行性,使用区块链技术为唱片产业带来公平贸易。
96. 社会管理领域区块链典型场景有哪些?
社会管理领域主要可以应用到以下场景:
a) 城市管理:广东佛山市禅城区就率先开启了基于区块链的政务服务项目。不同于以往的身份证和一卡通,区块链带来的身份认证具有迅速传播、便利共享、选择性显示等传统认证不具备的数据优势,使得城市管理更加便捷、透明和公平。
b) 选举投票:选举需要对选民身份认证、安全的保存记录以追踪选票,以及能够信赖的计数器来决定谁是胜选者。区块链可以为投票过程,选票跟踪和统计选票而服务,以至于不会存在选民欺诈、记录丢失或者不公平的行为。
97. 物联网领域区块链典型场景有哪些?
区块链可以降低物联网的运营成本,物联网中记录和存储物联网的信息都会汇总到中央服务器,大量的设备产生海量的数据,将导致中心不堪重负,难以进行计算和有效存储,运营成本极高。区块链技术可以为物联网提供点对点直接互联的方式来传输数据,还可以充分利用分布在不同位置的数以亿计闲置设备的计算力、存储容量和带宽,用于交易处理,大幅度降低计算和储存的成本。
98. 公益领域区块链典型场景有哪些?
慈善最令人诟病的就是善款去向不明、信息不公开。区块链可以帮助公益慈善事业更透明。不可篡改的特点使数据有公信力,可匿名性还能保护捐款者的隐私。GovCoin Systems Limited公司是一家总部位于伦敦的金融科技公司,其正在支持英国政府在福利分配领域的工作。
99. 社交通讯领域区块链典型场景有哪些?
区块链对传输的数据进行加密,可以保护隐私。目前社交通讯领域的典型应用有:
a) Steemit是一个用区块链技术搭建的内容社交平台。在Steemit上发帖、回帖、讨论等可以获得代币奖励。
b) Status是一个在以太坊区块链上开发的社交APP客户端,可以理解成区块链领域里的微信。让用户能够相互发送加密信息、也可以用Status浏览器搜索去中心化APP。
100. 共享经济领域区块链典型场景有哪些?
区块链的去中心化特点,意味无须经过任何第三方的共享经济成为可能,比如无须经过Uber、Airbnb就可以实现点对点的汽车共享、房屋共享等。以色列创业公司La'Zooz想成为一个“反UBER”,它使用自己的专有的数字货币,类似比特币,使用区块链数字化技术记录货币。人们可以不再使用一个集中的网络出租车叫车服务,人们用La'Zooz找到其他人的旅行路线,并通过交换数字货币来进行搭车。有些数字货币将可以在未来搭车的交易中使用。用户挣取或挖掘这些数字货币的过程可让这个APP跟踪他们的位置。