95%的区块链技术基础知识在这个白皮书里

区块链技术(“blockchain”)的兴起是一种类似于互联网崛起的范式转换事件。本文概述了区块链技术的优势和机遇。我们认为区块链技术有一天会促进世界上大多数的信息交换(“交易transactions”)。区块链不应被视为比特币的同义词。比特币代表了一种基于区块链的解决方案,适用于许多信息交换问题之一。虽然比特币是第一个基于区块链的数字货币,引起了媒体的广泛关注,但区块链的影响已经超越了比特币。

在区块链之前交换信息依赖中介实体

首先,让我们使用最常见的交换信息的例子来看待区块链前的世界:金钱。为了提供帮助,我们将介绍Zander,一个美国千禧一代,有着在网上买东西的贪得无厌的愿望;另外一个是位于澳大利亚的小型在线企业老板Tara。两人即将交换信息以完成交易。具体而言,Zander希望向Tara捐赠100美元,以换取Tara的手工制品之一。Zander和Tara可以使用任何一种一致同意的货币。他们可能会同意该产品价值100美元,或120加元,或80英镑。

Zander可能会通过互联网向Paypal这样的中介实体提供100美元来执行交换。然后,Paypal将审核并验证信息交换。Paypal的代码将确认Zander和Tara都在Paypal网络上。Zander真的是基于他的登录凭据,位置和过去的行为的Zander吗?在某些情况下,Paypal可能会让人员审核该交易。如果一切顺利,Paypal将与大通银行和澳大利亚联邦银行等其他中介实体合作完成交易。这些其他中介实体执行类似的验证。最终,几天后,100美元从Zander的帐户转到Tara的帐户。

重要的是,每个中介实体都会采取措施来帮助进行交易。Paypal可能需要1美元。大通银行可能需要另外2美元,澳大利亚联邦银行可能会再增加2美元。由于Zander和Tara居住在不同的国家,由于法规和谈判的跨国合作伙伴关系,中介实体的数量和总费用金额会增加。

区块链:分布式网络

区块链技术允许Zander和Tara在没有中介实体的情况下交换信息。相反,区块链技术自动创建和维护分布式网络。在最纯粹的例子中,区块链网络由许多单独的计算机组成,取代了这些大型的中介实体。在区块链世界中,这些计算机的操作员被称为矿工。这些计算机或节点构成网络的供应方。成功的区块链网络将拥有大量有助于传输信息的计算机。如果区块链网络中只有少数计算机,那么像Zander这样的人需要等待更长时间才能将信息传递给Tara:原因是计算机会将忙于传输其他信息。更多的计算机意味着信息可以更快地移动。

为了帮助区块链网络中的计算机相互通信,区块链技术必然会创建一种货币或“coin”(也称为“加密币”,“加密货币”,“数字代币”和“数字代币”)。每个区块链根据网络中传递的信息类型生成唯一的区块链代币。BitCoin区块链产生比特币。以太坊区块链产生以太。Litecoin区块链生产莱特币。Litecoin和以太坊是数百种’altcoins’的例子,它们是比特币的替代品。

在今天的区块链环境中,Zander和Tara含蓄地同意美元与他们选择的区块链代币之间的汇率。他们可能会利用市场来帮助他们确定这一比率。今天,他们可能会使用区块链市场领导者:比特币。如果市场说100美元等于1比特币(实际汇率低很多),那么Zander告诉比特币区块链网络他想要向塔拉发送1枚代币。比特币网络中的众多计算机或节点之一接受此请求。实际上,节点竞争机会成为一起创建成功交易的区块链中的“块”。“获胜”节点是链中的第一个块。然后,该节点将信息传递给另一个节点,该节点成为链中的第二个块。在每个步骤中,许多节点竞争将信息传递到下一节点的机会。获胜的节点或“块”不断传递信息,直到它到达Tara。这个交易区块链从Zander延伸到Tara,没有休息。通过这种方式,许多分布式实体在传递信息而没有中介实体参与。削减中介实体意味着更少的费用和更快的信息流,因为网络中的所有节点都使用相同的通用货币。

