The Account Creation Problem

in #steem5 years ago

Houston(...erm Austin). We have a problem.

I've always been taught the most effective way to essay it to introduce the topic, layout the body of work, then conclude. One of the issues faced by developers is explaining concepts in "English" and to this I'm no stranger. Most on Steem can state we have an on-boarding issue. Some on Steem can articulate this issue. Fewer can articulate why our on-boarding issue is also a network protection against attacks to both the chain and the reward pool. One thing is certain: decentralized systems and networks are very new and solutions to these problems represent some of the most important issues facing the future of both finance and governance.

If you're reading this with only a knowledge of Bitcoin or Ethereum you may be wondering why anybody would need to claim an account in the first place. This comes down to the nature of the blockchain, Steem is a Directed Acyclic Graph, DAG, which simply means that every action run by the witnesses is the result of a previous action. Having an account on Steem is different than having a key pair on Ethereum or Bitcoin, we can reset passwords, we don't need to protect our network from spam with fees, but each account has to be the result of an account creation transaction where the public keys for a steem account are distributed to the network. To protect against some individuals from flooding the network with bots and "Cybils" these accounts have a relatively high cost and start with no effect on the network rewards via voting.

HF20 (The 20th agreed upon consensus implemented by the Steem Witnesses) introduced a new nontransferable token called the "Account Creation Token," ACT. These allow the account that claimed an ACT to build a new account on the Steem blockchain for free.
Well, free like transactions are free. Truth be told these ACTs actually cost quite a bit in the currency of bandwidth. Bandwidth on steem is represented by Resource Credits, RCs, sometimes called mana. This is currently an amount attached to every account that recharges every 5 days and of which a portion is used by every transaction that is accepted on Steem. A transfer, post, vote, custom_json(playing @splinterlands or @hashkings), and claiming ACTs all cost RCs. In fact claiming an ACT costs about 0.001% of the whole networks RCs which very few accounts have a sufficient control of.

The alternative method for creating an account currently costs 3 Steem, which significantly more accounts control... but If you can't afford an ACT with RCs then 3 Steem will be at least 0.1% of your balance and likely much more.

Even Steemit Inc can't get around these new rules and account creation has dropped to around 200 to 300 per day. If we are to have a social network with global impact something needs to change.

Steem, I have one answer.

I've been building and testing sidechains on Steem for awhile. Most notably the DLUX sidechain which seeks to provide additional publishing services to steem, enabling amongst other things VR, AR, and WebApps/dApps to be built and served with out DNS or other methods of censorship like App Stores or upfront costs of any kind. Additionally I've built the @hashkings logic which allows delegation to a pool to create an economy with out the possibility of an exit scam. I know the coordination of parties via a consensus based sidechain is more than a possibility, it's a paradigm that will compete with every corporate business model in the future.

Since asking for funding from the Steem Proposal System I've been working toward solutions that will benefit the network as a whole instead of just my dreams for my corner of it.

I'm about half way through building a program to automate cooperative market based pricing of the ACTs as well as their real time redemption. The biggest hurdle here is that ACTs must be redeemed by the account that claimed them with an active key. If you have an account large enough to claim an ACT your active key controls at least 4000 SP and often millions of SP. A third party holding these keys to coordinate selling accounts is not an option.

A second hurdle is just claiming an account isn't going to allow that account to even make a post. It needs to be funded with SP. Delegating SP also requires and active key... And somebody who is mining ACTs with their RCs might not want to delegate to the accounts they've created. Thus a "relatively simple" escrow system with a dedicated middle-man or a networked 3rd party isn't an option.

So what exactly am I building?

This program will be run by parties interested in either delegating SP or exchanging ACTs for Steem at a market rate. Since it is ran is the same distributed manner as witnesses keys are never compromised. To solve the issue of using the purchase price for two different tasks the people running this software will also build between themselves a multi-signature, @dac.escrow (decentralized account creation / distributed autonomous company), account to hold funds in escrow.

This program takes one input, blockchain transactions as a stream, and develops a collective knowledge of necessary actions. For instance. If an account sends @dac.escrow the published price for an account and SP delegation then all parties running the software will autonomously know what to do next. Runners A and B will know they have to build a new account with the information contained in the memo of the transfer(public keys and username) and fund that account with SP. The signatories of the dac.escrow will know to send steem to runners A and B when those tasks are accomplished, either immediately or after the delegation period paid for has expired.

