An OpenBazaar Steem Integration Feasibility Report

in #utopian-io6 years ago (edited)

Let me start this off by saying I'm not an experienced crypto developer but I am a professional developer and have done project feasibility work before. So with that in mind I've decided to take a crack at looking through the OpenBazaar Wallet interface and determining if Steem is a good fit as requested in a recent post by @steemonob. The short answer is it could be doable, but there are some worrying potential issues that lead me to think a Steem integration might not be feasible. First I will provide the potential issues and in the last paragraph I will provide one potential solution which could warrant further discussion.

The key issue I found arises at the begin of a transaction. To use OpenBazaar the first thing that must happen is for a one time use escrow wallet to be created. As described on the OpenBazaar github for each transaction you must "generate an address and redeem script that is unique for the order". All other requirements Steem easily meets but this is a HUGE sticking point in my opinion.

The first issue will be that to create a Steem account for free the wait is 1-2 weeks, if one decided to pay the cost is roughly .02 eth or roughly $3 USD. On OpenBazaar this will likely be a huge turnoff to people and could give Steem a bad name as this would appear as a transaction fee.

Assuming we are okay with the transaction fee being a bit high or can somehow get the fee waved another issue is then presented. Steem signup requires email and SMS verification. Again this will be an issue as it increases transaction time, and requires the OpenBazaar wallet to somehow create throwaway SMS/email addresses. Based on a post by @gmichelbkk (https://steemit.com/steemit/@gmichelbkk/4-ways-to-create-a-new-account-on-steem) there are ways around this like using a third party service to anonymously create accounts but the cost would go up to $4 USD. Also worth noting is that by using a third party service there are additionally security risks to both parties.

The final and biggest issue is that there is a wait time when creating a new account through Steem or a third parties. Based on a bit of digging Steem users are reporting wait times of up to a week with the average wait being 24 hours(this might be off?) to create an account. Again this is going to be an issue as it would mean the process of creating an address to implement a transaction on OpenBazaar using Steem could take up to a week. This is going to be a huge turn off to users and I'd argue it would be irresponsible of the OpenBazaar development team to let this happen.

After a few hours of consideration the only real solution I can find to the problems presented above is to use pre created Steem accounts for OpenBazaar transactions. A trusted source or third party would need to register accounts, hand those accounts out to be used during a transaction, the account would be used and then "burned". I'm not sure how open the OpenBazaar community would be to this though. Given the above I'd say the next step would be to contact the OpenBazaar team and see how they feel about the use of a trusted third party to create accounts to be used during transactions or see if they have any better suggestions(I'm very new to all this). Sorry it wasn't better new. Hopefully someone will point out why I'm wrong.

EDIT: it looks like the escrow feature for steem is another potential avenue. We just need to communicate with OpenBazaar and see if this is an okay way to implement GenerateMultisigScript

Sort:  

Hey @travelersmemoire! Thank you for your contribution to @steemonob Task Request. You have done a really great job analysing the current state of code and feasibility of integration although could you please update the posts with relevant links wherever needed to verify your findings.
For the steem account creation issue, we all know that unlike the open Bazaar native currency BTC, steem accounts are not free so the default implementation will not work. Although there is a work around used by all graphene based system which bypasses the need of having a separate account for each customer. Just like bittrex and hitbtc etc, we can use a single central account to store and track all the deposits and withdrawals while identifying the users using predefined unique memos. There is an opening source script cryptotoken- exchange by @someguy123 that allows multi currency Support and we can get help from it's code on how to integrate/replace graphene based chains to RPC based chains and vice versa in any application.
Thanks again for the report. Please join us in our discord to discuss more in detail!

Thanks for reading. I’m actually in the Discord. My big thought was you’d want to check to see if OpenBazaar is okay with a central account being used for Steem since it might go against their decentralised policy also you run into issues with who holds the key to use that wallet, etc. which again conflicts with decentralisation. It really depends on how flexible they are tbh

Posted using Partiko iOS

Hello! Thanks for looking into this and posting this report, it is great insight. I work for OB1, the company leading the development of OpenBazaar, and one of our backend engineers shared your post in our Slack this morning with this thought. Since he doesn't have a Steem account--but I do!--I'm sharing it here!) >>>>

"My suggestion re: "expensive" accounts would be to check how we're doing things with the ETH wallet. It also has a single address per user model which required us to build some smart contracts to handle escrow cases and an extra call to associate specific transactions with an order. This seems to be working well for ETH. If the Steem wallet were able to import an already made account for use, that might get you around the painful Steem account onboarding. I think the bigger concern that was raised was understanding how our escrow cases might work."

If the Steem wallet were able to import an already made account for use, that might get you around the painful Steem account onboarding.

I think this maybe should be it's own thought if everything doesn't work out for users of new accounts, as having the ability for any Steemit user to just jump into OpenBazaar and attach/link an account that way.

Awesome! I’ll take a look and see if that might be a good solution. Apparently there’s also so escrow feature built into Steem that I didn’t know about.

Posted using Partiko iOS

mg, an OpenBazaar team member (I'll confirm his position) says this:
"I don't have a steem account to respond directly, but my suggestion re: "expensive" accounts would be to check how we're doing things with the ETH wallet. It also has a single address per user model which required us to build some smart contracts to handle escrow cases and an extra call to associate specific transactions with an order. This seems to be working well for ETH. If the Steem wallet were able to import an already made account for use, that might get you around the painful Steem account onboarding. I think the bigger concern that was raised was understanding how our escrow cases might work."
@swapsteem @travelersmemoire

Ah, I missed that @jenncloud stated this already. Thank you, and welcome to Steem!

Haha woo hoo, I'm the winner! :D Far better to have too many people caring about things than none at all! And thank you!

We are doing a lot of caring over here! Sure would love to see more OpenBazaar. Prime audience over here.

resharing this because zokos.com have also agreed to intergrate this if we get it going, so i'll bring attention to it best i can -- https://twitter.com/philcampbell/status/1118502751527407616

Thanks! Hopefully we can get a few more devs on it 😊

Posted using Partiko iOS