实际上,如果Zander和Tara今天使用比特币,他们可能仍然需要依赖中介实体。Zander首先需要将他的美元换成比特币。他将向CoinBase等“交易所”公司支付费用以转移其货币。在此之后,Zander可以将他的比特币发送给Tara。如果Tara希望将比特币转换成另一种更实用的货币,那么Tara将需要使用交易所。在未来,如果区块链货币成为默认货币(类似于今天的美元),那么Zander和Tara就不需要就汇率达成一致,也不需要将美元兑换成加密币。在这个假想的世界中,Zander将用数字货币购买他的杂货,用这种货币支付他的租金,并将这个数字货币发送给Tara,Tara将能够使用相同的数字货币直接购买自己的商品和服务。如果每个人都同意使用相同的加密数字货币,则不再需要将美元兑换成加密数字货币。

区块链:基于激励的分布式网络

但是,为什么要成千上万的计算机自愿加入区块链网络并争取传播信息呢?答案是区块链自动“支付”这些有用的计算机。每个获胜区块都从区块链网络接收数字代币,而不是来自Zander或Tara等个人。例如,在Litecoin网络中,每当计算机被选为块传递信息时,每台计算机都会从区块链中接收少量的Litecoin。如果网络上只有很少的计算机(“供应”),则每台计算机需要相对较长的路径才能将信息从Zander传递给Tara,并且区块链网络将为每台计算机支付相对较高的金额。由于网络发出更高的支付款,新计算机更有可能加入网络。通过为供应商生产数字代币并向需求者收取任何费用(Tara和Zander),区块链网络提供了一种新颖的激励结构。通过直接向网络中的矿工发放代币,区块链会产生信息传输的成本,而不是将其传递给使用网络的个人。因此,Zander,Tara和其他类似的人都被激励加入该网络。

由于区块链是分散的,矿工无法控制或影响代币的价格。如果一些矿工决定停止开采区块链代币,导致价格上涨,其他矿工将因价格上涨而开始采矿,并恢复市场均衡。与此之前的区块链世界形成鲜明对比,在这个世界中,由于新供应商的准入门槛较高,中介实体可以提高交易价格,事实上他们也这么做了。

过去,其他分布式网络未能实现广泛采用,部分原因是它们无法激励供应商加入网络。一个例子是Bittorrent,一个允许用户共享文件的点对点网络。虽然用户渴望下载这些文件,但很少有人自愿作为这些文件的主机,因为没有动力这样做。

区块链:基于加密的分布式网络

区块链利用密码学来保护交易。与传统交易不同,区块链交易不会因为被黑客攻击或逆转而受到影响,这是由于加密技术取代了中介实体。在高层次上,网络中的每台计算机实际上都在解决部分预定义的数学问题(“加密拼图”)。解决这个难题的第一台计算机“赢得”将信息传输到下一台计算机的权利。区块链网络中的计算机然后竞争解决下一个难题。区块链世界的加密基础提供了数据保证,信息将从Zander传递到Tara。

在没有区块链的世界中,Zander与Tara的交易可能涉及Paypal,Chase Bank以及其他中介实体,如亚马逊网络服务(AWS),Visa和Oracle。每个中介实体都有可能是潜在的故障点。这些实体各自维护独立的代码,用于检查传入的信息并将其传递给下一个中介实体或最终用户。如果这些实体中的任何一个被黑客入侵,有软件错误,或者只是决定改变他们的业务方式,那么过去交易的交易和记录都将面临风险。

相反,在区块链世界中,所有代码都直接在区块链的框架内维护。矿工解决区块链代码预先定义的问题,但矿工不能改变规则。计算机不维护代码,便于信息传输。此外,一旦新的区块链代币启动,没有人包括创始开发人员,一群活动家或黑客可以更改此版本的区块链代码。

