闪电网络协议设计思想剖析

这篇具有很好参考价值的文章主要介绍了闪电网络协议设计思想剖析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 引言

闪电网络可能是比特币之上部署的最受期待的技术创新。闪电网络,为由 Joseph Poon 和 Tadge Dryja 于2015年首次提出的支付层,承诺支持:

  • 用户之间几乎无限数量的链下交易,
  • 几乎免费,
  • 同时利用比特币提供的安全性。

2016年时,至少三个公司——Poon 和 Dryja 的 Lightning、 Blockstream 和 Blockchain—— 目前正在致力于该技术的实施。但除了这个小型技术前沿之外,很少有人完全了解“小额支付的未来”将如何提升比特币的能力。

本文分3大块来介绍闪电网络协议

  • 第一部分列出了闪电网络的基本构建块,并展示了如何将这些构建块组合起来创建“智能合约”,该合约可用于实现闪电网络的第一个要求:双向支付通道。
  • 第二部分解释了双向支付渠道如何转变为网络,以及哈希时间锁合约(HTLC)如何将网络中的不同通道连接在一起。
  • 第三部分解释了如何将 HTLC 放置在双向支付通道中,以确保交易可以完全在链下进行。

2. 闪电网络基本构建块

2.1 构建模块 #1:未确认的交易

从本质上讲,比特币协议由交易组成,这些交易通常与之前的交易相关联,也可能与未来的交易相关联。每笔交易都包含 输入(指比特币发送的地址) 和输出 (指比特币发送到的地址)。此外,输入必须包括发送比特币的要求,如证明输入地址“所有权”的签名。与此同时,输出建立了新的要求,这些要求必须包含在后续 交易的输入中 。

作为其主要功能之一,闪电网络是由或多或少的常规比特币交易构建的。只是这些交易通常实际上并不通过比特币网络广播。相反,它们存储在用户的本地节点上 - 但闪电网络交易可随时通过网络广播。
闪电网络协议设计思想剖析,比特币,比特币
本文中:

  • 黑色边框表示的是已确认交易
  • 蓝色边框表示的是:仅当其前序交易已被确认后,可由Alice广播的交易
  • 红色边框表示的是:仅当其前序交易已被确认后,可由Bob广播的交易

如上图中所示:

  • Alice可随时签名并广播其未确认交易,并给Bob发送2个BTC
  • 仅当Alice已签名并广播交易且得到确认之后,Bob才可以签署属于他的2个BTC,将其中一个BTC发送给Carol,另一个BTC留给Bob自己。

2.2 构建模块#2:双花保护

闪电网络的第二个构建模块可能不需要太多解释,因为它可以说 是比特币本身存在的理由 :双花保护。如果两笔交易(或:输入)依赖于相同的输出,则只有一笔交易可以确认。
这里要记住的重要一点是,即使是未经确认的交易也可能是冲突的,这意味着只有1笔交易可被确认。
闪电网络协议设计思想剖析,比特币,比特币
如上图中所示:

  • Alice必须选择其中一笔交易来签名并广播,无法同时签名和广播2笔交易(若同时,也只有一笔交易会被确认,即变成黑框表示)。

2.3 构建模块 #3:多重签名

闪电网络的第三个构建块也是一个简单的构建块:多重签名(multisig)地址。(或者更一般地说:P2SH 地址。)

多重签名地址是比特币地址,顾名思义,需要多个私钥才能“解锁”并从中花费比特币。多重签名地址可以在各种条件下设置。例如,需要三个可能的密钥中的两个,或者十五个中的十五个,或者几乎任何其他组合。

闪电网络通常使用2-of-2多重签名设置。从 2-of-2 多重签名地址解锁比特币需要来自两个专用密钥的两个签名。
闪电网络协议设计思想剖析,比特币,比特币
如上图中所示:

  • Alice和Bob之前设置了一个multisig地址,2人分别有一个密钥
  • 若无Bob的签名,Alice没法自行花费该multisig地址
  • 需注意,当某签名添加到某交易之后,无法修改该交易内容。
  • 在密码学中,签名是交易和seal的混合,且是一长串独特的数字字串。

2.4 构建模块#4:时间锁

