A strange thought about contracts

roz303roz303 Member Posts: 66
Nevermind my Etheric obsession and lack of sleep! I've been thinking of something outside the etheric norm of contract programming and application. Something fun to think about!

Could contracts be considered living digital organisms?

Here's my stance: They need ether to run - for their ability to run functions and maintain internal states. We assign the need for the contract to, then, in a sense, survive. Organisms do things when they have energy - and since ether is in a more literal sense energy for the contract - it begins behaves more like an organism, and less like a program. Furthermore, organisms have sensory capacity - in one way or another, they can sense their environment. Well, in a sense, so can contracts. Their senses are the data used when calling or transacting functions within the contract. Finally, organisms have the capacity to evolve. While contracts cannot replicate by starting new contracts on their own, and mutate on their own (through computerized genetic algorithms or otherwise), the factor of evolution could be seen in the author's desires to re-deploy a contract, with written modifications from the previous contract.

So, therefore, with the factors of survival, operation, and evolution translated from biology to Ethereum, I believe contracts could be considered living digital organisms. They're alive, they have a need to survive, they function, and they evolve.

...I need sleep. And I have a feeling the forum *might* not be the best place for strange philosophical discussion, so I'll keep these kinds of posts to a minimum. Anyway, thanks for reading this weird idea. Looking forward to genesis! :smile:

Comments

  • linageelinagee Member Posts: 31 ✭✭
    I think anyone who isn't up right now isn't deep enough into what Ethereum is all about, lol.
  • roz303roz303 Member Posts: 66
    linagee said:

    I think anyone who isn't up right now isn't deep enough into what Ethereum is all about, lol.

    It's all about distributed applications and decentralization, what were you thinking? :wink:
  • SemielSemiel Member Posts: 15
    roz303 said:

    While contracts cannot replicate by starting new contracts on their own, and mutate on their own (through computerized genetic algorithms or otherwise)

    Why not? :)

    I think a self-replicating contract (which is entirely possible in Ethereum) can definitely be thought of in terms of artificial life.
  • roz303roz303 Member Posts: 66
    Semiel said:

    I think a self-replicating contract (which is entirely possible in Ethereum) can definitely be thought of in terms of artificial life.

    How would that be possible? I thought contracts couldn't deploy other contracts.
  • SemielSemiel Member Posts: 15
    roz303 said:

    I thought contracts couldn't deploy other contracts.

    They can!

    For example, in Solidity:

    https://github.com/ethereum/wiki/wiki/Solidity-Tutorial#interfacing-with-other-contracts

    Notice the `return address(new OwnedToken(name));` near the bottom.

    Mutation is a bit harder, but possible with sufficiently clever design.
  • roz303roz303 Member Posts: 66
    Well I'll be damned! Now if there was a way to get the bytecode into an array, there could be a genetic algorithm written as part of these contracts so that on every new creation, some change to the bytecode array could be made, and a new contract with that new bytecode could be created, thus giving way to evolution...
  • SemielSemiel Member Posts: 15
    edited July 2015
    Note that contracts can't directly create new versions of themselves, since this would require them to have their own code embedded in them, creating an infinite regression. But this is easily remedied by having two contracts that can talk to each other, the second one being a "new contract builder".
  • LarsPensjoLarsPensjo SwedenMember Posts: 35
    It might be hard to create self-evolving organisms on the Ethereum blockchain, but I think there are other interesting possibilities available.

    Until now, ownership of resources and possibilities to sign contracts have been limited to humans mostly. To a variable degree, it has been possible to create trade bots on stock markets and similar things. With Ethereum, it will now be possible to create off-chain organisms (IOT) that, using Ethereum contracts, can have a real effect on the world.

    Highly speculative, and a little like science fiction, but suppose it was possible to create an Artificial Intelligence connected to Internet. Until now, it would be very limited and only able to interact with the world indirectly through humans that have the means.
    On the blockchain, nobody knows you are a fridge.
    -- Richard Gendal Brown (2013)
    As have already been mentioned elsewhere, Ethereum is one stepping stone required to realize Skynet.
  • roz303roz303 Member Posts: 66

    As have already been mentioned elsewhere, Ethereum is one stepping stone required to realize Skynet.

    August 29, 2029: The day skynet becomes self-aware. I find it a little eerie skynet was said to be in every computer around the world...

    ...well, so is Ethereum. Not every computer, but I suppose over time, it'll be in a vast amount.

    As far as self awareness is concerned, all it would take is for contracts written like digital organisms to become aware of others' functions and states and so on, and really, enough contracts could maintain such awareness of other contracts that self-awareness could indeed emerge. BUT these contracts depend on ether to survive. There's still a kill-switch :smile:

    I'd like to akin contracts to cells, and Ethereum as a macro-organism.

  • roz303roz303 Member Posts: 66
    edited July 2015
    Semiel said:

    Note that contracts can't directly create new versions of themselves, since this would require them to have their own code embedded in them, creating an infinite regression. But this is easily remedied by having two contracts that can talk to each other, the second one being a "new contract builder".

    Why can't they? A program in C could easily load the object file into the current program, make modifications, and copy that into a new object file. Not quite sure how bytecode of itself could be loaded into the contract, but once it can, I don't see any infinite regression. All it'd need was the code of itself, the ability to compile (which could be done by another contract that interfaces to a computer with an assembler, which then I suppose would be your contract builder), and the ability to deploy that new contract.
Sign In or Register to comment.