相反,如果实体想要更改区块链的代码,他们需要创建一个全新的版本。如果创始开发商提供像以太坊那样的区块链代币的新版本,那么从技术上来说就是创造了一个新的代币。如果购买和销售以太坊(“市场”)的人同意新代币是一个更好的版本,那么新版的以太坊可能会占据旧版本的市场。

如果一群活动家推出区块链代币的变更,但市场看到数字代币的新旧版本都有价值,那么市场和交易基础设施可能会选择支持两种版本。这被称为“硬分叉”。例如,最近,一群活动家修改了比特币的代码,以改善(在他们看来)比特币货币。市场继续看到旧比特币版本(仍称为“比特币”)的价值,但也重视新版本(名为“比特币现金”)。请注意,这些分叉货币的价格通常不同。截至2018年1月,比特币的价格比比特币现金高约5倍。

如果黑客修改了以太坊的公开代码,从而创建了新版本,市场就会看到代码是恶意代码,并且会有效地评估该版本的数字货币。没有基础设施将更新以支持此版本的数字代币。

区块链交易的线性(Zander将信息传递给第一台计算机,此计算机将其传递给下一台计算机,依此类推,直到信息到达Tara)还创建了所有先前区块链交易的防篡改记录:区块链因此创建交易分类账。任何人都可以查看公共区块链,以了解过去信息的流动方式。如果另一个人在另一个时间或地点查看分类帐,他们将看到相同的交易历史记录。没有中介实体能够修改记录,因为分类帐是在区块链代码中维护的。

相比之下,随着时间的推移,与美元等货币的交易难以跟踪。因此,基于区块链的货币为更好的问责制提供了机会。例如,如果一个民主国家利用基于区块链的货币,那么选民可以在这种加密货币中纳税,然后准确追踪政府如何花费每一枚代币。更现实的是,慈善机构的捐助者可以看到慈善机构如何花钱捐款。人们可以看到从慈善机构到当地房屋建筑公司的捐赠通行证,最后是个体工人。由于客观的分布式分类帐,监管实体可以更容易地强制遵守加密货币。

使用区块链技术作为货币

因为区块链必然会产生代币,所有交易参与者(在我们的例子中Zander和Tara)都同意它有价值,区块链技术有助于其充当货币。我们发现区块链货币很可能首先促进私人交易,国际交易和微交易获得采用,然后最终扩展成为所有交易的默认货币。

寻求隐私和避免法律制裁的实体可能是利用比特币等加密货币作为货币的第一批集团中的两个。数字货币对这些细分市场很有吸引力,因为它依赖于分布式网络,避免了跟踪,审查和其他形式的干预。相比之下,通过邮件或使用预订金融机构发送现金的替代方案不太吸引人。例如,比特币最初在Silk Road等黑市网站上大受欢迎。在比特币早期成功之后,创始人推出了数十种新的加密货币,更加注重隐私和匿名性。我们预计在这些细分市场中使用基于区块链的货币将实现强劲增长。

区块链技术对Zander和Tara等地理上分离的实体非常有用。因为他们生活在不同的国家,Zander和Tara的非基于区块链的交易需要高度依赖多个中介实体,处理时间长,费用高。对于希望将财富转化为国际货币的本身货币不稳定的发展中国家实体而言,国际交易的高成本尤其令人痛苦。

区块链技术对于执行微交易的个人也很有用。如果一个人想要向另一个人发送1.00美元,那么没有区块链的世界费用很容易达到总交易的30-40%( . 30 .30— .40)。因此,公司被迫将交易转为月度发票,而这些高额费用也阻碍了创始人首先依靠小额货币开办企业。假设一个企业家想要创办一家企业,法国的个人可以直接向肯尼亚的农民发送1美元的款项,帮助他们建立农业基础设施。在企业家和他的潜在捐助者意识中这些付款中几乎有一半流向中介实体后,企业家可能会放弃,捐赠者可能会离开。另一方面,如果一个发展中国家的企业家想要将他的财富(例如,每天2-5美元)从当地不稳定的货币转移到更稳定的国际货币,那么他将面临国际高额双重费用的麻烦即小交易规模的交易费用和高额中介费用。基于区块链的货币为这些问题提供了解决方案。

