Hacker News new | past | comments | ask | show | jobs | submit login
Walmart Is Getting Suppliers to Put Food on the Blockchain (bloomberg.com)
13 points by rbanffy on April 26, 2018 | hide | past | favorite | 55 comments



Every time we have a story like this, every time I ask - how does this work on a blockchain? Many people will talk about blockchain trustless-ness and how this doesn't requires trust etc. And I ask give me an end to end example of what are the trust issues here and how does blockchain solve it? I have yet to get a concrete answer.

So, again what trust issues does blockchain solve?

To ensure we are not talking about completely abstract things let's take a real life example. Here's an issue:

https://www.reuters.com/article/us-welspun-india-walmart-idU...

Wal-Mart Stores Inc on Friday said it will stop selling Egyptian cotton sheets made by Welspun India after the Indian manufacturer was unable to assure them the products were authentic.

How does blockchain help?


An olive farm makes some extra virgin olive oil in Italy. It is recorded at some date. They also make some virgin and some regular olive oil. It gets put in bottles and shipped somewhere. The shipping info is linked to the original production entry on the blockchain. An IOT device in the shipping load adds an entry to the blockchain saying that that it hasnt gone above or below some range of temperatures. It finally reaches a wholesale destination. At this point, it could go to a number of companies. In this case, any buyer could verify: 1) That an entry was made that this was extra virgin 2) that the olive farm is also making appropriate quantities of virgin and non-virgin olive oil - eg. not just labeling all of it extra virgin 3) where and when the shipping company picked up the olive oil from that farm 4) that this olive oil was transported in appropriate conditions

These are all timestamped, impossible to alter, and would require an elaborate planned fraud between a number of parties to fake.

How would you do this without blockchain? with a trusted 3rd party. Who can you trust when you are involving the russian govt, chinese govt, and US govt, and EU, and corrupt italian public servants? none of those groups trust any of the other parties completely.


Could you eaborate how any trust problem is solved here?

Points 1 and two aren't solved in any way, as the buyer has to trust the producer to not lie when making the entry. In other words, the trust problem here occurs before entry into the database.

Point 4 is already solved with by a multitude of companies selling those temperature-sensible stickers (and adding/removing the stickers is the same vulnerability as adding/removing the iot device).

BTW, with a blockchain solution, these are not at all "impossible to alter". That would only be true for a blockchain that is actually decentralized and heavily mined. That implies a blockchain with a multitude of products using the same chain (e.g. not just an OliveOilChain), but then we approach the scaling border very fast, making a blockchain unusable for this use case.


"Points 1 and two aren't solved in any way, as the buyer has to trust the producer to not lie when making the entry. In other words, the trust problem here occurs before entry into the database."

The blockchain will show in time that X producer sells X amount of extra virgin, virgin, and regular olive oil. This will make it difficult for a small single origin producer claiming that ALL of their output is extra virgin. It would also make it difficult for a small producer to rebrand large volumes of some other olive oil as their own.

As for the temp-sensing stickers - add GPS, encryption and transmitting functions and you can add some cool features to temp sensing stickers.

Finally- there isn't THAT much data involved here for the $$ involved, you could do it on the ethereum blockchain or even the litecoin chain. There are quite a number of ultrasecure blockchains at this point.


> BTW, with a blockchain solution, these are not at all "impossible to alter". That would only be true for a blockchain that is actually decentralized and heavily mined.

An excellent point.

I wonder if a market will emerge from the need to secure (and thus mine) these private blockchains. IE, perhaps Walmart could secure its logistical blockchain by compensating miners in "WalmartCoin", which is redeemable at the store.


That is a pretty exhaustive example. And the timestamp process looks pretty foolproof.

Couple of questions though -

How would the IOT device in the shipping load know what temperature the olive oil has been? Please don't say the IOT device can be placed in farms because we are currently talking about a logistics systems.

And even if the IOT was placed in the farms - how would anyone verify if the IOT ie the source of data was hacked. Maybe just enough to show that the farm is producing 10% more extra virgin oil?

How would the blockchain entries be managed? Because remember a block is added via majority rules - PoW or PoS. So, in case of olive oil manufacturing - who would verify if the IOT entry is correct?

What happens if the IOT is not tampered and just malfunctions giving incorrect data?


> It is recorded at some date.

This is where the human element comes into play, and something the blockchain cannot secure.


Crime and plotting is much harder to do prospectively than retrospectively. Having prospective records timestamped from a number of independent providers is really hard to fake.


That's true, but I cannot recall a recent instance of "cooked books" since everything started moving to centralized databases. The blockchain keeps looking like a solution in search of a problem that could be solved easier by other means.


I agree; I'm cynical on about 99.99% of touted blockchain use cases.

However, for the 0.01% of use cases where you can't trust the government (money printing) or where the stakes are too high to rely on the security of a trusted 3rd party, blockchain is great.


Everyone is claiming this could be done with a database but no one knows all the details because the article is literally three sentences long.

The article states this initiative "helps reduce waste, better manage contamination cases and improve transparency"

