Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: fairglu on February 14, 2014, 08:29:50 AM



Title: Idea: embedding client update info in the blockchain
Post by: fairglu on February 14, 2014, 08:29:50 AM
Has probably been discussed before, but here goes, since none of the existing clients (AFAICT) support that:

Embedding client wallet update information into the blockchain

Currently updating the client wallets means manually checking news, downloading a client wallet from some website, trusting that the website hasn't been hacked, trusting that the client is okay, hasn't been tempered with, etc. Even when compiling from source, there is a degree of trust involved (since you can't manually check everything).

So the idea would be that client wallets would check for transactions from a special address in the blockchain (hardcoded into the client for each version), and those transactions would encode in their outputs (either via vanitygen'ed destination addresses and/or special amounts) information about new versions
  • hash of the updated/upgrade binary (so you don't just have to trust a website or a download)
  • basic update info (minor upgrade, compulsory major upgrade, hard fork coming, etc.)

This would allow a safe update notification and a safe signed upgrade mechanisms that doesn't rely on how the update binary is delivered. And only the devs (or rather whoever holds the private key to the special address) would be able to both announce and certify the update.

This wouldn't involve any protocol updates, and other/custom clients would be unaffected by what they would see as regular transaction.


Title: Re: Idea: embedding client update info in the blockchain
Post by: jl2012 on February 14, 2014, 09:24:19 AM
Has probably been discussed before, but here goes, since none of the existing clients (AFAICT) support that:

Embedding client wallet update information into the blockchain

Currently updating the client wallets means manually checking news, downloading a client wallet from some website, trusting that the website hasn't been hacked, trusting that the client is okay, hasn't been tempered with, etc. Even when compiling from source, there is a degree of trust involved (since you can't manually check everything).

So the idea would be that client wallets would check for transactions from a special address in the blockchain (hardcoded into the client for each version), and those transactions would encode in their outputs (either via vanitygen'ed destination addresses and/or special amounts) information about new versions
  • hash of the updated/upgrade binary (so you don't just have to trust a website or a download)
  • basic update info (minor upgrade, compulsory major upgrade, hard fork coming, etc.)

This would allow a safe update notification and a safe signed upgrade mechanisms that doesn't rely on how the update binary is delivered. And only the devs (or rather whoever holds the private key to the special address) would be able to both announce and certify the update.

This wouldn't involve any protocol updates, and other/custom clients would be unaffected by what they would see as regular transaction.

We already have an emergency key to deliver such message


Title: Re: Idea: embedding client update info in the blockchain
Post by: MWD64 on March 15, 2014, 07:05:18 AM
Did it tonight with Namecoin:

MeowBit - Now with Update Alerts Over the Blockchain
http://meowbit.com/?p=2017 (http://meowbit.com/?p=2017)

Didn't find this thread until we were about to release it and were searching to see if it had been done.


Title: Re: Idea: embedding client update info in the blockchain
Post by: fairglu on March 17, 2014, 01:01:06 PM
Did it tonight with Namecoin:

MeowBit - Now with Update Alerts Over the Blockchain
http://meowbit.com/?p=2017 (http://meowbit.com/?p=2017)

Didn't find this thread until we were about to release it and were searching to see if it had been done.

Great! I hope others will follow suit.


Title: Re: Idea: embedding client update info in the blockchain
Post by: MWD64 on March 17, 2014, 06:32:35 PM
Did it tonight with Namecoin:

MeowBit - Now with Update Alerts Over the Blockchain
http://meowbit.com/?p=2017 (http://meowbit.com/?p=2017)

Didn't find this thread until we were about to release it and were searching to see if it had been done.

Great! I hope others will follow suit.

Yup! Our source code is GNU-licensed and on GitHub if people want to examine it/ use it.