处理这些客户群将有助于加密货币与更多用户交互,解决客户问题并启动有用的新加密货币版本。这一基础工作将有助于区块链接管越来越多的世界交易。世界上的支付基础设施建立在互联网之前,并且已经成熟。在短期内,部分区块链解决方案将变得普遍。金融机构已经在创建自己的私有区块链网络并生产数字代币。参与机构充当区块链中的节点,并且可以看到共享数字分类账上的所有交易。今天,这些金融机构利用全球汇率将资金从主流货币(例如墨西哥比索)转入私有数字代币,然后转入另一种主流货币(例如澳大利亚元)。通过这种方式,金融机构可以继续保持其作为中介实体的角色,同时提高安全性,加快处理时间并降低客户费用。

使用区块链技术作为价值储存

区块链技术还有可能提供新的独立存储价值。今天,经典的独立价值是黄金储存,因为人类决定独立于民族国家(例如加拿大)或国家联盟(例如欧盟)而不是其他主流货币(例如美国,美元与美利坚合众国的成功密切相关)。黄金通常与美元成反比关系:换言之,黄金可以对冲当前的全球金融体系。由于黄金难以储存(重,相对不安全),数字区块链货币代表了一种有吸引力的选择。如果数字货币随着时间的推移变得更加稳定(目前,它们极不稳定),它们可能有一天会增加或者减少黄金等资产(为了对冲)。

然而,更大的价值机会存储正在帮助企业首先进入全球金融体系。例如,在发展中国家,许多实体都迫切希望将本地不稳定的货币转向稳定的货币,如美元,以更好地保护其财富。与今天的美元一样,明天促进世界交易的区块链所支持的货币自然也会成为一种有价值的储备。实体将在今天对美元进行投资。因此,相同的基于区块链的货币获得主流采用进行支付那就也可能成为主流采用的价值存储。

如果数字货币取代美元和欧元等传统货币,那么这些数字货币将代表并主导金融体系。在这个世界上,这些货币将不再是当前现状的有用对冲:它们将成为现状!而且我们希望投资者能够关注黄金,类似资产以及非主流数字货币来对冲这些现在主流的数字货币。

使用区块链技术促进简单的信息交换

最终,Blockchain的价值来自于其保护和自动化信息传递的潜力,这是一项有无限机会的努力。虽然基于区块链的货币代表了简化信息传递的大好机会,但任何以数字方式传输信息的当前流程或系统(即互联网上的任何东西)都可能被区块链技术彻底改变。在区块链世界中,确定区块链如何传递信息的可编程规则称为智能合约。如今,支持智能合约的最大,最受欢迎的去中心化区块链平台是以太坊。不应低估以太坊的出现:它将区块链的商业范围从货币扩展到所有数字信息。

你可以将智能合约视为可编程的if-then语句。如果事实A发生,那么自动采取行动B。让我们回顾一下Zander和Tara之间的初步信息交流。Zander想要向Tara支付产品费用。让我们假设Zander想买一张音乐会门票。在区块链之前的世界里,Zander给Tara送了100美元,然后祈祷Tara给他票。如果价值较高(例如,10,000美元的交易),那么Zander和Tara可能会使用第三方托管服务。根据这一安排,Zander将向第三方发送10,000美元。一旦收到资金,托管服务将指示Tara将票发送给Zander。一旦Zander收到机票,托管服务将向Tara发放10,000美元,当然要减去提供服务的费用。

