Can someone please explain a use case for this 'framework'? The whitepaper explains many things, which are somewhat confusing as to their level of use/abstraction.
Looks very cool but I agree. The whitepaper shouldn't be the main introduction to this site. Many things, such as "What's the connection of Codius with Bitcoin's Blockchain?", need to be succintly described on the landing page above the link to the whitepaper.
Smart contracts run on Codius can interact with any blockchain!
To move money in Bitcoin all you need is a valid digital signature. Smart contracts are programs that can check some conditions and then based on those decide to sign a Bitcoin (or Litecoin, Nextcoin, Ripple, etc) transaction or not based on those.
As I get it, for a software to sign something it must be in possession of private key material. Then, anyone who knows the contract could extract the key and do perform the transaction without bothering about conditions. And if only one party knows the contract, it could refuse to sign even though the conditions met. Or everything depends on a trusted third party that would keep and wouldn't disclose the secret part unless the conditions are met? And participants would only see a partial contract - i.e. conditions and actions minus the secret material?
After reading the 'simple overview' I have exactly the same questions as you. It's all nice that the contract runs and checks for conditions and such ... however the 'implementation' of the condition checking seem to be the Achilles heal of this whole thing. For example, the use-case of the online buyer, who would check the phone was shipped? Another 'smart-contract' ...?
Well, there's more to that. Conditions by themselves can be handled by the blockchain, but using external sources (like websites, price feeds, etc) requires something like Codius or Orisi.org.
But basically anything that requires external inputs can be done. If you don't need external inputs, you can probably create the contract within Bitcoin/Ethereum alone.
In short, codius requires parties to select a group of reputable nodes to run the contract code but in exchange is technically simpler and faster.
Ethereum requires zero trust and gives pretty much a 100% guarantee the contract will be executed as written, but is technically more challenging and contracts run slower.
Actually Ethereum requires you to trust the mining pools that make up 51% of the hashing power of the network.
Codius allows you to select oracles based on whatever criteria you like -- including using mining. The nodes don't necessarily need to be reputable, you just need them not to collude
The "trustlessness" in Bitcoin & Ethereum are conditional on the lack of collusion between miners.
It's particularly jarring to hear people clamor that it's "trustless", confusing the computational security of crypto with the much weaker game-theoretic security of Bitcoin.
Marketing I suppose.
As far as we know, blockchain systems are the best way so far to minimize the amount of trust. It's all well and good to talk about how imperfect blockchains are, but until something better comes along it seems like not much can be gained by parsing out different gradiations of "trust" in the way you suggest.
Codius (and Orisi.org) can deliver external inputs to the contracts - it's something no blockchain system can do by design.
In other words - if you want your Ethereum contract to rely on weather, a certain website, or a currency price, you need Orisi, Codius, or some other similar system.
> Codius (and Orisi.org) can deliver external inputs to the contracts - it's something no blockchain system can do by design.
False, when I make a bitcoin purchase, and external input (the amount I spent) makes it into a bitcoin script. In other altcoin systems you can put in arbitrary datafeeds, like the weather (admittedly with a gatekeeper that spoon feeds it to the blockchain) Also, if someone wanted to create an altcoin that allowed totally arbitrary inputs (like Codius) I see no reason why it would be technically impossible.
I see that Codius requires a way to find non-colluding nodes to process your contracts. Mining is terribly inefficient and slow (can be fast with the GHOST or DECOR protocol though).
Looks like Codius might fit perfectly with the Bitshares Delegate system. The top 101 delegates could become the trusted list of Codius code processors. All Delegates could check the output hash of the contract of every other delegate and kick out the malfunctioning or bad delegate out of Bitshares altogether, just as they already do for transaction confirmation issues.
On top of that the Codius processors could be paid instantly with Opentransactions tokens which represent Bitshares based bitUSD/EUR/RMB, etc.
I highly doubt Ethereum could do better than this. This setup would be fast, secure, super profitable for delegates, and it would not suffer transactions per second limitations as much.
Slight off-topic, but I recommend never using the phrase of the pattern "simple {and,but,yet} powerful" in anything, ever. It doesn't convey anything meaningful, and it's very overused.
20 comments
[ 4.5 ms ] story [ 46.1 ms ] threadNeed FAQ please!
[disclaimer: i'm an employee of ripple labs]
To move money in Bitcoin all you need is a valid digital signature. Smart contracts are programs that can check some conditions and then based on those decide to sign a Bitcoin (or Litecoin, Nextcoin, Ripple, etc) transaction or not based on those.
For a simpler introduction to smart contracts and Codius check out: http://bit.ly/codiussimple
Keep the questions coming!
As I get it, for a software to sign something it must be in possession of private key material. Then, anyone who knows the contract could extract the key and do perform the transaction without bothering about conditions. And if only one party knows the contract, it could refuse to sign even though the conditions met. Or everything depends on a trusted third party that would keep and wouldn't disclose the secret part unless the conditions are met? And participants would only see a partial contract - i.e. conditions and actions minus the secret material?
Eg. One this is done, then pay in bitcoin, ... Some clear examples can be found here : https://groups.google.com/forum/#!topic/codius/tOtcG9cZA-Y
One fun example of an oracle smart contract is Mechanical Turk arbitration... http://orisi.net/discussion/4/mturk-and-distributed-oracles-...
But basically anything that requires external inputs can be done. If you don't need external inputs, you can probably create the contract within Bitcoin/Ethereum alone.
Ethereum requires zero trust and gives pretty much a 100% guarantee the contract will be executed as written, but is technically more challenging and contracts run slower.
Codius allows you to select oracles based on whatever criteria you like -- including using mining. The nodes don't necessarily need to be reputable, you just need them not to collude
The "trustlessness" in Bitcoin & Ethereum are conditional on the lack of collusion between miners.
It's particularly jarring to hear people clamor that it's "trustless", confusing the computational security of crypto with the much weaker game-theoretic security of Bitcoin. Marketing I suppose.
In other words - if you want your Ethereum contract to rely on weather, a certain website, or a currency price, you need Orisi, Codius, or some other similar system.
False, when I make a bitcoin purchase, and external input (the amount I spent) makes it into a bitcoin script. In other altcoin systems you can put in arbitrary datafeeds, like the weather (admittedly with a gatekeeper that spoon feeds it to the blockchain) Also, if someone wanted to create an altcoin that allowed totally arbitrary inputs (like Codius) I see no reason why it would be technically impossible.
I see that Codius requires a way to find non-colluding nodes to process your contracts. Mining is terribly inefficient and slow (can be fast with the GHOST or DECOR protocol though).
Looks like Codius might fit perfectly with the Bitshares Delegate system. The top 101 delegates could become the trusted list of Codius code processors. All Delegates could check the output hash of the contract of every other delegate and kick out the malfunctioning or bad delegate out of Bitshares altogether, just as they already do for transaction confirmation issues.
On top of that the Codius processors could be paid instantly with Opentransactions tokens which represent Bitshares based bitUSD/EUR/RMB, etc.
I highly doubt Ethereum could do better than this. This setup would be fast, secure, super profitable for delegates, and it would not suffer transactions per second limitations as much.
This is shaping up to be AMAZING.