Want $10 STEEM? Let's implement Private Transactions ( Black Pocket Token )

in #steemdev6 years ago

Let's face it, STEEM transactions are not private at all, but did you know Dan Larimer was definitely thinking about transaction privacy when he architected the STEEM blockchain?

At least 6 cryptocurrencies with a higher market cap than STEEM use privacy-centric blockchain technology. ( Dash, Monero, Zcash, Bytecoin, Komodo, PIVX ) Some may argue it brings the negative connotations of darknet markets and illicit transactions, but as has been said many times before how is this different from regular cash? Privacy on the blockchain is a legitimate and highly valued feature to have.


https://github.com/steemit/steem.io/blob/master/_roadmap/en/confidential.md

The above link shows that privacy is on the STEEM blockchain roadmap, although currently at very low priority. It talks Ring Signature Confidential Transactions ( pioneered by Monero ) as the most likely implementation for transaction privacy on STEEM.

The core dev team of STEEM is amazing, but I'm not going to hold my breath for this to be built anytime soon. They're too busy on HF20 and SMTs, which is where they should definitely be focusing their energy.

But is there anything we can do today to add this feature to STEEM? Although it isn't the 'ideal' implementation, I believe there is a relatively simple way. The solution lies in the protocol used for Blackbytes in the Byteball cryptocurrency, by hiding the content of on-chain transactions in off-chain files and only publishing the hash of transactions to the blockchain. And through combining the Blackbyte protocol with the POCKET Token Protocol developed by @biophil we can create a private currency on STEEM that can be transacted simply through leaving comments on posts.

Here's a very basic rundown of how Black Pocket Token ( BPT ) ( working title, a bit sinister sounding I know ) can operate:

New BPT are issued when a user burns STEEM by sending it to the @null account. Burning STEEM entitles a user to an equal amount of BPT as STEEM burned.