第四个组成部分是时间锁。时间锁可以在输出中“锁定比特币”,使它们仅在未来的某个时刻才可被花费(包含在后续输入中)。
有两种不同类型的时间锁:

  • 绝对类型,称为 CheckLockTimeVerify (CLTV):CLTV 将比特币锁定到未来(或多或少)的具体时间:实际时间和日期,或特定的区块高度。
  • 以及相对类型,称为 CheckSequenceVerify (CSV):CSV 使用相对时间。一旦 CVS 输出被记录在区块链上,从该 点开始需要一定数量的区块 才能再次被花费。【在闪电网络中,常将CSV表示为clock,用作delay】
    闪电网络协议设计思想剖析,比特币,比特币

2.5 构建块#5:哈希值和秘密

第五个也是最后一个构建块——密码学——是比特币本身最基本的构建块。但在闪电网络中,它以一种新的方式应用。

简而言之,“value”或“secret”是一长串独特的数字,即使对于具有无限尝试的计算机来说,实际上也无法猜测。通过特殊的计算,这个value(或secret)可以被“哈希”成不同的数字字符串,即“哈希值”。
诀窍是:

  • 任何知道该value的人都可以轻松地重现哈希值。但反过来则不然。这是一条单行道。

这个技巧可用在比特币本身,再次“锁定比特币”。(事实上​​,这确实是比特币的工作原理。)如,哈希值可以包含在输出中,并要求后续输入包含相应的value才可被花费。
闪电网络协议设计思想剖析,比特币,比特币
如上图中所示:

  • 本文以带颜色的钥匙🔑来表示value或secret,相应的哈希值以相同颜色和相同数字的锁🔐来表示

2.6 第一个挑战:双向支付渠道

甚至在闪电网络出现之前, 支付渠道的概念 就已经存在了一段时间。典型的支付渠道对于某些目的很有用,但也有局限性:它们是单向的。Alice可以向Bob支付几笔链下交易,但Bob根本无法通过同一通道向Alice支付。

作为闪电网络的一个关键特征,Poon 和 Dryja 提出了无需信任的双向支付通道。

2.6.1 打开通道

要建立双向支付通道,双方必须首先就opening交易达成一致。此opening交易决定了各自存入通道的比特币数量。

假设Alice想向Bob发送一枚比特币。由于Alice和Bob希望更频繁地进行交易,因此他们决定开放一份双向支付通道,并用它来发送比特币。(发送一整个比特币对于支付渠道来说可能会很多,因为这对于小额支付可能更有用 - 但这是完全可能的。)
为了打开通道,Alice 和 Bob 各发送 5 个BTC到 2-of-2 多重签名地址。这就是“opening交易”。只有当Alice和Bob都签署后续交易时,才能从该地址花费比特币。

此外,Alice 和 Bob 都创建一个秘密(一串数字),并交换哈希值。

Alice 现在立即从opening交易中创建后续交易。这是“commitment交易”。通过commitment交易,Alice向自己发送了4个BTC,并向第二个多重签名地址发送了6个BTC。第二个多重签名地址有点奇怪。它可以由Bob自己解锁,但只有在它被包含在区块链上并开采了1000个额外的区块之后才能解锁;它包括一个 CSV 锁。 或者,它可以由 Alice 自己打开,但前提是她 还 包含 Bob 刚刚向她提供哈希值的秘密。(当然,Alice不知道这个秘密是什么——Alice只知道哈希值——所以Alice现在无法使用这个选项。)

Alice签署了其commitment交易,但不光播!相反,Alice将其签名后的commitment交易给了Bob。

与此同时,Bob也做了同样的事情,但是是镜像的。Bob还创建了一笔commitment交易,从中将 6 个比特币发送给自己,并将 4 个比特币发送到一个时髦的新多重签名地址。如果 Alice 再等待 1000 个区块,她就可以解锁该地址,或者 Bob 可以使用 Alice 的秘密来解锁该地址。
Bob签署了其创建的commitment交易,并将其创建并签名的commitment交易交给Alice。

在交换“half-valid” commitment交易和秘密哈希值之后,他们都签署并广播opening交易,以确保其记录在区块链上。该通道现已正式开通。

