transactions - 区块链中的交易
问题描述
如果我在区块链中进行交易,是否只有在将交易添加到区块链后才能进行比特币转移?如果是这样,挖掘区块可能需要时间,并且无法进行紧急付款。那么这不是区块链的缺点吗?
解决方案
如果您不重视能够在不涉及第三方(没有银行或政府)的情况下进行货币交易的优势,这只是一个劣势。区块链的全部目的是能够在不依赖第三方的情况下转移价值,这些第三方可能会审查/阻止交易、夸大货币、受到损害等。比特币是透明的(可验证的)和去中心化的货币,任何拥有计算设备的人都可以使用和互联网连接,不受您的背景、国籍、公民身份或法律的限制。
如果我在区块链中进行交易,是否只有在将交易添加到区块链后才能进行比特币转移?
比特币上的交易在被包含在一个区块中之前不会被认为是最终的。这很重要,因为它可能不包含在块中的原因有很多:
显然如果交易无效(用户没有比特币要发送,或者它包含无效签名或其他无效信息)
手续费太低,被网络拒绝
如果网络繁忙,费用可能太低,矿工不会选择将其包含在下一个区块中(他们会选择费用较高的交易,以便赚更多的钱)。2 周后,比特币核心节点将从内存池(它们等待被挖掘的地方)中剔除陈旧的交易。
如果是这样,挖掘区块可能需要时间,并且无法进行紧急付款。那么这不是区块链的缺点吗?
这里更大的问题是你想要多少安全性?如果你向某人发送比特币,他们甚至不等到它被包含在一个区块中(他们在他们的内存池中看到它)并且他们给你你正在购买的产品或服务,他们冒着它可能永远不会被开采的风险. 另外,在被包含在一个区块中之后,在重组的情况下失效的风险非常小,参见链重组。例如,这可能由于延迟问题而发生。
另一个风险是 51% 攻击,其中某人获得了网络上的大部分哈希算力,他们可以更改过去的块,如果他们能够创建一个包含更多块的链(更多工作证明),网络将接受新链作为真相的来源(最长的链总是获胜,即使它与之前的链不同)。
因此,自交易发生以来开采的区块越多(即确认次数),在重组或 51% 攻击中被逆转(或删除)的安全性就越高。
推荐阅读
- python - 如何接受多个输入并将其全部放在一个列表中
- python - 在 DataFrame 中插入 Pandas Plot 的图像
- firebase - 当 Firestore 文档快照填充时,字符串的颤振列表不响应 if null 运算符
- r - 如何在 R 中导入没有标题和名称的单独文件的数据集并将名称附加到数据集?
- audio - 在 ffmpeg 中将 m4a 转换为 WAV 文件(包含签名的 16 位 PCM 样本)
- html - 导航栏的内容区域下降
- python - Python多进程Pool的map方法
- firebase - 使用 Firebase Admin SDK 时,如何使用 ApolloClient 将新的授权标头传递给服务器?
- android - 如何将私有签名信息转换为 Kotlin DSL?
- javascript - 如何让我的命令忽略其他用户但允许原始用户响应?