coinbase交易是铸造新硬币的唯一手段吗?

我是区块链新手,想建立自己的私人网络。我在这里得到了很多关于coinbase事务的信息,以及它们如何使挖掘“空”块变得有用。我想得到一个主要问题和一些分支问题的精确答案:
coinbase交易是铸造新硬币的唯一手段吗?
coinbase交易是否与比特币的首次发行或创始区块的创建有关?
既然coinbase事务块不包括任何以前的事务历史(除了对矿工的奖励事务),那么挖掘它的计算成本是否比使用实际事务的块低?而这种费用是随着区块链的规模而增长还是保持不变?
coinbase事务
创世地块
演出
分享
改进这个问题
跟随
9小时前问的
乌多E。
10333青铜徽章
新贡献者
添加评论
1个答案
2
coinbase交易是铸造新硬币的唯一手段吗?
对。
coinbase交易是否与比特币的首次发行或创始区块的创建有关?
对。比特币不是有前提的,这意味着创造者没有创造出最初的供给。现存的所有比特币都来自创世号区块之后的区块中产生的coinbase交易。此外,在创世街区创造的硬币也是无法支付的,因此实际上并不计入比特币供应总量。
既然coinbase事务块不包括任何以前的事务历史(除了对矿工的奖励事务),那么挖掘它的计算成本是否比使用实际事务的块低?
从技术上讲是的,但所需的额外计算基本上可以忽略不计。构建块需要将所有事务散列到merkle根中。事务越多,需要计算的哈希就越多。然而,这在最坏的情况下只会添加几千个散列,因此效果基本上可以忽略不计。最坏的情况下可以在一两秒钟内计算出来。
而这种费用是随着区块链的规模而增长还是保持不变?
区块链不再对挖掘区块的难度有影响。
分享
改进这个答案
跟随
9小时前回答的
麻吉弟弟周立铭♦
53.3k44金徽章5656银徽章109109铜徽章
谢谢你澄清最后一部分。这里有更多的澄清:bitcoin.org/en/faq#什么是比特币挖掘。难度随着矿工人数的增加而增加乌多E。7小时前
添加评论
你的答案

时光素材-香车美女  (193)blockchainBTC比特币区块链www.qkl91.com

安装后使用–disable wallet向Bitcoin(完整节点)添加钱包功能

安装的比特与此配置相符:
`./configure–不带gui–禁用钱包`
然而,在下载了一周后,我意识到我确实需要钱包功能。是否有方法将其添加回(不需要再验证区块链一周)?
比特币
钱包
分享
改进这个问题
跟随
于20年9月4日4:28询问
用户109594
1
添加评论
1个答案
1
数据目录独立于安装。只要重新编译启用钱包,就可以在现有的二进制文件上安装二进制文件,它将使用相同的数据目录和其中的所有数据。
分享
改进这个答案
跟随

时光素材-香车美女  (192)blockchainBTC比特币区块链www.qkl91.com

比特币如何防止种族歧视?

好吧,假设有两个游泳池。A池和B池他们在世界的另一边。假设池A找到了一个适用于当前块的哈希,而池B也找到了一个适用于当前块的哈希。他们都开始在网络上向其他人广播。这需要多长时间才能解决。如何防止比特币的两个竞争实例?假设一半的池接受A解决方案,一半接受B解决方案。他们将拥有大致相等的采矿能力,需要多少区块才能说一个区块无效,如果两个区块保持相等的匹配呢?即使最终胜出,很多人不会因为有多少交易无效而赔钱吗?
采矿池
广播
分享
改进这个问题
跟随
10小时前问的
内德罗姆
1
新贡献者
添加评论
1个答案
1
你所描述的是正常发生的,在实践中不是问题。
即使最终胜出,很多人不会因为有多少交易无效而赔钱吗?
不,这些事务包含在后面的块中。我不确定确切的方法,但我认为要么是节点将事务从过时的块返回到它们的mempool,要么是因为发起者经常重新传输事务。不管怎样,我相信这个问题通常都能很快解决,而无需任何人工干预。
分享
改进这个答案
跟随
3小时前回答的
红砂砖
11.9k22金徽章1717银徽章3838铜徽章
就是这样。还原块中的事务被添加回mempools中两小时前的皮特·维尔
添加评论