在区块链世界中,Zander和Tara可能会使用ConcertCoin,一种(虚构的)基于区块链的代币来帮助买家和卖家交换门票。虽然比特币等数字代币可用于存储价值并帮助用户兑换货币,但许多山寨币都是为更具体的交易而建造的。这些山寨币使用区块链技术和智能合约来解决广告,内容创建,赌博和房地产交易等领域的问题。在Zander和Tara的案例中,两人可能会同意这张票价值20ConcertCoin。通过ConcertCoin专门的票务交易合约框架,Tara和Zander可能同意一份智能合约:如果Tara有票,那么将20架ConcertCoin从Zander转移到Tara。如果Tara收到20 ConcertCoin,那么将票的所有权转让给Zander。

智能合约实际上只是自动合同。要实现智能合约,需要做三件事。首先,所有利益相关者都需要同意数字代币具有价值。在这种情况下,Zander和Tara都需要同意20ConcertCoin(或其他一些金额)是音乐会门票的合适价格。其次,所有利益相关者需要就智能合约中的每个定义达成一致。在这种情况下,Zander和Tara需要就Tara“拥有机票”和“转让所有权”对Zander的意义达成一致。第三,数字代币需要与每个定义的程序化事实相结合。在这种情况下,ConcertCoin将以编程方式检查Tara帐户的有效机票,并回答“是”或“否”。如果“是”,ConcertCoin会自动将资金从Zander转移到Tara,将机票上的名称从Tara更改为Zander,并将机票移至Zander的帐户。

使用区块链技术促进复杂的信息交换

区块链技术的复杂信息市场的一个例子是存储数字信息。今天,互联网的很大一部分由亚马逊网络服务(AWS)和其他中介实体提供的类似产品托管。这些实体构建和维护全球数据存储和服务器以支持云基础架构。然而,在区块链世界中,公司可以使用信息存储区块链代币(我们称之为虚构代币’FileStorageCoin’)来换取高分布式网络上的安全存储,而AWS等实体中介收取的价格只有一小部分。

在典型的供需方式中,对FileStorageCoin的需求推高了FileStorageCoin的价格。作为回应,矿工通过在网络上提供更多存储来做出响应。每次选择计算机来存储信息(链中的一个块)时,区块链都会向该计算机释放一些FileStorageCoin。每增加一台存储信息的计算机,网络就变得更有价值。正如AirBnB和Lyft允许资本所有者从他们的实物资产中获得更多,区块链可以帮助数字资本所有者从他们的数字存储中获得更多。通过采用FileStorageCoin可以为比任何一家公司提供的更大,更高效的信息存储网络。

虽然区块链可以帮助用户从存储,连接,带宽,网站访问和内容创建中获得更多价值,但该技术不仅限于数字信息;该技术还可以使物理世界资产更具流动性(更易于销售和购买),使其更具可还原性。换句话说,区块链可以更好地促进多人资产的所有权。

考虑十几个人将他们的资源集中起来购买10栋房屋作为投资房产。该集团计划在未来十到十五年内出售房屋,以获得可观的利润。在区块链之前的世界中,一个所有者(称他为吉姆)需要在出售房屋之前获得投资回报(例如,购买房屋仅三年后)将他的钱拿出来,但这将难以找到买家,他所拥有的房屋怎么才是合适的价格,以及如何执行交易。如果吉姆最初投资1万美元,他可能想以15,000美元的价格出售他的股票,因为他觉得三年多来这些房子的价格已经上涨了。由于资产很复杂且存在风险,潜在买家可能希望亲自了解吉姆。在这种情况下,最有可能的买家是该基金的其他11个成员。十个人可能不感兴趣。有人可能会给他11,000美元。该基金尚未出售任何房屋,同行投资者可能会推理,因此该基金尚未实现任何实际收益。因为吉姆需要钱,他将被迫只能拿走11,000美元。