[ A future possibility that would require a hardfork would allow users to send BPT back to the @null account and the @null account would issue STEEM back to them and destroy the BPT. This would make the system much more valuable. I also think that type of system may be possible using an SMT Oracle and Market Maker contract, although I'm not sure if this is possible at all, it is fun to think about and definitely should be explored when SMTs are released. Also, perhaps a semi-trusted system could be implemented using the builtin escrow system.]

User to user transactions are as follows:

  1. Create a send operation like "blackpocketsend:1000@biophil" and a 'spend proof'.
  2. Post the send operation hash and spend proof hash in any comment.
  3. Send the transaction and entire history of the tokens being sent to the recipient, encrypted with their memo key over a secure channel. The first entry in the history will be the original STEEM being burned.

To verify the payment, the receiver:

  1. Calculates the hash of the private transaction
  2. Finds the comment that includes this hash and is signed by the payee. If there is more than one, the one that comes in the earlier block wins.
  3. Calculates the spend proof and makes sure that it is included in the same comment.
  4. Makes sure the same spend proof is not included anywhere in the same or earlier blocks ( to make sure it's not a double spend attempt ). Only transactions by the same sender are searched.
  5. Repeats the same steps for every entry in the history, except the first entry, which should be a valid burning transaction.

A limitation is that since the entire history of the tokens sent must be transferred from user to user, the history of your token is known to whoever you send BPT to. This is still much better than every transaction being publicly recorded on the blockchain. Additionally it is public that somebody is sending BPT, but the amount and to whom remain hidden off-chain. The idea is that the histories remain fragmented enough to where it is mostly irrelevant that histories are passed from user to user.

The protocol is explained much more in depth in this bitcointalk post and I highly suggest reading it if you'd like a better understanding.


Although this is an ambitious project, it's been on my mind for weeks and I've been discussing it with people much more knowledgeable than myself. I plan on developing an implementation of it in Ruby in my spare time. I've watched this tutorial video and have been quite inspired by it.


I think we can do this and bring a new level of privacy to the STEEM blockchain, and further it's lead as the greatest blockchain to be building on today.

Sort:  

A limitation is that since the entire history of the tokens sent must be transferred from user to user, the history of your token is known to whoever you send BPT to. This is still much better than every transaction being publicly recorded on the blockchain.

No it isn't. Over time any regular transaction processor (such as an exchange, payment processor, bot, service, active user, etc.) will see more and more of the history and very little of it will remain private in any useful sense. (The same criticism applies equally to blackbytes itself.)

If you are going to create an embedded coin protocol, you can define whatever protocol you want. You might as well use some better privacy enhancing method instead of this silly one.

I will admit, the blackbyte protocol is the only privacy method I think I have enough knowledge to implement. I invite anyone to implement something stronger.

Zerocoin protocol?

i know @thejohalfiles will love this , he has been asking for more anonymous cryptocurrency solutions and you may be on to something!

Now you can use the $50 you've raised here to actually hire someone top brainstorm new ideas or program some proof of concept systems... maybe some bright young teenagers who want to move up in this world can take a look at this and see how just a POST about anonymous blockchain transaction solution can earn you $45 from just one post, and this post could get to $100 or $200 with enough attention.... and that money can go into development

Maybe someone should post this to @utopian-io and request some funding, and maybe put out a bounty, heh I wonder if anyone actually thought you were offering a $10 bounty LOL people should be grateful for any work they can be offered! ;)

Seriously though, arent there plenty of people in developing nations who wouldn't mind being paid $5 or $10 an hour for very professional type work that would normally be $50 to $100 an hour jobs in the developed world? People should be more grateful for any work they can get, and I agree we should offer as much money as we can to talented people but sometimes we cannot just offer high wages, and employees can find a way to make their own wages higher by working harder.... any company i run will always have opportunitiues for people to climb up the ranks and earn as much money as they want! I am against dead end jjobs, and I beliueve STEEM will provide us this opportunity

I love this idea and I believe @stellabelle will also find it interesting and will be able to show apropriate people like @dan and @ned that here lies a good idea

Also Steempixels was the start of MANy reddit inspiredideas

I cannot wait to see you manifest Steemit Secret Santa @adept

I'm wondering how after the STEEM is burned and the BPT token is created, how the BPT holder would be able to 'cash in' the tokens they received. Would BPT somehow be pegged one-to-one with STEEM tokens?

To be able to 'cash' them in and receive steem, would require a hardfork.

Without that, the idea is burning them would peg them to STEEM 1:1, although there's nothing in place to enforce the peg. The only way to cash them in would be to trade them with someone for STEEM or something else.

I'm hoping perhaps it can be automated with an SMT market maker and oracle contract, that would provide a way to go from black pocket back to STEEM and vice versa. ( Like I said though, no idea if this is possible )

That's amazing... everyone need some privacy! The government are spying all crypto holder and jailed them if un-declare.

So building a private blockchain within the blockchain. Securing all transactions offline. This seems to be a big deal. If it follows through. But why not, this is a grand idea. Breakaway from peering governmental eyesight.

Wonderful idea.much safer and secured too...thanks for this entry too.
@adept

pocketsend@adept:100, great idea. I would welcome more features to make intra-user payments.

pocketsend:100@adept, sorry the command was wrong the first try.

Successful Send of 100
Sending Account: wekkel
Receiving Account: adept
New sending account balance: 1994345
New receiving account balance: 108
Fee: 1
Steem trxid: 25f924d351beb224b5299a866eae7b14939197dd
Thanks for using POCKET! I am a confirmer bot for fun, view my source confirmer code here. Don't know what a POCKET Token is? Here is a link to the official announcement post.

Upvoted and resteemed Mr.@adept.

I totally agree with this . This is in fact very knowledgeable and informative. I believe if we implicated this the future of this blockchain could undoubtedly be The best and in a class of its own . Steemit will prosper as long as the community is continually educating each other and adapting there’s nothing smee

Are you saying that you believe the privacy feature is holding STEEM back? Do you believe that STEEM would be worth more today if it has this?

Personally, I do not believe a lack of privacy is a huge issue...at least at the moment. Perhaps it could be a major issue down the road especially if the governments of the world start moving into the banning and over regulating mode.

I understand there are a number of tokens that offer privacy yet some of the highest flyers are without it.

And what would a privacy system like you are talking about implementing mean for the tokens created using SMTs...do they get it too or is it something that they go without?

You had me at private. Privacy is something that most people do not realize how important it is. They will only realize once it's too late, and they've given up all their privacy for security.

Building in privacy is an awesome thing and I wish you much success.

Once you've lost your privacy, you realize you've lost an extremely valuable thing.

Billy Graham

Great job man! This Pocket + Byteball system might end up being a great combination for anonymous steem transactions!

pocketsend:100@adept,

Successful Send of 100
Sending Account: ackza
Receiving Account: adept
New sending account balance: 997890
New receiving account balance: 207
Fee: 1
Steem trxid: abd873a23624e31202fbef0df52e9bec0012d17d
Thanks for using POCKET! I am a confirmer bot for fun, view my source confirmer code here. Don't know what a POCKET Token is? Here is a link to the official announcement post.

Time to shoot up the prices

pocketsend:100@adept

Successful Send of 100
Sending Account: cloudspyder
Receiving Account: adept
New sending account balance: 2998984
New receiving account balance: 306
Fee: 1
Steem trxid: 1e5a05b01051ad985346c0cabdf8f85781dd2668
Thanks for using POCKET! I am a confirmer bot for fun, view my source confirmer code here. Don't know what a POCKET Token is? Here is a link to the official announcement post.

@adept I totally believe that the big 3 (steem, eos and bitshares) will skyrocket to $5 $10 20 $100 and so on on many ways.

Your idea of adding privacy to steem transactions is a great one, I am not a dev so not sure on the best methods, however, I see this is just another great things that STEEM can add to its tremendous power.

The SMTs, @utopian-io and the new economies and markets the STEEM Blockchain is developing, all these together with the bottlenecks that ETH is suffering right now, that with around 165,000 less transactions on the blockchain than STEEM, it is already stuck overwhelmed with 29,000 transactions not processed yet. And STEEM with 165k more transactions and being the top in the activity of blockchain transactions, is only using 0.3% of its capacity. This means, 99.7% is still available for doing millions of transactions, and with all this, the blockchain is working great.

There are lots of surprises comming for the year end, I am sure, and for the new 2018.

Thanks for sharing this great idea.

Upvoted!

Regards, @gold84

There are some people working on the STEALTH token for bitshares, which is going to support anonymous transfers. Check that one out.