Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Open Collectors Network©
The first one-of-a-kind token.
Open Collectors Network White Paper
Dan-Andrei Singeorzan1, Ion-Cosmin Grigore1, Iulian-Andrei Popescu1, Grant Tiller, Reinhard
Brongers, Florin Stefan Gheorghe, Daniel Taivan, Florentina-Maria Caval
Draft published Dec-1-2017, last updated Jan-30-2018
v0.9
1 For review, please reach out to [email protected]
Open Collectors Network ICO 2
1 Table of Contents
2 Executive summary .................................................................................................................................. 4
3 Introduction ................................................................................................................................................ 4
3.1 Non-fungible vs fungible ............................................................................................................. 4
3.2 Platform for non-fungible tokens ............................................................................................. 4
4 Use cases ..................................................................................................................................................... 5
4.1 Public ................................................................................................................................................... 5
4.2 Virtual object marketplace for content creators ................................................................. 5
4.3 Digital media and rights marketplace ..................................................................................... 5
4.4 Gaming platform ............................................................................................................................. 6
4.5 VR .......................................................................................................................................................... 6
4.6 Artists ................................................................................................................................................... 6
4.7 Business sector ................................................................................................................................. 6
4.8 Auction houses ................................................................................................................................ 6
4.9 Discounts ............................................................................................................................................ 6
4.10 Embedded ..................................................................................................................................... 7
4.11 User identity ................................................................................................................................. 7
4.12 BlockchainCollection class (programming) ...................................................................... 7
5 Goals ............................................................................................................................................................. 7
5.1 Openness ........................................................................................................................................... 7
5.2 Decentralization ............................................................................................................................... 8
5.3 Usability .............................................................................................................................................. 8
5.4 Absolute ownership ....................................................................................................................... 8
5.5 Seamless Creation ........................................................................................................................... 8
5.6 Spamming prevention – enforcing uniqueness .................................................................. 8
5.7 Interaction .......................................................................................................................................... 9
5.8 Trading ................................................................................................................................................ 9
6 Rewards and the ECTO token ........................................................................................................... 10
Open Collectors Network ICO 3
6.1 Functionality ................................................................................................................................... 10
6.2 Rewards ........................................................................................................................................... 10
6.3 Token Distribution & Price ....................................................................................................... 11
6.4 Funds Distribution ....................................................................................................................... 12
7 Technical details .................................................................................................................................... 12
7.1 Overall Architecture .................................................................................................................... 12
7.2 ERC721 Standard .......................................................................................................................... 13
7.2.1 Interface ..................................................................................................................................... 14
7.2.2 Implementation ...................................................................................................................... 14
7.2.3 Future backwards-compatibility with other dApps or tokens .............................. 15
7.2.4 Compatibility with existing wallets .................................................................................. 16
7.3 Ethereum Smart Contracts ....................................................................................................... 16
7.4 Token Uniqueness ....................................................................................................................... 17
7.4.1 Preventing spamming the exchange with duplicates .............................................. 17
7.5 Security ............................................................................................................................................ 20
7.6 Scalability ........................................................................................................................................ 21
8 Roadmap v1.0 – alpha ......................................................................................................................... 22
9 Our Team .................................................................................................................................................. 23
Open Collectors Network ICO 4
2 Executive summary
Open Collectors Network is the first decentralized platform for one-of-a-kind tokens,
where everyone can seamlessly own, create, customize, interact with and trade individual
tokens, on an open market, based on existing standard specifications.
3 Introduction
3.1 Non-fungible vs fungible
Best way to explain how we understand this concept, and how it applies to our project, is
by example. Imagine you printed 1000 flyers and are handing them out on the street. You don't
care which flyer you hand out from the stack, because they are all identical: same size, same
content, same purpose etc. This collection of flyers is said to be fungible and it's equivalent to
current crypto currencies: if you send someone 1 coin, it doesn't matter which one from your
wallet it is, any one coin will do.
But let's consider now, another collection: paintings by famous artists. Already, we can tell
a difference: though all of them are paintings, if you wanted to buy one, you wouldn't just pick
randomly. You like some more than others, some are more expensive and so on. They're non-
fungible, as they are all one-of-a-kind and it does matter "which" one it is.
3.2 Platform for non-fungible tokens
We are slowly but surely entering the mature phase of the blockchain era and yet, every
new crypto currency or blockchain technology out there is made to work with just one thing: a
fungible token. If you have 10 BTC, they are just as good, identical in fact, to any other 10 BTC
that someone else owns, and the same is true for more modern blockchain technologies, like IOTA
or Ripple.
From our experience as hands-on developers, we realized that the non-blockchain IT
industry usually deals with non-fungible collections of objects, where if you were to randomly
select two or more items from a collection, they would have differing characteristics or attributes.
It is this rather simple use case that Open Collectors Network, or ECTO, is aiming to solve,
albeit we believe it’s probably one of the most basic and commonly used patterns in
programming, and for which is there is currently no easy blockchain alternative.
In addition, though the use case is simple, we anticipate large demand for our platform,
by everyday users who will be using our web interface to create unique items, under the Public
category, and even more so by companies, which will most likely be using the platform’s public
Open Collectors Network ICO 5
API, for more advanced scenarios and bulk creation of unique items, for the specific (corporate)
purposes of their dApp.
In time, as increasingly more tokens are created on the platform, the early or popular ones
will appreciate in value, enabling their owner to auction them to the highest bidder for a profit.
All creation and trading operations on the platform will have a nominal fee associated with
them, the proceeds from which will be shared with the holders of our platforms cryptocurrency:
the ECTO token2.
4 Use cases
The possible uses cases for unique tokens is almost endless. We have several that are
already implemented and more that we have thought about and working on. But more
importantly, it's the ones we didn't think about that are most exciting: our platform is open to
everyone and we expect innovative ideas to be implemented on top of our platform, especially
since it abstracts away all blockchain related complexity. Just to give a few examples:
4.1 Public
Individuals or groups can tokenize something of value to them, for personal use.
4.2 Virtual object marketplace for content creators
The ability to buy digital assets with the intent to use them within a game or within the
development of a game is possible through leveraging the ERC721 standard. This means the
marketplace offers the tools for game developers to sell their creations or use those creations for
further game development.
4.3 Digital media and rights marketplace
It is worth noting that any digital media could be represented here. This could be a graphic,
image, music, book, or anything else that one may want. For example, any artist, writer, musician
would be able to sell their asset, as long as it was digital to anyone who wanted to do purchase
the asset. Going further, digital rights relating to the ownership of the digital media can be bought
and sold via the marketplace. The latter has the benefit of circumventing digital rights auction
houses and significantly reducing cost of transacting and the fees related therein. Small creations,
like a brand-name, or a logo can be directly held on-chain, whereas larger ones can be stored
anywhere on the cloud, and only a hash of their value stored on the ledger. This brings the best
of both worlds: cheap/fast storage and full accountability.
2 All details specified in the Profit Sharing chapter.
Open Collectors Network ICO 6
4.4 Gaming platform
Card games like Magic: The Gathering© or in-game collectibles like a Dragon Lore AWP
skin in Counter-Strike© can be held on the public ledger, increasing accountability and
transparency for company. It also adds easier & cheaper payment options for selling the items.
4.5 VR
VR is fast becoming a mainstream industry, and through our platform, it will be seamless
to tokenize valuable virtual objects that can be traded between participants, while attaching value
(currency) to them. Additionally, because our platform respects an open standard, it will be
possible to make use of items between different VR technologies/implementations
interchangeably.
4.6 Artists
Almost any kind of artistic content can be held on the public ledger, for tokenized
copyright purposes, or simply to sell it. Small creations, like a brand-name, or a logo can be directly
held on-chain, whereas larger ones can be stored anywhere on the cloud, and only a hash of their
value stored on the ledger. This brings the best of both worlds: cheap/fast storage and full
accountability. It is entirely possible to hold large amounts of data using a decentralized storage
platform, like Storj or Oyster Pearl, so that would be our first choice.
4.7 Business sector
Any freelancer or business can easily tokenize personalized products (cars, devices or
hand-crafted items).
4.8 Auction houses
Maintaining their inventory on the public ledger to increase trust among its client base.
When an item is sold, after the auction, the unique token associated with it can be transferred to
the buyer’s wallet.
4.9 Discounts
Partnerships with companies which can tokenize their products. Let's take for example a
user which lives and breathes Apple products. He will create/buy different Apple unique tokens,
at which point he, or even we, can approach the company and obtain discounts for him as a
reward.
Open Collectors Network ICO 7
4.10 Embedded
Features like 'Facebook like button' that can be easily put up in place using only a script
tag on your website.
4.11 User identity
Our platform aims to collaborate with a KYC solution, where after a user has his identity
verified, a unique token for him is created on the blockchain. After than, when the user needs to
verify his identity with another web site, he can use Metamask to sign transaction verifying he is
the owner of the token with all his information and the web site can double-check using our API.
The same can apply for the more ordinary use case of logging into a website and it would work
in just the same way as logging in with Facebook or Google, except it would be decentralized and
you would own your credentials, not some 3rd party company.
4.12 BlockchainCollection class (programming)
One of the most basic and common patterns in coding in general is using a collection of
objects with different attributes. Standard ones include array, list, dictionary, hashmap and there
are many open source libraries which provide specialized collections (think C++ Boost, .Net C5
etc). Our platform will provide such an open-source library with collections that store objects on
the public ledger, bringing with it all the benefits of decentralization to non-blockchain devs. All
you would need is an Ethereum wallet and to sign transactions using your private key, which would
not leave your code.
5 Goals
To achieve this, we are currently building a platform (at the time of this writing, it is a
working prototype) based on Ethereum smart contracts, specifically designed for this purpose:
creating, modifying, interacting with and owning one-of-a-kind tokens.
5.1 Openness
It is an imperative for the platform to be based on open standards and have open-source
code. For our specific use cases, the relatively newly created standard for the Ethereum ecosystem,
the ERC721 standard, must be adhered to. This provides compatibility with any already existing
tokens, like Decentraland, Crypto Kitties and Crypto Punks, and ensures future backwards
compatibility can be maintained with tokens created earlier.
Open Collectors Network ICO 8
5.2 Decentralization
Having Ethereum smart contracts as the underpinning code allows us to take full advantage
of the added benefits blockchain technologies bring to the table: transparency, tamper-proof
security, accountability & absolute ownership. At the same time, we have the option and will
exercise it, to have our code signed & publicly verifiable, simply by using Etherscan and checking
out the contracts’ code.
5.3 Usability
We believe the last remaining barrier to mainstream adoption of blockchain technology and
crypto currencies in general, is the difficulty of use. Buggy wallets, complicated to understand
dApps and the technical terminology overload that a newcomer must endure are a problem. This
is only natural, since the technology has been in its early stages. However, as time passes,
overcoming technical barriers is no longer a valid excuse, and so, a clean and intuitive interface
for newcomers is one of our top priorities.
5.4 Absolute ownership
The end user should absolutely own each unique item. He or she will be able to see their
items in their wallet at any time and only they are allowed to interact with it, by using their private
key. Our decentralized exchange does not hold, nor request private keys from its users.
5.5 Seamless Creation
Anyone can create a unique item, which will automatically enter into their ownership.
However, there are several rules by which creating new items functions. These are put in place to
ensure existing items on the market do not have duplicates created for them and are categorized
appropriately. This will allow items to grow in value over time.
5.6 Spamming prevention – enforcing uniqueness
Precisely because tokens can be created by anyone, there are rules in place to ensure
uniqueness. These are implemented using specialized algorithms3, and are needed to prevent
spamming the market with virtual duplicates of existing, expensive items. This is especially
important for the Public category tokens, where everyday users will be able to create their tokens.
For corporate use cases, this is less of an issue, since their tokens will be created within a particular
category specific for each company.
3 More details in technical chapters
Open Collectors Network ICO 9
5.7 Interaction
The creator of an item has the option of allowing improvements to be made, over time, to
the newly created item. They can specify exact rules by which these can be made upon item
creation. This allows for accelerated appreciation of an item’s value (flexible investments into an
item) and/or can be used to create complex game-like conditions for interaction between items
in the same category.
An example might be an item from a racing cars category, let’s say a Ford Mustang model.
The creator, if they so choose, can allow child items to be linked to the main item. They can create
two ‘Tires’ items, one called ‘Slick Tires’, for dry weather and one ‘Rain Tires’. They can create
upgraded engines for the car and swap them around. In addition, they can specify the rules by
which these added upgrades add value to the car, and what the rules are for a race between cars.
These will be encoded into a smart contract upon a new race creation, so everyone can be sure of
the rules of the race before it starts, enabling fairness and easy creation of games using the
platform.
We also provide the raw option for specifying token interactions: a plain old json field with
serialized custom data. This is a common pattern in application programming and it allows the IT
industry to easily take advantage of blockchain benefits, while abstracting away all the nitty-gritty
details of blockchain smart contract programming.
5.8 Trading4
As popular tokens’ increase in value over time, the exchange allows many forms of trading,
ranging from selling for currency or auctioning, to direct trading with another seller, which has an
item of interest.
4 Technical chapters and roadmap describe in detail all trading options
Open Collectors Network ICO 10
6 Rewards and the ECTO token
6.1 Functionality
Operations on the platform are done using our own coin, the ECTO. It is needed to ensure
fair usage of the platform and avoid spamming and overloading of the Ethereum network,
especially with regards to the creation and trading of unique items.
6.2 Rewards
In addition, having ECTO in your wallet also offers several benefits, according to a special
proof-of-stake algorithm:
Discounts for all operations.
Voting rights for features that the platform should implement first.
Airdrops given out periodically, in the form of ECTO airdrops, based on a
combination of activity on the platform and the amount of ECTO you hold.
Activity is measured in relation with the total activity by all users of the platform.
ECTO stake refers to the amount of ECTO you have in your wallet at the time of calculation.
The actual implementation of this mechanism is going to be coded into Ethereum smart
contracts, for several reasons:
Guaranteed terms, which will remain unchanged over time
Added security
Full transparency regarding any collected fees, shared profit and funds
Full control of funds: each user will be able to withdraw his profit share, to his wallet
where he holds his ECTO tokens, at any time, without the need for it to be daily (his
share is calculated since his last withdrawal date)
No hidden fees, no withdrawal fees, except the normal Ethereum transaction mining
fee
Open Collectors Network ICO 11
As our code will be open-source, we intend to encourage more ICO’s to make use of our
reward mechanism. This distributes decision making for a project, and we believe community
knowledge and consensus driven decisions are stronger and more valuable than centralized ones.
6.3 Token Distribution & Price
Total tokens: 150,000,000 ECTO ( 100,500,000 public; 2% bounty + 65% sale )
Token price varies by sale duration:
1st week: 1ETH = [TBA] ECTO
2nd week: 1ETH = [TBA] ECTO
3rd week: 1ETH = [TBA] ECTO
4th week: 1ETH = [TBA] ECTO
[TBA] = To be announced
Open Collectors Network ICO 12
6.4 Funds Distribution
In addition to the development of the exchange platform itself, we put emphasis on
marketing and attracting strategic partners. We believe this is key to a successful product, and
development will be an agile, interactive process, based on the needs of users & partners.
7 Technical details
7.1 Overall Architecture
The platform is being built around Ethereum Smart Contracts, written in Solidity, which are
used for managing ownership and transferals, in a secure and robust way.
These are coupled with a clean front-end, based on AngularJS, for users to have an
overview of their assets and initiate operations.
Open Collectors Network ICO 13
The backend is only useful for new token
creation, as it will be responsible for advanced
uniqueness rule enforcing, statistics and
monitoring. It is based on open-source .Net Core
and hosted in the cloud for maximum availability.
It will come with a free public API, for more
advanced users of the exchange.
All interactions with the blockchain from
the front-end must be as easy and intuitive as
possible, using the most up-to-date mechanism,
which, at the time of this writing, is the Metamask
web wallet. We are planning integration with
MyEtherWallet for the future.
As a desired consequence, the exchange
does not store private keys of its users, putting
them in total control of their assets. In addition,
there is no need for account management on the
client side (no signup/login), as all operations are
made through the 3rd party open-source wallet,
ensuring privacy and security. The platform aims
to conform to GDPR standards, so we will no be
storing any personally identifiable information,
unless requested by law, and then only with the
user’s consent.
7.2 ERC721 Standard
This is a relatively new and powerful standard created for the Ethereum ecosystem.
Whereas up until now, almost all newly created tokens were fungible, meaning they are all equal,
so any 5 tokens were just as good as any other 5 tokens, the need for unique, non-fungible
tokens has recently arisen. These are items that must not be lumped together, but each item must
be considered on its own for the purposes of atomic tracking, ownership and transferal.
The ERC721 standard was created for exactly this purpose: ownership and transferal of
individual tokens from one contract or address to another. This means that each token can be
identified uniquely throughout the Ethereum ecosystem by the pair: (contract address, token id).
Open Collectors Network ICO 14
7.2.1 Interface
The following is the latest version of the standard draft:
pragma solidity ^0.4.18;
contract ERC721Interface {
function implementsERC721() public pure returns (bool);
function totalSupply() public view returns (uint256 total);
function balanceOf(address _owner) public view returns (uint256 balance);
function ownerOf(uint256 _tokenId) public view returns (address owner);
function approve(address _to, uint256 _tokenId) public;
function transferFrom(address _from, address _to, uint256 _tokenId) public;
function transfer(address _to, uint256 _tokenId) public;
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
// Optional
// function name() public view returns (string name);
// function symbol() public view returns (string symbol);
// function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256 tokenId);
// function tokenMetadata(uint256 _tokenId) public view returns (string infoUrl);
}
The operations declared by the interface explain themselves, perhaps with the exception
of the two transfer methods. The first one, transfer, must be called by the owner of the token
specified by _tokenId, while the second one, transferFrom, can be called by anyone (like our
platform), provided the owner has previously called approve for the recipient.
7.2.2 Implementation
A clean working version of this interface would require the implementing contract to hold
only the following fields:
contract ERC721Token is ERC721Interface, Pausable {
address NULL_ADDRESS;
string public name = "token name";
string public symbol = "token symbol";
event Creation(address indexed owner, uint256 tokenId, string data);
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
Open Collectors Network ICO 15
struct ERC721TokenData
{
// add non-fungible token attributes here
// the following is just an example
String name;
string description;
string link;
string customDataJson;
// … any other needed fields
}
ERC721TokenData[] tokens;
mapping (uint256 => address) ownersByIndex;
mapping (address => uint256) tokenCountByOwners;
mapping (uint256 => address) approvedByIndex;
function implementsERC721() public pure returns (bool)
{
return true;
}
// other methods impl
The three fields are all that is needed to manage ownership and transferal:
- ownersByIndex can be used to cheaply find the owner of a particular token
- tokenCountByOwners can be used to find the total tokens owned by a particular
address
- approvedByIndex is used for the implementation of the approve/transferFrom
methods
Conforming to this standard is one of the main drivers behind our exchange, as it provides
valuable benefits, described below.
7.2.3 Future backwards-compatibility with other dApps or tokens
While we believe we already have solid use cases for our tokens, and we plan to implement
user-voice and partner affiliates mechanisms for new feature requests, it’s entirely possible 3rd
parties might find new and exciting use cases for the open token standard and implement them.
Some examples of this are CryptoPunks and CryptoKitties, which conform to the standard.
In fact, we encourage this! It will allow any exchange user to import, migrate and generally
make use of his or her tokens in other dApps. Any conforming token can be handled by the
exchange by using the pair (token contract address, token id).
Open Collectors Network ICO 16
In the case of tokens created by the exchange itself, the token contract address can be
omitted.
7.2.4 Compatibility with existing wallets
Wallets are incentivized to implement the standard, so users can see owned tokens inside
any respectable Ether wallet. We believe this is an important feature of the platform: the mere fact
that you are in control of your tokens is an advantage.
7.3 Ethereum Smart Contracts
The best and only way to ensure total fairness and accountability is to make use of smart
contracts on the Ethereum blockchain, taking full advantage of decentralization, especially for the
core functionality of the exchange.
For contract language, the choice was between Solidity and the lower level Serpent. The
Solidity compiler is more stable, with fewer bugs, is more widely used (so any kinks are discovered
earlier), all of this at the expense of increased direct access to the EVM. After careful consideration,
we chose Solidity.
The contracts are kept as simple as possible, with security and separation of concerns
being the main considerations. At the time of this writing, our proof of concept is powered by the
following contracts:
ERC721Interface - the standard interface for non-fungible tokens
ERC721Token - clean implementation of the standard interface
CreatableToken - responsible for creating new tokens; contains the data structure common
to all tokens on the platform
UniqueToken - responsible for ensuring uniqueness and fair use of the platform for
creating new items
AuctionableToken - manages information about token auctions currently in progress
Open Collectors Network ICO 17
Collectible - adds information to the common data structure regarding specific token
implementation; these include descriptive fields and rule enforcing methods for token dynamics
OpenAuction
the first auction type to be currently implemented
token ownership transferral from the user to the auction contract, upon auction
creation by the owner
transfer of the token to the highest bidder, refunds of losing bidders, and transfers
winning bid to previous owner, upon auction end
7.4 Token Uniqueness
7.4.1 Preventing spamming the exchange with duplicates
Popular tokens on the exchange will appreciate in value over time, which creates a risk of
duplicates being created by users. We have rules in place to mitigate this risk. Each newly created
token will be automatically validated by the exchange, through a complex mechanism, made up
of several layers.
In order to be responsive, the first layer is an automatic check, using cutting-edge data
matching algorithms. The first layer will be the most frequently used one and will provide us with
a uniqueness score. If this score is high enough, it means the token can go ahead and be created,
which will be the average case or the fair-use case of the platform. If the score is not high enough
in its own category, it means this token creation might possibly represent a duplicate and will be
denied initially. The user has the option of requesting a manual check for duplicates for their
token. Upon approval, the creation process can go ahead without any problems.
To further mitigate this risk, each token has complete history data attached to it on the
blockchain, allowing us to create a reputation rating to it. Users will be able to easily see this rating
when deciding to acquire a token.
A semi-formal description of the inner workings of the exchange follow, with the exact
combination of algorithms for the automatic check not completely revealed, as we would like to
keep this a trade secret, with regards to both future competition from other exchanges and
reverse-engineering in order to try to bypass it.
Open Collectors Network ICO 18
Creation flow
Manual approval
Run DoS checks (too many manual approval requests from IP, already requested
check etc..)
Dequeue approval request
Manual check
Log manual request approval or failure
Open Collectors Network ICO 19
Automatic approval
This is based on calculating a list of candidate duplicates for the token, each with a score,
using a combination of algorithms:
Levenshtein Distance - purely lexical difference score
Example: score = levenshtein(“Jessica Alba”, “Jessika
Alba”) = 1, because there is only one letter that needs to be
inserted, changed or deleted
Smith-Waterman - difference score using local
alignment, used to match dna sequences in many genome
projects
Example: score = 1 / smithWaterman(“Trickshots”,
“Trickshots Restaurant”) = 0.1, we must invert the result of the
algorithm, meaning expensive operations to convert one
value to the other equals a high uniqueness score.
Metaphone/MetaphoneX2/Soundex - difference scores based on phonetic
pronunciation. Variants exist for different cultures.
Example:
Open Collectors Network ICO 20
7.5 Security
The crypto world is as dangerous as it is exciting. Every other day, there’s a new story about
a hacker stealing funds from exchanges and so forth. Our exchange solves 90% of this problem
by having its core functionality hosted on the blockchain, as Ethereum smart contracts. The
exchange does not hold any user personally identifiable information, everything is done by using
a state-of-the-art, open-source wallet, therefore, we don’t store the user’s private keys.
This brings the security of the exchange to the level of the EVM, however, the remaining
10% is very important: the security and robustness of our smart contracts code. We have a
multitude of requirements to ensure this risk is mitigated:
Develop using Solidity language, which is the highest level available language
Educate ourselves about every new smart contract vulnerability in the news, try to
learn from other’s mistakes and use established patterns.
Have 100% unit test coverage (with both positive & negative testing).
Request 3rd party smart contracts audit for the live exchange.
Strict adherence to the ERC721 standard for token ownership & transferal.
A basic example of the kind of things we are being careful about can be our Auction Smart
Contract. This contract assumes ownership upon its creation by the initial owner of the token. It
accepts bids and after the auction duration is reached, or a direct-sell price is bid, the auction
ends, and among others, the following must happen:
Transfer ownership of the token to the highest bidder
Transfer highest bid to the now previous owner
Transfer any losing bids back to the losing bidders
The auction end will be detected by a particular method in the smart contract, but at that
point, it is not a good idea to start doing all these things sequentially, because of the max call
stack attack possible in the EVM. The first step, transferring ownership of the token to the highest
bidder is completely safe because it’s our own verified code. The second step, transferring funds
to the previous owner is not safe, as this will eventually result in a call to the previous owner’s
address, which can be an external untrusted contract. This contract’s payable fallback function will
be called, and it is free to do let’s say 1024 recursive calls in its own code. This will cause the EVM
to throw an exception, and the rest of our auction contract code will not execute. There are
workarounds for this, like trying to catch the exception, but these are not recommended. A better
way would be to let the auction method fail after the second step, with the money having
Open Collectors Network ICO 21
effectively been sent to the previous owner already. The 3rd step, refunding losing bids must be
done independently, in a separate method, which can be called by anyone, but will be done by
the exchange in what we call a sweeping process.
This is similar to the way crypto exchanges don’t keep funds in the addresses you see on
the site, but move them to their hot/cold wallets, and only keep centralized database records with
the amount of funds you have, for security reasons.
7.6 Scalability
As the exchange platform will grow, scalability becomes an issue. Our development
process has this in mind from the get-go, by having three prime directives:
Each one of our smart contracts is load tested for performance metrics, on multiple
environments (TestRPC, a live test network like Ropsten & Mainnet).
The main contract will have in place adjustable throttling parameters, global & per user,
with fully permissible initial values. We will be monitoring the smart contract transactions
from outside (free, no gas cost) and decide if throttling is needed, to ensure proper
functioning of the exchange.
In addition to throttling, with extra large scale use of the exchange it’s entirely possible
that the Ethereum network becomes clogged. We are foreseeing that sharding of the
Ethereum ecosystem by the main dev team will fix this problem. But in case this feature
does not materialize, or comes too late, we have a plan of our own in place of sharding
the tokens among multiple identical smart contracts. Although
Our smart contracts implementation will follow the upgradable pattern, to allow future
improvements to be made.
Open Collectors Network ICO 23
9 Our Team
We are a hard working team with over 50 years of combined programming, testing,
product management and marketing experience, who have a burning desire to be part of the
blockchain revolution.
Dan Andrei Singeorzan
Co-founder & Developer
Current: Development Manager @ Ivanti
Ion-Cosmin Grigore
Co-founder & Developer
Current: Software Developer @ RES Software
Grant Tiller
Product Manager
Current: Director of Product Management @ Ivanti
Open Collectors Network ICO 24
Stefan Mihai Stanescu
Legal Advisor
Current: SCP STOICA & ASOCIATII
Daniel Taivan
Test Lead
Current: Test Manager @ IBM
Florin Stefan
Expansion & Marketing Executive
Current: Service Line Manager @ Stefanini
Cristian Cotarcea
Digital Marketing Specialist
Current: Digital Marketing Specialist @ Software Business Partners
Open Collectors Network ICO 25
Iulian-Andrei Popescu
Senior Developer
Current: Senior Software Developer @ RES Software
Florentina-Marina Grigore
Developer
Current: .NET Developer @ ING Bank
Spasenie Alexandru
Android Developer
Current: Android Developer @ Stefanini EMEA & Freelance
Open Collectors Network ICO 26
Advisors
________________________________________________________
Cristian Tamas
Senior Esports manager @ Twitch
Mike Boutwell
Blockchain specialist @ cryptoadvisors.io
Sabin Girlea
Director of Operations @ Stefanini
Dylan Senter
Current: Co-founder @ Spectiv
Open Collectors Network ICO 27
Reinhard Brongers
Current: Software Architect @ Ivanti
Alexandru Savulescu
Current: Founder of RetroTech
Laura Toma
Co-Founder @ Renowned&Co