在区块链世界中,十几个人可以同意创建所谓的初始代币发行(ICO)并发行区块链代币以换取基金的所有权。在这种情况下,十几个人向每个投资者发行100个RealEstateCoin。如果投资者希望尽早离开基金,区块链技术会将潜在买家的数量扩大到互联网上的任何人。虽然大型公司(例如亚马逊,AirBnB)过去已成功建立了自己的数字市场,但区块链通过智能合约,安全交易和权威性提供可用于所有人的信任建立,低成本的金融基础设施。分类账也可以到广泛的实体。因此,吉姆有数千名潜在客户要求获得他的100个RealEstateCoin。他以每件17,500美元的价格出售每枚代币。区块链允许任何个人或公司为其当前资产创建数字市场。

上面的例子展示了区块链技术如何改变投资基金的所有权模式。与像Kickstarter这样的众筹网站不同,早期的支持者只接受产品或服务,ICO让实体真正拥有一些有意义的想法。如果一家公司做得好,该公司独特的区块链代币价值将会增加,因为越来越多的个人表现出对该代币的需求。如果一家公司做得不好,区块链代币将会贬值。

这些区块链代币激励是强大的。例如,今天,一些少数人选择围观电影创意,即使他们知道除了感恩之外他们不会得到任何东西。在区块链世界中,这些人实际上拥有电影的一部分。因此,潜在投资者的数量和支持这些类型项目的资金数量将会增加;当更多人有机会从他们身上获利时,他们会支持他们喜爱的事物。区块链将为创意,非营利和营利性项目和公司提供新的资金。区块链可以为任何事物创建一个去中心化的,安全的,基于激励的在线市场。

预测区块链技术的未来

区块链技术创造了信息网络。网络的基本规则是,当一个新人加入任何网络时,网络将变得更具价值。作为必然结果,每当另一个人加入广泛使用的网络时,竞争网络对人们提供类似价值的指数就越大。你使用Facebook,因为你的所有朋友都在平台上。你不太可能使用新的社交网络,因为很少有朋友会使用它。因此,网络往往会产生赢家通吃的市场。例如,Facebook,微信和其他一些企业在社交网络领域占主导地位。

我们期望区块链技术获得类似的赢家通吃结果。到目前为止,创始人们已经创造了数百个数字代币。他们将在未来几年内创造数千个。我们预计少数这些数字代币将成功走向全球舞台,而绝大多数这些代币最终将变得毫无价值。例如,未来两个加密币可能成为主要的全球货币,三分之一可能成为对冲这些数字货币的全球价值储备,而另外六个加密币可能共同构成智能合约的全球平台。

首先,我们希望投资者将资金注入整个区块链技术市场。投资者不知道哪些代币最终会像Amazon.com一样,哪些代币最终会像Pets.com一样。所以他们会全面投资。但最终,区块链代币将像用户一样受到重视。就像所有网络一样。虽然比特币具有领先优势且用户数量最多,但是更多用户需要加入并使用网络来有意义地简化全面的信息流。不过,比特币的用户还有更多实体加入网络,供应商开采更多比特币,创始人为代币建立更多基础设施。这反过来又吸引更多用户加入比特币网络。由于这些网络效应,我们预计比特币会存在一段时间。另一方面,目前可能尚未创建至少一个将改变世界的数字代币。

结论

区块链对更安全,去中心化,激励一致的全方位的平等承诺令人鼓舞。中介实体(例如,中间人)的数量越多,通过区块链进行简化的机会就越大。为了实现这一愿景,利益相关者需要同意使用和重视相同的数字代币。他们需要在智能合约中就相同的标准定义达成一致,并就这些定义的程序性数据来源达成一致。最后,这些利益相关者需要实际使用这些数字代币来交换信息。这个过程需要时间,但最终我们期望区块链技术能够改变信息和业务流。

你现在迷上了区块链吗?为了交易,我在CoinBase购买以太坊,然后将这些代币转移到Binance。

Coinbasehttps://www.coinbase.com/join/5a39ac52c9e83802d5f70a27

Binancehttps://www.binance.com/?ref=18572991

======================================================================

分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:

  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是原文这个白皮书中学习95%区块链技术基础知识

猜你喜欢

转载自blog.csdn.net/mongo_node/article/details/84317363