Rover, Roving On the Horizon.
The Backstory
Stellar is about decentralization, or it should be, anyway. That’s how we feel at Stellarport.
Since our very earliest beginnings, we’ve been committed to an open exchange, an exchange that would list all tokens, and an exchange where anybody can trade. The Stellar decentralized exchange (DEX) allows for anyone to issue and list a token, and our mission is to provide access to the entire Stellar network, without censorship.
Still, we remain committed to providing our users with an informative and safe way to navigate and trade on the decentralized exchange (DEX). We want to promote the whole DEX, but as safely and informatively as possible.
In creating our trading client, we set out to answer the most basic question that every user, whether trader or long-term investor asks: “What are these tokens and can I trust them?” because no sane person would invest in financial instruments they know nothing about, right?
Stellar Asset Verification and How It Works
Luckily for us a team of smart engineers (Stellar Development Foundation) had already thought of this question. Basically, if anyone can list a token, how do these token issuers communicate information related to that token with everyone else? Even more importantly, how can others verify that the information they are seeing is true?
To solve this problem, they devised a simple standard for the Stellar network wherein a special field is included, called the Home Domain. Now, anyone that issued a token could simply add a URL to their token and publish related information at their Home Domain. Specifically, they could publish verification at that domain that they have indeed issued this token. This standard essentially links Stellar tokens, which live in their own blockchain, with the real world. Now, token issuers can link their real-world identity with their tokens in a verified way.
So, with this standard already in place before us, we decided that we would simply display the Home Domain (i.e. website) of the token issuer AND critically, a green verified symbol (or orange unverified symbol) indicating whether that domain had verified that it was indeed responsible for issuing the token.
The Problem
A month or so ago, some rather unsophisticated scammers came up with a simple scam. Why not issue unverified assets on the Stellar DEX? In other words, issue an asset (like MOBI) with a domain that has not verified it. They hoped that inexperienced users of the Stellar DEX would simply buy them… and they the scammers would profit.
Of course, we had thought of that scam and included a prominent orange “unverified” warning on the asset. Alas, this was not enough, buyers came in droves and reports started surfacing of scam coins on Stellarport.
We realized that we would have to fix this issue in a more robust way. We could not count on users respecting warnings.
Our Simple Solution… Not
Well, what does one do when faced with a simple scam? Why, invent a simple solution of course (superficially simple anyway)! We decided we would simply remove unverified assets from the exchange screen by default. In other words, users would not see unverified assets when they came to the screen at first. These assets would remain navigable but only to a user who already knew what they were doing.
Sounds simple right? Wrong. You see, Stellarport is a portal to the Stellar network. We do that primarily by running Stellar nodes and exposing the information to you, the user. A Stellar node stores Stellar network information in a database. Almost all the information accessible on Stellarport is being directly queried from a database inside of a Stellar node.
Perhaps you are starting to see the problem? The problem of course is that verified status is not something that is stored in a stellar node, it is something that is stored outside of a stellar node. Specifically, it is information that a token issuer publishes outside the Stellar network to verify the Home Domain inside the Stellar network. In order to limit the information shown in Stellarport we would have to join Stellar network information with information outside the Stellar network.
Our Solution… Rover
To accomplish this, we built Rover. Rover is a crawler that compliments Horizon (Stellar Development Foundation’s API package), hence the name. Basically, Rover monitors the Stellar network and keeps related real-world information up to date by crawling the relevant portions of the Internet. Rover stores this related information in such a way as to allow Stellarport to query both sets of information at once to show to you, our precious user.
Now Stellarport has the ability to query not just Stellar network data, but also related, real-world data as well, at once. This is useful in solving the verification problem, and we’re betting it will come in useful in solving many other problems as well (in the very near future…).