首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >令牌交换如何与有限的智能契约方法一起工作?

令牌交换如何与有限的智能契约方法一起工作?
EN

Ethereum用户
提问于 2017-11-15 12:47:10
回答 1查看 146关注 0票数 0

查看各种令牌实现(例如这里这里)的源代码,它们具有以下API:

代码语言:javascript
复制
// presume can only be "called" by owner.
Transfer(address to, number amount) 

// sender (exchange) must be authorised by owner
Transfer(address from, address to, number value)  {
     require(balanceOf[from] >= value);
    balanceOf[from] -= value;
    balanceOf[to] += value;
}

// presume can only be called by the owner. 
authorise(address broker, number value) 

如果Bob拥有1000张代币,并想出售,那么他大概会在交易所(如kraken,bittex)上设定一个售价(例如,每个令牌1 an )。

如果珍妮想在GB1购买50枚代币,那么这个交易所就可以与此相匹配。

在交换之前,据推测发生了以下情况:

  1. 鲍勃在交易所登记他的帐户(不是钱包)。他把他的公钥给他们,例如0x123
  2. 珍妮在交易所登记了她的帐户公钥,例如0x456
  3. Bob授权交易所(该交易所也有一个帐户)转移1000个令牌*

下面的流程大概是为了交换而发生的?

  1. 珍妮将50英镑存入她在交易所的账户(尽管许多交易所似乎不支持这一点),因为她的银行承担了银行费用。
  2. exchange从珍妮在本地持有的法定余额(而不是区块链)中扣除国标50。
  3. 交换问题转移(鲍勃,珍妮,50岁)
  4. 交换等待X确认?
  5. 把钱存入在交易所持有的Bobs法定帐户。
  6. 鲍勃把钱提取到他的银行账户或类似的账户(承担银行费用)。

问题:

  1. 以上流量正确吗?
  2. 如果交易所只收到X-1确认,令牌转移发生了吗?现在交换资金是做什么的?把它给鲍勃还是还给珍妮?
  3. 在传递函数中,它检查是否有足够的令牌,然后扣除金额。如果同时调用该方法两次,会发生什么情况?潜在的情况是,双方都检查余额是否正常,然后都扣除金额,导致负余额或类似的。这些方法是否是同步的(因此一次只能有一个用户调用该函数)?我想不是因为“刀”盗窃的问题。在哪种情况下,Ethereum依赖断言来捕获并发问题?如果是这样的话,“回滚”是珍妮的功劳(我还没有看到这方面的任何代码)。我认为更糟糕的是,事务的应用顺序没有得到保证。
  4. 没有记录的区块链的货币价值的交易,对吗?它只记录在交易所里。
  5. 交易所是否通过收取一些代金券来收取费用(所以詹妮得到的费用少于50)?
EN

回答 1

Ethereum用户

发布于 2017-11-15 13:01:56

啊,所以这里的脱节是传统的交易所和分散的交易所。在传统的集中式交换中,每次有交易时都不需要进行链上交易。当你在兑换处开立一个账户,并存上一枚代金券时,所有的钱都会放在同一个钱包里。交易所在一个集中化的数据库中跟踪您的余额。这样,他们就可以完全脱离链进行交易,而不必担心确认。确认只有在你存钱的时候才对他们重要

另一方面,分散的交易所(以太三角洲)在链上做所有的事情,或者至少大多数事情。这意味着两个用户之间的交易实际上创建了一个事务。确认对于这些系统来说并不重要,因为所有东西都已经在链上了,两个用户之间的事务是原子的,这意味着一半的交易不可能在另一半也发生的情况下发生。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/30808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档