Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 验证从交易所购买的商品_.net_Bitcoin_Cryptocurrency_Nbitcoin_Blockcypher - Fatal编程技术网

.net 验证从交易所购买的商品

.net 验证从交易所购买的商品,.net,bitcoin,cryptocurrency,nbitcoin,blockcypher,.net,Bitcoin,Cryptocurrency,Nbitcoin,Blockcypher,我是加密新手,但我正在尝试实现一个店面来处理比特币的发送/接收。在我的第一次测试中,我将一些BTC从我的coinbase帐户转移到我个人托管的钱包中。结果似乎是一个组合交易,包含几个未知的(无论出于何种目的,它们都是coinbase的(临时?)钱包)公钥,分发到各种输出钱包,包括我在测试中使用的钱包 所以我收到了比特币,但我无法验证它是否来自我,因为coinbase的系统混淆了这个细节。他们在网站上展示的钱包/钥匙似乎只用于接收密码 想到的唯一解决方案是为每笔交易创建一个不同的钱包,以验证收到的

我是加密新手,但我正在尝试实现一个店面来处理比特币的发送/接收。在我的第一次测试中,我将一些BTC从我的coinbase帐户转移到我个人托管的钱包中。结果似乎是一个组合交易,包含几个未知的(无论出于何种目的,它们都是coinbase的(临时?)钱包)公钥,分发到各种输出钱包,包括我在测试中使用的钱包

所以我收到了比特币,但我无法验证它是否来自我,因为coinbase的系统混淆了这个细节。他们在网站上展示的钱包/钥匙似乎只用于接收密码

想到的唯一解决方案是为每笔交易创建一个不同的钱包,以验证收到的金额是否符合预期,从而消除必须信任用户输入的任何废话。这是标准方法吗?有没有更好的方法来处理这个问题?我认为从这些小钱包转移的费用将是一个相当大的损失

对于这个项目,我在.NETFramework环境中使用NBitcoin+Blockcypher


感谢您提前提出的任何见解或建议。这是一个值得深入研究的有趣领域。

多输入

每个事务可以有多个输入,即您看到的地址。具有多个输入的事务视为单个事务。因此,矿工的费用将与单一投入的交易相同

花费事务的用户需要拥有每个输入的私钥,因此可以安全地假设所有输入都属于同一用户

输出

一个事务可以有1个或2个输出。一个用于接收方,一个用于将任何备用零钱返还给付款方

自动验证交易

所有自动支付验证系统(据我所知)都使用“一次性地址”。也就是说,它们创建的地址只使用一次。然后,您可以将该地址链接到某个用户,并检查该地址是否收到了资金,而无需了解输入地址的任何信息

请注意,大多数钱包也为用户生成大量地址。因此,通常不建议记录用户及其比特币地址

由于生成新的比特币地址非常容易,我建议您建立一个系统,为每次传入的支付生成一个新地址。如果您仅与付款方共享此地址,则您可以确定只有付款方才能使用此地址


祝你好运

太棒了,谢谢你!我对单次使用地址模式的保留意见是,它可能会在多个位置中放入非常少量的密码。我认为你的第一点实际上解决了主要问题,但是,因为所有这些不同的“小钱包”(就像我和我兄弟开始说的那样,哈哈)都可以通过一个单一的多输入交易进行聚合。再次感谢!