Because every runner of the software also has information about the inventory of accounts and SP available for delegating they can use rate based algorithms for determining the market price with the current demand.

The pricing algorithm

This particular problem has a Nash Equilibrium and is closely related to a network traffic problem.

Since these ACTs are minable with RCs there is a definite rate or resource renewal. Namely 5 days. The current algorithm designed breaks this renewable resource in to 40 3 hour periods and adjusts prices based on who is willing to sell their ACTs at what price. There will be a smaller effective inventory at low prices and a larger effective inventory at higher prices. If accounts sell out faster than the equilibrium supply at a price the price moves higher, opening up more inventory. If the accounts don't sell out in a given period the price moves down, constricting inventory.

function setPrice (num){ //call every 3600 blocks or out of inv
  var out = 0, newPrice = 0, newInv = {ei:0,q:{},keys:[]}, qi = [], qd = [] //queue for delegation is still under construction
  if(num % 3600 != 0){ //see how early acounts have run out.
    out = 3600 - (num % 3600)
  }
  if (out){
    newPrice = parseInt(state.stats.pri *parseFloat(1 + ((out/3600)/40))) //increase price ... for 3 hour periods in a  day recharge window
  } else {
    newPrice = parseInt(state.stats.pri *(((state.stats.invp - state.qa.length)/state.stats.invp)/40)) //decrease price
  }
  state.stats.pri = newPrice
  state.stats.so = out
  for (var agent in state.agents){
    if (state.agents[agent].l < newPrice){ //determine effective inventory and form the queue
      newInv.q[agent] = parseInt((state.agents[agent].i * state.agents[agent].r)/8)
      newInv.ei = parseInt(newInv.ei + newInv.q[agent])
    }
  }
  state.stats.invp = newInv.ei
  for(var i = 0; i < state.qa.length ; i++){ //queue continuation 
    if(newInv.q[state.qa[i]]){
      qi.push(state.qa[i])
      newInv.q[state.qa[i]]--
      newInv.ei--
    }
  }
  for(var a in newInv.q){ //remove empty qs
    if(!newInv.q[a])
    delete newInv.q[a]
  }
  newInv.keys = Object.keys(newInv.q) //queue agents based on their available inventory during this period
  for(var i = newInv.ei; i > 0; i--){
    newInv.q[newInv.keys[i % newInv.keys.length]]--
    qi.push(newInv.keys[i % newInv.keys.length])
    if(!newInv.q[newInv.keys[i % newInv.keys.length]]){
      newInv.keys.splice((i % newInv.keys.length),1,0)
    }
  }
  state.qa = qi
}

Technical Mumbo-Jumbo

This (github) paradigm will build a consensus side-chain where the top holders of the ACT tokens are also daily promoted to signatories on a multi-signature account. This allows for an open pool of funds to simply handle the several step account creation process.

Some of the features here:

  • The participants(agents) who run this poll outside information from steem like the public keys of the agents and the initial ACT inventory, and the availible Steem Power for delegating.
  • The agents also submit reference block numbers and prefixes along with what each believe is a time 9 minutes in the future. This allows for multi-signature operations to be developed in a deterministic way so each agent can sign the transaction with out passing the transaction between them. With each 100 blocks(5 minutes) they will sign the operations developed and submit the next reference information for polling. Once enough signatures are collected the operations will be submitted.
  • In addition to the autonomous multi-signature control, each individual participant will need to sign account claim, create claimed account, and delegate vesting shares transactions. This DAC will automate that process and verification.
  • Since all the information between them is shared, prices for delegation of SP and the cost of ACTs are dynamically changed to support market conditions. Building a business around this non-transferable resource that builds the Steem ecosystem.
  • Side-chain state is stored on IPFS... which allows for near instant restarts... which are also automated.
  • Delegators to the multi-signature account may be able to earn these as well.

Some things I'd like some help or thoughts on:

  • Is it possible to tokenize an ACT purchase to be used or sold later without creating a 2 party contract?

There is a lot more work to do, but as you can see progress comes quick and the need is great. This multi-party control of accounts can be the basis for completely open smart contract platforms and other cooperatives structures that have the ability to replace ANY third party trust with nothing but free speech, verification and cooperation. Since no single agent has to perform actions for the system to work this does not create a "trust" or "security" in the eyes of the SEC or FinCEN.

Far from a conclusion.

I wanted to provide an update on my progress toward true decentralized smart contracts. As a freelance developer with out a large stake in Steem working on this platform has been of little financial benefit to me personally, counting my initial investment I'm still in the red. This has been the major factor in requesting funding from the Steem Proposal System. Once this DAC is up and running it will do what block chains are meant to do, namely removing the middleman and the fees associated with dealing through people, I'm a middleman. I don't have a large enough stake to even get ACTs on my personal account. Though I might be able to benefit from delegating Steem Power to these new accounts. So if you feel I'm doing work that will benefit the ecosystem as a whole please approve (SteemConnect Signing Link) this proposal. Or buy me a coffee via Paypal

I would love to have your support and hear your feedback. #NewSteem can and should take the world by storm!

Sort:  

Downvoted for not only stacked vote buying but referencing #NewSteem in the post and still stacking bought votes. ‍ [facepalm]

Aww, I guess I'll just have to buy another vote. On a side note you are the very first person to engage this post. You seem to have read all the way to the bottom and still couldn't manage a comment about the necessity of solutions for on-boarding. I spent sixteen whole dollars on votes and somehow managed to get nearly $50 in votes, $15 of which seemed to have been from engagement but I couldn't be sure since the only person who commented was you. Do you think my post would have gotten $15 of engagement with out bid-bots? I can answer that question for you by pointing to my last several posts. The answer is no. Thank you for valuing several hours of coding at the benefit to the network and over 1700 words trying to explain why I'm doing this at negative $8. No wonder people run from Steem faster than you can shake a downvote at them. It obvious that account creation isn't the only problem here, but it seems to be the only problem I can offer a solution for.

I saw smooth DV'd and was not going to because I felt you would respond better, but when I saw your comment of "ill just buy another vote" I felt the need to null that. You would be much better off setting 50% of your post beneficiary to null, then I don't think anyone would DV you. Advertising should not be free, and DVs will keep free advertising in check. FWIW I would have possibly given a 15$ upvote to you had I not seen paid stacked votes.

@theycallmedan Are these being sent to null?

https://steemit.com/threespeak/@threespeak/3speak-s-steem-burn-initiative-newsteem

https://steemit.com/buildteam/@buildteam/servicios-de-los-estados-de-buildteam-ahora-son-publicos

https://steemit.com/cannabis/@canna-collective/project-update-5-crazy-hardforks-new-steem-delays-and-updates

https://steemit.com/hardbork/@aggroed/low-cost-infrastructure-to-support-keychain-splinterlands-steem-engine-and-future-apps-compact-broadcast-node

I see your vote on a few of the above that also stacked votes to promote something. It seems unfair to lecture and downvote a small account for doing the same thing many of the above are also doing, who you upvoted.

Downvotes are important, but so is consistency.

We addressed the threespeak one, those were not paid votes but organic votes. But I would like to burn those funds and I will confirm with my team if they agree.
The aggroed post I will be honest, I caught it right when it popped up, read through it and realized how important it was (or at least I thought it was) and voted. I saw later he used stacked votes, and I saw smooth had countered him and I liked the way he responded to smooth. I have thought about removing my vote but I decided that I would just not vote his future post if he feels the need to stack bid bot votes without burning any Steem to counter the ROI.
I think the best approach I can take is to DV to reverse the damage to PoB and send liquid funds back to people I feel add value to Steem but wanted their post seen. I will only do this once however if people continue to feel the need to stack paid votes that dominate any chance of organic curation to thrive, I will use my stake accordingly.

Yes, thank you and I should have edited my comment here as I included the 3speak post. As I said elsewhere, that was sloppy work on my part as those votes were not paid for and I should have looked more closely before including it.

I believe in proof of brain and but also feel we should have ways for people who are not well known to have their projects seen. I hope that we have better tools in place soon to help with that in a way that is also good for the ecosystem, like integration of the “promoted” tab to trending. Until then we will have to work towards finding a balance and I appreciate you playing an active role in that.

I believe in proof of brain and but also feel we should have ways for people who are not well known to have their projects seen

These can't coexist if the solution the latter is rampant buying votes. It doesn't really matter if the person doing it is a small account or a large account, the issue is more about who is selling the votes, and those are predominantly large accounts anyway.

Yes, other ways of getting content out there may help but people also have to accept that sometimes their content may not be found or recognized, and everyone considering their own content so important or valuable that it needs to be promoted at the expense of destroying proof of brain is not the answer.

Plenty of great stuff gets posted to obscure corners of youtube, reddit, twitter or every other social platform every day that is largely lost in the noise. That is the just the nature of it. These systems still work because a lot of good content is visible, but not because all of it is, that is impossible.

Thanks for sending some steem my way. You’ve supported my project in the past as well. Believe it or not you and your media are one of the reasons I’m here. Do I put my foot in my mouth? Sure do. But sometimes you also have to stand your ground. I did not excessively use bid bots for this post initially. And the additional 23 steem for the 3rd vote was barely topped it to $20. $20 sure buys a lot of attention and animosity it seems.

Posted using Partiko iOS

^^ once you understand this reply, you've passed the onboarding phase.

At least you are consistent in downvotes for paid up votes unlike @smooth who gave @booster a 10% upvote on a post with over $140 of rewards with several stacked votes. I want visibility. I want to be compensated for my work. You are barking up one of the only trees that has continually worked on Steem with a personal loss and I'm slowly gaining some sense and understanding that this is nothing but a massive circle jerk and may be taking my talents elsewhere. Carry on smartly or watch your investment here topple further down the coinmarketcap list. This represents more than double the code changes presented by @inertia for the SPS and so far the only consensus I can see is my work here is to be taunted and devalued. This isn't free advertising, as I've said I can't make money with the system I'm designing here. It is straight up needed. You know what else isn't free? Labor.

I rather send you donations for your work or even paid to promote your contribution to the top of trending using a declined payout. I don't mind doing these things. It's a slippery slope when everyone feels their work should be seen but no one wants to actually pay money to get it up there. Getting ROI on stacked paid votes is just bad for PoB and Steem. I hope you understand this is not personal, and I would gladly help fund initiatives that help Steem, but in a healthy way.

@theycallmedan you are seriously hurting steem and you are holding the trending page HOSTAGE. LEAVE DISREGARDFIAT ALONE dude.

i could bring up SO many cases where you have upvoted people using bid bots

Dont make me expose you on twitter. You ONLY upvote your tiny circlejerk of friends. Me and disregard have actually struggled for steem, while you sit on your Bitcoin perch

:D come on man your beinga dick,

. Youre supposed to be the good guy

You mean like I did with this post which I knew would always be shown on the proposals page of the front-ends? It got about 30 cents worth of visibility/votes by the way. It's a simple fact the only way to get noticed around here is to use bid bots... at least until you've established a following. Damned if you do, damned if you don't.

Fair enough. I believe this raises an issue we can solve as a community. A way to get a post that people feel bring value to Steem, get them in front of eyeballs that would be willing to give upvotes.
I can see the chicken and the egg here. You want exposure for a post you feel is quality and I want to upvote post that is quality. I know not everyone has funds to pay for promotion (burn post funds) But, I do not believe free ROI on paid votes is the answer. This will take a community effort to come up with solutions that are healthy to Steem.

Why dont you just remove the downvote then? Do you realize how much work hes done for steem ?

Do you think my post would have gotten $15 of engagement with out bid-bots? I can answer that question for you by pointing to my last several posts. The answer is no

In that case, unfortunately, the community of Steem stakeholders don't value your work for much.

I'm not endosing that view, but it is what it is.

On the matter of onboarding, I think we have to address retention more than onboarding. 50c/user is a reasonable cost for a blockchain-based solution which has more to offer than a cheap(er) pure web site. The problem is that very few users who get signed up on here actually stick with it so even 50c is just a waste of money in bulk. Fix the former and 50c becomes a reasonable and generally tiny portion of overall customer acquisition costs.

Hah, your bidbotting succeeded in getting some actual engagement by virtue of me showing up to downvote against the paid votes. Irony.

Don't mean to step in-between a convo but without dev's like @disregardfiat we might as well just pack up. Steem NEEDS more DEVS not less. The more people working on the blockchain the more value it has. Just my 2 cents.

I agree wholeheartedly, @steemitqa. This whole exchange is why I'm thinking seriously about ditching Steem as well. I've hung in for more than two years and watched this whole experiment circle the drain. I hoped @elipowell could make a difference, but I think the damage is done. My business partner and I are invested heavily in a real-world business based on the blockchain. We need credibility in the "real world" and something interesting to show potential investors. Right now, I'm not finding anything remotely inviting on the Steem blockchain. Instead, I find a consortium of messes like this one, which give Steem anything but credibility.

I'm not disagreeing with your perspective but this whole exchange could have been avoided by not buying a lot of votes on an unremarkable post with narrow interest, when we have just gone through months of both social and technical effort to try to revive organic curation, and then when the misstep was pointed out, responding by buying more votes.

