区块链存储在哪里以及如何存储?

Where and how does blockchain gets stored?

我试图用真实世界的例子来形象化区块链的概念。所以假设我想购买比特币。由于区块链的概念是去中心化,交易将被散列并存储在“网络”内的“每个节点”中。这是我有问题的地方。

it must be stored somewhere in my computer locally right?

正确。为了成为比特币网络中的一个节点,你需要 运行 一个比特币客户端软件。比如原来的bitcoind。它的数据(包括原始区块链数据库)存储在您驱动器上的一个文件夹中 - 默认位置或配置。

What if I only have limited storage?

然后您的客户端软件将无法再同步,并且与网络的其余部分不同步。根据特定的软件,您可能仍然能够在此事件之前看到您的交易,可能能够签署和广播交易,但不知道(从软件内部)它们是否被网络接受。例如。因为您可能试图花费比现在更多的钱,但钱包没有反映您最近的交易和当前余额,因为它没有同步。

What if I'm using a mediator like Coinbase?

权力下放的程度也可能在一定程度上被感知。在这种情况下,使用 Coinbase 等托管钱包的人越多,网络的去中心化程度就越低。但这可能不是二元的——“去​​中心化与否”——只是“比 100% 用户 运行 自己的节点去中心化程度低”。

What if there are only 2 nodes for a blockchain

这叫做51% attack。在网络中只有 2 个节点的这种情况下,您可能能够成功执行攻击。

Isn't this similar to how smart contracts work

比特币编写交易脚本的可能性非常有限——它的脚本语言不是图灵完备的,实际上“仅”用于多重签名交易。所以我假设你指的是以太坊和其他平台上的智能合约。这些智能合约产生状态变化列表(例如地址余额或智能合约的存储值),并且此过程及其结果也由网络中的其他对等方验证(同样,如果它是根据网络)。所以智能合约与 51% 攻击并没有真正的关系。