此时,Alice 和 Bob 都可以签署并广播他们从对方获得的半有效commitment交易。如果Alice这样做了,Bob会立即获得6个BTC。如果Bob这样做了,Alice会立即获得4个BTC。但无论谁签署并广播该交易,都必须等待 1000 个区块才能解锁后续的多重签名地址,并领取剩余的BTC。
闪电网络协议设计思想剖析,比特币,比特币
然而,这是支付渠道的关键技巧:

  • 既不签署也不广播自己的那份交易。

2.6.2 更新通道

过了一会儿,Bob想给Alice发回一个比特币。他们想要更新通道状态,使余额再次达到五比五。为了实现这一目标,Alice和Bob做了两件事:

  • 首先,两者都重复上述过程(除了开仓交易已记录在区块链上;该部分被跳过)。这次,Alice和Bob都将5个BTC归为自己,并且都将5个BTC归为时髦的多重签名地址。这些多重签名地址的条件相似,只是它们需要 新的 秘密:Alice 和 Bob 都互相提供新的 哈希值。他们都签署了新的一半有效的commitment交易,并将其交给对方。
  • 其次,Alice和Bob互相传递他们在 第一个 设置中所使用的 第一个 秘密。

此时,Alice 和 Bob 都可以签署并广播他们刚刚获得的新的“半有效”commitment交易。他们的交易对手将立即获得 5 个比特币,而广播方则必须等待 1000 个区块。因此,通道已更新。

但是是什么阻止Bob广播旧的commitment交易呢?该commitment交易导致了一条向他支付 6 个比特币的路径,而不是 5 个……。

当然,阻止Bob的是他的第一个秘密,他现在已经把这个秘密告诉了Alice。

Bob无法再安全地签署和广播旧的commitment交易,因为Alice现在知道Bob的第一个秘密。如果Bob要签署并广播该commitment交易,他将立即向Alice发送 4 个BTC……而他必须等待 1000 个区块才能领取自己的 6 个BTC。这是一个问题,因为现在Alice知道了他的秘密,Alice可以利用这段时间击败Bob,并夺取另外6个BTC!

由于Bob也拥有Alice的秘密,因此反之亦然。如果Alice尝试签署并广播旧的commitment交易,Bob可以窃取通道中的所有BTC。
这当然意味着Alice和Bob都有强烈的公平竞争动机,并且只签署和广播通道的最新状态。

闪电网络协议设计思想剖析,比特币,比特币

3. 将双向支付通道扩展为支付网络

接下来,这种双向支付渠道设置需要扩展以允许通过网络进行支付。
闪电网络协议设计思想剖析,比特币,比特币
Alice 和 Bob 建立了一个双向支付通道。现在,Alice想向第三人Carol支付1 BTC。

为此,Alice和Carol可以在他们之间开辟一条支付通道。但他们实际上并不需要这样做。事实证明,Bob 和 Carol 已经有一个双向通道,因此 Alice 可以通过 Bob 向 Carol 付款。

具体来说,Alice可以向Bob支付1 BTC,Bob可以向Carol支付1 BTC。

然而,Alice并不真正信任Bob——或者Carol:

  • Alice担心如果她付钱给Bob,Bob永远不会真正付钱给Carol。
  • 或者Bob可能会付钱给Carol,但Carol会声称她从未收到过这笔钱,而Alice不知道该责怪谁。

因此:

  • 如果Bob也向Carol支付了1 BTC,Alice希望确保她只向Bob支付1 BTC。

这是通过简单的加密技巧(部分)完成的。

  • 当Alice想要向Carol发送BTC时,她告诉Carol创建一个value(随机数字字符串)并向她发送哈希值。Alice还告诉Carol用原始value与Bob交换比特币。
  • 与此同时,Alice从Carol那里拿到了哈希值,转向Bob,并告诉Bob,如果Bob向她提供相应的value(只有Carol有),她就会给Bob一个比特币。
  • 因此,Bob转向Carol,并给了Carol 1BTC以换取value。
  • 然后,Bob将这个value返回给Alice。Alice知道Bob一定是从Carol那里得到了value以换取BTC,因此得出结论Carol得到了她的BTC。所以Alice可以放心地给Bob 1BTC。

几乎每个人都很高兴。

在这种“天真的”场景中,中间人Bob仍然必须信任Alice和Carol:

  • Bob必须相信Carol在向她发送了比特币后确实给了他value,
  • 而Bob必须相信Alice在向她提供了value后确实给了他1 BTC。

