Bitcoin Forum
November 13, 2024, 04:35:57 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Can Bitcoins be owned by non-humans?  (Read 1606 times)
chickenado (OP)
Hero Member
*****
Offline Offline

Activity: 1036
Merit: 502



View Profile
October 07, 2010, 11:48:16 AM
 #1

I had an idea for a program:

Inside an encrypted part of the program are stored the private keys for 10,000 Bitcoins, and some code. Then there is some plaintext code that executes the encrypted container.

The program is self encrypting. So even when executed, it sends garbled pieces of data to CPU and RAM that return garbled pieces of data.

What it comes down to is that only the program itself "knows" the bitcoin private keys and the code inside the cointainer.  They would never be revealed to the host.  I don't mean security by obscurity like spaghetti code, what I mean is that no amount of reverse engineering would reveal the contents of the container.

The only way the user could access the 10,000 coins (apart from breaking the cryptography) would be to interact with the program and convice it to spit them out. For example, by completing all levels of pacman.

Or, on a more advanced level, by giving the program some resource it wants (CPU access, internet access...).

I'd like to know your thoughts whether this would be possible in theory.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5376
Merit: 13410


View Profile
October 07, 2010, 01:28:04 PM
 #2

Quote
What it comes down to is that only the program itself "knows" the bitcoin private keys and the code inside the cointainer.  They would never be revealed to the host.  I don't mean security by obscurity like spaghetti code, what I mean is that no amount of reverse engineering would reveal the contents of the container.

This is impossible. The CPU needs to know the encryption key to decrypt the container; there's no way around this.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
Cdecker
Hero Member
*****
Offline Offline

Activity: 489
Merit: 505



View Profile WWW
October 07, 2010, 09:06:51 PM
 #3

theymos is right about the code having to be readable by the processor, but this is possible by using smartcards which have their own processor and only talk through a well defined interface, never revealing important parts of their internal data. Sim Cards are probably the most widely used smartcards right now, and they hold a shared secret between you and your service provider, would someone be able to clone the contents they would be able to listen in on your communication.

Anyway for a game I'd use a server that awards the coins upon completing a level, since it does not require special hardware on the client side.

Want to see what developers are chatting about? http://bitcoinstats.com/irc/bitcoin-dev/logs/
Bitcoin-OTC Rating
MoonShadow
Legendary
*
Offline Offline

Activity: 1708
Merit: 1010



View Profile
October 08, 2010, 01:56:31 AM
 #4

Quote
What it comes down to is that only the program itself "knows" the bitcoin private keys and the code inside the cointainer.  They would never be revealed to the host.  I don't mean security by obscurity like spaghetti code, what I mean is that no amount of reverse engineering would reveal the contents of the container.

This is impossible. The CPU needs to know the encryption key to decrypt the container; there's no way around this.

It's not impossible, but I think that it might require a duel processor system wherein two or more processes know part of the secret and process a running stream.  This is akin to how the Japanese would encode/decode messages during WWII by using a team of enslaved chinese businessmen who would all use their abacusi to perform a small calculation on a series of numbers and produce a new set of numbers, this new set of numbers would be collected and passed to another team of said chinese businessmen that would perform another set of standard calculations, and so on.  Until the last set of calculations were performed by a team of Japanese women working for the military that would produce the final decrypted messages.  I don't know if one can get around the final process/processor having open access to the secret, however.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5376
Merit: 13410


View Profile
October 08, 2010, 02:37:37 AM
 #5

If you give the user a machine that can decrypt something, and then you give them the key and the ciphertext, then they can decrypt it. You can make it difficult if you make them use special hardware with the key/ciphertext/encryption embedded, but you're still giving the information to them, and it's still possible to reverse-engineer.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
martin
Full Member
***
Offline Offline

Activity: 150
Merit: 100



View Profile WWW
October 08, 2010, 03:52:01 AM
 #6

Homomorphic Encryption is what you're describing. Unfortunately homomorphic encryption is pretty much theoretical at this point (it's been shown possible with certain restrictions, but no practical systems exist to implement it yet)
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!