At Scatter we’re very focused on the general blockchain user-experience. It’s not only about making Scatter itself simpler, it’s about finding ways to be able to securely remove it from the picture completely.

Scatter is a digital signature provider for the blockchain. Learn more about what we are building here.

Scatter Desktop

If we take games as an example ( which I often do ), they usually have their own painstakingly crafted user-experiences. Companies spend millions fine-tuning their users’ experiences and making them as immersive as possible into their virtual worlds. When you purchase something in a game they always ask you to confirm your purchase. The last thing the player wants to see is a separate blockchain popup asking you to confirm it AGAIN. Even worse, you definitely don’t want to have to sign a “Shoot Gun” transaction when you’re in the middle of a heated first-person shooter battle.

This becomes annoying fast. Take a simple example; a game of chess on the blockchain. You’ll have to confirm every single move that you make since those moves need to be persisted to the blockchain. This doesn’t just break immersion it becomes massively annoying and time consuming. It makes you not want to play at all.

Scatter’s got you covered though. Scatter has a built-in permissions system which allows it’s users to apply whitelist permissions to actions. Instead of having to approve a transaction every time the user can decide to whitelist that specific action ( for instance the moving of a chess piece ) and will not have to re-approve it the next time they move it.

How does this work? ( semi-technical )

These whitelist permissions work using fingerprints of the values of the transaction. Take this transaction as an example.

website: mychess.com

mychess.com contract: achessgame

achessgame player: chessplayer1

chessplayer1 piece: pawn2

pawn2 location: a4

In computer science we have something called a hash. In simple terms a hash is a way to create a short provable fingerprint from data that can’t be reversed, meaning you can’t get the original data back from the hash but you can recreate it with the same data. If we took all of the values above and made a hash out of them it might look like this:

a7ac961c2a9b503040c8e0c3dec5740a17bae90f829373c10183f3a1db890a2a

If a user chooses to whitelist an action within Scatter it will add this fingerprint as a whitelist permissions and the next time they do an identical action with the exact same values it will simply allow the transaction to be signed automatically!

You might have noticed that we still have an issue here though. It’s unlikely that you will ever move pawn2 to a4 again.

Scatter’s whitelist permissions system allows you to pick and choose which values of the transaction shouldn’t be included in the fingerprint, such as the “piece” and “location” values. This allows you to create permissions which are flexible enough to play an entire game of chess; moving different pieces to different locations, without having to constantly approve transactions.

But it’s far more powerful than just that.

Chess is a very limited example of how adjustable these whitelist permissions truly are. I’ve already seen games take Scatter’s permission system into consideration when programming their game and allowed for some very easy to set up games. Take this next transaction as an example:

player: someplayer

someplayer action: buy_item

buy_item data: 4 life_potion

Because of the way that this transaction is formatted it allows the game to have dynamically generated effects based on one structure. Effectively you can do anything with this single transaction format.

player: someplayer

someplayer action: use_item

use_item data: 1 life_potion

— — — — — — — — — — — — — — —

player: someplayer

someplayer action: attack

attack data: otherplayer long_sword

Looking at the three transactions above we know that we can just set the action and data values to be “mutable” and it will let us automatically sign transactions for buying items, using items, and even attacking all within a single permission.

So how does this help the blockchain “get out of the way”?

One of the worst non-technical issues with Signature Providers like Scatter is the breaking of user-experience with applications that are interacting with it and the blockchain. In centralized applications you don’t feel this because you implicitly trust the application you are using to “sign things for you”. The goal for us all in this blockchain space is to make interacting with the blockchain either as seamless as interacting with centralized applications or better.

With Scatter, the first time you accept and whitelist a transaction would be the only time you ever have to go through a Scatter Signature Request Popup. After that you would never see Scatter again. The only thing you would be doing would be playing a game or using an application and everything else would be happening behind the scenes; leaving you with the immersive user experience crafted for you without the hassle of interacting with the blockchain.

What about removing permissions?

Scatter makes this easy with it’s Permissions Panel which allows you to moderate your permissions easily and completely detached from the application. You never have to rely on applications to provide ways for you to remove permissions, instead you’re always in control over your own privacy, security and experience.

When NOT to use this

For obvious reasons you really don’t want to use the whitelist for any actions that move tokens or funds around. The last thing you want happening is a dapp you’ve landed on suddenly start draining your funds because you have a permissions allowing them to do so.

Be diligent with the permissions you add. Make logical decisions about what to whitelist and what not to whitelist. We give you all the power, which also means we give you all the responsibility.

— Nathan James ( nsjames ) | Telegram: https://t.me/Scatter

Scatter is a blockchain signature provider as well as an identity and single-sign-on system. It currently supports both Ethereum and EOS, with more blockchain support already underway.