区块链存储在哪里以及如何存储?
Where and how does blockchain gets stored?
我试图用真实世界的例子来形象化区块链的概念。所以假设我想购买比特币。由于区块链的概念是去中心化,交易将被散列并存储在“网络”内的“每个节点”中。这是我有问题的地方。
据我目前的了解,“每个节点”基本上是区块链网络中的每台计算机。那么这意味着它必须存储在我本地计算机的某个地方,对吗?那么它究竟会存储在哪里,它如何确保我的计算机是 “网络”的一部分?是否需要下载并执行某种软件才能成为 “网络” 或其他软件的一部分?
每次网络中发生新交易时,存储在我计算机中的区块链都应该使用新交易更新其数据。随着越来越多的交易发生,我的区块链数据的大小不会增加吗?如果我的存储空间有限怎么办?
如果我使用 Coinbase 之类的调解器怎么办?让我们假设大多数购买加密货币的人都在使用 Coinbase。这是否意味着区块链不再去中心化,因为一个或几个中介拥有所有数据?
如果区块链只有 2 个节点(可能是我和我的朋友)怎么办?这是否意味着如果我入侵他人的计算机并更改其值,就无法验证数据的真实性?这不是类似于 智能合约 的工作方式(节点很少的网络)吗?
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% 攻击并没有真正的关系。
我试图用真实世界的例子来形象化区块链的概念。所以假设我想购买比特币。由于区块链的概念是去中心化,交易将被散列并存储在“网络”内的“每个节点”中。这是我有问题的地方。
据我目前的了解,“每个节点”基本上是区块链网络中的每台计算机。那么这意味着它必须存储在我本地计算机的某个地方,对吗?那么它究竟会存储在哪里,它如何确保我的计算机是 “网络”的一部分?是否需要下载并执行某种软件才能成为 “网络” 或其他软件的一部分?
每次网络中发生新交易时,存储在我计算机中的区块链都应该使用新交易更新其数据。随着越来越多的交易发生,我的区块链数据的大小不会增加吗?如果我的存储空间有限怎么办?
如果我使用 Coinbase 之类的调解器怎么办?让我们假设大多数购买加密货币的人都在使用 Coinbase。这是否意味着区块链不再去中心化,因为一个或几个中介拥有所有数据?
如果区块链只有 2 个节点(可能是我和我的朋友)怎么办?这是否意味着如果我入侵他人的计算机并更改其值,就无法验证数据的真实性?这不是类似于 智能合约 的工作方式(节点很少的网络)吗?
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% 攻击并没有真正的关系。