因此,bitcoin -for-value trade必须在网络上得到绝对保证。更具体地说:如果Bob给Carol 1 BTC,他必须保证从Alice那里拿回1BTC。

这就是哈希时间锁定合约(HTLC)的用武之地。

3.1 Hash Time-Locked Contracts哈希时间锁定合约

所以Alice和Bob想通过HTLC完成bitcoin -for-value trade。(Bob和Carol也想以相同的value进行bitcoin -for-value trade- 但现在先不关注,后续会讲。

为此,Alice 不是直接向 Bob 发送BTC,而是将BTC发送到一个新的(又是时髦的)多重签名地址。锁定在该地址上的BTC可以通过两种不同的方式解锁。

  • 第一个选项是Bob包含他的签名和value。
  • 第二种选择是Alice包含她自己的签名。然而,这个选项有一个CLTV 时间锁:Alice 只能在(比如)两周后签署并广播交易。

这意味着Bob有两周的时间来创建后续交易,其中包含他的签名和value,并将其广播以将比特币从时髦的多重签名地址发送给自己。因此,这笔交易是有保障的。Bob只有在提供value的情况下才能索取Alice的BTC:通过比特币网络广播它,使其公开可见,Alice可以看到。

如果Bob没有及时提供value,Alice可以通过“超时替代方案”取回她的比特币。简单的。

回到网络,因为这就是需要 HTLC 设置的真正原因。

如前所述,不仅 Alice 和 Bob,Bob 和 Carol 也建立了 HTLC。因此,如果Carol向Bob索要她的比特币,Bob将获得value作为回报;该value将在区块链上可见。

因此,如果发生这种情况,Bob也能从Alice那里得到比特币。Bob 可以获取 Carol 在区块链上公开显示的value,将其包含在他与 Alice 的 HTLC 中,并为自己索取BTC。两个通道有效衔接。

最后一个细节是,在Alice从Bob那里收回她的BTC之前,Bob必须从Carol那里获得value,这一点很重要。如果Bob在Alice收回其付款之后才从Carol那里获得value,那么Bob毕竟被困在中间。因此,Bob 和 Carol 的 HTLC 中的超时必须在 Alice 和 Bob 的 HTLC 中的超时到期之前到期。(如,正好十天之后,而不是两周。这也是 HTLC 需要 CheckLockTimeVerify (CLTV) 而不是 CheckSequenceVerify (CSV) 的原因。)

最后,还有一个问题需要解决:为了使闪电网络发挥作用,所有这些都必须在链下完成。

4. 闪电网络

到目前为止,Alice 和 Bob 开通了一个双向支付通道,他们都用 5 BTC为其提供资金。他们来回进行了两笔交易,在当前的通道状态下,Alice 和 Bob 都可以通过在区块链上“dropping删除通道”来为自己申领 5 BTC。

现在,他们希望在通道中包含 HTLC。这是为了确保如果Carol向Bob索要BTC以换取她的value,那么Bob也能从Alice那里得到比特币作为回报。

与上一步一样,Alice 和 Bob 首先创建一个新的commitment交易。在很多方面,这些commitment交易与之前的commitment交易非常相似,它们包括:

  • 一个普通输出,
  • 以及一个带有 CSV(CheckSequenceVerify)时间锁和特殊哈希锁的时髦多重签名地址的输出。

同样,与上一步一样,Alice 和 Bob 交换他们的旧秘密,以有效地使旧通道失效。而且,一旦交换,Alice和Bob都可以签署他们那份commitment交易,并可能随时将它们放到区块链上。

都是熟悉的领域。除了一处变化。Alice 和 Bob 的commitment交易现在都包含一项新输出,价值 1 BTC。(这使得余额为 4-5-1;Alice 为 4 个,Bob 为 5 个,新输出为 1 个。)

这个新输出本质上是 HTLC。它甚至比迄今为止的所有其他输出更时髦,因为有三种方法可以解锁HTLC输出:

  • 1)首先,新的输出(在 Alice 和 Bob 的commitment交易中)会释放BTC,前提是 Bob 的签名和value包含在后续交易中。因此,无论 Alice 还是 Bob 签署并广播commitment交易,只有 Bob 可以解锁该输出——如果他包含该value。但这两个commitment交易之间有一个小区别:

    • 如果 Bob drop删除通道,则会涉及 CSV 时间锁。他需要等待 1,000 个区块。(如果Alice放弃频道,Bob可以立即领取这1 BTC。)
  • 2)如果 Bob 放弃通道,他必须等待 1,000 个区块的原因与之前看到的非常相似:它允许 Alice 拿走这1 BTC,以防 Bob 试图签署和广播旧的通道状态。这就是解锁输出的第二种方法的用武之地。如果Alice提供Bob的(最新)秘密,她就可以“窃取”资金。
    两个人可以玩这个游戏:如果Alice试图欺骗并广播这个已经过时的通道,Bob可以使用Alice的秘密索取这个1 BTC。(他甚至不需要提供该value。)

  • 3)第三,与任何其他 HTLC 一样,两项commitment交易还包括 Alice 常见的 CLTV 超时回退。如果Bob在两周内没有包含该value(如因为他没有从Carol那里得到它),Alice可以收回她的BTC。同样,Alice 或 Bob 是否断开通道对于此选项并不重要。

