The case for Ethereum: general-purpose vs special-purpose blockchains

Previous topic - Next topic

psztorc

I think the biggest thing against Ethereum is that it doesn't exist.

I don't even see reliable way of forecasting when it will exist (needless to say, the fact that their website says it will be available in Q4 means almost nothing to me). It may never exist, or it may change forms.

Hard to even assess something which doesn't exist. Even the testnet can't be assessed, because there would be no reason for anyone to attack it.
Nullius In Verba

martinBrown

Quote from: psztorc on June 17, 2014, 02:57:32 PM
I think the biggest thing against Ethereum is that it doesn't exist.

One could say the same thing about TruthCoin. I've actually made the same argument about all kinds of whitepapers. Normally I would've rolled my eyes and said "yet another whitepaper...", but TruthCoin was personally interesting/valuable enough that I started thinking about how I might actually implement it (a line of thought which led to Ethereum).

Quote from: psztorc on June 17, 2014, 02:57:32 PM
I don't even see reliable way of forecasting when it will exist (needless to say, the fact that their website says it will be available in Q4 means almost nothing to me). It may never exist, or it may change forms.

Three months ago, I would have agreed with you. When Ethereum was first announced I paid little attention because I don't have the patience for other peoples' vaporware (I have enough of my own).

Since then, they have produced highly functional alpha clients on testnets. There are two testnets currently, one for go-ethereum and one for cpp-ethereum. But they should be merged soon, as compatibility is planned for the PoC5 release, at which time the binary builds will be available for download on code.ethereum.org (until then, it's not too hard to build the PoC5 dev branches from the github repos). Scripts compile, the EVMs execute contract bytecode, account states on the Patricia tree get updated, and the block chain grows. There's a contract debugger, decent UI, WebKit view with hooks.. real honest-to-goodness progress.

That said, Q4 still seems quite optimistic. But it's unusual for an open-source project to build the kind of momentum that Ethereum has (a real leap in progress, not empty hype for a re-branded clone), and I'm hopeful.

Quote from: psztorc on June 17, 2014, 02:57:32 PM
Hard to even assess something which doesn't exist. Even the testnet can't be assessed, because there would be no reason for anyone to attack it.

After the pre-sale/fundraiser, there will (supposedly) be bounties for attacking the testnet, implementing a hardened mining algorithm, etc. Further changes/hardening will mostly be lower-level, and won't affect the way DApp authors write contracts. That's the advantage of using a well-designed stack, "separation of concerns" means that DApp authors won't have to worry about lower-level stuff, giving them a significant advantage over programmers working with an entire alt-coin codebase.

I'm as uncomfortable as you when it comes to fund raisers, in fact one reason I gave TruthCoin benefit of the doubt was because there was no imminent fundraiser (unlike many other alt-coin projects/whitepapers, including Ethereum). If they aren't very careful then the Ethereum fundraiser will likely be a big ol mess steeped in controversy. But if MasterCoin, BitShares, MaidSafe, etc can successfully pull off fundraisers than Ethereum ought to be capable as well.

I do have some degree of anxiety about it, but at least it will pay for a crowdsourced security audit before the mainnet launch. I mean, if there were a TruthCoin implementation on its own special-purpose blockchain, who would pay for it to be extensively audited/attacked (before the coins start carrying real value)? It would be much easier to audit a contract script, because you're not worrying about lower-level blockchain stuff.

delulo

Quote from: toast on June 10, 2014, 04:09:46 PM
edit:  ah, I just saw cross-chain atomic *transaction* and not trading. NVM, we do not have that planned for the short term.
What exactly is the difference between atomic cross chain trading and transactions? What different functionality does the user get with both?

edit: that was a bit confusing... see two posts further..

zack

trustless--------------
It is impossible for either party to steal funds from the other. There is no third party.

atomic cross chain trading------------------
Has existed for years in the bitcoin family of currencies.
The ability to trade coins on chain A for coins on chain B trustlessly.
Example: if I had bitcoin, and my friend has litecoin, and we wanted to trade.
https://en.bitcoin.it/wiki/Atomic_cross-chain_trading

transactions---------------
The ability to send coins to someone else. The coins stay on the same chain the whole time.

side-chains----------------
Does not exist, probably will never exist for bitcoin.
The ability to transform coins on one blockchain into coins on another blockchain.
Example: 100 BTC would disappear from the bitcoin blockchain, and 1000 LTC would appear on the litecoin blockchain.

delulo

Clarification: I asked what the difference is between "atomic cross chain trading" and "atomic cross chain transactions". Toast used those two terms... http://forum.truthcoin.info/index.php/topic,27.msg202.html#msg202
I just know this: "atomic transfers" https://bitcointalk.org/index.php?topic=193281.0 which is what you described as "atomic cross chain trading".

delulo

QuoteWhether it will be more popular for DApps to use native Ethers (for more than just gas fees) or to issue their own sub-currencies is a very good question. I'm still chewing on this, but my initial thoughts are that for DApps which have their own-subcurrencies, the exchange process for Ethers->DApp-tokens will need to be seamless/frictionless, otherwise most users will ignore it (just as most people ignore most alt-coins).
Can a DApp dev allocate the DApp tokens as he wants and can the DApp tokens trade on centralized exchanges like bter/cryptsy? Can DApp tokens only be traded against ether on the Ethereum blockchain? If no there would not be a need to use ether (Except for the Gas fee?).
What incentive would a DApp dev have to develope his DApp on Ethereum if the contracts are denominated in ether? What would the DApp token be necessary (-> valuable) for?   

zack

"Can a DApp dev allocate the DApp tokens as he wants(?)"
When the DApp tokens are first created, he can pre-mine as much as he wants. Usually the DApp is designed so that new tokens cannot be created, but it is possible for him to make a counterfeiting-privatekey which allows anyone who knows it to print more tokens.

"can the DApp tokens trade on centralized exchanges like bter/cryptsy?"
yes

"can DApp tokens only be traded against ether on the Ethereum blockchain?  If no there would not be a need to use ether (Except for the Gas fee?). "
I didn't understand the question.

"What incentive would a DApp dev have to develop his DApp on Ethereum if the contracts are denominated in ether?"
The DApp dev gets to give himself his pre-mine of tokens. When people play his game, their ethers get sent to the DApp dev in exchange for some of his tokens.
If only ether is used in a DApp, then the dev needs some different way of getting paid. Perhaps he was hired. Or he owns so much ether, and his project will increase the value of ether enough to make it worth-while. Or he wins a bounty.

"What would the DApp token be necessary (-> valuable) for?"
In the case of truthcoin, it allows us to make votecoins, and have a pool of votecoin holders who vote on the outcome of decisions.
It allows us to create shares for the prediction market, so that the winner gets paid and the loser does not.

delulo

Quote"can DApp tokens only be traded against ether on the Ethereum blockchain?  If no there would not be a need to use ether (Except for the Gas fee?). "
I didn't understand the question.
My point, I could have made a little more clear, was that if I can buy the DApp token for BTC on a centralized exchange and ether is not necessary to use the DApp (except for the tx fee that is paid in ether (that is the gas fee I assume) then there is no demand for ether

On the other side if the DApp contracts are denominated in ether then the DApp tokens have no value which made me question the incentive for developers to build a DApp.

But based on your answer the first option (DApp tokens needed to use the DApp and tx fees paid in either) applies.

Regarding "atomic cross chain x" is there a structural difference between transfer, transaction and trading or are those just different terms for the same thing? (see post above)

martinBrown

Quote from: delulo on August 04, 2014, 08:42:31 AM
Clarification: I asked what the difference is between "atomic cross chain trading" and "atomic cross chain transactions". Toast used those two terms... http://forum.truthcoin.info/index.php/topic,27.msg202.html#msg202
I just know this: "atomic transfers" https://bitcointalk.org/index.php?topic=193281.0 which is what you described as "atomic cross chain trading".

A simple one-way payment (a payment for nothing, as in "here, have some coins") is one transaction.

A "trade" is more complex, think of it as two simultaneous transactions. Say we trade BTC for LTC, basically what happens is you send me some BTC, and I send you some LTC - so that's two transactions. To safely trade with each other they have to be atomic transactions. Atomic means all-or-none, otherwise say you send me the BTC, then I sign off and keep both the BTC and the LTC. Atomic means its impossible for me to do that and steal your LTC.

Blockchain transactions are a form of database transactions. With a crypto-currency, the entry in the database (or ledger) is the coin balance of an address, and the balance is just a numeric value. But you can store any type of values in a database - numeric, string, hex, etc - any type of variable. To update those variables you do a database transaction (these variable updates change the contract "state").

For example, suppose someone is using a CounterParty crowdfunding address to raise money in a genesis sale of SupergreatCoin. And suppose there's a feature in the counterparty crowdfunding contract to broadcast an announcement on bitMessage, when the fundraising goal is reached - "Target goal achieved! Awesome! -- This message was automatically sent by SuperGreatCoin."  But we want that message to be announced on bitMessage *if and only if* (atomic, in other words) the goal amount was actually reached on the counterparty contract. Broadcasting a bitMessage announcement is a transaction, but its not a trade. So this would be a counterParty-to-BitMessage cross-chain atomic transaction. This would essentially would require upgrading at least one of the clients to be cross-compatible, in this case the BitMessage client would have to also connect to the bitcoin network and verify the counterParty transactions happening in bitcoin blocks. Then when the bitMessage client processes transactions, the verification process would look something like this: IF counterparty_tx_goal_reached AND bitmessage_tx_is_valid THEN includeMessageTxInBlock().

martinBrown

Quote from: zack on August 03, 2014, 08:24:46 PM
atomic cross chain trading------------------
Has existed for years in the bitcoin family of currencies.
The ability to trade coins on chain A for coins on chain B trustlessly.
Example: if I had bitcoin, and my friend has litecoin, and we wanted to trade.
https://en.bitcoin.it/wiki/Atomic_cross-chain_trading

The idea has existed, but nobody has implemented it (yet) afaik.

The authoritative post on bitcointalk, a twitter discussion, and blog post.

Quote
@socrates1024 @zooko @matthew_d_green @imichaelmiers P2PTradeX does not have any fundamental problem (except that you need to code it!)