Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: remotemass on October 03, 2014, 12:18:34 AM



Title: Mechanical engine to create key-pairs/addresses
Post by: remotemass on October 03, 2014, 12:18:34 AM
See these two videos:

A demo of Charles Babbage's Difference Engine
https://www.youtube.com/watch?v=BlbQsKpq3Ak

Life Size Lego Car Powered by Air
https://www.youtube.com/watch?v=_ObE4_nMCjE

And then tell me if it wouldn't be awesome to be able to build an engine, all with mechanical parts only to generate bitcoin key-pairs/addresses.

People could buy all the parts that could be 3D printed, in plastic, for instance, and build it at home. Or even make it with Lego, maybe.

This way they could be sure no internet hacker could compromise their engine.

I know if you use an offline, client-side script, you should be fine. but for many people seeing the whole thing as a mechanical engine - that they could mount - could be very appealing and/or an interesting hobby.

Eventually, we would see these huge engines/machines at museums and exhibitions.
It could attract a lot of people into bitcoin and paper wallets.
I quite think paper wallets are the best way to introduce someone to bitcoin.

[Note] there is no need to watch the whole videos, if you find that too time consuming and/or boring. Just get the idea...


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: MineForeman.com on October 03, 2014, 01:35:41 AM
I really like the idea.

It is not that long ago that all encryption was done with mechanical devices (people sometimes forget, the most well known cypher in the past 100 years, enigma, was a machine).

The process of a sha256d hash is not very complex, it could definitely be done with gears a sprockets, I would buy one.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: Itsumo on October 03, 2014, 05:05:02 AM
Hey, you got me to laugh.

That cracked me up!  ;D ;D ;D


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: remotemass on October 03, 2014, 06:01:51 AM
We should start doing it in Minecraft  ;D


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: R2D221 on October 03, 2014, 12:14:37 PM
It is not that long ago that all encryption was done with mechanical devices (people sometimes forget, the most well known cypher in the past 100 years, enigma, was a machine).

It was a machine, but not an entirely mechanical one. It had many circuits and lights.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: MineForeman.com on October 03, 2014, 07:30:19 PM
It is not that long ago that all encryption was done with mechanical devices (people sometimes forget, the most well known cypher in the past 100 years, enigma, was a machine).

It was a machine, but not an entirely mechanical one. It had many circuits and lights.

True, but the electrical components were just there for a convenience, when you pushed a button a circuit would be made through the gears to light up a result, it also proceed the mechanism when you took your finger off the button with a small electric motor.

The actual cryptography was done with the gears.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: remotemass on October 03, 2014, 09:15:31 PM
Maybe we could start up a contest like this:
We would raise money into a bitcoin address.
The first person to present a Minecraft version of this engine would get 10% of the bitcoins raised so far.
Each version that reduced the number of block cubes necessary for that engine on Minecraft by 10% would get 10% of the bitcoins that were there at the funding address.
And so on and so forth. For each 10% reduction of number of building blocks you would get 10% of the funds restant.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: remotemass on October 04, 2014, 01:35:19 PM
I reckon it would already be a great achievement to implement just the private key to public key conversion. For that you just need the the secp256k1 elliptic curve point multiplication math.
You don't need to implement SHA-256, RIPEMD-160 and the Base58 encoding.
These latter ones are only needed to convert a public key into a bitcoin address.
To get from private key to public key - which would already get you into a quite safe stage from where you could use online resources - you only need to go through the secp256k1 elliptic curve point multiplication math.
Much more facile.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: phillipsjk on October 04, 2014, 06:11:56 PM
My initial reaction is "no". Computers are not very good at generating random numbers. A mechanical computer would not do much better unless you find some way to capture entropy (without making the machine unreliable). Mechanical computers also have the disadvantage of working very slowly. Conversely, they have the advantage of being easier to inspect than traditional computer chips.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: MineForeman.com on October 04, 2014, 09:33:07 PM
My initial reaction is "no". Computers are not very good at generating random numbers. A mechanical computer would not do much better unless you find some way to capture entropy (without making the machine unreliable). Mechanical computers also have the disadvantage of working very slowly. Conversely, they have the advantage of being easier to inspect than traditional computer chips.

Mechanical devices to create a random number not only exist they also provide a much greater degree of entropy than any computer ever could.

Think dice or coin flips :P .



Title: Re: Mechanical engine to create key-pairs/addresses
Post by: Test User on October 04, 2014, 09:56:12 PM
Good luck with the elliptic curve point multiplication :)


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: remotemass on October 04, 2014, 10:55:53 PM
<snip>

The engine wouldn't need to generate the random private key.
It would need just those 256 bits that you would give it as an input.
You would just need to toss a coin 256 times.
Slow but paranoid-proof.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: arklan on October 09, 2014, 07:17:44 PM
so, seriously, how insane would this be? i'd love to at least make a 3d model of it. doubt i have the math to understand the cryptography though.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: MineForeman.com on October 09, 2014, 09:02:21 PM
so, seriously, how insane would this be? i'd love to at least make a 3d model of it. doubt i have the math to understand the cryptography though.

It would be rather cool, I have put some preliminary thought into how it could be achieved (not in minecraft, I know next to nothing about minecraft).

I will need a 3D printer and a lot of time ;) .  Perhaps I should start a bitcoinstarter project.  Offer the plans free for download etc.

Neil



Title: Re: Mechanical engine to create key-pairs/addresses
Post by: zeetubes on October 09, 2014, 09:12:27 PM
so, seriously, how insane would this be? i'd love to at least make a 3d model of it. doubt i have the math to understand the cryptography though.

It would be rather cool, I have put some preliminary thought into how it could be achieved (not in minecraft, I know next to nothing about minecraft).

I will need a 3D printer and a lot of time ;) .  Perhaps I should start a bitcoinstarter project.  Offer the plans free for download etc.

Neil



As a teaching/learning aid for crypto, logic etc this thing would rock. It's a seriously cool idea imo.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: MasterCasino on October 10, 2014, 05:28:01 AM
so, seriously, how insane would this be? i'd love to at least make a 3d model of it. doubt i have the math to understand the cryptography though.

Its cool to have a 3d representation for it.


Title: Re: Mechanical engine to create key-pairs/addresses
Post by: arklan on October 10, 2014, 04:18:44 PM
anything i made would, of course, be 3d printer compatible. i love those things.