This is how I envision this system working. I think the fact this is produce and not normal inventory is key.

Produce is produced by farmers, transported by shipping companies, stored in warehouses, and eventually ends up on a shelf after a long chain of custody.

Reducing waste and contamination sounds like a tracking system. So every food item gets an ID and as it moves through the system it gets logged with time, location, and so on. Pretty standard, and yes, totally doable with a database.

But this project also helps to improve transparency. Transparency to who?

The previous actors in our example. The farmer, the shipper, storage, maybe inspectors.

They have no inherit reason to trust each other. The last shipping company will blame the warehouse for the moldy food. The warehouse will blame the farmer. The inspectors said they approved of it but obviously its gone bad.

Maybe the 6 days to track this produce before wasn't really in tracking it, but dealing with the human element of the chain of custody. Two minutes to pull up a verified log of events.


The key here is "verified". The only way a blockchain is more trustworthy than a regular centralized database is if the nodes are distributed across a large number of stakeholders, and there isn't a chance of anyone gaining control of a majority. That itself becomes impossible since they are using a single account owner (Walmart) on a single cloud provider (IBM).


IBM's platform uses Hyperledger, linked somewhere below.

It has copy on its site stating it "allows multiple different parties to securely interact with the same universal source of truth."

I think the fact that IBM is running this, and not Walmart, is actually a plus. The suppliers don't have to worry about Walmart itself making data changes. Of course the details will vary, but I highly doubt the platform allows the account owner to unilaterally make changes to this source of truth. It's totally against the point of the project.


Having one party to run the system wouldn’t need a block chain, just transparency. Make the data public, available to everyone, with daily hashes of the data of the day combined with the hash from the previous day. Sign that hash+date to prove it has been computed by this central party alone. If the hash cannot be recomputed then there is proof the data has been tempered with. All other parties need to do is to download and store these daily hashes in case of a conflict.

But all of that would be vastly simpler with a central trusted third party.


Global supply chains involve a number of superpowers who are at proxy wars with each other and a vast number of countries of which the majority have deep corruption issues. Who do you designate as the trusted 3rd party?


A company that has no skin in the game and which business it is to be a trusted third party. One of the big audit companies would be my first thought. But there are many businesses that play this role (exchanges, clearing houses, etc).

At the end the job is technically quite simple. Maintaining a semi-public database. It's pretty black or white.


How do you account for rogue employees or hacks at the trusted 3rd party?

Equifax was a trusted 3rd party with no skin in the game.

Facebook was too (at least it was trusted by the west, the chinese never trusted it).


The same you prevent fraud in any industry, procedures, checks and controls. But at least that party has no incentive to fraud.


The moment a physical good is transformed into a item in a database (of any kind), trust is involved. So this isn't a trustless situation anyway. At that point the producer could as well create a new row in an ordinary db. You could sign the data to proof origin of the entry.


But who runs this database and is trusted not to change it?


The trust problem is solved with contract law. If you mean the producer has to trust Walmart not to change its entry after the fact, as stated, they could just sign the entry in an ordinary database.

As Walmart is the sole owner of the database anyway, nothing is gained by using a blockchain.


I have to disagree with you.

Walmart is making this change to improve something. They obviously already have a database somewhere with suppliers and shipments and to think they don't is just crazy.

Sure, contract law. But why when there is a technical solution? If there is a dispute that then has to be settled in the courts with your solution that costs more money and time. The 6 days to 2 minutes might end up way longer after amortizing time spent dealing with trails and compliance and ensuring suppliers are doing things right.


> Sure, contract law. But why when there is a technical solution?

I think I don't see any of the multiple trust relations solved in this case.

Walmart still can't trust the producer to itemize the physical product correctly.

The producer still can't trust Walmart to not change the item already in the database (see mining discussion above).

What trust relation do you have in mind, that is solved with this blockchain implementation, and that wouldn't be solved with a ordinary database with signed entries?


If a hash does not match, that does nothing to your bank account of the inventory of your warehouse. You still need to go to court with your broken hash in case of a conflict. Technology can only help making the evidence temper proof not bypass courts.


I am a regular and boistrous cheerleader for the prospects of blockchain technologies to empower changes in the world... but I do not understand what is going on here.

This seems entirely centralized, and thus a very poor use case for a blockchain.


There's no such thing as "the" Blockchain. Walmart is using "a" Blockchain, in which I'm guessing they themselves own and operate all nodes.

> Yiannas said blockchain was able to cut the time it took to track produce to two seconds from six days.

With no more detail I can't even start to think how a Blockchain DB makes any difference?


It didn't say it was using "the Blockchain." The article clearly states its using the "International Business Machines Corp.’s blockchain platform."


> It didn't say it was using "the Blockchain."

Did you not read the title of the post, or the title of the linked article, or the article itself?


Ah yes, because all important details of a story are in the title.


No, but it is the very first thing you read


I would highly hope that someone would read the article, and not just the title, before complaining about how unspecific a word in the title was.


The article also says the blockchain.


