POCKET Announcement
I've been thinking for a long time that we need to start exploring the wonderful possibilities of Steem subchains. To that end, I've built POCKET, the first subtoken on Steem.
I first floated a seed of this idea a few weeks ago with my post on MISTs, and got a little positive feedback from the community. Since then, I've been testing various incarnations of the Pocket token system, and today I've finally released the real thing.
What is POCKET?
POCKET (the Proof Of Concept Electronic Token) is an experimental subtoken system which operates on the Steem blockchain; see my article on subchains for higher-level ideas. In the interest of starting out small to learn as much as I can as cheaply as possible, Pocket only does a couple things:
- Tracks ownership of a new token, the POCKET, which can be transferred between registered Steem accounts.
- Provides a very simple incentive system to encourage distributed storage of the Pocket database, by paying people to publicly confirm transfers of POCKET tokens.
- Allows users to interact with the Pocket protocol via existing interfaces such as Steemit.com, Busy.org, and Chainbb.com.
Quick simple overview of POCKET
How do I get POCKET tokens?
Most active Steem accounts are eligible to claim a pile of free POCKET tokens. Every Steem account that has submitted posts at least 5 times (top-level, comments, replies, post edits all count) to the Steem blockchain before POCKET started is eligible to get 1,000,001 POCKET tokens.
To claim your POCKET tokens, you need to resteem the POCKET Genesis Post. You don't need to vote for it, you don't need to pay anybody anything, you don't need to vote for my post here, you don't need to resteem my post here, you don't need to comment on anything, you only need to resteem the POCKET Genesis Post. Every eligible Steem account that resteems the Genesis Post will be credited 1,000,001 POCKET tokens.
14 days after the Genesis Post was first published, the Pocket Genesis Period will end and no new tokens will ever be created again. If you want to participate in Genesis, do it before 14 days have passed. After that, resteems of the Genesis Post will do nothing for you.
Once I have resteemed the Genesis Post, how do I know if I got the tokens?
You'll find these instructions over on the Genesis Post as well, but after you have resteemed it, reply to the Genesis Post with the single word confirm
. The word confirm
needs to be all lowercase.
Once you've resteemed and replied to the Genesis Post with confirm
, if your claim was successful (and you didn't type CONFIRM
or Confirm
or please confirm
instead of confirm
), you'll receive a message from a confirmation bot that you got your stake.
NOTE: You will be charged a fee of 1 POCKET for this confirmation. You don't have to reply confirm
if you don't want to pay the fee, but right now the only way to know for sure that your claim went through is to pay the fee.
Full disclosure: I am the owner of the @pocket-a account, which begins as the only confirmation bot. However, you can run your own confirmation bot and collect fees yourself! Read on to find out how.
How can I send someone POCKET tokens?
This is the easy part. Suppose you want to send 1000 POCKET tokens to @ned. Then all you have to do is write a Steem comment that starts with the text
pocketsend:1000@ned
It's that simple! Any comment is fine. It can be top-level or it can be a reply to someone's post.
NOTE: When you send POCKET tokens, you will receive an automated reply that the send was successful. This reply will tell you your balance and the balance of the receiving account, but it will also charge you a 1-token fee. This fee comes out of the total amount you sent; so in the above example @ned will only receive 999 tokens. You're being charged a fee for the confirmation message; if you want to send the tokens and not pay the fee, then immediately after you post the initial comment, delete it. The send will still happen, but the receiving account will get the whole amount. But, you won't get a confirmation message. It's your choice.
Can I include a memo with my send?
Sure! This is how:
pocketsend:1000@ned,everything that comes after the comma is a memo.
If someone ever wants to list POCKET on an external exchange, this could serve the same purpose as the STEEM transfer memo for deposit purposes.
What is POCKET for?
I'll answer two different questions. First, POCKET is part of a research project. I want to explore the possibilities that Steem offers us of having a blockchain that can encode arbitrary data without charging fees. I don't know if anybody has noticed, but that's pretty cool. It means you can build a blockchain-based app of any kind without having to build your own blockchain. Isn't that cool?
Second, POCKET is a fantastic tipping currency, provided that people decide it has some value and it ends up with a nonzero market price. Did you like @kingscrown's latest crypto analysis article? Then reply to it with
pocketsend:1001@kingscrown, super cool article bro!
Bam! Tipped! No need to expose your Steem active keys.
What's up with fees?
The fees are a very simple way that I devised to create an incentive mechanism for people to maintain copies of the Pocket database. The first account that posts a confirmation is the account that gets the fee. When POCKET first started, the only confirmer account was @pocket-a. If POCKET is successful, then other people will come along and run their own confirmer accounts to try to beat @pocket-a to the punch and earn the fees.
POCKET will only work, will only be trustworthy, if there are multiple people around the world maintaining and validating the database. If I'm the only one, that's a bad situation because you'll have to trust me not to manipulate balances in my favor.
So I can run my own confirmer account and collect fees?
Sure! I have published the Python code that @pocket-a is running here. It's not polished, but it does seem to work most of the time. Of course, I offer no guarantee that it faithfully implements the POCKET protocol or that it won't cause troubles. It's available with no guarantees or warrants of merchantability or fitness for any purpose and all that, naturally. Use at your own risk and don't run the code until you've audited it yourself! I'm not an experienced Python developer; as such, the code is likely not written to a standard that professional devs are used to.
What would be vastly better than running my code, of course, would be to write your own. In POCKET, code is not law; rather, protocol is law. I've published the POCKET protocol here, and you can use that to audit my Python code or create your own implementation.
Is there a block explorer?
Not yet. Please contact me if you're interested in helping to make one!
Is there a desktop wallet?
You can interact with Pocket via any interface to Steem. All the frontends like Steemit.com, Busy.org, and Chainbb.com. I believe someone has created a Steem desktop wallet, so that should work as well. The Steem cli_wallet
would do it. You can also do it programmatically with any of the Steem libraries like steem-python
.
So no, there's no wallet (yet) that's dedicated to POCKET, but the point is that you don't need one.
Is POCKET trading on any exchanges?
Not yet. If you're an exchange and you want to list POCKET, please contact me!
What gives POCKET tokens value?
As I'm writing this, we don't actually know yet if POCKET tokens have value or not. That will be up to the participants in the POCKET system to decide. Please keep in mind that I haven't given you anything but a protocol specification and a little hacky Python code attempting to implement the protocol. I'm not giving you tokens. When you resteem Genesis, you're saying "Hey world, I have tokens according to the POCKET protocol." If the world thinks that's a meaningful thing to say, then perhaps POCKET tokens will become valuable.
But this is a crucial thing to understand: I am not issuing tokens. The protocol is. If anything makes them valuable, it will be that fact.
What does the "K" stand for?
The K is silent.
That's so dumb.
It's a Nacronym, which stands for "Not an Acronym."
No, I mean I think POCKET is dumb. Why waste blockchain space with a useless token?
Steem has this wild untapped potential. You thought it was only good for social media? We can do anything here, we have the greatest blockchain sandbox ever created, and you're worried about a few extra bytes of storage? Have some imagination! If we don't try experiments like this, how will we ever get where we're going?
And in any case, if you don't like the idea of POCKET, don't claim your stake. That seems pretty simple to me.
TL;DR Links:
- Pocket Protocol Specification
- Pocket Genesis Post
- @biophil's Pocket Confirmer Github
- My meta-subchain post
- Dan's original post on subchains
And finally, I'm on the job market!
I'm a PhD Candidate in the Center for Controls, Dynamical Systems, and Computation in Electrical Engineering at UC Santa Barbara, and I expect to receive my PhD in the first half of 2018. My interests are in the intersection of technology and society: I am interested in how social systems interact with engineered systems, studying incentive design, distributed systems theory, security, and robust mechanisms for influencing social behavior. If you or anyone you know is interested in my combination of analytical prowess (I expect my PhD dissertation to result in 6 journal publications), real-world experience (I helped design and build several biodiesel production facilities before I went back to graduate school), and hacking skills (have you heard of POCKET?), please contact me!
This is great! It appears to be the beginnings of Steem's Omni or Counterparty-like protocols.
That's exactly the notion! Pocket itself is extremely limited, but the more people we can get using it, the more we learn about what issues can arise when something more advanced like Counterparty actually gets going.
I don't understand but when bright people get excited and it's free to join. Why not?
lol yes!
Yes this is very simple yet the implications are quite profound. This is a great starting experiment to say the least!
Very interesting ... apart from myself my wife @kobold-djawa joined, too. :)
Nice!! I love that this can be done directly within a normal comment. Very cool. :)
Yea so cool!
amazing project, resteemed it to my 10k+ followers!
Thanks much! Thrilled to have you here.
Awesome!
Thanks for helping fuel this cool social experiment!
Helping this community explore what we have not explored before!
To Steemit and Beyond!
For sure an interesting experiment. I am really happy to see this kind-of research and development going on with Steem. I'm a little confused about some of your choices with the implementation. Considering that we are dealing with value here, why not use active-key+custom_json_operation instead? Consider if POCKET became a very valuable currency, but a popular posting-key accepting website got hacked and private keys were stolen. Every participant on that website would potentially get all there funds drained out. Also, consider that you're implementing a 60s block-time time on what could be a 3s block time. If you're familiar with C++ I highly recommend you go back and reimplement this as a Steem plugin for witnesses to run. As awful as that sounds, it's actually significantly easier to do what you're trying here. Thanks again for all the hard work and research on this project. I wish all participants a successful launch.
Absolutely agree with everything you've said. Active key, Custom_json, and a plugin will definitely the right way to do all of this.
I had essentially one reason for not doing all that: I wanted it to be completely interoperable with existing interfaces. Once you start using custom_json, you need to create a new interface or update old ones; I was trying to demonstrate that this is not necessary. Requiring active keys would rule out people who log in with their posting key; I wanted it to be as inclusive as possible. I agree, the security tradeoff is unfortunate.
A couple other notes:
comment_options
operation is considered valid in validators.py, otherwise this will not work with Chainbb or Busy as you've described.comment
operations before the creation of the genesis post. Crude, I know - but perhaps not totally ineffective. We'll see.comment
andcomment_options
are two separate operations, yes? Thecomment_options
op will simply be ignored by the pocket protocol, which is fine - it's thecomment
operation that contains the command of interest.Again, thanks for the comments.
Point 2 brings up a couple very important things which I thought about informally, and I'd want to include in future iterations of this. I'll contact you if I get that far.
Really great points and questions. POCKET is already being refined.
I may be wrong but this seems like more of a social experiment than anything. To see what people do with it. Because regardless of if the coin becomes "valuable" the applications of which POCKET can be used are still vast.....
The experiment has already begun and look we have qualified intelligent people already discussing and refining the potential!
So cool!
Both of your points and reasoning are sound for different factors. Isn't there some way for this to be forked or changed in the future if it does become valuable?
I mean this is really cool and I am excited about the potential but it seems like more than anything its a social experiment right?
To see what people do with POCKET?
Spot on. It would be really easy to fork new projects off of this.
Cool, Im not a techie but this what my deduction abilities brought me to. Thanks for the answer!
Makes this project all the more awesome!
Excited to see what comes of this!
SteemON!
Thank you for your great points.
Cannot wait to participate on my first ICO via Steemit.
@biophil, how is your project going? Definitely interested in knowing because i would like to look at developing games on Steem
Afaik, pocket still works, and I learned a lot from it. I'd love to consult with you about the idea!
@biophil , please allow me to translate your content into chinese in order to spread this message to the Chinese community.
Upvote me if you like this
Link here:https://steemit.com/cn/@incrediblesnow/pocket-token
Interesting post. Thanks for share.
Very interesting project, another addition to STEEMOconomy :)