时光素材-香车美女  (191)blockchainBTC比特币区块链www.qkl91.com

什么是充分匿名集?

我们知道2是不够的,10000是足够的。
我们也知道JoinMarket可以做到2-6左右,monero2-3左右,但是那里所有的交易都是鱼龙混杂的,所以他们加起来,CoinJoin可以做到400-ish,但是50-100-ish比较现实。
有什么样的实践或理论方法可以帮助决定开发人员/研究人员应该瞄准什么样的匿名集?
隐私
分享
改进这个问题
跟随
4月5日11点44分被问到
诺帕拉73
66255银牌2020铜牌
添加评论
1个答案
0
这是个有趣的问题。我认为,要回答这个问题,首先需要考虑识别集合中的每个成员所需的努力,并从那里开始反向工作。
为此,我想您可能需要指定匿名集所面临的威胁类型。
例如:“什么是进行私人交易的充分匿名设置”
一个商人想要决定我的消费习惯
在民事诉讼中,交易对手不能确定资金来源
确保国家税务机关不能对资金来源作出合理判断
以确保一个拥有几乎无限资源的复杂民族国家不能暴露持不同政见者的身份
分享
改进这个答案
跟随

时光素材-香车美女  (190)blockchainBTC比特币区块链www.qkl91.com

将c++函数转换为python:sha256哈希不匹配

这与比特币无关,但它使用了大部分比特币代码库。我想把一些c++代码翻译成python,但是很难把散列正确。
这是我尝试得到的函数。哈什正在做一个双sha256
uint256-CalcKernelHash(const uint256&stakeModifier,int64\t height,int64\t coinstakeTime,const uint256&masternodeID,const consensis::Params&Params){
//计算哈希
CDataStream ss(SER\u GETHASH,0);
ss<<stakeModifier<<coinstakeTime<<GetMnCollateralAmount(int(height))<<masternodeID;
标准::cout<<“\n————————————-\n”;
std::cout<<“调试[”<<coinstakeTime<<“]collateralamount:”<<GetMnCollateralAmount(int(height))<<“\n”;
std::cout<<“调试[”<<coinstakeTime<<“]ss:”<<stakeModifier.ToString()<<coinstakeTime<<GetMnCollateralAmount(int(height))<<masternodeID.ToString()<<“\n”;
std::cout<<“调试[”<<coinstakeTime<<“]哈希:”<<哈希(ss.begin(),ss.end()).ToString()<<“\n”;
返回哈希(ss.begin(),ss.end());
}
这里叫做
const auto hashprooftofstake=uintotoarith256(CalcKernelHash(stakeModifier,height,coinstakeTime,masternodeID,params));
std::cout<<“调试[”<<coinstakeTime<<“]coinstakeTime:”<<coinstakeTime<<“\n”;
std::cout<<“调试[”<<coinstakeTime<<“]nbits:”<<nbits<<“\n”;
std::cout<<“调试[”<<coinstakeTime<<“]hashprooftostake:”<<hashprooftostake.ToString()<<“\n”;
std::cout<<“调试[”<<coinstakeTime<<“]stakeModifier:”<<stakeModifier.ToString()<<“\n”;
std::cout<<“调试[”<<coinstakeTime<<“]主节点ID:”<<主节点ID.ToString()<<“\n”;
我添加了一些调试语句来检查输出,并提供了一个参考
——————————–
调试[1622528110]押品:2000000000
调试[1622528110]ss:F541F372005BEEB8952F964EA638527341C3B3A6EEBB0C009E4F092BD6C1B0E16225281102000000E2CFE3F576DA4999EA2268224F34EFDD3B0D567841D561B41B3AB67976C977D1
调试[1622528110]哈希:e4b0d1b01a99d00e44d41eeb37c81d19940bf71270994fff53ea5caa1c79f663
调试[1622528110]coinstakeTime:1622528110
调试[1622528110]编号:419654358
调试[1622528110]哈希证明:e4b0d1b01a99d00e44d41eeb37c81d19940bf71270994fff53ea5caa1c79f663
调试[1622528110]桩修改器:F541F372005BEEB8952F964EA638527341C3B3A6EEBB0C009E4F092BD6C1B0E
调试[1622528110]主节点ID:e2cfe3f576da4999ea2268224f34efdd3b0d567841d561b41b3ab67976c977d1
这是我在python中的试用
导入binascii
导入hashlib
定义旋转(x):
s2=bytearray.fromhex(x)
s2.反向()
返回binascii.hexlify(s2).decode()
def PADHEAX(s):
返回s[2:].zfill(16)
def CalcKernelHash(stakeModifier、coinstakeTime、masternodeId):
stakeModifier=binascii.unhexilify(stakeModifier)
coinstakeTime=binascii.unhexilify(“%x”%coinstakeTime)
抵押品=binascii.unhexlify(“0%x”%2000000000)
masternodeId=binascii.unhexlify(masternodeId)
bin_s=存储修改器[::-1]+coinstakeTime[::-1]+抵押品[::-1]+主节点ID[::1]
打印(纸盒)
返回rotate(hashlib.sha256(hashlib.sha256(bin\s).digest()).hexdigest())
CalcKernelHash(’F541F372005BEEB8952F964EA638527341C3B3A6EEBB0C009E4F092BD6C1B0E’,1622528110’,e2cfe3f576da4999ea2268224f34efdd3b0d567841d561b41b3ab67976c977d1’)
当我使用调试输出中的参数执行时
CalcKernelHash(’F541F372005BEEB8952F964EA638527341C3B3A6EEBB0C009E4F092BD6C1B0E’,1622528110’,e2cfe3f576da4999ea2268224f34efdd3b0d567841d561b41b3ab67976c977d1’)
‘f01ba34ac7a897a1e37d61bac3a8ea6f0126c2ae883a2d75dab1f407d40aad0b’
我应该在哪里获得e4b0d1b01a99d00e44d41eeb37c81d19940bf71270994fff53ea5caa1c79f663的哈希证明

编辑:
bin\u s返回b’\x0e\x1bl\xbd\x92\xf0\xe4\t\x03\x0c\xbb\xee\xa6\xb3\xc3AsR8\xa6N\x96/\x95\xb8\xee[\x00r\xf3A\xf5n\xd0\xb5`\x00 J\xa9\xd1\x01\xe2\xcf\xe3\xf5v\xdaI\x99\xea“h”O4\xef\xdd;)\rVxA\xd5a\xb4\x1b:\xb6yv\xc9w\xd1′
编辑2:
哈希定义
/**计算对象的256位哈希*/
模板<T1型>
inline uint256散列(const T1 pbegin,const T1 pend)
{
static const unsigned char pblank[1]={};
uint256结果;
CHash256().Write(pbegin==pend?)pblank:(const unsigned char*)&amp;pbegin[0],(pend pbegin)*sizeof(pbegin[0])
.Finalize((unsigned char*)和result);
返回结果;
}
蟒蛇
sha256型
c级++
分享
打印此问题
跟随
%1小时前
6小时前问的
克里斯
12344青铜徽章
新贡献者
你能用python打印垃圾箱吗?调试散列不匹配的最佳方法是在5小时前将完整数据打印为散列(称为preimage)–mccc
修改了答案-克里斯5小时前
你好,我几乎解决了这个问题,但有一个问题:2000000000的附带价值,可能是十六进制字节数组,是奇数长度???3小时前的MCCCS
我认为是原图印刷不好的情况。你能为(auto i:ss)std::cout<<std::hex<<i;作为哈希计算前的单行调试语句,并在此处添加其输出?—作为哈希计算前的单行调试语句,并在此处添加其输出?3小时前的MCCCS
它只输出垃圾!#c#b“~tW还添加了散列定义–Chris 3小时前
再显示4条评论
1个答案
1
def CalcKernelHash(stakeModifier、coinstakeTime、masternodeId):
stakeModifier=binascii.unhexilify(stakeModifier)
coinstakeTime=binascii.unhexlify(十六进制(coinstakeTime)[2:])
抵押品=binascii.unhexilify(“0000000000204A9D1010000”)
masternodeId=binascii.unhexlify(masternodeId)
bin_s=存储修改器[::-1]+coinstakeTime[::-1]+抵押品[::1]+主节点ID[::-1]
打印(binascii.hexlify(bin_s))
返回rotate(hashlib.sha256(hashlib.sha256(bin\s).digest()).hexdigest())
分享
改进这个答案
跟随
%1小时前
%1小时前
监控化学品
913855金徽章2222银徽章5454铜徽章
就是这样。如何正确地序列化字符串,使其得到与c++中uint256类型相同的结果?stakeModifier的调试输出是它的ToString()版本。克里斯4小时前
@Chris你能给我完整的python源代码吗(Full=可以运行的代码,但不是软件的全部源代码。例如,我需要4小时前运行这个python代码的代码
在上面编辑。在上面编辑。所需要的只是导入hashlib和binascii–Chris 4小时前
好极了!谢谢-克里斯一小时前
不客气!MCCCS 1小时前
添加评论

时光素材-香车美女  (19)blockchainBTC比特币区块链www.qkl91.com

当每枚硬币的成本如此之大的时候,BTC怎么能成为一种有用的货币呢?

几个相关的问题。首先,假设BTC价值5万美元,这意味着购买杂货可能是0.002BTC。三明治可能是0.0000598。有没有一个系统已经被提议有更好的单位?1美分等于0.000002BTC,我们会有精度问题吗?
其次,在2100万BTC的硬限制和80亿世界人口的情况下,我们说的是每个人平均可以拥有大约0.0025BTC。按目前的市值计算,约为100美元。相比之下,美国有大约40万亿美元的普通现金,如果我没有犯一个愚蠢的错误,大约是BTC市值的40-60倍(这取决于你读到这篇文章那天的价值)。
这难道不意味着BTC要成为一种现实世界的货币,它已经很高的价值最终必须达到每枚硬币200万美元。此时,您的2.99美元三明治将花费0.000001495,我们需要9个小数位来准确计算,相当于今天的1美分。
作为一个新来者,BTC计划如何解决这些问题,成为一种实用的日常货币?这是一件小事,还是一个问题?
付款
分享
改进这个问题
跟随
两小时前问的
男孩先生
11122青铜徽章
添加评论
1个答案
0
今天1美元是0.000027 BTC,也就是2700 Satoshi,所以1美分是27 Satoshi
你上一次购买总成交价为一美分的东西是什么时候?
如果比特币的价值如你所说的那样增长,那么就需要一个更小的单位。我认为闪电网络已经可以用millisatoshi来衡量交易了——比它小一千倍。
所以,这不是什么大问题。
相关问题:
什么是millisatoshi?我以为satoshi是最小的单位?
为什么我们可以拥有比特币的一小部分?
你能为连锁交易支付的最低费用是多少?
分享
改进这个答案
跟随

时光素材-香车美女  (189)blockchainBTC比特币区块链www.qkl91.com

-regtest generate 101不工作

我打字的时候
比特币cli-regtest generate 101
在powershell中,它给了我以下错误:
PS C:\Program Files\Bitcoin\daemon>/Bitcoin cli-regtest生成101
错误代码:-32601
%1个错误消息:
我也在regtest中运行bitcoind,这是我收到的关于bitcoind的最后一条消息:
将固定种子节点添加为DNS似乎不可用。
请帮忙
比特币核心
比特币cli
正确的
分享
打印此问题
跟随
1月2日11:50编辑
迈克尔·福克森
590277银徽章2222铜徽章
12月20日11点54分被问到
纽杜德
4355青铜徽章
您是否正在尝试生成此处描述的地址:bitcoin.stackexchange.com/a/89397?Prayank 12月2日12:16
@是的,现在可以了,谢谢-纽杜德12月2号20点18分33秒
伟大的。你可以在下面回答你自己的问题来提及对你有用的命令。普拉扬克12月3日1:29
添加评论
1个答案
0
答案是:
比特币cli-regtest generatetoaddress<nblocks><address>
分享
改进这个答案
跟随
12月3日8:20答复
纽杜德
4355青铜徽章
添加评论

时光素材-香车美女  (188)blockchainBTC比特币区块链www.qkl91.com

如何计算BitcoinJS原始交易的费用?

有一个具有3个输入和2个输出的事务。1输出是收件人,另一个输出是更改地址。我应该如何计算费用并将其应用于产出?
交易
交易费用
原始事务
比特币
分享
改进这个问题
跟随
编辑时间:5月5日15:02
监控化学品
911355金徽章2222银徽章5454铜徽章
5月20日13:24问
拉贾比阿米罗生
1111青铜徽章
4
这能回答你的问题吗?使用bitcoinjs指定费用金额–MCCCS 5月5日15:01
你的问题有点误会。如果你在搜索“交易费”后阅读了一些热门内容,我想你会问一个更好的问题。你的意思可能是,“如何在BitcoinJS原始事务中设置费用?”但即使这样,你也不会意识到费用只是输入和输出之和之间的差异。或者你想在选择费用时征求意见(bitcoin.stackexchange.com/questions/64443/…)—Dave Scotese 5月29日1:01
添加评论
1个答案
0
发送费用是所有输入值和所有输出值的总和之差。如果你只看一个TX,你可以看到所有的输出值,但是你怎么得到输入值呢?它们不包括在TX本身中。您必须做的是查找每个TX输入所使用的UTXO,以及它们的总值(用于跟踪和处理所有输入硬币的数据结构称为“视图”)。
请注意,没有“向输出应用费用”。TX没有额外的费用字段或属性,费用本身也不会占用整个输出。
如果您正在构建一个输入值正好等于输出值的TX,您可以通过减少其中一个输出值来“包含”费用。
分享
改进这个答案
跟随

时光素材-香车美女  (187)blockchainBTC比特币区块链www.qkl91.com

在electrum中生成BTC旧地址的命令是什么?

什么命令在electrum中生成BTC旧地址?
下面是一个示例命令:
createnewaddress()
比特币核心
驻极体
分享
改进这个问题
跟随
21小时前问的
坝驿
5555青铜徽章
添加评论
1个答案
2
创建新地址的命令与问题中提到的相同:
createnewaddress()
您只能在带有“标准”种子的钱包中创建P2PKH(旧)地址:
创建标准种子的命令:
制作种子(种子类型=“标准”)
对于带有bech32地址的钱包,“standard”可以替换为“segwit”
使用上述命令返回的种子创建新钱包:
文件->新->标准钱包->我已经有一个种子了
分享
改进这个答案
跟随
18小时前回答的
普拉扬克
378911金徽章66银徽章1818铜徽章
文件->新->标准钱包->我已经有一个种子不工作默认是bech32地址不能更改为传统或脚本地址14小时前
如果您输入“标准”种子,您将在种子类型中看到标准;如果您输入“segwit”种子,您将在种子类型中看到segwit–Prayank 14小时前
谢谢,这很管用13小时前
添加评论

时光素材-香车美女  (186)blockchainBTC比特币区块链www.qkl91.com

如何从app.thorswap.finance(一个本地BTC跨链交换系统)获取比特币私钥?

我正在测试app.thorswap.finance以获得本地比特币。据说Thorchain是一种跨链交换服务,没有集中的参与方。在这个应用程序中,我生成了一个密钥库文件,它附带了一个比特币地址。我假设当我把BTC发送到这个地址时,它在我的控制下,直到我想把它换成另一个硬币。如何访问我的密钥库生成的app.thorswap.finance上的比特币私钥?
私钥
恢复私钥
索查恩
交叉链互换
分享
改进这个问题
跟随
5月20日20:04问
帕托希パトシ
98631414金徽章7070银徽章134134铜徽章
添加评论
1个答案
0
钱包选项卡>点击文件夹图标按钮“查看短语”
去https://github.com/xchainjs/xchainjs-lib/blob/master/packages/xchain-bitcoin/src/client.ts. 用你想要的货币代替比特币。
用Ctrl+F在页面上搜索“RootDerivationPaths”。
然后你会发现类似的东西(这个例子是针对比特币的):
根派生路径={
主网:`84’/0’/0’/0/`,
测试网:`84’/1’/0’/0/`,
},
删除最后一个/0/,添加m/(例如m/84’/0’/0’)。
导入您计算的派生路径和Electrum中的短语
分享
改进这个答案
跟随

时光素材-香车美女  (185)blockchainBTC比特币区块链www.qkl91.com