open-source-ideas / ideas

💡 Looking for inspiration for your next open source project? Or perhaps you've got a brilliant idea you can't wait to share with others? Open Source Ideas is a community built specifically for this! 👋
6.56k stars 221 forks source link

An Open Source Blockchain Project to Save Your Local Bike Shop #108

Open godigex opened 6 years ago

godigex commented 6 years ago

Project description

Market Background

The “Local Bike Shop” (LBS) occupies a unique position in the consumer retail retail ecosystem. Bicycles, especially high-performance models designed for cycling enthusiasts, are often the 3rd or 4th most valuable asset a household owns after a house and car (depending on the spec/model of one’s computer and various appliances). Competitive cyclists will sometimes have more money tied up in bikes than their car!

The large transaction value of many bike models drives consumers to physical retail environments. Consumers often want to see, touch and try out a piece of equipment that they will use for hundreds of hours and before spending what can be several thousand US dollars. What’s more, like a car, a bicycle requires routine servicing and sometimes major repairs, not all of which can be done in the garage. Take the practice of truing a wheel: few possess a wheel truing stand, and more importantly the knowledge and skill necessary, to perform this routine but critically important maintenance.

The sport of cycling is booming, too. Sometimes referred to as “the new golf,” both recreational and commuting cyclists across North America, Europe and Asia have seen their ranks swell over the last 5 years.

Despite all these factors the LBS is a dying breed. Those same high-transaction values give consumers a powerful incentive to shop for the best deals available, and those are usually offered by online and big box retailers. The independent LBS simply does not possess the buying power to compete on price and, as a result, has been relegated to MSRP “show room” status. Unable to make ends meet on labor alone, many of shuttered their doors.

Market Pain-point

Under the current status quo there will continue to be fewer LBS options. The result will be larger distances between LBS options so less access for consumers. The shops that do survive will tend towards the big box variety, meaning longer waits, less personalized service and lower quality work (yes, highly-skilled bike mechs so sometimes work at big box retailers, but a bike mech who knows you, knows your model and knows your build will be able to do a better job most of the time).

One could argue that consumers are voting in favor of this trend with their wallet, that they cannot have their cake and eat it, too, enjoying rock-bottom Internet pricing with an LBS on every corner, that they must choose greater convenience or cheaper prices. I contend that this is not inevitable and that there is a solution that will enable the LBS to compete effectively on price should it so choose.

Proposed Solution

Filecoin made waves in 2017 when it raised US$200mm in a public ICO. At that time it was the largest ICO to date. I will do the technology a great injustice by attempting to summarize it so succinctly, but in a nutshell Filecoin is the incentive layer incentive that powers the project’s “Distributed Storage Network” (DSN). Instead of storing data in-situ or on remote servers such as AWS or Azure, Clients can pay Miners with Filecoin to store or distribute data via a global peer-to-peer (p2p) network. The concept is that this “liberates data from silos, survives network partitions, works offline, routes around censorship, and gives permanence to digital information.”

The independent LBS has little buying power, but collectively the industry is a powerful retail force providing easy access, showroom space and trusted recommendations often followed by consumers. The LBS industry could take a page from the digital world’s p2p playbook by leveraging blockchain technology to compete on price with the added benefit of a physical store(s). The proposal is as follows:

  1. Provide a web-based Enterprise Resource Planning (ERP) application designed for the LBS. This can be a customized or extended version of another open-source ERP application, of which there are many.
  2. The ERP will serve to collect inventory and sales data across the network and present a publicly-accessible, consolidated view of market demand across the participating LBS network.
  3. Suppliers bid into the network through a procurement (reverse) auction. Each LBS determines how much of a given product they wish to stock at a given price in the form of a Ethereum-based “smart contract.” A single order is made by the LBS network at the lowest price for the given product volume, and every LBS in the network has access to the product at that price.
  4. The incentive for an individual LBS to stock product is a crypto token. Within this “storage market” the LBS bids for the right to store a given product and the network awards storage at the best rate. The Storage provider then receives a token for each period of time a unit of product is stored based on their bid. The LBS may sell that product from its own store or it may ship/fulfill an order to another LBS in the network.
  5. Every sale of a product procured via the LBS network incurs a transaction fee. In this “fulfillment market” that transaction fee is in the form of a token that is paid to the LBS fulfilling the order. The ERP creates a priority list for the best LBS to fulfill the order based on available stock and proximity, and the storage provider may elect to pass or fulfill the order. The first LBS to accept and subsequently fulfill the order earns the token.

Under this system every LBS in the network gets access to the best product pricing available. Smaller shops can therefore offer great personalized service at competitive pricing, and larger stores or perhaps even distributors will be compensated for providing storage to the network. Without having to build and maintain a series of massive warehouses or fulfillment centers, each LBS will still have fast access to a vast catalog of products through this distributed, physical storage network. Finally, every LBS in the network gets access to a quality ERP making them more competitive from an operational standpoint.

