繁体   English   中英

如何在区块链上签署矿工奖励?

[英]How to sign miners rewards on a blockchain?

如果我要问一些愚蠢的问题,请不要杀我。 但我在整个加密世界中非常讨厌,而且我对它的技术非常着迷。

因此,仅出于教育目的,我决定构建自己的区块链,或多或少遵循比特币原则(使用secpbk1曲线生成 ECC 密钥对, SHA256作为散列算法,基于前一个块的时间戳的动态差异,p2p 连接等。 .)。 但是我已经到了对区块链钱包本身感到非常困惑的地步。

就我目前所了解到的而言,每笔交易必须由钱包签名。 所以我的交易基本上有三个字段: inputoutputsid 由于用户的钱包对交易的输出字段进行了签名,因此如果不使用属于输入字段中包含的公钥的同一个私钥再次签名,就不能再更改了,我该如何奖励矿工?

如果我猜对了,矿工会使用输出字段中的费用创建一个由链以某种方式签署的交易,或者通过要求链本身为该矿工生成并签署一个特殊的奖励交易。

我遵循的指南是使用第二种方法,每次在客户端上执行程序时都会生成一个区块链钱包。 这种方法让我很困惑:

客户不会在每次重新上线时为“他的”区块链生成一个新钱包吗? 如果是这样,这不会对链上签名的交易造成混乱吗? 由于每个矿工(因此是同行)签署自己的奖励将使用与其他同行不同的区块链钱包? 这不会导致任何问题吗?

我可能会想到的第一个问题是,如果我们生成一个新的区块链钱包来为矿工签署奖励,每个节点都会创建一个不同的钱包,所以这不会导致链中出现许多“幽灵”钱包,不知从何而来的奖励代币? 这应该发生吗?

因为我认为使用费用来奖励矿工肯定更直接,但这根本不能解决我的疑问。 由于交易的输出是在创建时签署的,那么发起交易的对等方怎么可能提前知道找到该区块的可能矿工? 如果他不知道,矿工怎么可能在不篡改交易本身的情况下“提取”其奖励? 当然,它可以创建一个新交易,并将其添加到区块中。 但谁会签署该交易? 这些奖励代币从哪里来?

如果答案不是每次都生成一个新钱包,那么你可以将链钱包的第一个私钥存储在哪里,没有人可以看到它,但仍然可以使用它,而无需在其中放置服务器中间?

在我看来,这打破了整个去中心化的概念,并会增加单点故障。

我还实现了一个交易池,每当矿工请求将其中的子集标记在一个块中时,它就会自动过滤掉无效(被篡改的)交易。 但这是否意味着该唯一例外的矿工可以篡改交易,因为它将在区块中“伪造”? 那么,一旦它进入链条就被篡改了,谁给它一个 *** 呢? MEEEEEH,这听起来一点都不好。

我非常困惑,我在晚上做着钥匙对的梦。 请帮我。

客户不会在每次重新上线时为“他的”区块链生成一个新钱包吗? 如果是这样,这不会对链上签名的交易造成混乱吗? 由于每个矿工(因此是同行)签署自己的奖励将使用与其他同行不同的区块链钱包? 这不会导致任何问题吗?

你没有说你认为这会导致什么问题。 我什么都想不出来。

因为我认为使用费用来奖励矿工肯定更直接,但这根本不能解决我的疑问。 由于交易的输出是在创建时签署的,那么发起交易的对等方怎么可能提前知道找到该区块的可能矿工? 如果他不知道,矿工怎么可能在不篡改交易本身的情况下“提取”其奖励?

最简单的解决方案是让交易本身只包含其输入和输出。 费用是总投入和总产出之间的差额。

矿工只是将交易包含在他们挖掘的交易块中。 他们还在区块中添加了一笔额外的交易,向自己发送了奖励。 显然,他们知道自己的目的地地址。 每个收到新开采区块的参与者都会检查以确保该交易有效(就像他们检查其他所有交易一样)并且不会要求超过允许的奖励。

如果答案不是每次都生成一个新钱包,那么你可以将链钱包的第一个私钥存储在哪里,没有人可以看到它,但仍然可以使用它,而无需在其中放置服务器中间?

通常在本地磁盘上的文件中。 无论如何,私钥并不是真正需要的——你只需要它来发送 您不需要它来挖掘或报告。 因此,只有在实际需要时才可以提示或解密。

当然,它可以创建一个新交易,并将其添加到区块中。 但谁会签署该交易? 这些奖励代币从哪里来?

通常的规则是奖励交易没有输入,一个output,没有签名。 代币来自无人认领的矿工奖励代币池,根据区块链的设计,这些代币可以是有限的或无限的。 (对于比特币,这个池是有限的。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM