1

Our project is to create a blockchain so that a customer can traceback any registered good (such as food or drugs). The idea is to replace money with product IDs. (ERC721 from Ethereum does not do the job because people do not want to own IDs). Each member of the production chain adds a transaction to indicate to whom the product is given.

The advantages of this system are its immutability and robustness.

We have developed a working blockchain that is very close to Bitcoin but we are wondering how to adapt it. Indeed, the most important thing is to know what happens to mining. We can't offer IDs when a block is checked, so how do we get people to take care of the chain? Perhaps we should introduce a digital currency to reward them, but it is not elegant.

To summarise: how to create blocks in a such architecture?


The attacker: a company that wants to hide part of a product's history because a problem with it has been discovered.

The user: a customer who wants to know where his or her purchase is coming from. from.

  • I think we need some more information to help you out. Can you put some more words on what you want to achieve? Do you want to make your own blockchain, or do you want to use an existing blockchain and log things on existing, publicly available blockchains such as Bitcoin, Bitcoin Cash, or Ethereum? – Thorkil Værge Jan 8 at 20:06
  • I hope the question is more precise. – Blincer Jan 8 at 20:18
  • 1
    With a system like this, customers must trust that the businesses have input truthful data: there is no stopping the business from lying in the first place. With that in mind, why can't the customer just trust the business to maintain a hashlinked database of the product history? The database could be made public so that customers can view it to ensure no changes are made to the history. That would be a MUCH cheaper and easier system to implement. Trying to introduce an otherwise useless currency is simply not a good economic incentive, and without that your blockchain is insecure. – chytrik Jan 8 at 23:18
5

The Bitcoin blockchain achieves immutability through proof of work mining. It is considered immutable because many economic actors commit their computing power to finding new blocks. If not "enough" people are mining, the blockchain is not immutable. Recently both the Bitcoin Gold and the Ethereum Classic blockchain have been manipulated through a 51 % attack so these weak (i.e. low hash rate) blockchains are not immutable.

If you do not want to worry about having enough miners, you could consider building a token on top of either the Bitcoin blockchain or on top of the Ethereum blockchain (e.g. an ERC20 token). On Bitcoin, the Omni protocol allows for you to build your own token which is transferred on the Bitcoin blockchain. This means that you have to pay transaction fees (to the Bitcoin miners) to transfer the tokens but the benefit is that you will not have to worry about a 51 % attack (other people are trying to prevent that).

If you want non-fungible assets (each with their own ID attached), the Ethereum protocol standard ERC721 is made for this purpose. I am not aware of a similar solution on top of the Bitcoin blockchain.

If you want something else, like a more general, immutable log system that you can define yourself, you may have to write your own contract in Solidity (for the Ethereum blockchain) and only allow specific addresses (one for each member of the production chain) to write to this log.

  • Thank you for your answer. We are aware of the 51% attack. The tokens approach does not suit our needs because they are all identical unlike ID. Moreover we are very concerned about creating the whole project. – Blincer Jan 8 at 20:27
  • I updated the answer. – Thorkil Værge Jan 8 at 20:29
  • It is a good option, I upvoted. If we do not success in figuring out our own solution this would be the way to accomplish the goal. – Blincer Jan 8 at 20:30
  • 1
    Updated again :) – Thorkil Værge Jan 8 at 21:20
1

Part of the balance of incentives of Bitcoin that helps prevent attacks is that the miner has skin in the game because the reward is the token itself. Attacking the network (presumably to be able to double spend) is counterproductive since the coin being double-spent would likely decrease in value as users would not want to risk receiving coins that could be reversed).

if a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. - Bitcoin Whitepaper

To achieve a similar balance of incentives you would need to analyze your specific use case. Who would secure the data by mining and what is their incentive? Likewise, who would attack it and what would be their incentive? Storing data in a blockchain data structure doesn't make it immutable. It is a combination of the network consensus rules and the balance of incentives that make the data (relatively) immutable.

  • In our system, customers want to secure the data because they want to the data to be accurate, they want to know were the product is coming from. Who is the attacking part? We could imagine a company who wants to hide part of the history because an issue was detected with the good. – Blincer Jan 8 at 20:23
  • 2
    In that case there seems to be a mismatch because when the company decides to 51% attack the network, what is the downside for them? Also, would users really spend $$ to mine blocks just to make the data accurate? How will they cover those costs? – JBaczuk Jan 8 at 20:26
  • Actually there is not and that is why we need to figure out a mining system to prevent that. We brainstormed but no solution was satisfying so we asked in order to get help. Maybe can we find a way that there is no cost for clients but a huge one for companies. This seems hard to achieve a dissymmetry. – Blincer Jan 8 at 20:28
  • Upvoted for a good explanation of the economy of a 51 % attack. – Thorkil Værge Jan 8 at 20:33
  • I would kindly disagree: An unannounced large reorg may reduce the coin value, but the 51% miner is the only one who knows that the reorg and value adjustment will occur. Therefore the miner will also factor this into the decision, together with the amount that is double spent. A doublespend can always be profitable if the amount is high enough, there is no systematic guarantee against it. – James C. Jan 8 at 21:13

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.