Suppliers will gain better access to a distributed network of retailers who can better show and communicate the benefits of the products. Most importantly, consumers win when because they can now rationally support their local LBS, giving them more and better retail and maintenance options and keeping happy and safe on the road.

Relevant Technology

ERP: This really depends on what ERP system is ultimately selected for the project and what that system is written in. That’s hopefully something in React or Angular but I’m not even aware of an open-source ERP using these frameworks.

Ethereum / Smart Contracts / Token: Assuming this is built on top of Ethereum, Solidity is required here.

Presentation Layer (potentially procurement auction business logic): React-Redux or Angular

Complexity and required time

Complexity

Required time (ETA)

KOLANICH commented 6 years ago

The Storage provider then receives a token for each period of time a unit of product is stored based on their bid.

Bike is a physical asset, you cannot prove the storage of a bike in blockchain in decentralysed setting. And even in a centralysed one! You can think about tamper-resistant hardware, but it has no use here, it is not enough tamper-resistant, a malicious storage provider can store only that piece of hardware instead of a bike. You cannot prove integrity of a bike. The solution may be to put this piece of hardware into every part of a bike to make it unprofitable to spend manpower on taking this hardware out, but this hardware costs money and useless, no bike part manufacturer will make its product more expensive just to satisfy your wishes.

And even if they do, you cannot proove location of a bike in blockchain. They can be store in remote warehouse, not in local one.

You can say "then this storage provider will have a bad reputation and none will use its services". Or even worse "there will be an agency checking storage providers and putting list of the ones considered trusted i to blockchain". If you say this, this means that blockchain is completely unneeded in your application, since your security guarantees go not from consensus but from trust. If your app needs oracles in order to function, it makes no sense to use blockchain, your service is already centralised, in this case you just need a completely centralised service, it would be cheaper and faster than if it used blockchain. I know that blockchain is a new HYIP, but this doesn't mean that it makes sense to put blockchain into everything.

godigex commented 6 years ago

Hi Kolanich,

Thank you for your comment.

Please allow me to clarify a few things from my original post:

Bike is a physical asset, you cannot prove the storage of a bike in blockchain in decentralysed setting.

Here the analogy to the Filecoin concept of "proof-of-spacetime" does break down a bit. Because we are discussing physical assets, for this use case we need not worry about proving where that asset is stored - only that the storage provider take delivery of items and fulfill orders that he has agreed to. This is a excellent use-case for smart contracts.

you cannot proove location of a bike in blockchain. They can be store in remote warehouse, not in local one.

Exactly where the item is stored is not important. What matters is that the provider deliver the items in accordance with the SLA in the smart contract. If a storage provider can warehouse items cost-effectively and fulfill deliveries rapidly, all while making a profit, then they should be encouraged to do so. Everyone wins in this case.

there will be an agency checking storage providers and putting list of the ones considered trusted i to blockchain

No need for a trusted agent or oracle knocking down people's doors once a week like some gestapo! Payment for the storage can be made upon order fulfillment. TBH, my biggest concern is actually how the procurement auctions will be administered. For example, who will initiate the auctions? When? For what products? What about brand new products? This is the most challenging aspect of the project IMHO.

I hope the above gives you a better idea of the concept. Keep the comments coming!

KOLANICH commented 6 years ago

Thank you for the clarification, then it really may make sense. I wonder why don't you put into the head post the obvious protocol implementing the idea?

I also wonder about economic and security analysis of that protocol. I mean if it is possible to craft the conditions in the way to intentionally harm either party. For example it may be possible to disrupt network connection of one party for example by using a "jammer" or a similar technologies, like wlan deauth, what would be the impact?

godigex commented 6 years ago

I wonder why don't you put into the head post the obvious protocol implementing the idea?

Thanks for the suggestion. I'm working on it! Wanted to go ahead and put the idea out there to receive useful feedback like you're providing.

I mean if it is possible to craft the conditions in the way to intentionally harm either party. For example it may be possible to disrupt network connection of one party for example by using a "jammer" or a similar technologies, like wlan deauth, what would be the impact?

Apologies - I'm not exactly sure where you're going with this one. Could you perhaps give me a specific/concrete example, perhaps from another project/application? Then maybe I can address it better.

piyush01123 commented 6 years ago

@godigex If we are able to successfully establish the ownership of the physical asset (bike in our case) in this way, we can write the rules of auctioning in the smart contract itself. We can start with some ground rules for eg.

We will also need to have a marketplace where everyone can see things being sold, bid for it and see the bids placed by others for every item.

Thoughts?

KOLANICH commented 6 years ago

Once something goes on auction, anyone except seller can bid.

To do it you will have to deanon all the bidders. To deanon them you have to prevent them from providing a fake identity. The only way to do it in large scwle is to rely on a centralised authority.

Only owner of the asset can auction for it and (s)he decides the price.

How are you going to enforce this in a decentralised way?