Fairness in ERC token markets: A Case Study of CryptoKitties
FFairness in ERC token markets: A Case Study ofCryptoKitties
Kentaro Sako, Shin’ichiro Matsuo, and Sachin Meier
No Institute Given
Abstract.
Fairness is an important trait of open, free markets. Ethereumis a platform meant to enable digital, decentralized markets. Thoughmany researchers debate the market’s fairness, there are few discus-sions around the fairness of automated markets, such as those hostedon Ethereum. In this paper, using pilot studies, we consider unfair fac-tors caused by adding the program. Because CryptoKitties is one of themajor blockchain-based games and has been in operation for an extendedperiod of time, we focus on its market to examine fairness. As a result,we concluded that a gene determination algorithm in this game has lit-tle randomness, and a significant advantage to gain profit is given toplayers who know its bias over those who do not. We state incomplete-ness and impact of the algorithm and other factors. Besides, we supposecountermeasures to reduce CryptoKitties’ unfairness as a market.
Keywords:
CryptoKitties · Smart contracts · Financial market fairness.
After Bitcoin was proposed, many challenges are conducted to make economicactivities performed autonomously without any trusted party. Bitcoin tries torealize such a space for a simple application like payment. On the other hand,with Solidity and another language, Ethereum tries to realize “smart contract”beyond the payment process. The movement is recently expanding decentral-ized finance. When we deal with the simple payment process, requirements onapplication-level security are a bit simple, preventing double-spending in the caseof bitcoin. The amount of payment is assumed to be correctly agreed among thepayer and payee. KYC/AML is the other regulatory requirement under debate.On the other hand, in the case of a smart contract, such requirements becomecomplicated. Throughout our experience regarding Initial Coin Offering, there isa potential to scam due to asymmetric knowledge and some unfair situation forparticipants. One of the significant expectations of permissionless block-chainmechanism and smart contract as its application is to provide transparency andfairness of an economic system. It may be true for payment applications likeBitcoin and cryptocurrency, but it is unknown if we can expect the same fruitsfor smart contracts. a r X i v : . [ c s . CR ] F e b Kentaro Sako, Shin’ichiro Matsuo, and Sachin Meier
Although there is a lot of research about the ordinary financial system’sfairness, they do not discuss the fairness of markets run autonomously by pro-gramming code. When we try to discuss the fairness of smart contracts, we needto consider two aspects, at minimum, addition to the concept of the fairness ofthe ordinary financial system; (1) effect by autonomous execution, and (2) trustof the programming code. Autonomous execution may make users difficult tomanage their assets and strategy and understand their financial transactions areexecuted over a fair setting. The user should trust the programming code of thesmart contract platform. Though the developers claim that the programmingcode is disclosed at GitHub for transparency, average users do not have enoughcapability to understand the code. As an example of supply chain risks, it is hardto prove the execution code is the same as the source code at GitHub repository.At the time of writing of this paper, we do not have good criteria to evaluateif a specific smart contract platform/application is fair or not. Though it isbig research to discuss the fairness of smart contracts, it is worth conductingresearch on the source of the unfairness of smart contracts. This direction willbe the basis of such evaluation criteria.
This research discusses the potential unfairness of a market created by the smartcontract. For example, we analyze CryptoKitties, a blockchain-based game, andmake the most use of smart contracts on Ethereum to evaluate if it is fair or not asa market. According to [6], its economic effect is more than forty million dollars.Thus, the existence of potential unfairness may lead to a question regardinglegitimacy as a place to exchange cryptoasset.We investigated the internal algorithm of CryptoKitties to determine theprice of each kitty potentially. In particular, we focus on how an ERC-721 token iscreated in CryptoKitties. In this game, a kitty is produced as an ERC-721 token.We assume that each player’s goal at this game is the player earns Ethereum byexchanging tokens and enjoying the kitty. The characteristics of a newly bornkitty, an ERC-721 token, are determined by this game’s gene algorithm. If thisalgorithm is not fair, there is a risk that users will unfairly lose Ethereum. Wealso research trading tokens among the owner of kitties. It gives all users a chanceto get kitties.As a result of the research, we found that CryptoKitties does not satisfy somefair market conditions. The gene determination algorithm does not have qualifiedrandomness, and it has a huge influence on the determination of characters ofa newborn kitty. It is a source of asymmetry of knowledge. Only a person whoknows the nature of the random function can predict a potential new kitty’scharacteristics. Therefore, it is possible to guess which kitty produces the mostvaluable kitty. We found that only users, who know this bias and can buy kittiesthat give birth to valuable kitties, can earn more Ethereum. When a player triesto sell a kitty cheaper than the breeding fee, his revenue will be smaller thanhis cost. Thus, the game has an unrealistic assumption on players’ literacy; allpeople must have the ability to understand the algorithm. This fact does not airness in ERC token markets: A Case Study of CryptoKitties 3 mean that all players have opportunities to gain profit. Moreover, currently, theauction format in CryptoKitties has information asymmetry by conspiring witha seller and a bidder. When the seller tells the bidder when his auction starts, itis difficult for other players to participate because the bidder makes a successfulbid as soon as it starts. We indicate that CryptoKitties may be providing anunfair environment for many users.In this paper, we argue conditions that a fair market should be kept in Section2. In practice, we compare CryptoKitties and fair market conditions in Section3. Section 4 mentions countermeasures that may make CryptoKitties fairer. Weconsider other vulnerabilities of CryptoKitties in Section 5. Finally, we concludeour research in Section 6.
Alesja Serada et al.
He studied CryptoKitties as a subject to see how blockchainwill shape future game design. He examined the relationship between token own-ership and the value construction of CryptoKitties. In addition, he showed howthe breeding and market aspects of kitty work concerning maintaining the gameeconomy. As a result, the authors showed that the kitty’s value is decreasingbecause there is no upper limit to the number of kitties that can be bred. Thevalue of Gen 0 kitties, which cannot be created by breeding, decreased as well.We also showed that the existence of a transaction fee GAS could hinder theintervention of new users. He concludes that these are the points that make thegame economy unsustainable [13].
Charlotte et al.
Based on that ”trust without trust,” blockchain has emergedas a disruptive technology that is considered an alternative to law. The authorsdoubt that whether participants can transact with each other without the needfor legally sanctioned trust. The authors specifically highlight the need for usersto verify that a Dapps (short for decentralized applications) really does fall underit. He focuses on some Dapps, including CryptoKitties. Since it is possible thatCryptoKitties is not decentralized, it is marketing as a Dapp may be misleadingto users. The reason why kitty is considered immutable and cannot be takenaway from others is the blockchain’s immutability. However, only the marketuses its properties. Charlotte points out that it is a vulnerability, and some cancheat others to execute a dishonest contract [14].
Blockchain is a database commonly used as a ledger for cryptocur-rencies. Satoshi Nakamoto proposed it as a bitcoin ledger in 2008 [7]. Blockchainhas some special characteristics; it enables decentralized systems, immutabledata, transparency, and anonymity.
Kentaro Sako, Shin’ichiro Matsuo, and Sachin Meier
A blockchain consists of many blocks. Each block contains transactions, atimestamp, a previous hash, and a nonce. A transaction has a sender address, arecipient address, and a value.There is no administrator in the blockchain. Instead, every member of thenetwork manages blockchain data. A Peer-to-Peer network connects the partici-pants as nodes. Each node has blockchain data. If someone creates a new block,he sends all nodes connecting him to the block. These nodes will send othernodes when they receive the block. Soon, everyone will have that information.So, how do users make a new block? First, block creators called miners todetermine a block which they want to connect their block. If they determine thetransactions in that block are legitimate, they will make the previous hash oftheir block the hash value of that block. It is called a blockchain because theblocks are connected like a chain by hashing. If there are six or more blocks con-nected behind a block, it is considered correct. Next, miners select transactionswhich they thought right ones and each transaction fee is high. If a miner createsa new block, he is rewarded with new coins. In the Ethereum blockchain, thetransaction fee is called ”Gas.” Then, miners calculate ”nonce” so that a blockhash value is less than the threshold. As a block has nonce, if they change itsvalue, they will also alter the block hash value. This threshold is set so that min-ers can find a nonce in 10 minutes, making it difficult for multiple blocks to becreated simultaneously. If a block is easily created, it is immediately assumed tobe the correct one, and they will approve suspicious transactions. The thresholdprevents this. Finding the nonce is called Proof-of-Work (PoW), and the processof making the block is called mining. In this way, blockchain is a decentralizedsystem.Other properties also meet. Because a block created once will be saved inevery node’s server, he has to attack all nodes if someone tries to tamper withit. As it is too difficult, all participants can not change blocks. Besides, they cansee all blocks. So, blockchain has transparency, such as seeing which address acryptocurrency originated from. By using this, we know an address’ balance. Ofcourse, other users can not steal its cryptocurrency, thanks to the UTXO system[17]. However, bitcoin and Ethereum addresses have anonymity so that peoplecan not figure out a real person who has the address.
Smart Contract
Nick Szabo proposed smart contracts in the 1990s [8]. Wedefine a contract in advance. Everybody can not change it once defined. When aperson agrees with its definition, the contract is executed. His and the contrac-tor’s settlement will be run automatically. We need no third party to run thiscontract. Take a vending machine, for example; the pre-definition is the prod-uct’s price and pictures displayed. By selecting a juice, it is correctly executeduntil settlement. If the input is the same, smart contracts must have the sameoutput. For a given contract, if the input is the same, the result must be thesame regardless of who performs it. If this is not the case, then different peoplecan buy the same juice at different prices. This would make smart contractsunreliable and different from the concept. airness in ERC token markets: A Case Study of CryptoKitties 5
Ethereum has implemented smart contracts for the first time. With writingpre-definition on blockchain, all users do not re-write it. After pre-definition, pro-gramming code Solidity runs contracts. Thanks to this system, we can exchangeEthereum safely.
CryptoKitties
CryptoKitties is one of the most famous blockchain-based games[10]. Axiom Zen created this game in 2017 [9]. We show CryptoKitties’ overviewin Fig 1. In this game, users exchange Ethereum and ERC-721 tokens. ERC-721is a non-fungible token(NFT) transferred on the Ethereum blockchain. Unlikecryptocurrency tokens, NFTs are unique tokens, with specific parameters. EachERC-721 token differs in its value. In CryptoKitties, an ERC-721 token is a kitty.Again, players exchange kitties and Ethereum. These kitties have an ID, gene,and generation. A kitty’s ID is assigned in the order of birth, and the algorithmwritten in Solidity determines the gene that determines the appearance of thekitty. The generation of a child kitty is one greater than the generation of theparent kitties. By birthing and trading kitties, users aim to earn Ethereum. Thisgame’s source code is written in Solidity. So, all trades and breeding in this gameare executed by smart contracts. Not only transactions but kitties’ data are onthe blockchain.
Fig. 1.
CryptoKitties’ Overview
There are two ways to obtain a kitty. One is winning an auction. The auctionof CryptoKitties is the dutch system that the exhibited kitty’s price goes downas time passes. There are two types of auctions; standard and rental. When auser wins a standard auction, he can get a kitty. In case of rental, a winner hasto return the kitty after breeding, another way to get a kitty.
Kentaro Sako, Shin’ichiro Matsuo, and Sachin Meier
A user can get a new kitty created by the gene determine algorithm. To makea kitty, he needs to choose two parent kitties that are inputs of the algorithm.Parent kitties can be chosen from his own kitties, or one of them can be a kittyhe won at a rental auction. After selecting parent kitties, he can get a baby kitty.Thus, this process is called breeding. A player has to pay 0.008 Eth when he letstwo kitties breed. Since a kitty has no gender, it can be either a matron or a sire.The breeding defines a baby kitty’s gene and generation. A kitty’s generationsettles its breeding period [18] [19]. It has 14 kinds; the longest is two weeks,and the shortest is one minute. When a kitty is created, the cooldown period isdetermined by its generation, and from that point on, each time it is bred, theperiod increases by one kind. After breeding, until this period of time has passed,a matron kitty cannot reproduce. Through this kind of trading and breeding,players can get expensive kitties and sell them for a profit.
In terms of economics, a fair market should keep the following criteria [15]. Ac-cording to [15], every player has opportunities to profit and take risks equally.It must also be impossible to cheat to earn money. The information asymmetry,where some people know information about making a profit, must remain rel-atively small. The trading environment must also be equal for all participants.Finally, fairness includes adopting some measures to protect the weak.We apply these requirements to CryptoKitties. We consider CryptoKitties’opportunities and information to gain profit, cheating, trading, and the infe-rior. To begin with, getting and selling a high-value kitty is the way to makeEthereum. So, an equal chance in this game means that all players can get high-value kitties. If you get a valuable kitty, you can sell this kitty and earn a lotof Ethereum. Then, we assume CryptoKitties’ cheating. It is earning Ethereumunfairly. Since players need to get kitties to earn, we focus on the way to obtaina kitty. Now, there are two methods to get a kitty: winning an auction or breed-ing. So, cheating could be winning the kitty without following the rules at theauction or obtaining it by tampering with the breeding algorithm. CryptoKittiesmust not allow either action.Information about kitties is essential for players to maintain a relativelysymmetric market. For example, what kind of kitty is being sold and at whatprice? How is a new kitty created? CryptoKitties should make all such informa-tion available. Next, we check the trading environment. Again, players can geta kitty by auction or breeding. It is the only auction that a player trades hiskitty with other players. Therefore, there should be a rule of auction so that noone has a disadvantage. Finally, we define the weak. According to [15], it takesplayers who do not have enough information, ability to negotiate and judge asexamples. We have already defined information as about a kitty. Then, a player’sbargaining power has to do with how valuable kitties he can get to gain profit. Ifhe has a lot of Ethereum, he will get many kitties and valuable ones. Thus, thisability is related to financial resources. Besides, as mentioned in Section 2.1, the airness in ERC token markets: A Case Study of CryptoKitties 7 gene determination algorithm expresses how it creates a kitty. If a player under-stands this game’s algorithm, he knows and can judge which kitty he should getand how kitties he should select as parents to gain profit. With understandingthis game’s algorithm and making the right decisions, he can make money, sojudgment is affected by how well he understands this game. He will try to un-derstand the algorithm written in Solidity to obtain an expensive kitty. Hence,the ability to judge is related to the ability to read Solidity. Therefore, we definethe weak as players who have little Ethereum and can not read Solidity.We found that CryptoKitties does not meet some of condition that we showbelow. Condition No.1 and No.2 are rules for protecting the socially vulnerable.Other states provide opportunities to gain profit for all users. We point out thatthis game does not meet all conditions except for No.4 in Section 3. In Section5, we mention that CryptoKitties may not be satisfied with Condition No.1, 3,and 4 as a future work.1. There is a rule that avoids disadvantages for those who do not have largeamounts of Ethereum.2. There is a rule that avoids disadvantages for those who can not understandSolidity.3. Information about the prices that are available in the market for each digitalkitty is communicated instantaneously and costlessly to all users so that theyknow what trading opportunities exist.4. The users are sufficiently small compared to the size of the market that theirsupply and demand behavior does not have enough influence on the marketto be recognized as such.5. The possibility of realizing profit opportunities is equally open to all users.
Gene, one of a kitty’s parameters, is a 240-bits number and depends on GeneDetermine Algorithm, as shown in Algorithm 1. Again, gene defines a kitty’sappearance. In detail, each of the five bits determines an element of appearance.For example, the ninth five bits correspond to the kitty’s eyes’ color. This al-gorithm is a smart contract and determined by the mixGenes function definedin GeneScience.sol [18]. In this algorithm, a gene array is used. Its length is 48,and each cell corresponds to an element of the kitty’s appearance. The first cellis the last 5 bits of gene value. The second cell is the second last 5 bits of genevalue. In the same way, determine all of the cells of the gene array. We elucidatewhether the gene determination algorithm that builds the value of tokens to betraded in the market makes the market unfair.The first step in this algorithm between lines 6 and 21 is a swap for parents’genes. Before the swap, the gene value is divided into twelve groups. Each grouphas four cells; the first four cells are group 0, the second four cells are group 1,and so on. Within each group, the swap operation is to change the order of the
Kentaro Sako, Shin’ichiro Matsuo, and Sachin Meier
Algorithm 1
Gene determination algorithm matron := matron gene array2: sire := sire gene array3: child := child gene array4: hash := SHA-256(target block), hash [ i ] means i-th bit of hash k = 0, k uses for hash for i = 0 . . . do for j = 2 . . . do if hash [ k : k + 2] == 0 then swap ( matron [ i ∗ j ] , matron [ i ∗ j + 1])10: end if k + = 212: end for end for for i = 0 . . . do for j = 2 . . . do if hash [ k : k + 2] == 0 then swap ( sire [ i ∗ j ] , sire [ i ∗ j + 1])18: end if k + = 220: end for end for for i = 0 . . . do mutated = false if i %4 == 0 then if abs ( matron [ i ] − sire [ i ]) == 1 and min ( matron [ i ] , sire [ i ])%2 == 0 then if hash [ k : k + 3] < = 1 then child [ i ] = smallT / k + = 329: mutated = true end if end if end if if ! mutated then if hash [ k ] == 1 then child [ i ] = matron [ i ]36: else child [ i ] = sire [ i ]38: end if k + = 140: end if end for return childairness in ERC token markets: A Case Study of CryptoKitties 9 gene array. Next, the SHA-256 hash value of a block on the Ethereum blockchain,called the ”target block,” is involved in the algorithm. Six bits of the hash valueof the target block are used for the swap in one group. Group 0 uses the lastsix bits, and group 1 uses the second last six bits and same as below. Let ussay the four cells in the group are a , a , a , and, a starting with the one withthe smallest index. If the last two bits among six bits are both zero, a and a are swapped. Then, if the next two bits are both zero, a and a are swapped.Finally, if the remaining two bits are both zero, a and a are swapped.The next operation between lines 22 and 41 is to fill the cells of the gene arrayof the kitty to be born one by one (for i = 0 to 47). There are two methods forgenetic determination in a new kitty; inheritance and mutation. The first actionexecuted in this operation is checking to see if cell i of the parents meets therequirements for mutation. If two cells are satisfied with 1, 2, and either 3-a or3-b in below, the formula (1) determines the child gene’s cell i . In that formula,smallT means the smaller of the two parents’ cell i . i is multiple of 4 the absolute value of matron cell i and sire cell i is 1, and smaller one is even the smaller cell value is less than 22, and the lower three bits of the unusedbits in the hash value of the target block are 001 or 000 the smaller cell value is not less than 22, and the three bits of the unusedbits in the hash value of the target block are 000. cell = smallT / i of a child gene will inherit from the matron’s gene. If not, it inherits from thesire.In short, a baby gene is dependent on its parents’ gene and target block hash.All kitties’ genes are on the blockchain. By using Etherscan, a block explorer,we can check any kitty’s genes. Then, what is the target block? We can predicta breeding result if we know the hash value. If it means randomly choosing oneof all the blocks on the blockchain, we can not infer the outcome. However, thetarget block is somewhat limited and predictable. The target block is a blockthat will be issued when a matron kitty becomes fertile again. Specifically, thereis a variable that stores the frequency of block creation. The product of thatvalue and the matron kitty’s breeding period corresponds to the blocks issuedwhen she can breed again. We can find out the breeding period of the kitty fromCryptoKitties’ official page. Therefore, we know when the breeding period ends,and the block issued at that time or thereabouts becomes the target block. Bycalculating the hash value of the target block, we can predict a baby gene.The fact that the results are predictable means that CryptoKitties has notsatisfied conditions 1 and 5 of fairness, as defined in Section 2. First, the blockchain’stransparency allows us to see what kitties are traded at a high price. Since wecan expect breeding results, it is also possible to predict parent kitties to produce ones that match these trends. If we can make a successful bid to them, we willget a good kitty and earn Ethereum.However, in this kind of competition, well-financed users will have an im-mense advantage. We prove this by setting up a simple environment for Cryp-toKitties. First of all, we use ”Cattribute,” which means the attribute of kitty.In this market, there are 324 kinds of Cattribute. Let us take ”driver” one of theCattribute as an example. As of Jan. 13, there were 24 ”driver” kitties in themarket, and when we checked the gene sequences of all of them, we found thatNo.0 is 15 and No.36 is 23 in common. Therefore, we expect that the kitty thatsatisfies these two points has a ”driver.” In case of other Cattribute, ”domina-tor,” we found that No.0 is 28 and No.28 is 23 in common. Also, for a Cattribute,the first kitty to belong to that it gets Diamond. The first 10 kitties to belongto it will get Gilded, and the first 100 kitties will get Amethyst. From then on,these jewels are called ”Family Jewels,” as shown in Fig 2 [11]. According to[12], the minimum price for each Jewel 5, 0.5, 0.07, 0.009 Eth, in order of rarity.Since these prices are positively correlated with rarity, the environment we setup should be like that. So, our environment will adopt these prices. In otherwords, all kitties with Diamonds are assumed to be 5 Eth. For the other kitties,we take those kitties that can produce X Eth will be sold for X/ Fig. 2.
Family Jewels
The key is a kitty who has Diamond, which represents the pioneer of thatCattribute. Assuming that the value remains the same as more kitties of thesame Cattribute, if a player gets a Diamond kitty, his earnings will be greater.Specifically, he gives birth to 499 kitties so that all of them inherit Diamondkitty’s Cattribute and gets family jewels. He will get 9 Gilded, 90 Amethyst,and 400 Lapis kitties. Selling all kitties, his earnings will be 14.4 Eth. (0 . ∗ . ∗
90 + 0 . ∗ airness in ERC token markets: A Case Study of CryptoKitties 11 However, it is difficult for her to get these parent kitties because they are also inhigh demand. Since we can predict what kind of kitty will be born, some playersmay repeatedly give birth to make a parent kitty. But, Alice can not do a lotof births because a fee of 0.008 Eth is charged for breeding, and again she haslittle Ethereum. For Alice to make a profit, she needs to do things differently. Itis a way of making a lot of small gains. However, since the birth fee is 0.008 Eth,selling a normal kitty will negatively affect revenue. So, she ought to sell kittiesthat have family jewels. As with the Diamond kitty, they are in high demand, andAlice will be hard to get them. Therefore, since the profit opportunity for playerswho do not have a lot of Ethereum is small, CryptoKitties violates ConditionNo.1 and No.5.
Based on the previous section, rich players can make money, but is it reallypossible for everyone? Next is focusing on the actions they will take. The mostimportant thing is understanding the gene determination algorithm. When theytry to give birth to a Diamond kitty, they must find a Cattribute that has notbeen found yet. Besides, they have to choose parent kitties so that a Diamondkitty is created. In other cases, when trying to produce other kitties with familyjewels from a Diamond kitty, they also have to select parent kitties so that thechild inherits a parent’s Cattribute. So, to make money, they need to understandthe algorithm’s behavior.However, not everyone will be able to understand this algorithm. The mainreason is that it is only written in Solidity. People who lack this Solidity knowl-edge will find it almost impossible to understand the algorithm. There is a con-siderable gap between those who can understand Solidity and those who cannot, which significantly affects profit opportunities. Therefore, the results arecontrary to Condition No.2 and No.5.
In this game, trading kitty is always done through auctions. So, users can onlyget kitties from the auction market. In this auction, a seller decides the startingand ending price of a kitty and auction. He can then start the auction with hisintentions. According to condition No.3, a fair market should provide informationabout a trade for all players. It needs an environment where they know whatkind of transactions exist. In this sense, information on what type of kitty is onsale and what price must be shared with all users.However, when an exhibitor, Alice, and a user, Bob, are colluding, otherplayers, Charlie, have little chance to get Alice’s kitty. Alice tells when herauction tries to start Bob. As soon as her auction starts, Bob bids for her kitty,and Charlie can not see its trading. For example, Alice gives Bob a Diamondkitty in this way. Other players can not get her kitty, and Bob can get it andits child kitties. They have the same Cattribute as their parent’s one and with family jewels. As a result, only Bob can gain profits. It contradicts conditionNo.3 and also enhances to expand information asymmetry.
As mentioned in Section 3.1, we state that it is difficult for not rich players to gainprofit in CryptoKitties. To earn Ethereum, players need to sell a valuable kitty.Users with financial resources have the advantage of getting that kitty at auction.The method of giving birth and getting a kitty is also easier for wealthy usersthan ordinary ones. Because the outcome of the gene determination algorithmis predictable, so the demand for parent cats is high, and only rich people canafford them.If the gene determination algorithm’s output is unpredictable, everyone mayhave a chance to gain profit. With that algorithm, no one would know whichparent kitties would produce a valuable kitty. All players do not know whichkitties as parent kitties will make a profitable kitty. As a result, the value of theparent kitties that produced a valuable kitty is unknown. Therefore, there is apossibility that even a cheap kitty can give birth. If kitties are reasonable, manyusers can bid on them, so we think the game will be fairer than it is now.However, there is a problem with introducing an unpredictable system inCryptoKitties. Again, this algorithm is written in Solidity and a smart contract.Smart contracts should output the same result if the input is the same. So, smartcontracts cannot use a random number generator. Therefore, we have to considerthe system without a random number.To add an external randomness source in deciding the gene, we suggest thatthe users jointly create a random number as an input to a hash function (e.g.,SHA-256) instead of creating value from a block on the blockchain. For instance,when someone does breeding, everyone chooses a random number. The sum ofthem which users submit will be the input to a secure hash function. As all userscannot predict the input, its output is also unpredictable. This game’s usabilitywill not be compromised if a tool automatically generates and sends a randomnumber every time requested. It provides fairness to the market since every usercan have a chance to get a high-value ERC-721 token and trade it to Ethereum.We show this system’s overview in Fig 3.
We explained that if a player does not understand the gene determination al-gorithm, he may not get a valuable kitty from kitties he has in Section 3.2. Forexample, though he has a Diamond kitty, he could not inherit its Cattribute toits kitties. He will not make Ethereum because the kitty without Family Jew-els is expected not popular. On the other hand, if another player understandsthe algorithm, he will create expensive kitties. We expect that there are sig-nificant gaps to opportunities to gain profit between knowledgable players and airness in ERC token markets: A Case Study of CryptoKitties 13
Fig. 3.
Countermeasure’s Overview not. In order to make CryptoKitties fair, this game should fix so that all userscan understand its gene algorithm. However, we insist that CryptoKitties doesnot achieve it. The readability of a programming language is not high, and it isestimated that more people cannot read it than those who can.We assert that CryptoKitties needs a system so that more people can figureit out. These game managers should prepare not only to source code but also adiagram, flowchart, language description, and so on. It is expected that a varietyof explanatory methods will reduce the information asymmetry about the genedetermination algorithm, and this game will be satisfied with Condition No.2.
We show that when a seller and a bidder are colluding, it is difficult for otherplayers to get the seller’s kitty in Section 3.3. Though other players will notcreate this kitty’s children, the bidder can. The seller gains profit by selling thekitty, and the bidder also earns Ethereum by selling child kitties of his kitty. But,other players have no opportunities to gain profit from the kitty. We argue thatCryptoKitties does not provide an environment that every user has a chance togain profit equally. This problem stems from the fact that the time between theauction starts and the winning bid is too short.CryptoKitties should create an auction where everyone has an opportunityto trade. One countermeasure is that supposing it allows a certain amount oftime, one hour, for example, between when a player puts up an item and whenit becomes available for bidding. During this period, many people will be ableto grasp the kitty the seller exhibits and think whether each of them should bidor not. We hope that it enhances to give all users a chance to get the kitty andmake money.
In the Ethereum environment, there is an assumption that no user has a largeenough Ethereum to impact the market significantly. The symbol of this is Proof-of-Stake (PoS). Suppose hypothetically; some users had a substantial amount ofEthereum that could change the market value significantly. This situation is notsatisfied with Condition No.4. In that case, it is quite likely that those userswould be able to get the right to create blocks many times. There is no biastowards users’ chance in terms of a decentralized system, which means to havethe right to create. However, there is no countermeasure to prevent this fromhappening, and playability could be lost considerably.
We state that transactions can only be conducted through the auction market.However, is this really the case? We find some suspicious transactions, as shownin Fig.4 [16]. They traded kitties for nothing and without going through anauction possibly. We can not figure out how they traded. If they really soldusing other methods, this game does not meet condition 3 and will be reversed.This game should also take measures for such cases.
Fig. 4.
One example of suspicious transactions
Ethereum’s blockchain is guaranteed to be anonymous. The blockchain addresscannot be tied to who the actual user. However, there is one problem that arisesfrom this. That is insider trading. Insider trading is that a person who hasinside information about a company buys or sells shares before the information airness in ERC token markets: A Case Study of CryptoKitties 15 about the material fact is made public. Or, this company’s employees tradethem. In order to discover these transactions, it is necessary to know who madethem. Unfortunately, it is so difficult to find them in the blockchain environmentbecause of blockchain anonymity. If its developer takes part in this game andearns a large Ethereum, we will not see his illegal activity. Thus, CryptoKittiesshould prove that they are not doing this.
We argue that Gas and breeding fee are an obstacle to the motivation to trade forthe average user. Transaction fee, GAS, is a miner’s motivation because if he hasa right to create a block, all GAS in the block will be his income. Miners tend toselect transactions whose GAS are high. Therefore, wealthy users’ transactionsare apt to be approved since they pay high GAS. Besides, the Breed fee, currently0.008 ETH, is CryptoKitties managers’ income. When a player tries to breed hiskitties, he pays Ethereum in exchange for a new kitty. Users who can affordEthereum can breed or exchange kitty without hesitation. In contrast, for otherplayers, their action count is limited. So, they have fewer opportunities to getgood kitties and gain profit than rich people. In other words, these fees do nothelp conditions No.1 and No.5. One countermeasure we think is decreasing thebreeding fee so that more players give birth to baby kitties many times.
We found that CryptoKitties is not satisfied with four conditions that fair mar-kets should keep. The gene determination algorithm which affects the ERC-721token value is not satisfied with two conditions. We show that we can predict wewill produce a token. In the environment we set, a player can not gain profit whenhe creates and sells a cheap token because of the breeding fee. So, he needs tosell a token whose value is more than the breeding fee. Since we can know whichtoken we will make, we know tokens that can produce high-value ones. Thus,rich players are more easily to get lucrative limited tokens. Besides, people whocan understand this algorithm are limited because the only Solidity expressesthis algorithm. Users who know this bias have a significant advantage in play-ing CryptoKitties. Also, there is a problem with its trading market. When twoplayers are colluding, it will be possible to attack them by not allowing othersto trade with them.We also mention the countermeasures of these problems. In the case of thegene algorithm, it needs an unpredictable system. Since this problem stems fromseeing the input of the hash value it is using; we propose that all users determineits input. Moreover, describing these mechanisms in other than a programminglanguage will reduce the information asymmetry. Finally, as one cause is thatfrom the auction starts to the winning bid is too short, one method would benoticing what kitties have been put up for auction and allow a certain amountof time before the bidding starts. We propose these improvements, but there areother problems in CryptoKitties.
References
1. Ethereum whitepaper, https://ethereum.org/en/whitepaper/ .Last accessed 9 Jan 20212. Ethereum market value, .Last accessed 9 Jan 20213. Ethereum value in the future, https://primexbt.com/blog/ethereum-price-prediction-forecast/ .Last accessed 9 Jan 20214. The highest amount of GAS has been updated, https://jp.cointelegraph.com/news/ethereum-network-use-hits-a-new-all-time-high-will-eth-price-follow .Last accessed 9 Jan 20215. The number of Ethereum address become to be over 100 million, https://consensys.net/blog/news/ethereum-by-the-numbers-june-2020/ .Last accessed 9 Jan 20216. CryptoKitties’ users and economic effect, https://corporate.coincheck.com/2020/10/06/117.html . Last accessed 9 Jan20217. Satoshi Nakamoto: Bitcoin: A Peer-to-Peer Electronic Cash System. https://bitcoin.org/bitcoin.pdf (2008)8. Nick Szabo: Smart Contracts : Building Blocks for Digital Markets (2018)9. Axiom Zen: CryptoKitties: Collectible and Breedable Cats Empowered byBlockchain Technology https://drive.google.com/open?id=1soo-eAaJHzhw_XhFGMJp3VNcQoM43byS (2017)10. CryptoKitties, . Last accessed 9 Jan 202111. CryptoKitties official guide for family jewels, https://guide.cryptokitties.co/guide/cat-features/family-jewels . Last ac-cessed 9 Jan 202112. Family jewels’ minimum amount, https://kittyhelper.co/ . Last accessed 9 Jan202113. Alesja Serada and Tanja Sihvonen and J. Tuomas Harviainen: CryptoKit-ties and the New Ludic Economy: How Blockchain Introduces Value, Owner-ship, and Scarcity in Digital Gaming. Games and Culture 1555412019898305https://doi.org/10.1177/1555412019898305 (2020)14. DUCUING, Charlotte: How to Make Sure My Cryptokitties Are Here Forever? TheComplementary Roles of Blockchain and the Law to Bring Trust. European Journalof Risk Regulation (2), 315—329 https://doi.org/10.1017/err.2019.39 (2019)15. The concept of fairness in financial transactions, .Last accessed 9 Jan 202116. One example of suspicious transactions, https://etherscan.io/tx/\0x3591b36cfd443fd686ba8015d93f82832a6bf007b438caa6f342679601145e9e .Last accessed 20 Jan 202117. Bitcoin UTXO, https://river.com/learn/bitcoins-utxo-model/ Last accessed 26 Jan 202118. CryptoKitties source code, https://github.com/cryptocopycats/awesome-cryptokitties/tree/master/contracts
Last accessed 26 Jan 2021airness in ERC token markets: A Case Study of CryptoKitties 1719. CryptoKitties cooldown speed, https://guide.cryptokitties.co/guide/cat-features/cooldown-speedhttps://guide.cryptokitties.co/guide/cat-features/cooldown-speed