那么这一切给带来了什么?

  • Alice和Bob都持有半有效的承诺交易。如果Alice在区块链上放弃了她的commitment交易,她会立即向Bob发送5 BTC。此外,她还可以等待 1,000 个区块,并为自己领取 4 个比特币。另外,Bob 有两周时间提供value,并在“HTLC 输出”中领取BTC。(如果他在两周内没有提供value,Alice可以收回这个BTC。)
  • 与此同时,Bob也可以随时放弃他的commitment交易,并立即向Alice发送4 BTC。然后,他需要等待 1,000 个区块才能从一个地址再索取 5 个比特币,如果他提供了该value,还可以从 HTLC 输出中索取另1 BTC。(如果他在两周内没有提供该value,Alice 可以收回这1 BTC。)

当然,如果Alice或Bob在未来的任何时候试图作弊,并在该通道过时时对其进行签名和广播,那么双方都可以完全阻止对方,并窃取该通道中的所有比特币。
闪电网络协议设计思想剖析,比特币,比特币

4.1 Settling the Status

此时,Bob保证会收到BTC以换取该value(假设他拥有value)。他所要做的就是签署并广播他从 Alice 那里获得的commitment交易,将其价值包含在后续交易中,并签署并广播该交易。
Alice知道这一点。她不可能骗走Bob的BTC——即使她通过其他方式知道了该value。

因此,两人不妨在通道之外“settle”。Bob可以简单地将value交给Alice,Alice可以同意将通道状态更新到更正常的状态,而无需HTLC和超时期限。

假设双方都希望保持通道开放,那么他们自然会这么做:这比必须将通道放到区块链上要不那么麻烦得多。
闪电网络协议设计思想剖析,比特币,比特币

4.2 通道关闭

最后,这是闪电网络的真正力量:

  • 至此,以上描述的几乎所有内容通常都根本不需要访问比特币区块链。

如果 Alice 和 Bob 都想“和平”地关闭通道,他们可以简单地从原始opening交易中创建一个交易,以覆盖自opening交易以来发生的所有事情。从这次结束交易中,他们向自己发送了通道的公平份额——即表示最新的通道状态。
具体来说,这意味着如果Alice想要关闭通道,她此时可以简单地创建一个交易,向自己支付 4 个比特币,向Bob支付 6 个比特币,并要求Bob签署并广播该交易。既然他没有理由不这样做,那么他很可能会配合并关闭通道。

最终,只有两笔交易会通过比特币网络广播并包含在一个区块中:

  • opening交易
  • 和closing交易。

即使Alice和Bob之间交易一百万次,这也将成立,从而从区块链上卸下巨大的负担。
闪电网络协议设计思想剖析,比特币,比特币

参考资料

[1] 2016年5月31日 Bitcoin Magzine博客UNDERSTANDING THE LIGHTNING NETWORK, PART 1: BUILDING A BIDIRECTIONAL BITCOIN PAYMENT CHANNEL
[2] 2016年6月7日 Bitcoin Magzine博客UNDERSTANDING THE LIGHTNING NETWORK, PART 2: CREATING THE NETWORK
[3] 2016年6月17日 Bitcoin Magzine博客UNDERSTANDING THE LIGHTNING NETWORK, PART 3: COMPLETING THE PUZZLE AND CLOSING THE CHANNEL文章来源地址https://www.toymoban.com/news/detail-841927.html