There may are no doubt some painful adjustments going on in terms of the structure and culture behind voting and vote selling, but that does not mean devs and dev's contributions aren't good.

Thanks for the response @smooth I just hope we find some middle ground to let people get their work scene without to much drama.

There may are no doubt some painful adjustments going on in terms of the structure and culture behind voting and vote selling, but that does not mean devs and dev's contributions aren't good.

I get it. All growing pains.

Bidding $16 on a post should barely put it in to trending. If on boarding is a narrow interest than I really am in the wrong place / circle jerk. Seems the only thing you want is less bid bots... not a smart contract platform, not an alternative to app stores, not an alternative to DNS, not a VR creation and sharing platform, not AR point of sales systems, not honest gaming, and not little accounts with people as stubborn as you.

Posted using Partiko iOS

not a smart contract platform, not an alternative to app stores, not an alternative to DNS, not a VR creation and sharing platform, not AR point of sales systems, not honest gaming

All that other stuff is great. Just stop buying votes regularly and all will be well. Or more to the point buy if you want, but if other people disagree and downvote, don't start a war over it. We're all entitled to upvote and downvote as we see fit.

Yes, my view is that vote selling, bidbots, etc. have been and to a lesser extent continue to be a major problem. They're not the only thing that matters, but other things mattering don't suddenly make them not a problem either.

Please contribute to the positive without contributing to the negative. It's really not that hard.

All that other stuff exists in some form... or is being actively worked on. I really have been dev’n a storm over here and the only people who notice are off platform. ¯_(ツ)_/¯ Damn glad I bought some engagement. Wanna vote on my steem dao proposal so I can use the “correct” inflation source we strived so hard for? It’s never been my intent to mine the PoB which is probably why you don’t know who I am.

Posted using Partiko iOS

That is an exceptionally accurate take on Steem stakeholders. My work here has landed me in consultancies with the IEEE for autonomous systems and we're about to release an app with a top ten university on Steem. But not a single person has attempted to use the VR tool set @dlux-io released before Decentraland release their community toolset. The stakeholders here are sitting on a goldmine and they can't collectively curate their way out of a paper bag. Blind down votes are part of the problem, attention has value. Too bad this is our first interaction instead of any of my other work.

While I can't understand the technical aspects of this post I fully agree with the sentiment behind it. Ease of use is vital for success and onboarding is a massive headache for the chain. I understand that it's not the same as a normal social media as their is a cost to opening and operating an account. Some of the apps are taking it into their own hands like 3speak and travelfeed which have light accounts as well.

Apart from that i'm fully in support of anything that can make it easier to join STEEM. As for the bidbot argument above I read through it and don't like the fact that you were being hit just for using them. Bots aren't going anywhere and as long as the post holds value I think they are good for promotion but this leaves people open to a lot more scrutiny. You would want to be sure that the post is of value before putting it in front of people's eyes. For me this is worth showing to people.

Wouldn't the implementing of the RC market be the straightaway solution to the problem?

Currently there isn't a very good delegation market... by that I mean a DEX. Implementing the ability to delegate RCs offers new avenues to remedy some aspects of this problem but not all of it. This architecture allows Steem to support decentralized smart contracts via consensus, with out a central third party holding funds or unnecessary bloat to the overall design of Steem. When RC delegations do arrive they will fit better in to this paradigm for disbursement than anything that is planned that I'm aware of. And can be easily extended to build an RC DEX for other reasons than new onboards.

Congratulations @disregardfiat! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You distributed more than 600 upvotes. Your next target is to reach 700 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Hello disregardfiat, welcome to Partiko, an amazing community for crypto lovers! Here, you will find cool people to connect with, and interesting articles to read!

You can also earn Partiko Points by engaging with people and bringing new people in. And you can convert them into crypto! How cool is that!

Hopefully you will have a lot of fun using Partiko! And never hesitate to reach out to me when you have questions!

Cheers,
crypto.talk
Creator of Partiko

This post has been included in the latest edition of The Steem News - a compilation of the key news stories on the Steem blockchain.

To listen to the audio version of this article click on the play image.

Brought to you by @tts. If you find it useful please consider upvoting this reply.

Coin Marketplace

STEEM 0.22
TRX 0.26
JST 0.040
BTC 98409.57
ETH 3478.48
USDT 1.00
SBD 3.24