I guess they didn't try with a "signed append-only log", they might be able to shave off even these two remaining seconds.


Either I have greatly misunderstood the purpose of a blockchain, or they have... I'd love to see them add some details around how the blockchain actually saved them time and why a standard database of some kind wouldn't suffice.


I can see where this might be good for some sort of accreditation, although there are other ways of achieving this. But this allows walmart to say "our product comes from XYZ" and independent parties can verify that.


This blockchain uses IBM's blockchain technology, which is in turn created with Hyperledger. In both cases, the technology is called enterprise grade. That seems to be true - though, I'm not sure a blockchain is needed here. Maybe a ledger with distributed access, but not necessarily a blockchain.

https://www.ibm.com/blockchain/platform/

https://www.hyperledger.org/about


> though, I'm not sure a blockchain is needed here

Its funny how this applies to almost all blockchain applications.


Isn't then a blockchain an implementation of your ledger with distributed access?


Conjunction Junction by Schoolhouse Rock and Psycho by Post Malone are both songs, yet they are also different implementations of the song concept.

Do you believe that all implementations of a ledger with distributed access are equivalent?


Sure, but the most inefficient one. Why buy into all the major drawbacks of a blockchain (essentially lack of speed and abundance of costs) if you can't use any of the advantages (decentralization)?


Why do you assume inefficient?

Private blockchains don't have to have nodes mining 24/7.

They can wait until the mempool is at a certain transaction count then new blocks could be added. Or they could mine 1 transaction blocks as they come in. It doesn't have to work like bitcoin or cryptocurrency in general.

Or maybe its batch-like and mining happens once a day at midnight.

There is no reward for adding a block so there is no race. All miners are known and block minting can be pre-planned.


If you don't mine heavily, the blockchain essentially isn't immutable. The race for blocks is the only reason one can assume immutability. That is the core of the problem: If you don't have a chain that's heavily mined, you don't have the security a blockchain promises. Whats left is an unsecure database that feels like running on a C64.


That is true for Bitcoin and other public blockchains. It is not always true for private chains.

Lets assume 10 suppliers each add 10 new 'produce transactions' on some day. It also occurs during work hours, so maybe between 9-5 there is 100 new transactions.

The miners are all known nodes, in fact, only 10 of them if we assume each supplier gets one.

Once the 100 transactions are minted into new blocks and the day ends...

What exactly are the miners supposed to mine into blocks? There are no transactions. Nothing to add.


Scenario B: Walmart rents a $5 digital ocean VPS and installs postgres. Each producer generates a (e.g. GPG) key pair and sends the public key to Walmart. Each day, each producer creates a new entry in the db, signs it with his/her private key, and is done.

The mining is completely worthless in the scenario you described. Imagine either a rogue producer or Walmart having an interest in changing the database. In your scenario of 10 mining boxes the adversary would just have to buy 5 additional boxes and would have complete control over the blockchain.


The Hyperledger Fabric, which IBM is using, is explained here: https://www.hyperledger.org/projects/fabric

There is a video that offers a high level view of farm to fork (agriculture products to consumers) using the block chain ideas in Hyperledger Fabric.

From Nigel Gopie, an IBM Food Trust speaker, says "The permissioned blockchains we rely upon (hyperledger fabric) don’t use don't use proof-of-work or "mining" — unlike some other Blockchains like bitcoin — which is what consumes huge amounts of energy. " (from a tweet conversation after a presentation he gave in Denver April 2018: https://twitter.com/analyticsbytes/status/984140954834632704)


Replace "Blockchain" with "Database" and it would all be true.

Walmart Inc. is getting suppliers to put food on the [database] to help reduce waste, better manage contamination cases and improve transparency.

Yiannas said [database] was able to cut the time it took to track produce to two seconds from six days.


Someone should fork that cloud-to-butt extension.


Replace database with computer


Blockchain is the new NoSQL. In 10 years some poor engineer tasked with maintaining this thing is going to ask why they didn't use a more reasonable technology.


Resume driven development... Like running massively cpu intensive calculations in python, or storing 100 MB csv files in Hadoop. AI will be the same thing. We will see developers burning GPUs for days to solve problems that would be trivially and efficiently solved with a simple algorithm. And I have no problem with people toying with new technologies on home projects just to learn. But at work...


Is a blockchain even required for this? Does it provide any technical advantage here in this case?


> Walmart Inc. is getting suppliers to put food on the blockchain

Phew! Blockchain is NOT a database, you don't put something ON blockchain. Blockchain is meant to track changes of data, not store the data. The size of the entire Bitcoin Blockchain over the last 9+ years is 194.86GB [0] i.e. it can be stored on your local hard drive. Therefore, you can't put "food on blockchain".

[0] https://bitinfocharts.com


This just in!

Amazon to stop delivering goods by walking to people's front doors, now delivering through the radio waves!


I eagerly expect the converse product: Blockchain enabled sanitation systems, that would allow one to relieve themselves on the Blockchain.

That's a billion dollar ICO right there.


Is the article partially behind a pay wall?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: