偶然发现,schnorr签名很可能在未来的BIP中取代当前的ECDSA系统。
ECDSA是否值得学习,否则这将成为过时/无用/混乱的知识?
或者我应该直接讨论schnorr签名,例如,它将如何影响这样一个模型
签名
ecdsa公司
施诺尔签名
分享
改进这个问题
跟随
3月6日19:30编辑
墨奇♦
55.1K33333金徽章154154银徽章484484铜徽章
10月7日11点10分被问到
萨克斯霍夫
224155金徽章1313银徽章2727铜徽章
添加评论
1个答案
12
Schnorr签名不会取代ECDSA。Schnorr签名验证预计将通过使用SegWit见证版本1的主根软分叉来实现。这意味着只有锁定在v1 SegWit版本中的输出才会产生有效的Schnorr签名。
ECDSA将继续用于当前非SegWit和v0 SegWit输出。所有具有OP_CHECKSIG操作码的输出将继续使用传统的ECDSA签名算法和验证。
因此,了解ECDSA对于理解花费所有非本机输出背后的签名验证非常重要。根据txstats.com的数据,所有被锁定的BTC值中只有2%以上属于本机SegWit脚本,这也是经过近2年的实现后得出的结论。因此,可以放心地假设V1实现可能不会完全取代所有当前的输出锁定脚本,如果您计划构建接受比特币的产品,而这些比特币需要ECDSA签名才能使用,那么您也需要了解ECDSA签名算法。
分享
改进这个答案
跟随
19小时前编辑的
沃伊奇·斯特纳德
62811银牌1717铜牌
10月7日12:22答复
乌甘卡马特
652822金徽章1111银徽章3535铜徽章
“软叉[…]不能移除ECDSA”这句话措辞混乱。我想你是想说,我们不能允许使用软fork的schnorr签名来满足遗留的OP\u CHECKSIG操作,这是正确的。然而,当我第一次读到你的句子时,听起来好像你在说我们不能通过一个软分叉完全删除ECDSA,这是不正确的——我们可以通过一个软分叉使遗留的OP\u CHECKSIG总是失败的,因为这只会使规则更加严格大卫A。哈丁10月28日19:25
@达维达。哈丁是的,你是对的。我认为我的措辞很糟糕Ugam Kamat 10月29日5:08
添加评论
月度归档: 2021 年 7 月
BIP199 HTLCs是否像multisig一样由于OP\u CHECKMULTISIG而遭受sigscript延展性的影响?
多重签名
交易延展性
哈希锁时合约
分享
改进这个问题
跟随
15小时前编辑的
达罗西奥
312011金徽章55银徽章2323铜徽章
17小时前问的
阿什伯特
108977银牌3030铜牌
添加评论
1个答案
0
如果不在见证脚本中使用,bip-0199中定义的脚本可能会受到OP琰IF延展性的影响(强制执行OP琰u IF的参数是最小的,即空向量或0x01)。
在这个脚本中可能还有其他我没有发现的延展性来源,更普遍的说,延展性是很难推理的,值得使用诸如Miniscript之类的工具来防止您的脚本满足(太多)延展性。
分享
改进这个答案
跟随
使用比特币客户端的jsonapi(或任何其他altcoin客户端),我如何找到找到该块的奖励?
json rpc
分享
改进这个问题
跟随
2014年2月20日7:21编辑
汗沙鲁克
43744银牌1515铜牌
2014年2月18日4:05问
图亚里斯
9366青铜徽章
添加评论
3个答案
2.
在getblock调用中得到的信息似乎不包括block奖励。您可以通过对第一笔交易的gettransaction调用找到它,但是bitcoind只允许在您自己的钱包中查找交易,所以这也不起作用。
所以实际上,正如迭戈所指出的,唯一的选择就是看方块的高度。此wiki页面列出了不同块高度间隔的不同奖励值。
分享
改进这个答案
跟随
回复时间:2014年2月20日0:07
史蒂文·鲁斯
11.3k88金徽章4141银徽章7070铜徽章
那应该可以满足我的需要。我只需要知道我找到的积木的奖励值。因此,可以肯定的是,第一笔交易将始终是大宗奖励图阿里斯2014年3月8日0:29
2.
第一个交易是coinbase交易,此交易的输出包含区块奖励+其他交易的合并交易费用史蒂文·鲁斯3月8日14:09
添加评论
0
你只需要区号。奖励从50块开始,每21万块减半。现在是25号,我写这封信的时候,现在的代码是286459。对于其他的altcoins,你需要知道时间表。
分享
改进这个答案
跟随
回复时间:2014年2月18日6:43
迭戈巴斯克
32611银徽章55铜徽章
所以我们可以用你说的数学公式计算块?我们可以用这张桌子对吗?:en.bitcoin.it/wiki/…–kodmanyagha Jul 24’19 13:43
添加评论
0
有点旧,但可能对在regtest中进行e2e测试的人有用
财务函数(x,数字=8){
返回Math.trunc(x*Math.pow(10位数字))/Math.pow(10位数字);
}
const getBlockReward=(blockNumber,halvingBlocks=150,blockReward=50)=>{
常数减半=(r,次)=>{
if(times===1)返回r;
收益减半(财务(r/2),乘以-1);
}
返回减半(blockReward,Math.ceil((blockNumber | | 1)/halvingBlocks));
}
并与比特币rpc客户端和getblockcount一起使用。前任:
const blockNumber=等待bitcoindClient.getBlockCount();
console.log(getBlockReward(blockNumber));
请注意,如果要使用其他网络,则必须传递halvingBlocks参数或更改默认值。
分享
改进这个答案
跟随
我正在建立一个基于multisig钱包的服务。我目前的进展是,我已经实现了比特币网络的multisigs,它工作得很好。现在我在Litecoin上,我面临一些问题,希望能得到任何帮助或指导。
免责声明:这可能与Electrum LTC的工作方式有关,我不确定。我很高兴听到专家们对此提出质疑。
在比特币网络上,您的multisig钱包由3部分组成:
脚本签名
签名
0<Sig1><Sig2><信号>
兑换脚本
M<publikey1><publikey2><PubKeyN>N操作\u CHECKMULTISIG
脚本发布键
opu HASH160<赎回脚本哈希>opu相等
这对我的实现很好。我可以用Electrum(btc)生成2/2的multisig,并用两个键(包括我的代码和Electrum钱包)签名。两种情况下的结果交易都是正确的,并被网络所接受。
现在,对于Litecoin,我使用的是Electrum ltc,过程完全相同。我可以在Litecoin上成功生成多个Sig地址
假设我有下面的兑换脚本
2 028c895128a8113bb5d599b4f463df685220ba726fc664013b3df56cb0bae74dc4 02c09fdcf2cd2281ac5d35dedb8b19499db847fad469c151428d28c9cf1aabf435 2 OPU CHECKMULTISIG
我在Electrum ltc中看到的地址与我自己生成的地址相匹配,它告诉我我在正确的道路上。
但是,当我使用钱包进行交易时,交易十六进制中的兑换脚本看起来完全不同,与我手动生成的兑换脚本不匹配
手动生成的兑换脚本
5221028C895128A8113BB5D599B4F463DF685220BA726FC664013B3DF56CB0BAE74DC42102C09FDCF2CD2281AC5D35DEDB8B19499DB847FAD469C151428D28C9CF1AABF4352AE
分崩离析
52-作品2
21028c895128a8113bb5d599b4f463df685220ba726fc664013b3df56cb0bae74dc4-公用键1
2102c09fdcf2cd2281ac5d35dedb8b19499db847fad469c151428d28c9cf1aabf435-公用键2
52-作品2
ae-操作检查
这是我用一个密钥签署交易后从Electrum ltc得到的兑换脚本
524C53FF0488B21E00000000000006A88A8AFFF7C30E2ADC4EBEE877E842B7868F11C6FAFE5635FECD85337366BD802F8ECC3FC0BE1C7B7D7BF4968DF349845EDE9DD6044BEB0BCF25145612FA3B4E400002A201209FDCF2CD2281AC5D35DEDB8B19499DB847FAD469C151428D28C9CF1AABF4352AE
分崩离析
52-作品2
4C53FF0488B21E00000000000000006A88A8AFFF7C30E2ADC4EBEE877E842B7868F11C6FAFE5635FECD85337366BD802F8ECC3FC0BE1C7B7D7BF4968DF349845EDE9DD6044BEB0BCF25145612FA3B4E400002A201209FDCF2CD2281AC5D35DEDB819499DB847FAD469C151428D28C9CF1AABF435
52-作品2
ae-操作检查
那么,中间这东西是什么?为什么不符合我的救赎剧本?这是Electrum ltc的错误还是我遗漏了什么。如有任何反馈,我们将不胜感激。
比特币核心
莱特币
多重签名
分享
改进这个问题
跟随
2月19日11:05问
马克斯
10111青铜徽章
添加评论
1个答案
0
如果您只使用一个密钥签署比特币交易,您将看到相同的行为。
您所观察到的是Electrum如何处理部分签名的事务。在事务完全签名之前,它不会生成正确的脚本。您在事务中看到的公钥就是Electrum在内部表示公钥的方式。
分享
改进这个答案
跟随
2月19日15:39答复
麻吉弟弟周立铭♦
54k44金徽章5656银徽章10110铜徽章
它不是,因为赎回脚本是相同的,无论您是否签署了交易。Electrum for bitcoin按预期工作。litecoin的Electrum没有,我想知道威瑟这是错误还是协议差异-Max 2月19日16:31
那么这就是Electrum的问题。Litecoin的工作原理与比特币基本相同。脚本和UTXO系统是相同的。还要记住,Electrum ltc可能不是Electrum的最新版本。在某个时候,IIRC驻极体本身就表现出了这种行为麻吉弟弟周立铭♦ 2月19日17:18
您能推荐任何支持多重签名的基于GUI的Litecoin钱包吗最长2月20日19:57
添加评论
我正在用BitcoinJ库构建一个比特币钱包,在查看了他们在github上显示的获取交易的示例之后,它显示您需要下载区块链。
当试图下载区块链以查看我钱包的余额时,它开始锁定并且无法使用。我甚至尝试过在异步任务中下载区块链,但应用程序仍然完全不可用,用户界面甚至无法加载。我错过了什么?我以为下载量不会那么大,因为我正在尝试创建一个SPV钱包,据我所知,它不会下载整个区块链,或者这是我需要单独配置的东西?
类MainActivity:AppCompatActivity(){
重写fun onCreate(savedInstanceState:Bundle?){
下载区块链().execute()
}
内部类下载区块链:AsyncTask<Void,Int,String>(){
override fun doInBackground(vararg p0:Void?):字符串{
Globals.peerGroup?.startAsync()
Globals.peerGroup?.downloadBlockChain()
return“完成”
}
重写onPostExecute(结果:字符串?){
super.onPostExecute(结果)
Globals.peerGroup?.stopAsync()
Globals.wallet?.saveToFile(Globals.walletFile)
}
}
}
比特币
安卓
分享
改进这个问题
跟随
2月19日16:03问
本穆尔
1111青铜徽章
添加评论
1个答案
0
downloadBlockChain()方法看起来像是下载整个区块链。看起来PeerGroup.setFastCatchupTime方法可能有助于防止它在此之前下载完整的块。我想你会使用一个方法或者改变一个布尔值,只为你的SPV钱包下载块头,但我不知道那会在哪里。
https://bitcoinj.github.io/speeding-up-chain-sync 可能是一个有用的参考。
分享
改进这个答案
跟随
请注意,我不是那么精通技术,也不太了解加密货币。我在帮助一个(由于残疾原因)不能自问的朋友。
我的朋友从2008年左右购买了比特币,并将其储存在一台旧笔记本电脑中(不确定)。他在2018/2019年左右购买的一台“较新”笔记本电脑上创建了一个较新的比特币钱包。他想将比特币从较旧的比特币钱包转移到新的比特币钱包上,以便“准备”比特币,并打算出售所有比特币,因为比特币已经变得太过科技化,无法跟上时代的步伐。
我们试图通过“发送”功能从旧比特币钱包中转移比特币,并使用了(我猜)新比特币钱包的账号。在旧钱包上,它有一个白色的圆点记录着交易。在新的比特钱包上,没有任何交易的迹象。我们认为,我们会等待,看看是否会发生什么事情,这已经是几个月了,我们不知道比特币在哪里了。
老比特钱包是1.4.5版。它运行在装有Windows7 Professional的戴尔笔记本电脑上。
我不确定比瑟的新帐户。我们相隔几个小时,必须和他确认他那边的细节(这可能需要一些时间才能得到)。再次表示歉意,我希望有人能耐心帮助我们)。
此外,我不知道什么应该保密,所以请让微波知道,如果有什么我不应该透露这里或张贴(帐户“号码”,二维码等)。
非常感谢。
在此处输入图像描述
同步
咬人
分享
改进这个问题
跟随
6月30日20:59问
rsan公司
1122枚青铜徽章
添加评论
1个答案
0
是的,当然
首先,请在这里张贴新旧钱包的公钥。我们将能够确定哪些有比特币,使用这些
简单的复制粘贴这些数字到blockchain.info会马上给出答案
在这里公开这些公钥是无害的,而且很可能很难获得私钥(如果在这里公开,任何人都可以窃取比特币)
千万不要发布私钥或种子短语,这将等同于允许比特币被盗。谁知道这些数字谁就拥有比特币
如果涉及残疾,请让他拍下公钥二维码。这将足以确定哪个钱包有比特币,旧的还是新的
分享
改进这个答案
跟随
【京东】瑜色定制比特B镂空金属纪念币黄铜钥匙扣挂件男以太坊ETH金币货币礼品狗狗币挖矿数字虚拟货币实物 合金镂空B+合金套+骷髅小圈
————————————
商城价:39.50元
入口https://u.jd.com/6JcdqNY