查看了25次
1
所以我知道交易所不必在区块链上执行更新。但是,我不知道他们如何在不支付区块链费用的情况下找到以下解决方案?我想是的
即
交换给3个用户,Bill,Jane和Sally一个BTC地址。
比尔和简都从另一个交易所/钱包向该地址发送0.001 BTC。
现在比尔和简都在同一台交换机上给莎莉发了0.0005 BTC。相同的交换,所以这不必在链上。
所以现在比尔和简的BTC都是0.0005,而莎莉的BTC是0.001。不过,比尔和简的实际钱包地址仍为0.001。
莎莉现在提取她的0.001 BTC
交易所现在需要执行两次区块链更新来完成此取款,这意味着交易所在区块链上需要支付两笔交易费用。
有人知道交易所是怎么做到的吗?
交易所
分享
改进这个问题
跟随
22小时前问的
特雷弗·伍德
11555青铜徽章
新贡献者
添加评论
2个答案
三
用户在交易所没有地址。当你把钱存入交易所时,你就是把钱存入了交易所的钱包里,只有一个唯一的地址才能让他们知道把内部余额贷记给谁。取款只需要一个链上事务,只需从数据库中借记金额,然后将该值发送到请求的地址。
分享
改进这个答案
跟随
22小时前回答的
匿名的
12.8k22金徽章1818银徽章3939铜徽章
如何生成一个地址,发送交换知道是一个钱包,但同时是唯一的接收交换整个数据库?-特雷弗·伍德22小时前
i、 e.一个钱包可以有多个(数百万)不同的可能地址?–特雷弗·伍德21小时前
钱包里的地址数目没有限制。–匿名20小时前
什么。头脑发热。好吧,我需要读更多关于比特币的资料。谢谢你的信息!–特雷弗·伍德20小时前
你会发现bitcoin.stackexchange.com/q/8804/5406很有趣。–默奇♦ 2小时前
添加评论
1
这就是它通常的工作原理。
当用户第一次点击“存款”按钮时,交易所用getnewaddress命令调用BTC节点生成地址,并显示给用户。
用户将存款存入该地址。
比特币具有walletNotify功能,因此当存款到达exchange节点时,它将使用transactionHash通知exchange API。
使用该txHash,exchange将调用bitcoin节点的getTransaction API,并获取交易的所有细节,包括存款钱包地址。
现在回到你的问题。
一旦交易所满足了确认要求,它只需用相关的存款细节更新他们的本地数据库(Mongo/MySQL或任何其他数据库)。现在,当用户1在同一个交换上向用户2发送BTC时,就没有onchain事务了。
Exchange只是从用户1数据库中扣除取款金额,并将其记入用户2数据库。
但当用户在交易所之外输入取款地址时,也就是实际的区块链交易发生时。