比特派钱包下载手机版bitpie钱包|chain币
区块链是什么,如何简单易懂地介绍区块链? - 知乎
区块链是什么,如何简单易懂地介绍区块链? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册生活调查类问题货币金融区块链(Blockchain)区块链是什么,如何简单易懂地介绍区块链?关注者44,299被浏览13,192,496关注问题写回答邀请回答好问题 21156 条评论分享1,505 个回答默认排序maxdeath信息论博士,区块链博士后 关注更新在20191025之后,说一些新的关于区块链的发展:1,区块链的应用。首先先说央行数字货币——央行数字货币的技术其实早就成熟了,都用不到区块链,因为区块链的目的是去中心化,而央行数字货币用不到这个。当然,采用区块链的央行数字货币技术也早就有了(参见RSCoin),这里面可能会在某些环节采用区块链技术去中心化——例如货币的发行仍旧是中心化的,但是流转中的管理和验证可以通过区块链技术去中心化到其他银行。同时,据我所知,官方早就有一个数字货币研究所在研究这个很久了。我在很早就写过,从大势上,货币的数字化是必然的,但这和比特币是两码事,看起来可能会更像支付宝。然后,现在facebook来了一出libra(请参见我关于libra的文章https://zhuanlan.zhihu.com/p/69941436),我觉得从很大程度上推动了这次区块链的新闻,也推动了央行数字货币的推出。libra本身只代表facebook的野心,目前来看,他们的野心很有可能不会成功,但是也许是这种野心和指明的技术方向让国家产生了紧迫感——因为就算现在libra的所有成员都退出得差不多了,libra本身也前途未卜,但是万一类似的框架被搭起来又吸引了其他的重量级成员加入,那么国家在这上面就失去了主导权。因此,根据最近的新闻,央行的数字货币应该已经非常接近了。但这点,并不足以突然让“区块链”成为国家战略,这里说的区块链,一定是包含数字货币之外的其他应用的。区块链最引人遐想的应用,无疑是以“以太坊”为代表的,用区块链来做一个“全球计算机”,然后,用“智能合约”来编写在这台全球计算机上运行的软件(又被称为Dapp,即去中心化应用)。简单来说,这个全球计算机的好处在于,你可以把一切想要“去掉中间商赚差价”的事情,全都搬到这上面来做,而不需要依赖于某个大企业作为可信中心,例如银行或者互联网巨头。关于这个问题,可参见这篇https://zhuanlan.zhihu.com/p/28930323然而,这种全球计算机的设想在这两年间暴露出了非常多的问题,让人看不到短期的解决希望。于是,从这次区块链的新闻中透露出来的应用方向,“不可篡改”这个区块链的特点,以及它在存证、溯源、防伪、征信等方面的作用。这个,是目前在落地上做的最成熟,也是能够实打实地看出来区块链对比于传统中心化系统优势的应用。2,区块链技术这次战略中最主要提出的,是“要掌握区块链核心技术”,那么区块链的核心技术是什么呢?区块链相关技术有很多方面,我可以把它大致分成4类:1),共识算法;2),隐私保护技术和相应密码学技术;3),智能合约相关技术;4),面向应用相关技术。其中,前三者可以认为是底层,后两者是上层。1),其中,共识算法是区块链最核心,也是整个技术发展和学术界最热衷的领域:大量的公链项目都追求共识算法的创新,同时,大量的研究者也投身于这个领域,然而,大多在国外(我之前主要研究方向也是这个领域)。这点其实并不意外——众所周知,国内很少人愿意搞基础理论研究。但是共识算法中的涵盖面非常广,其中有一个概念非常重要——有许可和无许可,有许可共识算法要求所有参与节点的身份已知,主要采用类BFT算法。而无许可共识算法则允许任何节点只要达到某些条件就能进入,无需事先在任何系统中注册身份,而POW和后来衍生出的POS以及其他许多POx类算法都在此列。前者,多用于联盟链,而后者多用于公有链。其中,两者发展至今日,在速度和延迟上的差异已经不大了,归根结底的差别就是前面说的有无许可的差别。而无许可共识算法由于无许可的特性,又引出了一个很重要的概念叫“激励机制”,比如比特币的挖矿,于是,又衍生出了“货币”。于是,就又衍生出许多非常有趣的方向,例如:ASIC矿机,链上治理,加密经济学等等。以上,哪些方向可能会被认为是这次战略中的“核心技术”呢?我个人更看好许可共识算法的相关技术,而且,这类共识算法也可能布上支付宝的道路,会摒弃很多意识形态方面的需求,追求速度更快,规模更大,使用更方便,更标准化。而非许可类的共识算法,则面临着更高的风险——首先,对于“币”这个事的政策并不明确;其次,在之前所说的应用方向上,公有链相对于联盟链并没有显著的优势。2),其实区块链技术本身采用的密码学技术并不高深也不复杂,无非是哈希函数和数字签名这两个非常经典和简单的密码学工具而已。然而,由于区块链技术和密码学天生的契合性(大部分早期研究区块链的学者都来自于密码学领域),同时,由于“加密货币”这个词,即:cryptocurrency,(注:在英文中,这个词被用来指代所有类似于比特币之类的货币,而不是中文领域中常用的“数字货币”),导致大部分人都认为密码学天生和区块链是联系到一起的。实际上,区块链技术本身并用不到特别先进的密码学工具(当然,一些新的共识算法中采用了一些新的密码学工具)。但是,其中最重要的密码学挑战,是隐私保护技术,而其中,可能会用到的,包括零知识证明,同态加密等目前还在发展之中的密码学工具。这点,其实并不是区块链本身的需求,但又和区块链紧紧联系在一起——原因,还得说回之前区块链的性质和区块链的应用上:首先,区块链最大的特点是所有上链的数据必须通过所有节点的验证,然而,如果区块链得到了大规模应用,这就代表了所有的节点都会获取所有的数据。好吧,我们现在不信任中心,有很大的一部分原因是中心获取了我们所有的数据,而现在倒好,用了区块链去中心之后,所有人都可以获取我们所有的数据了。因此,如何在能够保证隐私的同时还可以享受区块链带来的去中心化优势呢?这需要所有节点能够在不知道数据内容的情况下,还能够对数据的有效性进行验证,例如:在不知道你是谁,具体有多少钱,你想要支出多少钱的情况下,验证你确实有一笔钱可以来完成这笔支出……这听起来像是天方夜谭,然而,实际上我们有一种密码学工具可以实现它——叫做零知识证明。然而,目前零知识证明尽管一直在发展,但是目前仍存在很大的局限性,这种局限性是效率——我们有了一些高效的证明方式,例如:我们可以很快地证明某个未知的数比另一个已知数大,或者我们可以证明某个未知的值来自于某个集合。然而,这些高效的零知识证明,还不足以覆盖区块链的所有应用。因此,可想而知,这些新加密技术,尽管不是区块链技术中的必须品,却是区块链技术能够得到广泛应用的必需品,所以一定是“核心技术”中的一部分。3),智能合约相关的技术,实际上包括语言,包括编译……这些,实际上相当于是当我们已经有了区块链作为底层之后,如何使用它的问题。在这上面目前还没有一个非常明确的方向,因为,其实目前在尝试的思路有几种:i,以太坊式的,高度自由的图灵完备的系统。然而问题是,写程序太容易出错了,而且出错的代价太大。ii,Hyperledger-fabric式的,高度模块化的系统,然而,极度复杂,复杂到想要采用HF的公司,要么放弃,要么花钱请IBM的人帮他们做。iii,Libra式的,专注于某项应用的系统,例如libra的move语言就明白地说了,我们不追求图灵完备,我们的目标是做一个更方便于实现各种金融场景的语言——这可能是个趋势,但是还没有经过足够的检验。这些方向,在目前的尝试还很少。大部分区块链项目仍旧采用以太坊式的系统,或者加以改进。然而,我认为这一点很有可能成为“区块链的核心技术”中最重要的部分——因为一旦区块链上升到了国家战略的高度,那么势必会诞生大量的需求、场景和用户,于是才会有充分的尝试和实现的平台。由此,可能会衍生出一个最适合区块链的语言和开发工具,而这个,会如同OS一样,成为一个新的世界范围内的标准。而从目前来看,在其他的区块链项目都在挣扎着寻求落地的时候,可能只有中国有这样的土壤能够诞生出这样的标准。这大概就是把区块链作为国家战略的原因。4),应用相关的技术。其实在区块链应用方面最大的技术难点并不在技术上。例如:区块链存证,如果我们做一条联盟链将相关各方作为共识节点然后把证据上链,那么,这个证据就是无法篡改的了。这道理大家都懂,然而问题在于:谁来做这个事呢?证据怎么数字化?怎么运行区块链?给出数据我的好处在哪里?最重要的是,谁掏钱?区块链目前落地最大的难点,在于其相比传统的中心化方案,除了在存证,溯源方面的一些场景下,找不到明显的优势,也就找不到可行的商业模式。于是,也就很难通过市场的方式推行出去,近两年币市的低迷已经证明了这一点。然而,这一切都会在国家的支持下产生变化,于是,就如同中国互联网产业从模仿学习国外到开始向外输出抖音一样,中国希望能在区块链领域,能够激发出更多的尝试和场景。于是,在这些场景中,我们会积累相关的经验、技术和商业模式,从而将这种模式在出口到国外去,而这点,也会是区块链核心技术中非常重要的部分。——————————————————————————————首先要搞清一个问题——比特币是区块链,但是区块链并不是比特币。于是,在区块链的这个问题回答里,提到“矿工”,“挖矿”,“最长链”,“分叉”等等词的,其实都不准确。写一点上个月讲课的内容——个人觉得大部分的回答,包括google搜出来的或者wiki的,都不能很好地解释区块链是个什么东西。因为讲比特币的人很多,懂比特币的人也很多,但是具体到区块链,现在并没有一个很清楚的定义说什么是区块链,基本上所有的介绍里都是这样的:比特币——〉区块链是比特币的底层技术。或者比特币——〉比特币是一种区块链。具体到什么是区块链的问题,目前没有看到很好的定义和介绍,更多的是大而化之地讲区块链的意义在哪里的空泛文章,要不然就是一水的矿工和挖矿。所以我来从纯理论角度说一下我个人对区块链的定义:1,区块链是一个放在非安全环境中的分布式数据库(系统)。2,区块链采用密码学的方法来保证已有数据不可能被篡改。3,区块链采用共识算法来对于新增数据达成共识。具有以上三个性质的系统,就是区块链。1,区块链是一个放在非安全环境中的分布式数据库(系统)。这里的要点有两个:(1)分布式,(2)非安全环境。首先,这是一个分布式的,去中心化的系统。所以,有一个中心服务器或者节点的,不是区块链。节点都是安全的,无恶意的,那这不是区块链。同理,从应用的角度讲,如果你的应用必须要使用中心节点(例如要用超级计算机做深度学习)或者没必要考虑节点不安全的情况(例如某个安全的工厂里的传感器),那么并不需要考虑区块链技术。至于后面的词“数据库”,目前大部分成熟的区块链都是数据库,例如比特币就是一个分布式账本,而账本其实就是数据。然后,根据数据的格式,又可以分三种——1,数据是完全不相关的,只是达成的共识,没有有效无效之分;2,数据有某些逻辑结构,例如账本中,一笔交易实际上除了金额,还有输入和输出,连接到之前的交易,这些数据需要通过逻辑验证(例如交易中,节点需要验证输入的交易是否有效);3,数据拥有图灵完备的逻辑,而验证的时候需要通过节点使用算力运算,每笔交易可以有不同的输出和状态,每个节点要做的不仅仅是验证交易的真实性和输入的正确性,还要根据交易里的逻辑读入数值,进行验算然后再验证结果。比特币的系统就是第二种,又叫分布式账本;以太坊是第三种。第三种可以支持智能合约。用比特币举例的话,1,它是一个完全去中心化的系统,2,它放在一个非安全的环境,它并不要求所有使用比特币的人都没有恶意。2,区块链采用密码学的方法来保证已有数据不可能被篡改。这个是误解最多的部分,因为很多人一提到区块链就只觉得是这个。诚然,这部分很重要,而且确实区块链也因此得名,但这只是区块链的定义的一部分。这个部分的两个核心要点是:(1)密码学哈希函数,(2)非对称加密。两个都是密码学的基础概念,网上都有非常清晰的定义,我只简单说下:(密码学)哈希函数:一个函数Y=H(X),有如下性质:1,有X可以很容易算出Y;2,有Y不可能算出X;3,有Y不可能找到另一个X'使得H(X')=Y;3.5,如果X和X'相差很小,H(X)和H(X')则完全不相关。这东西主要用于验证信息完整性——在一个信息后面放上这个信息的哈希值,这个值很小,例如256bit,而且计算方便。收到信息之后收信人再算一遍哈希值,对比两者就知道这条信息是否被篡改过了。如果被篡改过,哪怕只有一bit,整个哈希值也会截然不同。而根据哈希函数的性质,没有人能够伪造出另一个消息具有同样的哈希值,也就是说篡改过的数据完全不可能通过哈希校验。非对称加密:这东西很好理解——对称加密就是有个密钥,可以理解成保险箱钥匙,你把消息加密变成密文,没有人能看懂这是啥,然后同一把钥匙解密成原来的消息。非对称加密就是有两把钥匙,一把叫公钥,一把叫私钥,用其中一把加密的话,只能用另一把解密,反之亦然。另一个重要的性质是,给你密文,明文和其中一把钥匙,你还是解不出来另一把钥匙是啥。原理基本上是基于一些困难数学问题,例如因数分解和离散对数,常用的有RSA,Diffie-Hellman和ECC(椭圆曲线),比特币用的是椭圆曲线。非对称加密除了和对称加密一样用于信息加密之外,还有另一个用途,就是身份验证。因为通常情况我们假设一对公私钥,公钥是公开的,而私钥只有本人有,于是一个人如果有对应的私钥,我们就可以认定他是本人。其中一个重要的应用就是数字签名——某个消息后面,发信人对这个消息做哈希运算,然后用私钥加密。接着收信人首先对消息进行哈希运算,接着用相应的公钥解密数字签名,再对比两个哈希值,如果相同,就代表这个消息是本人发出的而且没有被篡改过。以上是基础知识,至于区块链怎么实现的,很简单:交易(数据)写在区块里。第一个区块叫创世区块,写啥都行。从第二个区块开始,每个区块的第一部分有前一区块的哈希值。此外,区块里的每一笔交易(数据),都有发起人的数字签名来保证真实性和合法性。于是,先前区块里的任何数据都不可被篡改,原因见上。到这为止有人可能会问:为什么要弄个链啊?直接所有数据加个哈希值不就行了?因为——这个数据库并不是静止的啊。数据库的数据是会增加的,而每次增加的数据,就是一个区块,于是这些生成时间不同的区块,就以这种形式链在一起了。至于如何增加区块,就涉及到第三个部分——共识算法。3,区块链采用共识算法来对于新增数据达成共识。共识算法的目的,就是让所有节点对于新增区块达成共识,也就是说,所有人都要认可新增的区块。对于有中心的系统,这事很简单,中心说什么大家同意就好了,但是放到去中心化系统里,尤其是当有些节点有恶意的时候,这东西非常复杂,计算机科学里有个相应的问题,叫做“拜占庭将军问题”或者“拜占庭容错”(BFT)。有很多用Lamport给出的那个例子来讲BFT的东西,我在这里换一个角度。Lamport大神当年提出这个问题的时候在斯坦福研究中心给NASA做项目,他提出这个问题的原因并不是考虑类似比特币的应用场景(整个互联网成千上万个用户),而是考虑特殊背景下的一个简单的系统——航天飞机的控制系统。如果有航空背景的同学可能知道,飞机有三套独立的控制系统,为什么呢?因为任何系统都不可能完全不出故障,就算飞机控制系统的故障率已经极低了,还是有飞到一半这东西坏了的可能。于是我们可以弄两套独立的系统,同时坏掉的几率就会大大降低。可是两套独立的系统还是不足以容下一个系统的错误——一架飞机迎面飞来,两套系统一个说要躲,一个说不躲,那到底是躲还是不躲呢?所以我们需要三台独立的系统,这样,如果有一个系统有故障了,还有两台能正常工作,能少数服从多数给出正确的结果。学过纠错码的同学对这个应该不陌生,这个系统的输出之间的汉明间距是3,所以可以纠正一位的错误。然而,对于航天飞机,在冷战的背景下,万一某个系统不是坏掉了,而是被敌人控制了呢?三套系统还够吗?答案是否定的,因为不同于单纯只是坏掉的节点,恶意节点可以做一些别的事来阻止整个系统达成共识。这个部分略复杂要讲的话要单开一帖,所以我们只说最简单的情况(无签名同步系统)。我们管三个系统叫ABC,正常工作流程是三个人每次得出结果就互相告诉一下,然后每个人选多数人同意的结果。这是个没有中央节点的分布式系统,也就是说三人不能聚在一起开个会啥的,仨人只能两两通信。这个时候,假设C有恶意,它的目标是破坏这个系统。于是,假设正确的读数是1,A和B都得出了1这个结果,这个时候C这个小婊砸告诉A说“我的结果是0,B也觉得是0”,同时打个电话跟B说“哎我觉得是0,A也这么说”,于是A和B就懵逼了。假设你是A,你听到了两个不同版本的B的答案,B说自己选了1,C说B选了0,可是A这个时候没法知道B和C谁才是那个骗了自己的小婊砸,因为如果B真的告诉A选了1然后告诉C是0,他听到的结果和现在是一模一样的。于是结论是,拜占庭容错,也就是需要容下一个恶意系统而非错误系统,需要4个独立系统。(当然,签名可以解决这个问题,但是这只是同步系统的情况,在异步系统里这问题会变得更加复杂,原因是正常节点的回答有延迟,而恶意节点可以不回复,所以,正常节点一方面要等另一个节点的回复,但是它又不知道对方会不会回复因为对方有可能会有恶意,而在收到回复之前,它完全没法判断对方是正常节点还是恶意节点,这个问题叫异步BFT,也是BFT的最复杂的情况,这里不再做更多的解释,下文提到的BFT算法,其实都是异步BFT的算法)Lamport提出这个问题之后,有无数的算法被提出来,统称BFT(拜占庭容错)算法,其中最有代表性的叫PBFT,然后由于最近区块链的热度,无数针对区块链应用场景优化过的BFT算法也涌现出来,但是一个重要的问题是,所有目前的BFT算法,都只能应用在小型网络里。原因很简单——因为BFT这个问题是设计给类似于航天飞机控制系统这样的场景的,早期的算法考虑的也主要是这种场景。PBFT论文里考虑的就是一个5个节点的系统。就算算上新提出的BFT算法,也最多应用在不超过100个节点的网络里。这个问题被搁置了很久,直到比特币的诞生——中本聪从某种意义上简化了这个问题,在比特币中,同样是共识问题,中本聪引入了一个重要的假设——奖励,他之所以能这样做的原因是,他考虑的是一个数字货币,也就是说共识这个东西是有价值的。于是在这样的系统上,他提出了工作证明机制。所有挖矿,矿工,最长链,分叉等等等等,都可以归结为一句话:说话是要有代价的,说真话是有好处的,说假话是要扣钱的……这就是目前两类共识算法的核心区别:BFT共识模型:恶意节点可以干任何事。比特币共识模型:模型中有公认的“价值”,每个节点说话都需要一定代价,诚实节点会受到奖励,而恶意节点由于只付出代价而收不到奖励,变相受到了惩罚。也就是说,BFT共识模型其实涵盖了比特币共识模型的场景,比特币共识其实放宽了BFT共识模型的限制。比特币共识对于BFT的优势在于,由于给恶意节点的能力做了限制,恶意节点所能造成的破坏大大降低了,尤其是对于异步系统——BFT共识里恶意节点可以一直拒绝相应而诚实节点还需要一直等它(因为不知道它是不是恶意的),而对于比特币共识,随你便,你不响应就没有奖励可拿。于是,比特币共识算法可以应用于成千上万个节点,而且,任何人随时都可以加入,不需要预先在网络里注册自己的身份(而BFT算法里,网络中节点的数量和身份都必须是已知的)。但比特币共识的缺陷在于,首先,得有个有价值的东西,也就是说放在比特币里这东西还行,以太坊的话现在可能也凑合,但是其他数字货币嘛……BFT共识有个严格的限定,就是恶意节点不能超过总数的1/3,然而其实比特币共识没有这样的限制,唯一的限制就是假定大部分节点都是理性的,是逐利的,也就是会采用最佳的策略来赚取最大的价值。所以,严格来说,自私挖矿这种行为在比特币共识里是允许的,而多数攻击,其实也算不上一种攻击,因为这些都没有突破比特币共识的框架——如果这个价值无限大,比特币共识是非常可靠的。然而这并不是事实,因为并不是每个虚拟货币都和比特币一样值钱,而在价值不高的情况下,比特币共识的前提就站不住脚了——当损失可能是几千上万块钱的时候,假定每个人都是理性的是合理,但是如果损失就几分钱这个假设就相当扯淡了,事实上也发生过一个比特币矿池跑到另一个货币恶意挖矿搞垮对手的情况。此外,比特币共识是最长链共识,也就是说最长链-->大多数-->理性,于是分叉是允许的。于是导致了一些附带的问题,例如,如果网络有延迟,你怎么知道你手里那条链是整个网络里当前的最长链呢?于是,如果需要传输的数据多,那么延迟加大。延迟加大,那么越多的人手里的链并不是全网络的最长链。于是,全网络的最长链,就没法代表大多数。这就打破了比特币共识的根本,这也是为什么比特币区块频率是10分钟一块的原因。比特币目前有个著名的7币交易每秒的上限,而现在扩容闹得很厉害,以太坊的交易格式不同,也用了新的工作证明,想要改成权益证明,但这些都不本质。真正本质的是,在目前的网络条件下,如果适用全网的话,比特币共识的交易量基本上超不过100笔交易每秒这个量级。上面这几段有可能太深了,简单来说,BFT共识和比特币共识的区别可以这么理解:BFT共识:来,大家开个会讨论一下集思广益啊,讨论出大家都满意的结果为止。问题:开会的效率大家都懂,人越多越不容易出结果。只能用于少数节点,用于上千个节点的话……大家想象一下一天开一次人大的场景。比特币共识:你的诗念得不错,组织已经决定了,今天就你来当领导了,做得好有奖,做不好扣钱。问题:奖励几千块钱还好,奖励几分钱谁好好干?而区块链也就因此被分成了泾渭分明的两类,很多人都听过什么公有链私有链联盟链,但是,如果你们以为这是根据应用区分的就大错特错,其实,这两种区块链最本质的区别,还是因为共识模型或者说算法不同——BFT算法没法应用于大量节点,所以用BFT算法的就没法做公有链。而比特币共识得有个价值体系,这东西去做私有链联盟链就很不靠谱,因为一个单纯逐利的人的假设还算靠谱,但是如果对象是公司的话,公司的利益就太复杂了,不能简单认为他们只追逐区块链上那点价值。1,公有链,以比特币,以太坊和所有虚拟货币为代表,都采用比特币共识,共识算法基本上都采用工作证明机制,也就是挖矿那些,这种机制其他回答里已经讲得够清楚了,就略过。工作证明一切都好,除了费电……费多少电呢?差不多和一个百万人级别的城市那么多。此外以太坊的创始人特别喜欢权益证明,似乎很快要小范围投入使用(100个区块里一个用权益证明)。但是目前为止,大家对这东西的可靠性还持观望态度。2,私有链和联盟链。以IBM的hyperledger-fabric,以及一大堆其他的类似于tendermint,甚至R3 corda和ripple为代表,都用BFT共识。其实这方面的应用已经很多了,问题是,1,目前基本上所有应用给人的感觉都还是为了做区块链而区块链,真的觉得这东西好到不可或缺的应用还基本没有。2,由于为了区块链而区块链,其实很多场景的安全性和可靠性还值得怀疑,这点经常被被公有链的支持者诟病。嘛,以上就是个人定义的区块链了,顺带概述一下现在区块链领域的发展。之所以写这个帖子,就是因为发现明明是问区块链的问题,所有人都在讲比特币,都在讲挖矿,都在讲工作证明……工作证明不能说过时,也的确是现在公有链唯一可靠的共识算法,但是这东西确实是业界除了比特币死忠之外谁都不想要的东西好吗……编辑于 2019-10-28 14:29赞同 4824251 条评论分享收藏喜欢收起盗盗狂热追随者... 关注友情提醒:比特币采用区块链技术,但是区块链并不等同于比特币;全篇基于比特币底层区块链技术讲述,所以,部分模型可能不适用于以太坊等。另外,由于文章采用了一定的抽象、类举的叙事方式,中间或多或少有些地方会跟区块链底层严谨的技术实现有出入,如果让你觉得困惑,可以在评论下方留言或者私信我一起探讨。最后,也是受限于自己知识结构的不完整,这篇文章会随着我对区块链更深入认识后,随时进行修订,最后更新时间可参考该回答下方的时间戳。另外,作为一篇科普性文章,大家可以随意转载,注明这篇文章的出处和作者即可,无需再单独私信询问。---首先不要把区块链想的过于高深,他是一个分布在全球各地、能够协同运转的数据库存储系统,区别于传统数据库运作——读写权限掌握在一个公司或者一个集权手上(中心化的特征),区块链认为,任何有能力架设服务器节点的人都可以参与其中。来自全球各地的掘金者在当地部署了自己的节点,并连接到区块链网络中,成为这个分布式数据库存储系统中的一个节点;一旦加入,该节点享有同其他所有节点完全一样的权利与义务(去中心化、分布式的特征)。与此同时,对于在区块链上开展服务的人,可以往这个系统中的任意的节点进行读写操作,最后全世界所有节点会根据某种机制的完成一次又依次的同步,从而实现在区块链网络中所有节点的数据完全一致。 上图中,高亮的点就是区块链系统中分布在全球各地的一个个节点;而这些节点可以简单理解为一台服务器服务器集群为了更简单的阐述那篇文章所构建的世界观,文中所讨论的节点全部粗暴的理解为官方参考实现节点,即最标准的一种节点类型,这些节点不仅可以参与挖矿共识、还可以数据存储和数据点对点传递;不涉及其他复杂的节点类型。关于节点的分类,可以阅读我的专栏文章《区块链节点与钱包的分类、边际和使命,看这篇文章就足够了》# 问题的由来我们反复提到区块链是一个去中心化的系统,确实,「去中心化」在区块链世界里面是一个很重要的概念,很多模型(比如账本的维护、货币的发行、时间戳的设计、网络的维护、节点间的竞争等等等等)的设计都依赖于这个中心思想,那到底什么是去中心化呢?在解释真正去中心化之前,我们还是先简单了解下什么是中心化吧。中心化?回忆一下你在网上购买一本书的流程:第一步,你下单并把钱打给支付宝;第二步,支付宝收款后通知卖家可以发货了;第三步,卖家收到支付宝通知之后给你发货;第四步,你收到书之后,觉得满意,在支付宝上选择确认收货;第五步,支付宝收到通知,把款项打给卖家。流程结束。你会发现,虽然你是在跟卖家做交易,但是,所有的关键流程都是在跟支付宝打交道。这样的好处在于:万一哪个环节出问题,卖家和买家都可以通过支付宝寻求帮助,让支付宝做出仲裁。这就是一个最简单的基于中心化思维构建的交易模型,它的价值显著,就是建立权威,通过权威背书来获得多方的信任,同时依赖权威方背后的资本和技术实力确保数据的可靠安全。你一定会摆出一个巨大的问号脸 ⊙.⊙?——“通过权威背书来获得多方的信任,同时依赖权威方背后的资本和技术实力确保数据的可靠安全”,真的可以嘛?!假如说,支付宝程序发生重大BUG,导致一段时间内的转账记录全部丢失,或者更彻底一点,支付宝的服务器被ISIS恐怖组织的一个导弹全部炸毁了。而我刚刚转出去的100元找谁说理去,这个时候,你就成了刀殂上的鱼肉;支付宝有良心,会勉为其难承认你刚刚转账的事实,但他不承认你也没辙,因为确实连他自己也不知道这笔转账是否真实存在。上述就是中心化最大的弊端——过分依赖中心和权威,也就意味着逐渐丧失自己的话语权。去中心化?那么去中心化的形态是什么样子呢?还是拿刚才那个例子继续,我们构建一个极简的去中心化的交易系统,看看我们是如何在网络上从不认识的卖家手里买到一本书的。第一步,你下单并把钱打给卖家;第二步,你将这条转账信息记录在自己账本上;第三步,你将这条转账信息广播出去;第四步,卖家和支付宝在收到你的转账信息之后,在他们自己的账本上分别记录;第五步,卖家发货,同时将发货的事实记录在自己的账本上;第六步,卖家把这条事实记录广播出去;第七步,你和支付宝收到这条事实记录,在自己的账本上分别记录;第八步,你收到书籍。至此,交易流程走完。刚才“人为刀俎我为鱼肉”的情况在这个体系下就比较难发生,因为所有人的账本上都有着完全一样的交易记录,支付宝的账本服务器坏了,对不起卖家的账本还存在,我的账本还存在;这些都是这笔交易真实发生的铁证。当然,在这套极简的交易系统中,你已经发现了诸多漏洞和不理解,比如说三方当中有一个是坏人,他故意记录了对他更有利的转账信息怎么办;又比如说消息在传递过程中被黑客篡改了怎么办等等等等。这在以往的计算机概论或者计算机网络书本上中可能都有提及到——“类两军”和“拜占庭将军”问题。这里就不打算赘述,因为暂时跟主线不相关,感兴趣的同学可以去Google或者百度一下,你只需要知道,在我们下面即将展开讲到的区块链系统中,通过巧妙的设计,足以解决上述存在的BUG。既然话已说到这份上,相信了解一点技术、特别是有运维背景的同学大概能够从极简交易系统中窥视到了更多区块链的一些影子——分布式存储,通过多地备份,制造数据冗余让所有人都有能力都去维护共同一份数据库让所有人都有能力彼此监督维护数据库的行为在我看来,你猜测的基本上没错。其实这些就是区块链技术最核心的东西,外人看起来高大上、深不可测,但探究其根本发现就是这么简单和淳朴。当然,这里面肯定会有很多很多很多细枝末节的技术需要重构。如果你差不多认同上面的观点,那我们应该基本上可以达成共识,分布式部署肯定是构建去中心化网络理所当然的解决方向——通过P2P协议将全世界所有节点计算机彼此相互连接,形成一张密密麻麻的网络;以巧妙的机制,通过节点之间的交易数据同步来保证全球计算机节点的数据共享和一致。哈哈,说的轻巧,“交易数据这么重要的东西,在一个完全不信任的P2P网络节点中以一种错综复杂的方式传递,数据的一致性和安全性谁来保证,如果说互相监督,他们到底怎么做到?”好了,不卖关子了,下面让我们围绕这个最最最最直接的问题开始进入到真正区块链的世界,抽丝剥茧看看它到底是如何一步一步形成的,又是如何一步一步稳定运转。# 从全球节点到交易数据这张图的制作的意义为的是帮助你在宏观上先快速理解区块链中所涉及到的相关名词以及他们的层级关系。同时,文章的知识结构和设计思路也大抵上也会按照:首先,将区块作为最小单位体,讲述极简区块链系统是如何运转的;接着,进入到比区块更小单位体——交易记录,理解区块链是如何处理数据的;最后,将所有知识点柔和在一起,重回到区块和区块链,完整讲述整个工作流程。希望你在这个引导和结构下有一个比较好的阅读体验。Let's go~# 区块,混沌世界的起源既然已经达成共识,所以,我们事先构建好了一个去中心化的P2P网络;同时,为了让读者朋友们听起来更轻松,我先粗暴的规定在这个极简的区块链系统里,每十分钟有且仅产生一笔交易。故事继续,在节点的视野里,大概每十分钟会凭空产生一个建立在自己平行宇宙世界的神奇区块(你可以将区块想象为一个盒子),这个区块里放着一些数字货币以及一张小纸条,小纸条上记录了这十分钟内产生的那唯一一笔交易信息,比如说——“小A转账给了小B100元”;当然,这段信息肯定是被加密处理过的,为的就是保证只有小A和小B(通过他们手上的钥匙)才有能力解读里面真正的内容。这个神奇的区块被创造出来之后,很快被埋在了地底下,至于埋在哪里?没有一个人知道,所以需要所有计算机节点一起参与进来掘地三尺后才有可能找到(找到一个有效的工作量证明)。显然,这是一件工作量巨大、成果随机的事件。但是呢,对于计算机节点来说,一旦从地底下挖出这个区块,他将获得区块内价值不菲的数字货币,以及“小A转账给了小B100元”过程中小A所支付的小费。同时,对于这个节点来说,也只有他才有权利真正记录小纸条里的内容,这是一份荣耀,而其他节点相当于只能使用它的复制品,一个已经没有数字货币加持的副本。当然这个神奇的区块还有一些其他很特别的地方,后面我们会再细细聊。为了更好的描述,我们将计算机节点从地底下挖出区块的过程叫做「挖矿」,刚才说了,这是一件工作量巨大、运气成分较多、但收益丰厚的事儿。过了一会儿,来自中国上海浦东新区张衡路上的一个节点突然跳出来很兴奋的说:“ 我挖到区块了!里面的小纸条都是有效的!奖励归我!” 。虽然此刻张衡路节点已经拿到了数字货币,但对于其他计算机节点来说,因为这里面还涉及到其他一些利益瓜葛,他们不会选择默认相信张衡路节点所说的话;基于陌生节点彼此不信任的原则,他们拿过张衡路节点所谓挖到的区块(副本),开始校验区块内的小纸条信息是否真实有效等等。在区块链世界里,节点们正是通过校验小纸条信息的准确性,或间接或直接判断成功挖出区块的节点是否撒谎。(如何定义小纸条信息真实有效,后面会讲解,这里暂不做赘述)。在校验过程中,各个节点们会直接通过下面两个行为表达自己对张衡路节点的认同(准确无误)和态度:停止已经进行了一半甚至99.99%的挖矿进程;将张衡路节点成功挖出的区块(副本)追加到自己区块链的末尾。你可以稍微有点困惑:停止可能已经执行了99.99%的挖矿行为,那之前99.99%的工作不是就白做了嘛?!然后,区块链的末尾又是个什么鬼东西?对于第一个困惑。我想说,你说的一点没错,但是没办法,现实就是这么残酷,即便工作做了99.99%,那也得放弃,这99.99%的工作劳苦几乎可以视为无用功,绝对的伤财劳众。第二个困惑,区块链和区块链的末尾是什么鬼?这里因为事先并没有讲清楚,但是你可以简单想象一下:区块是周期性不断的产生和不断的被挖出来,一个计算机节点可能事先已经执行了N次“从别人手上拿过区块 -> 校验小纸条有效性”的流程,肯定在自己的节点上早已经存放了N个区块,这些区块会按照时间顺序整齐的一字排列成为一个链状。没错,这个链条,就是你一直以来认为的那个区块链。如果你还是不能够理解,没关系,文章后面还会有很多次机会深入研究。# 走进区块内,探索消息的本质上面我们构建了一个最简单的区块链世界的模型,相信大多数同学都已经轻松掌握了。但是别骄傲也别着急,这还只是一些皮毛中的皮毛,坐好,下面我们准备开车了。前面我们说到“大概每十分钟会凭空产生一个神奇的区块,这个区块里放了一张小纸条,上面记录了这十分钟内产生的这唯一一笔交易信息”。显然,十分钟内产生的交易肯定远不止一条,可能是上万条,这上万条数据在区块链世界是如何组织和处理的呢?另外,为什么在纸条上记录的只是某一次的交易信息,而不是某一个人的余额?余额好像更符合我们现实世界的理解才对。既然存在这样那样的疑问。现在我们就把视线暂时从“区块”、“区块链”这些看起来似乎较大实体的物质中移开,进入到区块内更微观的世界里一探究竟,看看小纸条到底是怎么一回事,它的产生以及它终其一生的使命:发起交易的时候,发起人会收到一张小纸条,他需要将交易记录比如说“盗盗转账给张三40元”写在纸上。说来也神奇,当写完的那一刹那,在小纸条的背面会自动将这段交易记录格式化成至少包含了“输入值”和“输出值”这两个重要字段;“输入值”用于记录数字货币的有效来源,“输出值”记录着数字货币发往的对象。刚刚创建的小纸条立马被标记成为“未确认”的小纸条。从地下成功挖出区块并最终连接到区块链里的小纸条一开始会被标记为“有效”。若这条有效的小纸条作为其他交易的输入值被使用,那么,这个有效的小纸条很快会被标记为“无效”。因为各种原因,区块从链上断开、丢弃,曾经这个区块内被标记为“有效”的小纸条会被重新标记为“未确认”。区块链里面没有账户余额的概念,你真正拥有的数字资产实际上是一段交易信息;通过简单的加减法运算获知你数字钱包里的余额。上面的1、2、3仅仅作为结论一开始强行灌输给你的知识点,其中有几个描述可能会有点绕,让你觉得云里雾里,没有关系,因为我们立刻、马上就开始会细说里面的细枝末节。上图,是区块内,盗盗在一张小纸条上记录下的交易信息,后被格式化的呈现上图就是从无数打包进区块内的小纸条中,抽取出来的一张,以及它最终被格式化后的缩影。单看右侧的图可能很容易产生误会,虽然看起来有多行,但实际上就是“盗盗转账给张三40个比特币”这一条交易数据另外的一种呈现形态。因为区块链世界里面这么规定,每一条交易记录,必须有能力追溯到交易发起者 发起这笔交易、其中所涉及金额的上一笔全部交易信息;即这笔钱从何而来的问题。这其实很容易理解,在去中心化的网络中,通过建立交易链、和通过交易链上的可溯源性间接保证数据安全和有效。我们继续看,在区块链世界里,我们是如何仅通过“盗盗转账给张三40个比特币” 这条交易信息完成转账流程的。其实跟现实中你在路边买一个包子的流程大抵上相同。第一步:判断是否有足够的余额完成交易这里我们再一次重申,在比特币的区块链世界里是没有余额的概念(以太坊的底层区块链有余额概念),余额是通过简单数字的加减最终获得,你拥有所谓的数字货币实际上是因为你拥一条交易记录,即 “盗盗转账给张三40个比特币”!这里,我们还是拿这条记录说事:追溯“输出值”是“盗盗”相关的全部有效交易记录作为,对有效交易中的数字进行简单求和,判断是否大于等于40,如果确实大于等于,则将这些有效的交易记录合并形成一条新的交易记录(如下图)。如果小于40,其实可以不需要再继续往下探讨。就上图的例子,我们追溯到曾经转账给盗盗的有效交易记录有“小A转账给盗盗10 btc”、“小B转账给盗盗20 btc”、“小C转账给盗盗 25 btc”,我们需要将这三条交易记录合并成一条更复杂描述的交易记录,即 “( 小A转账给盗盗10 btc + 小B转账给盗盗20 btc + 小C转账给盗盗 25 btc ) 转账给张三40 btc ”第二步:判断是否需要找零对追溯到的有效交易数字求和,如果发现大于需要支付的金额,需要将多出的数字重新支付给自己,相当于找零。对应生成了一条全新的交易记录(如下图)。就上图例子来说,我们最后合并成的交易记录 “( 小A转账给盗盗10 btc + 小B转账给盗盗20 btc + 小C转账给盗盗 25 btc + 盗盗转账给盗盗15 btc ) 转账给张三40 btc ” 事实上等同于“盗盗转账给张三40 btc”。其中“盗盗转账给盗盗15 btc”就可以理解找零。第三步:发出去,让全球节点认同和备份小纸条这条内部重新处理过的复杂交易记录被塞进区块,埋到地下,等待节点挖出来,一旦区块被挖矿成功,并且该区块最终被连在了区块链的主链上。张三将最终拥有了这条交易记录,而先前的“小A转账给盗盗10 btc” 、“小B转账给盗盗20 btc” 、“小C转账给盗盗25 btc”都将被视为已经使用过的交易记录——从此被贴上“无效”的标签,意味着这些交易记录将永远不会再被追溯到。我们最后一次重申,只是希望让你加深印象:拥有数字货币=拥有交易记录!通过设计巧妙的精巧密码学保证数据安全记录着交易信息的小纸条借助区块这个载体,在分布式的网络中以不同的轨迹错综复杂的传递,我们前面说了,你真正拥有的数字资产实际上是一段交易信息,而不是你常规意义上理解的货币。所以这个过程就需要重点解决两个问题:接受到的这条交易记录在传输过程没有被其他人所篡改接受到的这条交易记录确实是由发起交易的人所创造在这里,我们需要事先引入两个知识点,可能稍微有点难消化,但都是计算机领域较为成熟的和基础的概念。第一个知识点:SHA256()函数。你只需要知道,任意长度的字符串、甚至文件体本身经过SHA256函数工厂的加工,都会输出一个固定长度的字符串;同时,输入的字符串或者文件稍微做一丢丢的改动,SHA256() 函数给出的输出结果都将发生翻天覆地的改变。注意,SHA256()函数是公开的,任何人都能使用。上图,仅仅一个小数点的变化,输出的结果已经翻天覆地第二个知识点:非对称加密。你也只需要了解,任何人手里都有两把钥匙,其中一把只有自己知道,叫做“私钥”,以及一把可以公布于众,叫做“公钥”;通过私钥加密的信息,必须通过公钥才能解密,连自己的私钥也无解。公钥可以通过私钥生成多把。有了这些知识点的加持,上面两个问题开始变得有解。下面我们来看下内部是如何扭转和工作的吧,这里拿“小A 转账给了小B 100元钱” 举例: 第一步:小A会先用SHA256函数对自己的小纸条进行处理,得到一个固定长度的字符串,这个字符串就等价于这张小纸条。第二步:小A使用只有自己知道的那一把私钥,对上面固定长度的字符串进行再加密,生成一份名叫数字签名的字符串,这份数字签名能够充分证明是基于这张小纸条的。你可以这么理解,在现实中,你需要对某一份合同的签署,万一有人拿你曾经在其他地方留下的签名复制粘贴过来怎么办?!最好的办法,就是在你每一次签名的时候,故意在字迹当中留下一些同这份合同存在某种信息关联的小细节,通过对小细节的观察可以知道这个签名有没有被移花接木。步骤一和步骤二的结合就是为了生成这样一份有且仅针对这条小纸条有效的签名。第三步:小A将「明文的小纸条」、刚刚加密成功的「数字签名」,以及自己那把可以公布于众的「公钥」打包一起发给小B。第四步:当小B收这三样东西,首先会将明文的小纸条进行SHA256()处理,得到一个字符串,我们将其命名为“字符串2”。然后,小B使用小A公布的公钥,对发过来的数字签名进行解密,得到另外一个“字符串1”。通过比对“字符串1”和“字符串2”的一致性,便可充分证明:小B接受到的小纸条就是小A发出来的小纸条,这张小纸条在中途没有被其他人所篡改;且这张小纸条确实是由小A所编辑。可以看得出来,加解密的过程几乎是一环套一环,中途任何环节被篡改,结果都是大相径庭。借助这一连串的机制,其实已经能够很好的在公开、匿名、彼此不信任的分布式网络环境中解决数字交易过程中可能遇到的很多问题。这个环节可能确实有点难理解,现在,我需要你停下来,静下心,花上几分钟闭目慢慢回味其中设计精湛的地方。掌握了这部分知识以后,我们在这里回答一下前面没有解释清楚的问题,「节点对区块的检验」检验的到底是什么?实际上就是:检验区块内的交易记录签名是否准确(是否被篡改)检验区块内的交易记录输入值是否“有效”(是否使用过)检验区块内的交易记录输入值的数字之和是否大于等于输出值的数字…# 重回“区块”和“区块链”的世界好了,对小纸条和交易记录的研究我们点到为止,其实信息量已经是巨大的了,让我们合上盖子,重回较大的实体、继续聊聊“区块”和“区块链”的话题。还记得,咱们在一开始讲到关于区块的特征吗?区块创造后被埋在地下,需要经过节点们马不停蹄的挖采、而且是凭运气的挖采才有可能获得——不仅仅如此,事实上他还有其他很多神奇的地方,比如说:凭空产生的区块在刚刚创建的时候会形成一股强大的黑洞效应,它会尝试将这段时间全世界各个节点上产生的所有小纸条(交易记录)统统吸进来;在合上区块盖子之前,同时会在区块内放上一些数字货币以及其他一些东西。区块拥有一个唯一的ID,但它只会在这个区块被节点成功从地下挖出来之后创建。这个ID至少会跟「区块内所有小纸条的集合」、「即将与之相连的上一个区块ID」以及「挖矿节点的运气值」等因素相关。既然前面我们已经简单了解了“SHA256()函数”这个东西,这里不妨透露给大家:“区块ID = SHA256(‘区块内所有小纸条的集合’+’即将与之相连的上一个区块ID’+‘挖矿节点的运气值’+’…’)” ;基于先前掌握的知识,然后你应该知道区块内任意一张小纸条的信息稍微做改动、或者节点挖矿运气好一点坏一点等等,当前区块的ID都会 “ biu~ ”的发生改变。基于上述1、2点,如果阅读足够仔细的同学可能会有些头大。在文章开头为了更好的描述,我在设计简化区块链系统的时候故意模棱两可了几个概念,这也许已经误导到了部分同学。这里不得不停下来和你一起修正下之前在你大脑中已经构建的区块链世界观。我们前面讲道,“在节点的视野里,大概每十分钟会凭空产生一个建立在自己平行宇宙世界的神奇区块”。如何正确去理解这句话呢?——拥有上帝之眼的你,可以这么拆解问题、看待问题:同一个周期内,全网并不是产生唯一的一个区块等待挖掘;每个节点事实上都在周期性的创造区块和挖出区块;只是在某一个节点的视野里,它不能感知到另外一个节点上区块的产生。为何这里要特别强调“在某一个节点的视野里”,就是因为我们刚刚讲到,从区块的视角来说,区块的凭空产生,是基于即将与之相连的上一个区块ID;而从节点的视角来看,区块的凭空产生是基于当前节点区块链末尾的那个区块ID产生的。全网会尽力控制在一个周期内只有一个节点能够成功挖出区块,但是不能够完全避免多个节点同时挖出区块的可能性;如何尽力控制?比如说,当大伙挖矿的热情高涨、工作效率提高,区块会被埋在更深更广的地方等。简而言之,通过提高工作难度,来维持这个平衡。另外,值得注意的:产生区块、挖出区块、校验区块,他们的时间周期近乎相同。对于想从技术角度更加深入理解“区块”、“挖矿”本质的同学们,你们可以移步至我的专栏《探索比特币“挖矿”和“区块”的数学本质》,其中涉及到一些比较复杂的数学和技术细节,相信阅读完那部分内容之后,你对区块链会有更加透彻的认知。当然,对于绝大多数的吃瓜群众,看完那边内容可能会让你更加困惑,如果你不是十分的喜欢追根究底的话,我建议你还是直接选择跳过那块吧。至少在我看来,即便少了那部分内容,也不影响我们去理解区块链的魅力。分叉现在,我们终于对“区块”这个概念有了更全面的认识,文章开头讲的故事就可以继续展开来絮叨絮叨:假如几乎同一时间,「中国上海浦东新区张衡路」上的节点和「美国纽约曼哈顿第五大道」上的节点异口同声喊出来:“我挖到区块了!里面的小纸条都是有效的!奖励归我!”。其他节点也几乎同时参与了对这两个区块的校验,结果发现这俩都没毛病,各节点也开始犯困,因为在他们的视野里他们并不清楚最后哪一个区块应该会被主链接纳。算了!都连在自己区块链尾巴上吧,这时尴尬了,区块链硬生生的被分叉了!产生分叉你肯定在想,那还得了,这种情况继续下去,每个节点的区块以及他们整理维护的小纸条都将变得不一样,这已经严重违背了区块链世界里第一大最基本原则——所有节点共同维护同一份数据。所以,为了解决这个问题,区块链世界引入了一条新的规则——拥有最多区块的支链将是真正被认可有价值的,较短的支链将会被直接Kill掉。我们大伙都知道挖矿的过程存在巨大的工作量(如果没有任何难度,把区块扔在人群中,必然同一时间发现区块的节点数量将大大增加,也就会产生无数的支链,通过这个例子,你大概也就能够明白,比特币的区块链世界为什么需要设置工作难度了吧),并且在计算机的硅基世界里,不可能出现所谓 “同时” 的概念,哪怕纳秒的差别,那也总是会有先后顺序。所以理论上,“分叉”的这种僵局很快会在下一个区块被挖掘出来(以及校验区块)的时候被打破,实在不行下下个,或者下下下个……总之机制可以让整个分叉的区块链世界迅速稳定下来。“分叉”这种僵局在确认下一个区块(以及校验小纸条)的时候被打破,从而整个区块链世界迅速稳定下来就上图而言,所有基于张衡路节点挖矿获得的区块以及后续区块的那条分支被视为有价值,最终会全部保留了下来;其他节点会统一效仿那个拥有更长分支链的节点所做的决策。另外,值得一提的是,同一时间,较短分支上的区块会立即丢弃,而里面的小纸条也会随之释放出来,被重新标记上“未确认”。“双花”与“51%攻击”你可能已经开始困惑或者有点兴奋,末尾几个区块的排序在修复过程中,因为时间差肯定会产生一些模棱两可的地方,这往往会给数据安全埋下一颗雷。一个最简单的假设——我记录的一张小纸条很不巧地被归在了一条较短的支链上,这条支链在竞争过程中理所当然输掉了比赛,区块被丢弃、小纸条被无情的贴上“未确认”的标签。在等待下次区块重新确认的过程中,这个时间差内,我,好像、似乎可以做点什么坏事 ԅ(¯﹃¯ԅ) ,就比如说“双花”(双花,花两次,双重支付的意思)你脑海中也许很快浮过的这样的构想,可不可能通过下面这种方法触发双花问题的产生,从而让我不劳而获:假设有一个名叫X-Man的坏家伙,他控制了一个计算机节点,这个节点拥有比地球上任何一个节点算力都强大的计算机集群。首先,X-Man事先创造了一条独立的(不去广而告之)、含有比较多区块的链条。其中一个区块里放着“X-Man转账给X-Man 1000元”的纸条。接着,X-Man跟张三购买了一部手机,他在小纸条上记录下“X-Man转账给张三1000元”。张三已经比一般的卖家谨慎了,他在这条信息被三次确认后(即三个区块被真实挖出、校验和连接)才将手机给了X-Man。按照我们之前的理解,这条交易记录已经板上钉钉永远无法被串改。X-Man拿到手机之后,按下机房的开关,试图将先前已经创造的区块链条连接在自己这个节点区块链的末尾。大功告成,X-Man拥有了一条更长的区块链条,那些较短、存放着“X-Man转账给张三1000元”的区块链,以及在区块链世界里那则真实转账行为被一同成功销毁。(???)事实真的如此吗?在这里我可以很负责任的说,too young too simple,区块链世界规则的制定远比我们想象的要健全很多,还记得我们之前讲的“区块的ID至少会跟区块内所有小纸条的集合、即将与之相连的上一个区块ID、当前产生区块的时间戳以及挖矿节点的运气值等因素相关”。 在这里,正是因为打算连接到主链的过程中,主链会立马意识到,那条事先准备的链子(的第一个区块)的时间戳存在异常,不属于当前区块链世界里线性增长的时间戳,于是马上意识到这个事先准备的链子(的第一个区块)是无效的,需要重新计算。 在区块链的世界,重新计算的行为等同于把自己(节点)置身于同一个起跑线,跟世界上其他所有的节点一同竞争挖矿。你会说,我拥有更强大的计算能力,但是对不起,跟你竞争的对象并不是第五大道、南京西路、香榭丽舍大道上的某一个节点,而是全球所有算力的集合,在这个集合中,你拥有的算力永远都只是一个很小的子集。所以,根据区块链算力民主、少数服从多数的基本原则,这个构想将永远不会成立。除非....你控制着全球51%的算力,这也就是区块链世界里另外一个著名的概念,叫做“51%攻击”,但这也仅仅是一个理论值,在真实世界里这样的攻击我个人觉得是很难发动起来的,这里面就牵涉到很多经济、哲学甚至政治的因素。举个最简单的例子:X-Man为了回滚刚刚发生的一笔交易记录,成功发起了51%攻击,这意味着很快整个区块链系统将会崩盘,因为这次攻击已经严重伤害到人们对这套系统的信任,接着比特币开始暴跌至几乎一文不值;但是这个拥有51%算力的X-Man原本完完全全可以通过挖矿的方式获取更多收益,购买无数的iPhone手机。那他不是脑袋不是坏了还能是啥?对51%攻击话题感兴趣的同学可以阅读这篇文章《什么是比特币51%攻击?》。至此,我觉得区块链最基础、最核心的知识已经全部讲完了(除了挖矿内部实现原理,作为一个遗憾留在这里,有时间会完善掉),相信你已经对它有了一个宏观的认识。另外,由于这篇文章采用了适当抽象、类举的叙事方式,中间或多或少有些地方会跟区块链底层严谨的技术实现有出入,欢迎大家来纠错。另外,也是受限于自己知识结构的缺失,这篇文章会随着我对区块链更深入认识后,随时进行修订,最后更新时间可参考该回答下方的时间戳。--问答部分去中心化的系统中,到底是谁在发行货币?是无限量发行吗?比特币的货币是通过挖矿(工作量证明)来发行的,总数量是通过程序写死了2100万个,而第一笔区块奖励也是硬编码写死的。矿工挖出一个区块所获得的奖励,每隔21万个区块将减少一半,按照平均10分钟挖出一个区块的执行效率,也就就说差不多每四年会锐减一次。2009年1月起每个区块奖励50个比特币,2012年11月减半为每个区块25个比特币,2016年7月减半为12.5个比特币。基于这个规则,到2140年,所有比特币(20,999,999,980)将全部发行完毕,之后不会再有新的比特币产生。矿工节点的收益除了挖出区块以外还有哪些?矿工节点的收益主要由两部分组成:1)挖出新区块的奖励;2)挖出新区块内所含交易的交易费。但就目前来说,一个区块内的交易费大概只占到矿工总收入的0.5%甚至更少,大部分收益主要还是来自于挖矿所得的比特币奖励。然而,随着挖矿奖励的递减,以及每个区块中包含的交易数量增加,交易费在矿工收益中所占的比重将会逐渐增加。在2140年之后,所有的矿工收益将完全由交易费构成。是不是只有成为节点才能进行交易?、钱包、尤其是轻钱包是不是也可以挖矿?这个问题是读者问出的,可能之前也有同学提出过类似的问题,但是没有引起我足够的重视,后来发现其实我也把概念混淆了。我一并去查阅了相关资料,对节点和钱包有一些更完整的理解和定义。详细请阅读我的专栏文章《区块链节点与钱包的分类、边际和使命,看这篇文章就足够了》参考中心化与去中心化 https://www.douban.com/note/624421270/图说区块链 https://book.douban.com/subject/27084306/区块链是什么,如何简单易懂地介绍区块链? https://www.zhihu.com/question/37290469 什么是比特币51%攻击? http://8btc.com/article-1949-1.html区块链与新经济:数字货币2.0时代 https://book.douban.com/subject/26804497/詳解比特幣原理和運行機制 https://www.youtube.com/watch?v=P4seQcP77H4区块链是什么:从技术架构到哲学核心 https://v.qq.com/x/page/x0518nuh2z7_0.html区块链核心算法解析 https://book.douban.com/subject/27081206/深入理解比特幣的安全性及程式交易安全性與相關的密碼學原理 https://www.youtube.com/watch?v=3w1Tg3B_oKQ 深度了解区块链——拜占庭将军问题深入探讨 https://wallstreetcn.com/articles/338061精通比特币-挖矿与共识 http://zhibimo.com/read/wang-miao/mastering-bitcoin/Chapter08.html编辑于 2022-08-16 09:47赞同 6843554 条评论分享收藏喜欢
Blockchain Explorer - Bitcoin Tracker & More | Blockchain.com
kchain Explorer - Bitcoin Tracker & More | Blockchain.comBlockchain.comHomePricesChartsNFTsBuyMoreHomePricesChartsNFTsDeFiAcademyNewsDevelopersWalletExchangeBitcoinEthereumBitcoin CashEnglishEspañolPortuguêsPyccкийFrançaisDeutschBlockchain.com Sign In Sign InHold Zeta, Grow your crypto. Daily bonuses with Blockchain.com ->EURUSDCADGBPRUBCNYINRBRLTRY“Since 2007. At some point I became convinced there was a way to do this without any trust required at all and couldn't resist to keep thinking about ...” (Read More)Satoshi NakamotoBitcoin Talk • Jun 2010BitcoinBTC$67,626.38+0.82%551.58->417,113Transactions • 4.83 TPs$13,383,456,613Sent Today833,743Blocks • Last 2m51s666.63 EH/sNetwork Hashrate554.27 GBBlockchain Size772,888Unique Addresses 24 HrLatest BlocksBitcoin->833,743 • ViaBTC08 Mar 2024 • 01:29:43 GMT+0 3,129 Txs • 1.64 Mb833,74208 Mar 2024 • 01:07:28 GMT+0 2,634 Txs • 1.58 Mb833,74108 Mar 2024 • 01:02:22 GMT+0 578 Txs • 1.09 Mb833,74008 Mar 2024 • 01:02:18 GMT+0 3,320 Txs • 1.77 Mb833,739 • ViaBTC08 Mar 2024 • 12:54:34 GMT+0 1,198 Txs • 1.27 MbPricesMarket Cap->Bitcoin BTC$67,468.00+0.83%Ethereum ETH$3,951.90+4.32%BNB BNB$488.20+9.69%Solana SOL$148.40+3.97%Lido Staked Ether STETH$3,946.98+4.19%XRP XRP$0.63+1.31%Cardano ADA$0.73+0.27%Dogecoin DOGE$0.17+11.59%Shiba Inu SHIB$0.00004+14.62%Avalanche AVAX$43.18+0.99%Latest TransactionsBitcoin->b40ec-47afa13:32:570.00 BTC$0.00662b7-ad5f313:32:570.00 BTC$0.000ddee-3a1ed13:32:570.00 BTC$0.00c562c-fdde613:32:570.00 BTC$0.001008d-7cce213:32:570.00 BTC$0.00bf555-e38dc13:32:570.00 BTC$0.0091430-250d613:32:570.00 BTC$0.0030302-56fcd13:32:570.00 BTC$0.003fb99-443be13:32:570.00 BTC$0.000bbb9-d80b913:32:570.00 BTC$0.00e308b-c6ab813:32:570.00 BTC$0.003e7cd-1ceaa13:32:570.00 BTC$0.00c0650-5099f13:32:570.00 BTC$0.0025fbd-5188f13:32:570.00 BTC$0.00af499-90a8913:32:570.00 BTC$0.009afee-4247e13:32:570.00 BTC$0.00a7214-dc97613:32:570.00 BTC$0.00166c4-1c57413:32:570.00 BTC$0.00cf367-1976913:32:570.00 BTC$0.007a435-ad74e13:32:570.00 BTC$0.006cba9-c4d4d13:32:570.00 BTC$0.00e13ba-61c4913:32:570.00 BTC$0.00918f6-7f54713:32:570.00 BTC$0.00f7452-54f4413:32:570.00 BTC$0.0039f14-a583f13:32:570.00 BTC$0.006d891-98c3813:32:570.00 BTC$0.006fe1c-d582e13:32:570.00 BTC$0.0048936-a2e2c13:32:570.00 BTC$0.00100eb-59a2513:32:570.00 BTC$0.0054037-1762013:32:570.00 BTC$0.0049daf-a861a13:32:570.00 BTC$0.0053451-7031813:32:570.00 BTC$0.00a0abb-da61213:32:570.00 BTC$0.0059fb4-2ee0f13:32:570.00 BTC$0.0057a8a-a500d13:32:570.00 BTC$0.00a8fa0-2a6fe13:32:560.00 BTC$0.0088888-cbcef13:32:560.00 BTC$0.009f197-e68ec13:32:560.00 BTC$0.00f7d59-575ea13:32:560.00 BTC$0.00690c1-315ea13:32:560.00 BTC$0.0046894-408e213:32:560.00 BTC$0.00f8577-e6dd813:32:560.00 BTC$0.00dd06c-596c313:32:560.00 BTC$0.00048ad-4bebc13:32:560.00 BTC$0.000cb71-f4bae13:32:560.00 BTC$0.00a11a4-5aaa713:32:560.00 BTC$0.007bc5b-99b7a13:32:560.00 BTC$0.00049f6-7487813:32:560.00 BTC$0.00a4d24-6687313:32:560.00 BTC$0.006b794-bbf7113:32:560.00 BTC$0.008dfd7-bee6c13:32:560.00 BTC$0.002da0d-84b5b13:32:560.00 BTC$0.0091bb5-5de5213:32:560.00 BTC$0.002c022-acd4013:32:560.00 BTC$0.00a89ee-0fd3713:32:560.00 BTC$0.00b2848-dcd2f13:32:560.00 BTC$0.00d63f4-f9f2f13:32:560.00 BTC$0.00cfe48-76b2e13:32:560.00 BTC$0.0088888-dee2713:32:560.00 BTC$0.00435b9-d9b2513:32:560.00 BTC$0.00c6baa-46c2513:32:560.00 BTC$0.006f9ce-5461a13:32:560.00 BTC$0.00c41a6-9570c13:32:560.00 BTC$0.00618fd-f8d0613:32:560.00 BTC$0.004b7a3-9e5f913:32:490.00 BTC$0.00ba573-effe213:32:490.00 BTC$0.003f468-f44cf13:32:490.00 BTC$0.00c6393-732cf13:32:490.00 BTC$0.00cd856-154c613:32:490.00 BTC$0.00358ef-903c513:32:490.00 BTC$0.008c2b4-0c8a613:32:490.00 BTC$0.0040bc7-b7a9b13:32:490.00 BTC$0.00479f2-7e08f13:32:490.00 BTC$0.0033214-7468f13:32:490.00 BTC$0.00b2d53-4757313:32:490.00 BTC$0.00e2be4-6a86513:32:490.00 BTC$0.00444dd-ff76313:32:490.00 BTC$0.005d6f2-3845f13:32:490.00 BTC$0.002ef59-4005713:32:490.00 BTC$0.0091be3-32f3a13:32:490.00 BTC$0.000b24d-31d3613:32:490.00 BTC$0.00d8368-fae2e13:32:490.00 BTC$0.00c8975-d3a2113:32:490.00 BTC$0.001b4d5-d181c13:32:490.00 BTC$0.00e5557-a251a13:32:490.00 BTC$0.00d460c-0b50b13:32:490.00 BTC$0.004ec46-8a0fa13:32:420.00 BTC$0.00a5a62-a92ec13:32:420.00 BTC$0.0053a8c-231e213:32:420.00 BTC$0.00874b6-c15d413:32:420.00 BTC$0.0015bf1-289c713:32:420.00 BTC$0.0006cf4-fa8b313:32:420.00 BTC$0.0078c17-d60b113:32:420.00 BTC$0.006ed8d-ab7a613:32:420.00 BTC$0.004f1ac-ac29e13:32:420.00 BTC$0.007b898-e479713:32:420.00 BTC$0.0050382-2398913:32:420.00 BTC$0.003444b-0157e13:32:420.00 BTC$0.00c0ee0-34d6713:32:420.00 BTC$0.0092755-4835e13:32:420.00 BTC$0.00Bitcoin CashBCH$435.09+3.26%13.76->836,061Blocks • Last 0m49s3.16 EH/sNetwork Hashrate0.000013 BCHAverage Fee22Pending TransactionsChartsBitcoin Hashrate Distribution->EthereumETH$3,968.31+3.95%150.81->1,225,557Transactions • 14.18 TPs$4,863,390,098Sent Today19,390,769Blocks • Last 0m11s0.00 KH/sNetwork Hashrate0.006135 ETHAverage Fee25,275Pending TransactionsUnleash your trading potential with Blockchain.comLow fees. Fast trades. Pro experience.The Biggest Conversations in CryptoGet insights, analysis, and commentary from the sharpest minds in the industry.Subscribe22 min • Feb 28, 2024Exploring: Mavia with Tristan Chaudry from Heroes of Mavia28 min • Feb 22, 2024Trading 101: How to Stake Crypto with Figment, Josh Deems Business Development Staking at Figment30 min • Jan 30, 2024Trading 101: Navigating MiCA, FCA, and the Evolving Landscape of Crypto Regulation in 2024 with Josh Peschko of Talos22 min • Jan 26, 2024Trading 1.1: Bitcoin ETFs with Benjamin Dean, WisdomTree27 min • Jan 22, 2024Blockchain for Good: Bitcoin ESG with KPMG, Brian Consolvo, Technology Risk Principal 20 min • Dec 5, 2023Blockchain for Good: Growing Flowers with Bitcoin with Bitcoin BloemFollow Blockchain.comStay updated with the latest from Blockchain Twitter Instagram MediumHeatmapCrypto Market Cap->Explore top crypto assetsBLOCKCHAIN官网
BLOCKCHAIN官网
访问BLOCKCHAIN官网
钱包Blockchain是全球规模最大的在线钱包服务提供商, 用户基数较大。>> BLOCKCHAIN注册地址 <<
首页
注册教程
使用教程
奖励活动
交易费率
联系方式
1 / 3
2 / 3
3 / 3
❮
❯
成立时间
2013年
公司注册地
瑞士
币种数量
118个
KYC认证
是
交易方式
现货, 杠杆, 法币, 理财, 挖矿
交易手续费
0.03% - 0.10%
最大杠杆
5倍
平台币
BLOCKCHAIN积分
开放API
支持
手机APP
支持
在线客服
支持
官网
https://www.blockchain.com
BLOCKCHAIN钱包简介钱包Blockchain是全球规模最大的在线钱包服务提供商, 用户基数较大。Blockchain是知名onchain在线钱包服务商,同时也提供比特币区块链数据查询服务。2013年8月,手机安卓系统发现漏洞后,Blockchain.info 也发现了漏洞,现在已经修复。2014年1月,Blockchain.info的钱包服务已逾100万用户。2014年10月,Blockchain.info宣布已完成3050万美元 A 轮融资,光速创投和 Wicklow Capital 共同领投。目前,Blockchain.info已发展为比特币圈的明星企业,尤其在Onchain钱包领域占据领头羊地位。BLOCKCHAIN钱包特点Blockchain是全球最受欢迎的数字钱包。我们以打造一种更加开放,可用和公平的金融未来为使命,让这个未来在将来成为软件的一部分。简单:我们让比特币和ETH的使用变得安全,简单,有趣。安全地存储您的比特币并立即与全球任何人进行交易。安全:我们的安全中心帮助您备份您的资金, 并保护他们不会遭受任何未经授权的访问。买&卖:Blockchain与全球交易所合作,使您的钱包内的比特币买卖体验安全且便捷。精细的:分层确认(HD)地址。动态交易手续费。监视和只从只看地址支出。全球化:为140+个国家提供服务。 提供20+种货币汇率,包括JPY, RUB, SGD, USD, CNY, EUR, GBP等等。 25+种语言。永远全力支持:如果您需要帮助或有问题,我们最好的支持团队将永远为您服务。
Copyright @ 2023 www.zh-blockchain.com All Rights Reserved.
BLOCKCHAIN致力于让人们更容易的使用加密货币。
新手指南:一文读懂Chainlink
新手指南:一文读懂Chainlink
Skip to content
Blog
Menu
Menu
Announcements
Developers
Education
Research
Vision
More
More
IndustryMenu Toggle
Capital Markets
DeFi
Enterprise
Gaming
Insurance
NFTs
Real Estate
Social Impact
TopicsMenu Toggle
DECO Series
Economics
Metaverse
MEV
Real-World Assets
Scalability
Staking
Startups
Tokenization
Web3
ZK Series
ApplicationsMenu Toggle
AMM
Cross-Chain
DAO
DEX
Money Markets
Stablecoins
Synthetic Assets
Yield Farming
Zero-Knowledge
StackMenu Toggle
Brownie
Hardhat
Javascript
Python
Solidity
LanguagesMenu Toggle
Chinese
Korean
LanguageMenu Toggle
Chinese
Korean
SubscribeSubscribe
SubscribeSubscribe
New report: The Need for a Chainlink DeFi Yield Index.
Download now.
Clear all
Announcements
Developers
Education
Research
Vision
Automation
CCIP
Data Feeds
Data Streams
Functions
Proof of Reserve
VRF
Industry
Capital Markets
DeFi
Enterprise
Gaming
Insurance
NFTs
Real Estate
Social Impact
Topics
DECO Series
Economics
Metaverse
MEV
Real-World Assets
Scalability
Staking
Startups
Tokenization
Web3
ZK Series
Applications
AMM
Cross-Chain
DAO
DEX
Money Markets
Stablecoins
Synthetic Assets
Yield Farming
Zero-Knowledge
Stack
Brownie
Hardhat
Javascript
Python
Solidity
Languages
Chinese
Korean
Chinese 新手指南:一文读懂Chainlink
January 25, 2021
5 min read
Author:
Chainlink
Table of Contents
新手指南:一文读懂Chainlink
区块链的价值在于消除对手方风险
智能合约最大的痛点是无法在接入链下数据和系统的同时规避对手方风险
解决方案:Chainlink去中心化预言机网络
其他资源
Subscribe to newsletter
新手指南:一文读懂Chainlink
区块链的价值在于消除对手方风险
智能合约最大的痛点是无法在接入链下数据和系统的同时规避对手方风险
解决方案:Chainlink去中心化预言机网络
其他资源
Subscribe to newsletter
Chainlink是一个去中心化预言机网络,将智能合约安全地连接至区块链网络以外的数据和服务。现代经济中的传统系统一旦接入了Chainlink预言机,就可以连通最前沿的区块链技术,让商业和社会流程变得更加安全、透明且高效。
如今,加密货币和区块链技术逐渐进入主流视野,Chainlink预言机也不断接入越来越多的区块链应用,并在其中发挥关键作用。这个趋势使得更多人开始关注区块链行业,并对Chainlink预言机产生了浓厚兴趣。那么Chainlink到底是什么呢?
为了给刚开始接触区块链、智能合约以及预言机的朋友答疑解惑,本文将简要概括Chainlink预言机网络的价值以及它如何帮助区块链应用充分实现潜力。本文会聚焦三个关键问题:
区块链和智能合约的核心价值主张是什么?
Chainlink如何为智能合约打破自身限制?
Chainlink预言机解决方案如何为智能合约充分实现潜力?
区块链的价值在于消除对手方风险
要了解Chainlink,就必须先理解区块链和智能合约的核心价值。简而言之,区块链就是一个去中心化的计算机网络,网络中的计算机在一个共享账本中进行运算并储存数据。区块链与传统的中心化计算机网络存在以下差异:
任何一个人或组织都无法控制区块链。
任何人都可以向区块链发送指令,所有人都拥有平等的权限。
区块链上的应用和数据无法被篡改或删除。
所有交易都储存在账本中,并且账本在不断扩大。
交易使用区块链原生加密货币进行支付。
区块链之所以具有以上这些属性,是因为网络中有几千台计算机在运行同样的软件、处理同样的交易、储存同样的数据并不断交叉检查,对网络状态达成共识。区块链的经济激励机制驱动着网络中所有参与方,鼓励节点诚实守信并达成共识。去中心化网络的各个节点会重复验证并储存交易,并因此获得经济回报。这使得操纵区块链共享账本的成本变得极其高,可行性几乎为零。
这个机制让区块链在多方流程中展开运算并储存数据时具有极高的安全性和可靠性。而区块链最核心的价值是可以消除对手方风险。所谓对手方风险就是指合约中另一方未能履约的风险。举个例子,如果要与陌生人交易数字资产,那么谁应该先打钱呢?怎么判断对方账户里的钱够不够?怎么防止账户里的钱被花两次(注:这个我们通常称之为“双花问题”)?通常来说,交易双方会委托第三方处理付款或进行清算,辅助交易顺利开展或在发生纠纷时进行仲裁。相比之下,区块链则为交易提供了一个更加公平可靠且防篡改的系统。用户确信一旦向区块链发送了交易,区块链就可以按照事先输入的指令完美执行。
区块链与银行的不同之处是交易双方无需托管,可以直接进行转账
比特币等加密货币之所以能够发展成如今的体量,都要归功于区块链的去中心化架构。区块链中不存在任何中心化实体有权超额发行货币(注:比特币的上限是2100万枚),比特币的底层区块链网络中有几千个遍布全球的计算机节点验证交易。另外,区块链的去中心化架构还能使用户直接交换价值,也就是所谓的“P2P”或“点对点”交易,绕过所有中间托管方,避开中介费和审查,最终用户可以保留对其资产和数据的全部所有权。
然而,区块链除了转账和在账本上做记录以外还可以实现许多其他的应用场景。一些可编程性较高的区块链可以支持更高级的命令,比如在网络中运行应用,基于预先设定的逻辑(即:如果x事件发生,则执行y行动)触发应用。比方说,如果明天777航班取消,则支付一笔77美元的保险赔偿;如果没取消,则不用付款。这种可以处理各种代码逻辑的区块链应用被称为“智能合约”。自从2015年以太坊问世以来,智能合约一直都是区块链发展的焦点。
智能合约最大的痛点是无法在接入链下数据和系统的同时规避对手方风险
智能合约存在一个内在矛盾,那就是它需要输入数据(如:航班起飞信息)来执行命令,但它所需的大部分数据都不是储存在区块链上的。智能合约本身也无法连接链下数据,因为区块链就像黑匣子一样是完全封闭的,无法与外部世界连通。也就是说,资产价格、比赛分数、物联网传感器、web数据和企业系统等各种真实世界的数据集完全无法传输到区块链上,这极大束缚了智能合约开发者的创造力。如果无法获取航班数据,怎么能开发出航班保险协议呢?
要将链下数据高效地传输到区块链上,唯一的方法就是使用一种叫“预言机”的软件。那么问题就来了:如何保障预言机与底层区块链具有同样的安全性和可靠性?因为只有这样才能维持智能合约的核心价值主张,那就是消除对手方风险,在最大程度上实现保障。如果用一个中心化的预言机将数据传输至智能合约,那么这个预言机就有权利操纵智能合约最终输出的结果。这种单点故障我们称之为“预言机问题”,它会威胁到到整个智能合约的安全。
中心化的预言机会导致数据传输到区块链时出现单点故障
解决方案:Chainlink去中心化预言机网络
Chainlink是一个去中心化的预言机网络,旨在将区块链智能合约安全可靠地连接至链下系统。Chainlink采用了与区块链相同的模式,建立了去中心化的独立预言机网络,网络中的预言机从多个数据源共同获取数据,将数据聚合,并将经过验证的聚合数据传输至智能合约,触发合约执行,在整个过程中规避了所有中心化风险。
比如,Chainlink会通过ETH/USD喂价将以太币价格传输到区块链上,Chainlink喂价采用了众多独立的预言机节点和数据源,获取并传输价格数据(见下图)。区块链应用可以通过ETH/USD价格预言机获取当前以太币价格,将以太币作为贷款抵押,或结算以太币价格预测协议。
ETH/USDChainlink喂价从多个独立的预言机运营商聚合价格数据
Chianlink预言机网络除了去中心化之外,还建立了多层安全机制,为用户在最大程度上提供保障:
通用的基础架构——Chainlink框架灵活性极高,可以在上面开发和运行预言机网络。用户可以亲自打造或连接至专属的预言机网络,无需依赖其他预言机网络。
Chainlink网络、预言机网络、Chainlink节点以及节点运营商分布图
数据签名——Chainlink预言机会使用独特的加密签名技术对发送到链上的数据进行签名,用户可以证明数据来自某一预言机节点。
优质数据——Chainlink可以将智能合约连接至包括付费数据提供商在内的所有链下系统。智能合约还可以向其他系统发送指令,比如向传统支付系统发送支付指令。
兼容所有区块链——Chainlink可以在任何区块链上运行,无需依赖其他外部区块链。这意味着Chainlink可以支持公链和企业级区块链等各种区块链环境。
Chainlink可以为任何区块链上的智能合约输入输出数据
服务水平协议——Chainlink最终将允许用户自定义链上智能合约的预言机服务条款,其中预言机节点需要支付一笔保证金,只有在节点按照服务条款完成任务后(如:按时传输数据)才能拿回保证金。
声誉系统——Chainlink预言机的历史性能参数都可以在链上公开查看,而且数据经过签名验证。用户可以根据平均响应时间、任务完成率和平均保证金等各种历史性能参数筛选预言机。节点运营商也可以选择性地提供额外数据,比如身份信息、地理位置和第三方认证。
节点可以在Chainlink市场列出自己的关键功能特色,用户可以结合这些特色以及链上性能参数进行筛选
其他功能——Chainlink目前还在开发其他安全功能,其中包括预言机和数据隐私以及高级预言机计算等。
Chainlink预言机实现了可以与底层区块链相媲美的安全性和可靠性,因此催生出了更多的高级智能合约应用。我们在博客文章《Chainlink预言机在智能合约中的77种应用方式》中提到了Chainlink预言机一些主要的应用场景,具体内容如下:
去中心化金融(DeFi)
贷款、支付、衍生品和资产权益等各类传统金融产品都开始通过智能合约出现在区块链上。智能合约使这些金融产品变得更加安全透明,并且降低了它们的准入门槛。这些DeFi应用接入了Chainlink预言机获得资产喂价和利率,并验证资产抵押率,因而实现了各种高级功能,比如以公允市场价值发放贷款、自动发放股息或交割期权合约。
保险
智能合约还可以用来在区块链上创建参数保险合约。Chainlink目前正在为Arbol的农作物保险产品提供天气数据,全世界各地的农民只要登陆互联网就可以获得这款农作物参数保险。这款产品根据降雨量和气温等参数,基于合约预先设置的逻辑(如:如果今年雨水量超过x,则支付y赔偿金。)及时且公平地进行理赔。
游戏
现在开发者还开始在区块链上发布智能合约游戏应用。对于许多区块链游戏来说,其中一个关键要素就是随机数生成,比如随机创建游戏场景或抽出中奖玩家。Chainlink推出了一个随机数解决方案,名为Chainlink可验证随机函数(VRF)。Chainlink VRF可以生成随机数,并将随机数传输至智能合约。用户可以证明随机数是公平公正的,因为无论是游戏玩家、游戏开发者还是第三方都无法篡改或操纵生成的随机数。
Chainlink VRF为区块链游戏场景输入和输出随机数
传统系统
Chainlink的另一个关键应用场景就是为数据提供商、物联网、网站和企业等传统系统提供一条路径,向所有区块链网络出售其数据和服务。由于Chainlink网络可兼容任何区块链,因此可以作为一道门户,将所有链下数据基础架构接入区块链网络。近期,世界经济论坛与Chainlink联合创始人Sergey Nazarov共同发布了一份名为《弥合治理差距:区块链和传统系统之间的互操作性》的报告,其中详细阐述了行业标准的互操作框架如何接入Chainlink这类预言机网络连通传统系统和区块链环境。
以上是Chainlink可以为智能合约带来的部分价值,帮助其更好地连通链下数据和系统,并提升安全性和可靠性。最终,区块链智能合约应用将跨越更多垂直市场,实现更丰富的应用场景。
如果说区块链是去中心化的计算机网络,智能合约是去中心化的应用,那么Chainlink就可以理解成是去中心化的互联网,让智能合约可以与链下世界交互,并同时保持区块链技术在安全、透明和信任方面的核心价值。
其他资源
如果你刚开始接触区块链,并且希望更加深入地了解这个领域,可以按顺序阅读以下几篇科普系列文章:
什么是区块链
什么是智能合约
什么是数据和API
什么是预言机问题
什么是Chainlink节点运营商
如果你想要看一些更加技术性的内容,请查看Chainlink白皮书、开发者文档以及Chainlink博客发布的文章。
欢迎关注Chainlink在各个社交平台上的官方账号,并订阅Chainlink新闻,第一时间了解Chainlink最新消息。
Chinese
Need Integration Support?
Talk to an expert
Faucets
Get testnet tokens
Read the Docs
Technical documentation
You might also be interested in
一文读懂可验证网络如何保障互联网信息的真实性
可验证网络采用了区块链技术、去中心化计算以及加密技术来执行合约,以提升系统透明性,并让用户更好地掌控自己的数据、身份信息和资产。
February 22, 2024
3 min read
新报告:对Chainlink DeFi Yield Index的需求
Chainlink DeFi Yield Index (CDY Index) 旨在利用业界标准的Chainlink价格预言机来聚合DeFi借贷收益率。通过提高链上借贷协议收益机会的易寻性,CDY指数旨在提升DeFi借贷市场的资本效率。
January 29, 2024
2 min read
一文读懂跨链桥的七大关键漏洞
要实现跨链安全性,只采取某一种安全机制是不够的。实际上,要建立稳健的跨链安全模式,需要采取深度防御机制,综合使用多种安全机制,全面地防范攻击。这也是我们构建行业标准的跨链解决方案Chainlink CCIP的初衷。
January 24, 2024
3 min read
Stay updated on the latest Chainlink news
DevelopersDocs
Faucets
Developer Hub
Developer ExpertsAPPLY
Chainlink Hackathon
Bootcamp
Use Cross-Chain (CCIP)
Use Data Feeds
Use Randomness (VRF)
Use Automation
Use Functions
Node Operators
ProductsCross-Chain
Data Streams
Market and Data Feeds
Functions
VRF
Automation
Proof of Reserve
Use CasesOverview
Financial Services
DeFi
Gaming
NFT Collectibles
Climate Markets
Enterprise
Insurance
CommunityCommunity Overview
Grant Program
Events
Become an Advocate
Code of Conduct
ResourcesWhitepaper
Case Studies
Tech Talks
Blog
Economics 2.0
Staking
FAQs
Education Hub
What Is DeFi?
What Is an Oracle?
What Is a Smart Contract?
What Is an NFT?
What Is Web3?
What is Asset Tokenization?
ChainlinkEcosystem
Data Providers
Press
Team
Circulating Supply
Brand Assets
Chainlink Badging
ContactTalk to an Expert
Security
Support
Custom Chainlinks
Press Inquiries
Social
YouTube
Discord
Telegram
Kakao
Chainlink®
© 2023 Chainlink Foundation
Privacy Policy
Terms of Service
Go to search page
BNB Chain - Build Web3 dApps on the Most Popular Blockchain
Chain - Build Web3 dApps on the Most Popular Blockchain在BNB Chain上创建Web3由社区主导的区块链生态系统提供Layer-1和Layer-2扩展解决方案。在BNB Chain上开发应用探索DAppBNB Chain最新动态Learn More加入BNB Chain生态系统简单三步,开启BNB Chain之旅。下载钱包您可以通过钱包连接到BNB Chain并管理你的资金。下载钱包获取币安币币安币是BNB Chain的货币,可在dApp中使用。获取币安币使用DApp发现BNB Chain上最热门的项目。找到自己的第一款DApp在BNB Chain创建BSC支持最流行的编程语言,各种灵活的工具,并配有清晰规范的文档。区块链的设计考虑到了实际的使用体验。您可以快速上手,在链上部署您的应用程序。开始开发阅读文档完全与EVM兼容性能最好且能兼容EVM的第1层区块链。完全兼容各种EVM工具,交易处理速度为EVM的35倍。庞大的用户群日活跃用户数量位居区块链榜首。但即使处于EVM交易高峰期,交易费用依然低廉。多样化的资产API支持所有流行代币,可借助功能强大的币安桥进行桥接。为您提供绝佳的组合机会。强劲的生态系统顶层RPC节点、钱包、区块链探索者、数据指数和大量的资金扶持共同构成强大的生态系统,为区块链提供支持。BNB Greenfield去中心化数据存储系统和经济BNB Greenfield是整个BNB Chain生态系统中的去中心化存储基础架构,用户和DApp可在其中创建、存储和交换拥有完全所有权的数据,从而形成新的数据经济。了解详情开发者计划Builder GrantAwarding grants to innovative projects building open sourced infrastructure and developer tooling.Learn MoreGas GrantGet up to $15k monthly rewards to accelerate your dApp's growth.Learn More查看全部计划通过BNB侧链扩展借助BNB侧链这一基础设施,开发者和应用团队可搭建并运行其专用区块链,打造自身的价值体系,并为大量用户提供服务。运行侧链的同时仍可与BNB Chain保持密切联系。应用专属侧链具有独立的社区治理和经济体系,可完全遵循应用程序的开发逻辑。可持续发展BNB侧链是一个高性能的区块链,每秒交易量大且燃料费低。主链互通项目拥有BNB侧链的同时,也是更广泛的BNB Chain生态系统的一部分。支持BNB侧链得到了大量用户和开发人员的支持。优质DApp尽在DappBay全面浏览相关DApp、迅速探索和寻觅收益丰厚的初创项目、轻松通过DappBay辨别存在潜藏风险的DApp。立即探索DappBay即刻参与,加入社区BNB Chain是一个去中心化网络,汇集了全球的开发者、验证者、用户、持有者和爱好人士。DiscordTwitterYouTubeTelegramGitHub搜索Trust WalletBNB Chain WalletDappBay构建DevelopersSDKsWhitepaperBuild N’ Build ForumBridges参与项目EventsMVB ProgramHackathonDeveloper ProgramsMartians ProgramBug Bounty关于Privacy Policy Terms of UseCareersVerificationContact Us© 2024 bnbchain.org. All rights reserved. 简体中文EnglishBahasa IndonesiaEspañol (Latinoamérica)FrançaisPortuguês (Brasil)Tiếng ViệtTürkçeРусский简体中文繁为开放式金融而生
为开放式金融而生
开发者 白皮书开发者文档测试币水龙头JSON-RPC APICSC IDE浏览器 主网测试网跨链桥博客生态发展 扶持计划大使招募生态应用 简体中文 简体中文 繁体中文 English CoinEx Smart Chain
CoinEx智能链CSC CoinEx智能链基于PoS共识协议打造,去中心化且高效节能, 帮助您轻松构建自己的去中心化应用程序 为什么使用CSC智能链 友好兼容以太坊智能合约 以太坊上Dapp可无缝迁移至CSC上 节点无需许可,更去中心化 支持最多101个出块节点,按照CET质押数量排序确定 极高效率和低交易费 秒级出块速度,手续费低廉 轻松玩转CSC 我是开发者 在CSC上部署应用只需要3步,即可创建属于自己的应用。 连接测试网络 编译运行环境 调试和发布应用 1 连接测试网络2 编译运行环境3 调试和发布应用我是普通用户 轻松参与DeFi项目。您只需操作3步,即可设置帐户并探索更多功能。 下载钱包 转入币 探索CSC项目 1 下载钱包2 转入币3 探索CSC项目 CoinEx Smart Chain基金会,为CSC生态建设保驾护航 CoinEx Smart Chain基金会推出CSC生态扶持计划,邀请开发者在CSC上构建去中心化应用,我们将为优秀项目提供资金、技术、市场等资源的支持 立即申请 公链大使 成为CSC公链生态系统的一部分,与CSC一起共建社区,分享技术,推荐项目,享受生态激励 立即申请 跨链桥 CSC致力于构建公链基础设施,现推出跨链桥将他链资产与CSC链资产安全、快速地相互转换。 点击进入 多链多币种钱包 支持CSC等多链资产,一站式管理 个人掌握私钥,自我管控资产 多重安全措施,确保资产安全 了解更多 Download on the Apple Store Download on the Google Play Download for Android APK 扫描二维码下载 订阅获取最新CSC资讯 订阅 订阅电报频道 关于 博客品牌素材联系我们 技术支持寻求投资开发者招募 关于 博客品牌素材联系我们 技术支持寻求投资开发者招募 Copyright@2024 CoinEx Smart Chain
区块链CORE:突破无限无通胀的可能性 - 知乎
区块链CORE:突破无限无通胀的可能性 - 知乎切换模式写文章登录/注册区块链CORE:突破无限无通胀的可能性ty1024.eth什么是CORE?Core Chain 是一条由 Core Dao 团队孵化的 Layer1 公链,结合了比特币的 PoW、DPOS、以太坊的可扩展性等特性。Satoshi Plus 共识Core 出现之前,加密市场一直深受「区块链三难」困扰,即去中心化、安全性和可扩展性无法同时实现。Core DAO 开发团队直面区块链三难困境,设计了一种独特的共识机制,称为Satoshi Plus 共识。它是将比特币的工作量证明(PoW)的去中心化和安全性与委托权益证明(DPoS)的可扩展性相结合。BTC 矿工可以通过Satoshi Plus 共识将他们的算力贡献给CORE,代币持有者也可以将CORE 质押给去中心化的节点来参与社群治理。借助PoW 的去中心化和DPoS 的可扩展性,Core 上的节点可以安全快速地生成块并验证交易。代币模型节点挖矿(839,900,000 个 CORE 代币;占总供应量的 39.995%)用户(525,600,000 个 CORE 代币;25.029%)贡献者(现有和未来)(315,000,000 CORE 代币;15%)储备(210,000,000 个 CORE 代币;10%)财政部(199,500,000 个 CORE 代币;9.5%)中继奖励(10,000,000 CORE 代币;0.476%)遵循比特币稳健的货币模型,CORE的供应量硬性上限为 21 亿个。 在硬顶之上,所有区块奖励和交易费用的一定比例将被销毁,类似于以太坊的“超稳健货币”模型。 销毁的确切百分比将由 DAO 确定。代币功能支付交易/Gas费在核心网络上质押参与核心网络治理CORE项目生态Core network 在测试网阶段已展现了足够的活力和优势,测试网拥有超过 120 万个唯一地址、40 万个每日活跃地址和 46.7 万笔日常交易,是 Core 早期功能的证明。1 月 14 日,Core network 已经主网发射,自上线后,Core 的每日转账数保持在了 2 万 9 千笔以上,已经超过了大部分的新公链。目前已经有一些生态项目布局在 Core DAO 上,包括 DEX 类,钱包类,跨链桥类项目。1、Layerzero ——跨链互操作协议LayerZero 是一种互操作性协议,是可扩展、安全和去中心化的跨链互操作性提供了框架。通过将各种链连接到一个平台和接口,多链应用程序可以方便地通信、转移数字资产并达成共识。Core 与 LayerZero 的集成是快速扩展用例和开发的早期机会。2、LFG Swap ——Core 上首个 DEXLFGSwap 将多条链部署到 Core 链上,LFGSwap 为 CoreDAO 带来大量的原生加密用户,而 Core 的庞大社群基础也将为 LFGSwap 引流。3、Elementwallet——Core 上首个钱包elementwallet 是为 Core network 构建的第一个钱包应用,作为访问 Core 网络的第一个也是主要的接口,Element 将从加密钱包功能开始,使 Core 参与者能够发送、接收和抵押 CORE 代币以及许多其他功能。4、Switchboard——Core 上的预言机Switchboard 是一种用于通用数据馈送的无需许可的预言机协议。在 Switchboard 预言机网络的支持下,Core 上的开发者可以安全、无需许可地连接跨链和链下数据,如价格、体育、天气等。发布于 2023-05-24 17:01・IP 属地四川区块链(Blockchain)比特币 (Bitcoin)Web 3.0赞同 7添加评论分享喜欢收藏申请
登链社区 - 区块链技术爱好者的家园
登链社区 - 区块链技术爱好者的家园
文章
问答
讲堂
专栏
集市
更多
提问
发表文章
活动
文档
招聘
发现
Toggle navigation
首页 (current)
文章
问答
讲堂
专栏
活动
招聘
文档
集市
搜索
登录/注册
欢迎加入登链社区 - 区块链技术爱好者的家园
登录/注册
分类
比特币
以太坊
Layer2
DeFi
NFT
预言机
联盟链
Substrate
零知识证明
更多...
最新推荐
测试币水龙头大全
区块链技术入门学习指引
入门指引-区块链基础教程
Solidity 最新中文文档
热门 DEFI 分析
电子书:以太坊设计与实现
专栏《智能合约开发 - 打通 Solidity 任督二脉》
零知识证明学习资料汇总
精选文章 »
Starknet和zkSync 详细比较分析
每周以太坊 2024/02/24
如何使用 Circom 和 SnarkJS 实现极简 NFT zkRollup
每周以太坊 2024/02/10
Solana编程模型:Solana开发入门
指南:用 Anchor 构建 Solana 程序
每周以太坊 2024/02/03
使用 ERC-1271,让 Dapp 兼容智能合约钱包
Foundry 常用命令和作弊码速查表
每周以太坊 2024/1/27
离线授权 NFT EIP-4494:ERC721 -Permit
Viem React 教程:如何转账、铸币和查看链状态
深入研究智能合约反编译
每周以太坊 2024/1/13
智能合约设计模式:代理
每周以太坊进展2024/1/6
如何从以太坊迁移到 Solana:开发人员指南
Vitalik :让以太坊重归加密朋克
如何解码原始 EVM Calldata 数据
每周以太坊进展 2023/12/23
最新文章 »
MEVBot 攻击事件分析
Layer2简单总结
Ethernaut 题解 - Switch
Web3 极客日报 #1450
漫谈 Layer123
绕过EOA账户检查
Starknet和zkSync 详细比较分析
deny_list在coin中的应用
move 语言开发环境搭建| try to web3 系列 (一)
SharkTeam:Woo Finance被攻击事件分析
Dacade平台SUI Move挑战者合约实践——去中心化市场DApp(...
Web3 极客日报 #1449
一个通用的套利交易模型
Huff 入门以及简单的应用
NFTScan :什么是 ERC-404?深入解读 NFT 协议的未来
Michael.W基于Foundry精读Openzeppelin第49期——ERC20Wra...
PoV:让以太坊再燃Cypherpunk之火
sui move deny_list
闪电网络:技术与用户体验(六):只有一种比特币
Sui Dapp Kit Hello Sui交互
最新问题 »
付费找人写功能
1 回答
rollup交易会导致双花问题么?
1 回答
rollup的打包工作是由谁来完成的?
2 回答
solana里面所有的的token,功能都一样吗?
1 回答
关于递归铭文的实现问题
1 回答
钱包授权问题
1 回答
Remix 部署本地网络 authentication needed: passw...
1 回答
如何对目标合约参数为结构体的函数进行call或deleg...
1 回答
付费找人部署虚拟货币钱包app
1 回答
部署虚拟货币钱包
1 回答
付费找人写功能
3 回答
唤醒授权钱包,发起授权转账
1 回答
判断一个合约是否是erc20合约
1 回答
使用geth和ligthouse同步时,ligthouse客户端报“ F...
1 回答
UniswapV3的router是不是在sepolia以及op,arb的se...
2 回答
哪位大神可以帮忙部署一套类似opensea站?付费
2 回答
悬赏问题 »
5
关于递归铭文的实现问题
5
如何对目标合约参数为结构体的函数进行call或deleg...
10
部署虚拟货币钱包
10
在goerli上,flashbots 发送bundle , 能得到bundleh...
5
如何获取内存池中每个交易的signedTransaction hex...
10
如何获取内存池mempool中每个交易的signedTransact...
5
请问一下,要怎么发一个不允许用户买入在薄饼买入...
25
找到币安支持BSC的币在BSC上的地址
30
为什么断网后旧区块还继续同步
5
foundry中如何使用verify功能?
5
(怎么生成合约地址)欧易交易所实现逻辑
10
geth搭建以太坊私链问一下挖矿节点如何退出?
5
ERC1271这个标准的应用场景是什么?
100
【bsc链】各位大佬,怎么基于当前公网最新区块模拟...
5
大佬们 execution reverted是什么情况呀
15
关于LayerZero跨链协议入门教程的复现问题
推荐专家 »
首席开发
CTO
Footprint Analyt
副主任
CTO
研究员、教授
Trapdoor创始人
区块链研发工程师
城市合伙人
珠海
长沙
杭州
香港
登链翻译计划-拓荒之星 »
Tiny熊
翻译小组
六天
Po
生活缺乏心跳
aisiji
darren
Meta
发表文章
我要提问
签 到
2024-03-08
星期五
最新公告
参与翻译计划,做 web3 中文内容的拓荒者
推荐我的文章给社区小伙伴
区块链开发者学习路线图
加入社区微信群
关注我们,精彩内容不错过
知乎
推特
公众号
热门文档 »
Solidity 中文文档 - 合约开发
Foundry 中文文档 - 开发框架
Hardhat 中文文档 - 开发框架
ethers.js 中文文档 - 与链交互
Truffle 中文文档- DApp框架
web3.js 中文文档 - 与链交互
以太坊改进提案EIP翻译
以太坊域名服务(ENS)文档
Etherscan API 手册 - 查询链上数据
热议话题 »
智能合约
Solidity
NFT
以太坊
DeFi
区块链
Web3
DApp
每周以太坊
预言机
Chainlink
零知识证明
安全
FileCoin
比特币
IPFS
Uniswap
EVM
Move
Layer2
NFTScan
区块链安全
入门
去中心化存储
gas
社区财富榜
»
Tiny熊
304649 学分
晓娜
240856 学分
Chainbase
56941 学分
翻译小组
51257 学分
开发者七哥
21532 学分
Ethernaut CTF
11092 学分
Star Li
7894 学分
李大狗
7630 学分
Ashton
5518 学分
六天
4859 学分
关于
关于我们
社区公约
学分规则
Github
伙伴们
ChainTool
为区块链开发者准备的开源工具箱
合作
广告投放
发布课程
联系我们
友情链接
关注社区
Discord
Youtube
B 站
公众号
关注不错过动态
微信群
加入技术圈子
©2024 登链社区 版权所有 |
Powered By Tipask3.5|
粤公网安备 44049102496617号
粤ICP备17140514号
粤B2-20230927
增值电信业务经营许可证
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
取消
发送