到了这里,关于闪电网络协议设计思想剖析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 设计模式-01.设计思想

    此系列文章非本人原创,是学习笔记。 下面讲一些常见的设计思想 这个原则非常重要,是一种非常有效的提高代码质量的手段,在平时的开发中特别经常被用到。 如何解读原则中的“接口”二字? “基于接口而非实现编程”这条原则的英文描述是:“Program to an interface, n

    2024年02月07日
    浏览(69)
  • Spring核心设计思想

    目录 前言: Spring是什么 什么是IoC 传统开发思想 IoC开发思想 Spring IoC 什么是DI 小结:     官网中提出:Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focus on speed, simplicity, and productivity has made it the world\\\'s most popular Java framework.     Spring 使编程 Java 对每个人来

    2023年04月17日
    浏览(44)
  • 算法设计思想——动态规划

    是一种常见的算法设计方法,用于解决一类重叠子问题的优化问题。他的基本思想是将问题分解成多个重叠的子问题,递归求解,并将子问题的求解缓存起来,避免重复计算,从而得到问题的解。 动态规划通常适用于以下两个条件的问题: 1.重叠子问题:原问题可以分解为若

    2024年02月03日
    浏览(47)
  • Spring 核心与设计思想

    ✏️作者:银河罐头 📋系列专栏:JavaEE 🌲 “种一棵树最好的时间是十年前,其次是现在” 通常所说的 Spring 指的是 Spring Framework(Spring 框架)。 Spring 是包含多种工具方法的 IoC 容器。 IoC(Inversion of Control): 控制反转 \\\"控制反转\\\"又是什么意思? 下面以一个程序来举例。 假如我

    2024年02月02日
    浏览(57)
  • 【Spring】核心与设计思想

     哈喽,哈喽,大家好~ 我是你们的老朋友: 保护小周ღ   谈起Java 圈子里的框架,最年长最耀眼的莫过于 Spring 框架啦,如今已成为最流行、最广泛使用的Java开发框架之一。不知道大家有没有在使用 Spring 框架的时候思考过这些问题, 什么是框架?Spring 是什么?如何理解

    2024年02月08日
    浏览(44)
  • Spring框架核心与设计思想

    我们一般所说的Spring指的是Spring Framework(Spring 框架),它是一个开源的框架,Spring支持广泛的应用场景,它可以让Java企业级的应用程序开发变得更简单,官方一点的回答:spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级

    2023年04月15日
    浏览(46)
  • 从架构设计思想出发看Flutter

    Flutter 是一种流行的移动应用程序开发框架,它的设计特点之一是可以使用单一代码库构建 iOS 和 Android 应用程序。然而,对于功能比较多、模块比较复杂的应用程序,仅凭单一的代码库就可能导致代码的复杂性和维护难度的增加。在这种情况下,通过合适的应用程序架构设计

    2024年02月07日
    浏览(73)
  • Spring框架概述及核心设计思想

    我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃而庞大的社区,这就是它之所以能长久不衰的原因;Spring 支持广泛的应用场景,它可以让 Java 企业级的应用程序开发起来更简单。 用⼀句话概括 Spring: Spring 框架是包含了众多工具方法的

    2024年02月16日
    浏览(38)
  • 数据仓库之建模理论以及仓库设计思想

    数据仓库是一个为数据分析而设计的企业级数据管理系统。数据仓库可集中、整合多个信息源的大量数据,借助数据仓库的分析能力,企业可从数据中获得宝贵的信息进而改进决策。同时,随着时间的推移,数据仓库中积累的大量历史数据对于数据科学家和业务分析师也是十

    2023年04月15日
    浏览(63)
  • 【JavaEE进阶】Spring核心与设计思想

    我们通常所说的 Spring 指的是 Spring Framework (Spring 框架),它是一个轻量级的 Java 开源框架,有着活跃庞⼤的社区。Spring 是为了解决企业应用开发的复杂性而创建的,不仅⽀持⼴泛的应⽤场景,还让 Java 企业级的应⽤程序开发更加简单。 如何简单地使⽤⼀句话概括 Spring:

    2024年02月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包