Hacker News new | comments | show | ask | jobs | submit login
Plasma: Scalable Autonomous Smart Contracts (plasma.io)
252 points by hackerews on Aug 10, 2017 | hide | past | web | favorite | 137 comments



Smart contracts are being suggested as the building block of "autonomous corporations" (implying "do anything!") yet nearly anything meaningful basically has to interact with the real world through agents external to the contract for most business cases. Given this severe limitation, could someone clarify what the whole shebang is supposed to be about?

I actually saw Vitalik speak last week or so here in Shenzhen came away less convinced than ever of their theoretical utility for anything but a tiny fraction of users.

In short, adding a decentralized network of paid/incentivized actors to any existing potential cryptographic problem space (a fair rough summary of the smart contract notion?), in particular the subset relevant for most businesses, doesn't seem to solve anything particularly well and typically decreases critical measures of engineering elegance such as simplicity, comprehensibility, predictability, etc. while increasing negative measures such as technical lock-in to piles of rapidly evolving technologies for which hiring and building is expensive and error-prone.


> In short, adding a decentralized network of paid/incentivized actors to any existing potential cryptographic problem space (a fair rough summary of the smart contract notion?), in particular the subset relevant for most businesses, doesn't seem to solve anything particularly well and typically decreases critical measures of engineering elegance such as simplicity, comprehensibility, predictability, etc. while increasing negative measures such as technical lock-in to piles of rapidly evolving technologies for which hiring and building is expensive and error-prone.

You could say very much the same thing about most supply-side innovations when they came out. Why buy a factory machine when your workers do it just fine? It's complicated, error-prone, you'll have to hire expensive, specialized mechanics to deal with it when it breaks down. It decreases measures of engineering elegance, like simplicity, comprehensibility and predictability. All the locking you into that vendor with a massive upfront capital cost.

Smart contracts eliminate trusted third parties (sometimes) and automate certain processes that previously couldn't be automated due to trust issues, or were automated but centralized (with the aggregating entity extracting rents). Fixing these things will reduce transaction costs globally, just as factory automation did.

Will it solve everything? No, at least not soon. Will it eliminate lawyers, courts, and so on? Not even close. But it will do some things. Things like escrow, notarization, and assurance contracts (e.g. kickstarter) are all easily amenable to blockchain / smart contract solutions. Prediction markets are another good one.

My point is basically this: People have been making unbelievably grandiose claims about cryptocurrencies. And those claims are, largely, bullshit. However, there are some things that they do very well, and they are starting to do them.


You could say very much the same thing about most supply-side innovations when they came out

Maybe. If the input and output are the same, but the efficiency is larger, or the quality is greater or more controllable, then you have some value-add.

If the input and output are artificially constricted and the business case is basically undefined then skepticism is expected and logical.

I never denied there are use cases, just stated they are very limited. I stand by that assessment.


> Maybe. If the input and output are the same, but the efficiency is larger, or the quality is greater or more controllable, then you have some value-add.

Ya, but if I may re-summarize that objection it's, 'except for all the things that it does improve'.

> If the input and output are artificially constricted and the business case is basically undefined then skepticism is expected and logical. > I never denied there are use cases, just stated they are very limited. I stand by that assessment.

I don't disagree per se. I think we may just disagree over how limited is 'very limited'. I think, even just interbank transaction settlement (e.g. Ripple) is an enormously valuable usecase for blockchains. Some smart contracts make sense as well, keeping in mind that you can always offload parts of a contract to human auditors and mediators. People sometimes equate there being any human involvement with trustless execution being worthless. However, that's not really fair. For instance, suppose you are in a country with a corrupt legal system. You can't enter into a normal contract safely, because justice there is disbursed to the highest bidder. So, what do you do instead? You enter into a smart contract that specifies a mutually agreed upon 3rd party outside of the country as the arbiter of disputes, and gives them a private key that they can use to enforce their judgments. Now, you've created a functioning judicial system (admittedly, only for finance) in a country that didn't previously have it. I'd say that's a pretty valuable use case for people in say, Venezuela, or Russia.


What about Kickstarter? A $500 million+ company that takes a 5% vig on all transacted funds can effectively be replaced with a few lines of code.

If total ETH sent to contract address by date X > Amount Y then send the ETH to the fundraiser, else return the ETH.


The part of Kickstarter you're describing isn't worth any significant fraction of these $500m. If it were, Indiegogo, Gofundme and all others in the space would need to be well on the unicorn track.

A saying goes "Ideas are cheap, execution is everything". That's where this value of $500m comes in. It's in the brand reputation the company has built. In the traffic they generate by people browsing their site and discovering projects they might back. In the UI they've set up, and most of all, it's in the trust that they actually do some amount of quality checking. In the thought that projects on Kickstarter stand a better chance of executing than projects on competitor's sites.

You can get someone to write the necessary code for "if funded send to x, else return funds" on any freelance site for a four-digit amount, whether you want it in Solidity or PHP. That's the easy part. The hard part then is building a better platform, policing the projects on there, ensuring quality and attracting backers.


> You can get someone to write the necessary code for "if funded send to x, else return funds" on any freelance site for a four-digit amount

Can you do so in a way that I as a funder don't need to trust you the intermediary?


> Can you do so in a way that I as a funder don't need to trust you the intermediary?

No, and you can't with smart contracts either (the intermediary being the creator of the contract), unless funders are restricted to people with the skill to analyze the contract code. As proven by the DAO.

And even if you could, you've replaced only a small-and-useless-in-isolation piece of Kickstarter by doing so.


It moves the trust to the code rather than the entity. Code analysis does not need to be done by all, either.

I'm not saying it's the entirety of kickstarter but I think you're being overly dismissive of the concept. It could work well for things like bug or feature bounties, or other similar situations where having a company to sit in the middle and hold cash requires building up too much reputation than it is worth. Running costs become just the transaction & code running costs on whatever network you're using too.


> It moves the trust to the code rather than the entity. Code analysis does not need to be done by all, either.

For everyone who doesn't do it on their own, they either have to trust the originator or trust someone who has done it, so for most users you aren't eliminating the need for a trusted third party.

> I'm not saying it's the entirety of kickstarter

That was the upthread claim.


> For everyone who doesn't do it on their own, they either have to trust the originator or trust someone who has done it, so for most users you aren't eliminating the need for a trusted third party.

Which is a different trust model.

There are a few major things:

1. Not everyone has to trust the originator

2. It's possible for me to trust a third party which is different from the one asking for my money

3. It's possible for me to trust a combination of many third parties, given that any one reliable third party that cries foul would be enough

So there's a huge difference between "trust me and give me your money" and "trust that not all the third parties that checked the code are co-conspirators".

> That was the upthread claim.

Yes, but I'm not making that claim, and I think your statement saying this piece is "useless in isolation" is overly dismissive.


Then why has nobody done that then?

It blows my mind how so many people proliferate how useful blockchain companies can be yet despite all of the different blockchains, ICO's..., practically none [1] have taken off because they are technologically and economically worse than current market products and services.

[1]: Illegal markets are the only market I have seen that do like it because companies/governments have specifically made it harder for illegal transactions to take place over traditional currencies.


They have.

I have.

How you take funds for your campaign is configurable. The projects which took USD raised millions more than the projects which took various cryptocurrencies at the time of funding. The upside of having a smart contract 'guarantee' your funds was outweighed by the downside of drop-off in getting your potential customers to acquire and pay you using an obscure financial instrument.

This looks to be changing.


Can you reword your comment as I don't quite understand what point you are trying to argue?


He is saying that more people are used to USD than cryptocurrencies. If you have two companies, one which uses a "donate here in USD" button and one which has a "donate using Ethereum smart contracts", the donations for the first one will drown the second so the second will look like a failure by comparison.


Nobody has done it because it's inefficient right now, and the ecosystem is still only trusted by a relatively small minority of nerds like myself and others here. This proposal is a solution to one of those problems.


When will it ever be efficient?

All blockchains rely on re-computing the same transaction across many different entities due to mistrust. However, despite the common sentiment that computers are cheap; at scale, the are definitely not. Every additional computation to validate something increases the cost of business and 99% of businesses are cutthroat when it comes to cost.

Add in the other downsides/costs of crypto.* (my insights on the downsides of blockchain specifically: hard to use, one way transactions, high transfer costs due to low block size, super easy to get hacked and lose all your money...) and it's no wonder they are all failing.

99.999% of the time, the costs outway the benefits.


Proof of stake and the contents of this paper are solutions to that exact problem.


There is proof of stake algos coming that make it efficient.


Proof of stake is something that "has been coming along" for years now. Sounds like vaporware to me.


Proof of stake is implemented in tons of coins already.


PoS does not have anything to do with all nodes having to validate transactions. You're looking for sharding.


Why will the future change the level of inefficiency?


That's what the link in the OP is all about. Plasma + Proof of Stake should mean an efficient, scalable blockchain for smart contracts.


Proof of stake should increase efficiency a lot.



This thinking is a common mistake I see from teams that think only about tech.

User acquisition is critical in the success of marketplaces. Usability is often ignored too.

Even today, if you create an eBay (granted, a much stickier marketplace than Kickstarter) with no fees, it's not as simple as throwing the doors open and expecting everyone to switch.

You can read more here, in a different example I dig into (Slack vs IRC): https://www.nemil.com/musings/oss-and-slack.html

If you ever want, I'm happy to have the debate with you (email in profile). If you really want to compete, you're going to need to be aware of what it'll really take to win, not just decentralized/blockchain and no fees.

(And as a nit, I can also build a website in a week that takes 2% credit card vig without blockchain - sure I know you'll argue that I can raise the price later, but I'm still not going to win against Kickstarter without something more than just a cheaper price)


Was tested with bitcoin: https://github.com/vinumeris/lighthouse

I'm sceptical about the use-case. Collecting money for the projects is so much about other things as well, not just the money collection phase - you need a services around it, it is not just the payment collection. That said, I think it would be quite useful for kickstarter to accept btc/eth.


Exactly. The problem is that even if the core service can be replicated in a decentralized manner on the blockchain, any periphery services (discussion boards, dispute resolution) need to exist in some centralized place, developed and maintained by some centralized entity. Hell, even the crypto code itself needs to be developed/maintained by someone. It's hard to avoid centralization when somebody has to do the work of maintaining the platform, because maintenance costs money, which requires stakeholders, who will not pass up an opportunity to "collect rent" if the platform has any sort of network lock-in.


> What about Kickstarter? A $500 million+ company that takes a 5% vig on all transacted funds can effectively be replaced with a few lines of code.

No, it can't.

> If total ETH sent to contract address by date X > Amount Y then send the ETH to the fundraiser, else return the ETH.

Somehow missing the tracking of backers and rewards, the mutual identification of the parties, and the enforceable obligations with regard to rewards. Kinda key features of Kickstarter.


It's true that the underlying payment systems could (should?) be built this way, but imo that's a very small portion of what most websites do.


without the 5%, kickstarter would not be a successful marketing platform. financial transactions are just part of what they do.


I think the 5% doesn't even include the financial transaction which is another 3% that goes to stripe. People give Kickstarter the 5% for the marketing and trust the platform tries to build.


I doubt kickstarter pays 3% in fees...


They don't. That was the point. It is really 5% + 3%.


In my imagination, I can replace anything with some equivalent and cost much less.

But how?

How can you replace kickstarter with a few lines of code? Through your wonderful imagination that can bend reality? Or through your convincing argument that kickerstarter volunteered to turn itself into a few lines of code.

Or what?


You do know people can launch a crowdfunding project that is decentralized, They don't need an ICO or blockchain, just a website.

But there is a reason people don't do that, something to do with the value centralized platforms provide.

Plus I'm not entirely sure anyone should trust smart contracts to actually perform such a function, next thing you know someone other than the project created takes all the funds pursuant to the smart contract, but hey that's the beauty of a smart contract it's infallible, so what ever it does it was intended to do, be damned with what people thought and understood it would do.


The concept of decentralized apps, where does the initial copy come from that is then installed/copied onto other devices? (time to go read)


Maybe I'm wrong about my understanding....but maybe you are confusing decentralized with distributed.


I'm pretty sure that I am unsure of what I'm talking about. Time to go read.


There was a platform called Lighthouse, made by Mike Hearn (developer of Bitcoinj and Bitcoin XT).

It wasn't very popular or very user friendly, I think the development stopped one year ago


Kickstarter outcompetes other competitors and individuals trying to raise their own money due to network effect and native distribution you get for your project.



The entire business of smart contracts is predicated on ignoring the oracle problem. You can't do anything interesting or useful in the real world without solving that problem, and it's more-or-less unsolvable through technology...

But hey, check out my ICO - we have a "whitepaper"!


> Smart contracts are being suggested as the building block of "autonomous corporations"

By who? I'm not aware of any major developers suggesting this. As far as I can tell this is just a strawman promoted on HN. The Dao was a single instantiation of this sort of idea promoted by a small number of non-core developers - it doesn't define the idea of smart contracts.


Heavily promoted by the Ethereum Foundation principals, and by, oh look, Stephen Tual of slock.it. It's an idea that's been around a long time in the airy-fairy world of smart contract hypothesising.


Yep. The "oracle problem" is the crippling flaw (the main crippling flaw amongst a pile of others) in smart contracts.

As Matt Levine from Bloomberg put it:"My immutable unforgeable cryptographically secure blockchain record proving that I have 10,000 pounds of aluminum in a warehouse is not much use to a bank if I then smuggle the aluminum out of the warehouse through the back door."

Technology and business journalists writing about non- cryptocurrency use cases for smart contracts never seem to mention that their "trustless" system will still involve trusting humans wherever it touches the physical world. You may have a tamperproof system for running contract code, but the inputs have to come from outside this secure space.


Doesn't the commodities futures market pose have the same baseline issue? How is that managed? My layman understanding is that it's quite similar.

Disclaimer: I know almost nothing about commodities markets.


If third parties can't or won't settle accounts they can involve lawyers or regulators, the very people that some of the "code-as-contract" evangelists were arguing could be [largely] eliminated.

The point is that the blockchain makes little difference to a third party's ability to not honour most real goods and services contracts, and ascribing too much authority to its records can even reinforce their lie about paying you, because that's what the tamper proof record of the aluminium-filled warehouse says they did.


I've been thinking the same thing over the last few months...

I see all of these "prediction markets" and "gambling platforms" being launched and claiming that they are "fully autonomous".

Well where do they get the outcome information from? It must be from a person.

You cannot program a smart contract to know who has the most reliable sports scores or political information. AI does not exist yet.

If I bet that Hillary Clinton won the election, and she lost to Trump, what's stopping a hoard of Clinton supporters from voting (or tweeting or however the DAO collects their "data") that Clinton actually won the election and stealing my winnings?


By participating you're agreeing with whatever mechanism has been coded into the contract (which you can read for yourself). Obviously, you'd be stupid to participate in a contract that relies solely on twitter for resolution.

But, for sports scores the contract could be coded to check all three of espn.com, nfl.com and abcsports.com (just for example).

Same with the election results: usa.gov, cnn.com, foxnews.com, bbcnews.com

You make a valid point I think, but the examples you gave are pretty trivial. More complex ones are another matter.


Actually, it can't. In no existing blockchain-based smart contract system is contract code able to request random data from websites and act upon it. Websites as external sources are not deterministic, and determinism is necessary for the computations to result in the exact same result on any of the nodes that are part of the network in question. This also includes - and this is forgotten quite often - determinism across an eternal timespan! It can't matter when I want to recompute a certain contract transaction - it always has to return the same result.

The only known solution for these problems is to have an oracle inject the necessary "knowledge" into the blockchain itself and then have the smart contract code work with this data, that is then stored on the chain forever and thus makes everything deterministic again. But the oracles come with their own sets of problems, like them just being another "trust anchor" (and they're one that you can't validate the code of, since the oracles themselves by definition have to reside outside of the blockchain, it's just the data that ends up within it) or the giant pollution of the blockchain with data that they cause.

Even these very simple examples don't pass the reality check on close inspection.


this is actually incorrect you can verify a tls connection was made to a server and a particular output was given in that tls connection with oraclize it.


Which is just an implementation of precisely the oracle scheme I talked about. Introducing precisely the problems I mentioned: blockchain bloat, additional trust anchor which can never be 100% validated and thus destroys the idea of requiring zero trust in any particular individual person or system.


Extending the chain of trust down to the source of information isn't exactly going to happen at a snap of a finger. If you trust TLS and trust what the server gives you then today that is a fine option, the server is signing a piece of information and giving it to you, this is no different from you signing a transaction and publishing that transaction to bitcoin the trust ends in just the same way in each case with the caveat of 'value' being created from a web service. An attacker gains access to either the producer of the transaction (client code or web service) or the keys to sign the transaction (tls or bitcoin private key). That said I agree that modern web services could much more easily be made to give an incorrect response.

I don't think your argument applies any differently to other cryptography, it all looks like jumping through hoops for no guaranteed safety. If you believe that the only thing that matters is 100% safety then you are going to be very disappointed with computer security in general.


I don't see it as so black and white. Sure, zero trust is the ideal, but there are potentially benefits even there's some trust involved. For example, I saw a headline indicating that Unicef was going to experiment with block chain technology and asset management. Charity strikes me as particularly suitable domain since benefactors are understandably concerned about how their donations are being used and there's little need or even desire for secrecy. Block chain could provide an unparalleled degree of transparency and accountability even if the humans in control of the private keys ultimately need to be trusted. "Trust but verify" as Reagan said, and it would help a great deal with the latter if not the former.


Once you're willing to trust, you don't need the proof-of-work that makes blockchain blockchain though. A distributed append-only, log-structured, cryptographically verified is a great idea with plenty of practical applications; OTOH "mining" is an immense waste of energy to minimal benefit.


You may only need to trust some but not all actors in the system, so there may still be benefit in mining.


> You cannot program a smart contract to know who has the most reliable sports scores or political information.

You can't do that as a human, either. All you can really do is look at someone's record to see how their predictions have panned out historically. Given the right data sources, a program could do this no problem, and assign metrics to individual sports commentators as well as subsets of their consensus on any particular topic.

Given the nerdy propensity of the fantasy sports guys, there's no reason to assume this kind of data won't be available eventually.

As for politics, I'll agree with you there - neither human nor AI is going to be able to produce particularly reliable commentary any time soon!

> If I bet that Hillary Clinton won the election, and she lost to Trump, what's stopping a hoard of Clinton supporters from voting (or tweeting or however the DAO collects their "data") that Clinton actually won the election and stealing my winnings?

This is called a 'coup' when it happens IRL, and happen it does. The chief difference here is that in reality, pitchforks and torches are needed for these efforts; online it's a little bit physically safer.


It seems like you're talking about predictions, but the point of "reliable sports scores or political information" is about a trusted source about past/current facts.

People have no problem verifying the bet results of yesterday's game or last year's elections. However, making a blockchain that can't possibly be manipulated into thinking that Clinton won the election (no pitchforks needed, you're misleading a single automated system, not everyone else) is actually much harder than it seems - especially if the decisions are enforced by the system, final and irreversible and can't be overruled by courts if it's found to be fraudulent afterwards.


The value comes from a hybrid of blockchain contracts and legal contracts. The contracts that actually manage an asset would run on the blockchain, and the legal contracts would enforce the rights to that asset in the physical world. Managing the asset in the blockchain would avoid unnecessary fees, opacity, and cheating, and the legal contract binds the results to the real world.


Sounds very smooth but the assumption that lawyers, escrow service providers or anyone else would allow you to pay them less because you are using a new technology runs counter to my personal experience.


It's not a solution for everything. It would be used in cases where escrow and legal are not the major issue or cost.


Yep, the technological downsides of blockchains are so bad that the only market where it actually makes sense to use them is the illegal market because governments have a much harder time of controlling it.


>Anything meaningful basically has to interact with the real world through agents external to the contract

This is where people are betting to take a risk that the law will change to legalize and maybe even incorporate these contracts. Take a prenuptial agreement for example. Instead of having a lawyer, a smart contract could automatically split ether from an account into two addresses.

https://www.coindesk.com/prenup-ethereum-marriage-obligation...


Unless the smart contract doesn't split the funds, but directs them all to the husband, notwithstanding what the Wife believed the smart contract would do.

But yes, young families should convert all their assets to ETH and tie it up in their prenuptial smart contract until they divorce because lawyers suck.

But assuming the smart contract will actually split the amounts equally...how does the smart contract know when the parties marriage is dissolved? And money isn't the only thing involved in marriage, sometimes there are children, does the smart contract automatically split the children in half too or do we have to turn to the lawyers still?


Something in the real world still has to trigger the divorce condition in the contract. By the time all the legal documents of the divorce are finalized I don't see why a written prenup would be inadequate. Besides nobody is going to store all their assets in etherium. Even if they did how would the contract track future earnings to another account, etc? It's a completely impractical solution to a problem well-served by current means. Like pretty much every other example I've heard. On-chain gambling is the only thing of practical value that I've seen Etherium offer so far.


> Instead of having a lawyer, a smart contract could automatically split ether from an account into two addresses.

Ignoring the oracle problem, all this would take to work is the couple storing all their wealth in an asset that has an unknown (possibly negative) rate of return and unknown (possibly very low) liquidity.


> Instead of having a lawyer, a smart contract could automatically split ether from an account into two addresses.

Which would replace a prenup only with an oracle for the conditions (which can be more complicated than just divorce, but even divorce is an off-chain event requiring an oracle) and, even then, only if ETH were the only assets owned by the couple.


I tend to think of it as "the blockchain is a mostly read-only database, smart contracts are stored procedures that can read & write a small part of it".

The benefit over a regular database is that everyone gets to see what the data and stored procedures are, so you don't have to take someone elses word for that part.

Also, there's a built-in payment system, which is handy sometimes.

It doesn't solve interacting with the rest of the world, you still need an external system for that, just like with most databases.


One big benefit of crypto is you can't cook the books. So in markets where there is constant temptations for a human to say "I'm guarding he vault, why not fudge the numbers here a little and pay out my friends" those institutions will lose share to crypto.

The other market that intrigues me is autonomous AIs. I can imagine an AI that can more easily trust a smart contract than a human institution.

Essentially, you are right, but you're biased because you feel good in your network of human trust. Replacing that world with machines doesn't buy you anything because you'll still want to keep your human layer as the bottom line. But not everyone is so nestled in the bosom of modernity.

Also consider scale. Banks won't loan you $1000. It's not worth the time to do the math, and find an appraiser. But a crypto contract can do the math for free, and a network of appraisers would contain someone who can do really fast work on a tight schedule. Like, "show up at Highland Mall on Saturday afternoon, I will appraise 50 businesses in 3 hours".

That business model only works if you have infrastructure that takes care of everything else than the appraising, with much richer modeling than even banks use today.


Sure you can cook the books. It's called forking. The DAO hack never happened after the fork.


But unlike cooking the books forking is publicly auditable to anyone running a validating node.


That only works with immature small networks. A counter example would be Bitcoin Cash.


There is no shebang. I haven't found a decent use case for smart contracts either. I'm no hawk but "coin" seems less than fiat to me.


This whole "disruption of silicon valley" from a financing perspective is pretty compelling no?

Even it smart contracts on ethereum are used for nothing other than the facilitation crowdfunding coin offerings, it would still have "shebang".


I can agree with you on the fact that ICOs have been the first actual "killer application" for Ethereum. But they only work because they're based on another lie.

People buy into these ICOs because they get tokens that they assume to increase in value. It's basically a "get rich quick" scheme. It worked an astounding number of times, and once people caught up on that, the value of Ether started to skyrocket as everyone and their grandmothers wanted to have a piece of the cake.

Why did the tokens increase in value? Because enough people believed in the "visions" of the startups behind the ICOs, which usually weave some story about future utility of the specific token into their business case precisely to make people think that these tokens will one day be more than just a speculation object. Once enough people believed that, the tokens became extremely good speculation objects, as they were growing in value, and that made people get rich quick, which made Ether skyrocket, which made more people get rich quick. See last paragraph. But the important takeaway is: you need that perceived utility value to kickstart this entire sequence of events!

Okay, so why are the tokens supposed to have any utility value besides being speculation objects? Because the startups have business models centered around Ethereum and smart contracts and of course utilizing their token that they intend to grow into a real business. If you now assume - just as you yourself have stipulated - that smart contracts on Ethereum are used for nothing other than the facilitation of crowdfunding coin offerings, this means that any other business model is assumed to fail. This in turn means that all those tokens have no utility value whatsoever. This in turn means that they eventually lose their speculative value, which is based on people believing in them one day having utility value. It will probably take a while, since beliefs can be strong and masses of people tend to be dumb, but eventually it will happen. This in turn means that crowdsourcing yet another useless and worthless token won't work, since why should anybody invest anything into it? And this finally ruins the nice killer application of crowdfunding via ICOs.


It's much more than "do anything", closer to "do anything I would normally have to get a team to do for me".

Think of a blockchain a OSS Visa like payment network where you and anyone else can build their own apps, be it something as trivial as a multi-sig or a token exchange, for instance. From this angle, I think it makes more sense to investigate Ethereum and smart contracts in general.

Regarding accessing external data, that is done via oracles and is a well researched topic with some notable implementations (Oraclize, Town Crier, etc), but I'd venture that the most common way to integrate a web3 with web2 is and will be at a middleware level, not directly on a smart contract.


Well, they could automate much of the financial side of a corporation and make many accountants obsolete.

They make up a big part of many corporations that costs much money but doesn't bring any benefits to the products.

They do work that I'd deem difficult, but that would also lend itself to automation with smart contracts very well.


"Why would we use this new technology when the current stuff works just fine?"

I feel like this song and dance precedes all major shifts in technology.


It does. But it also precedes the failure of most technologies.


why you care about that, just buy some ethers, Vitalik will do his magic and soon we will all be driving lambos

(sarcasm)


> Instead, we seek to design a system whereby computation can occur off-blockchain but ultimately enforcible on-chain

This seems to be the direction that blockchain and smart contract tech needs to go if it aims to be scalable. Conduct the vast majority of your business off-chain, and resort to the blockchain in the event of a dispute.

Kind of like how two parties in a business relationship will generally act on good faith, but may choose the nuclear option of legally enforcing a contract if the relationship sours.


As far as I can see, a billion tx/s blockchain can never work if the P2P network is sufficiently large.

Imagine a 10,000-node network, where each node has to handle 1 billion messages per second. Firstly, if we assume a single VM can handle 1 million messages per second, it would require that each node rent ~1000 VMs (for a total of 10 million VMs for the entire P2P network), which they obviously can’t do without compensation. And if you introduce compensation, you need to pay the same fee to each node, which makes it inherently 10,000 times as expensive as a centralized network.

So the question is not whether it’s possible, the question is whether it’s worth it: in how many cases would a user prefer a system that’s 10,000 times cheaper, albeit requiring some trust?

Merchants all over the world are willing to accept VISA credit in exchange for goods and services, but they could — in theory — demand trustless payments in the form of international bank transfers, which are less than 10,000 times as expensive as a VISA transaction.


Plasma is not for payments. It is a counterpart of Lightning Network, but for code. With LN you can do a lot of extremely cheap payments. With Plasma you can do the same for arbitrarily complicated code. Idea is - take some tokens to domain specific plasma chain, do your interaction with possibly byzantine actors, settle on parent chain when you are done.

Today even timestamping is expensive in decentralized world. Plasma actually allows you to do that cheaply.


> With LN you can do a lot of extremely cheap payments.

The cost of transactions on a Lightning Network has yet to be determined, because no working LN (with merchants accepting payments) exists yet. We all agree than LN is pretty fast, but the ultimate test is cost per transaction.

Allow me to remind you that if you want to send 1 BTC through 10 LN nodes, each of these 10 LN nodes need to bind 1 BTC in a payment channel (totaling 10 BTC in capital costs to transfer 1 BTC). And if just a single of these channels/hops are exhausted, and thus need to touch the blockchain, the LN payment is no cheaper than an on-blockchain one.


Right, LN nodes will eventually become big speciallized hubs, with great BTC capacity to attend as many channels as possible. Each channel is a source of revenue for the LN node, so LN nodes will try to become as big as possible (both technically and BTC-wise) to cope with greater audience.

Think that in a LN-node the profit will be proportional to capacity of open channels, so its very probable that we will see very-big-BTC-LN-nodes appear to serve demand

The reputation of LN-nodes will play a very important to the users (as it already happens with BTC exchanges - do you use a unknown-fishy-exchange or do you use a big-known-stable-exchange ?), and so that will incentivize LN-nodes to avoid/solve problems with channels to avoid teardown-to-the-blockchain (which as you mentioned, is abnoxious to the user for its fee and lock-time)


Let’s imagine an LN network with 1,000 payers all connecting to one, single LN hub, which routes all payments to a single payee (merchant).

How will the on-blockchain settlement transaction look like? It needs to redeem all 1,000 outputs provided by the payers, because each payer creates a new output when it funds a channel, which creates a huge settlement transaction (1,000 inputs) with a correspondingly huge fee.

How does LN get around this issue?


A channel is committed to using one unspent transaction output (UTXO), settling it consumes only that UTXO and all of the other channels a given party might have are completely unrelated.

What is the use of the hub? You can just connect the merchant directly, even if you are just an occasional customer. You don't need the entire blockchain to use LN, so more users will be running Lightning nodes than Bitcoin nodes.

If you have an intermediary node (you call it a hub), there is no requirement for it to close its channel with the merchant, once you close your channel with that intermediary node.

Credits: Yoghurt on Bitcoin Core Slack


> If you have an intermediary node (you call it a hub), there is no requirement for it to close its channel with the merchant, once you close your channel with that intermediary node.

As far as I can see, merchants receiving payments over payment channels is unrealistic, because it requires:

1) the merchant to predict what its revenue will be this week/month

2) the merchant (or someone else) to lock up this entire amount for the revenue period (week/month)

So, if a merchant wants to receive payments over a payment channel, the effective supply of BTC is halved, because 1 BTC needs to be deposited in the merchant’s payment channel for every 1 BTC a customer sends.

Most merchants simply don’t have that kind of capital and, even if they did, they wouldn’t be able to compete on price with other merchants who don’t demand trustless payments (merchants receiving payments over payment channels need to adjust their prices to account for the fact that they need to borrow a week/month’s worth of revenue, and have it sit idle in a payment channel). It’s very poor use of a scarce resource (bitcoins).


Who says the merchant needs to do that work? Specialized companies run like exchanges (or payment networks) could run the nodes on behalf of the merchants, much like bitpay does today. Of course, then you're just back where you started, with a banking institution controlling payments. But perhaps it would be more decentralized than four big payment companies, and that could be a step in the right direction.


It’s not about work. Borrowing money isn’t time-consuming. It’s about the cost of capital, and the inefficiency of requiring a scarce resource to be locked up with no other purpose than lowering the risk of losing a week’s revenue from 0.1% to zero.


Why do you think the merchant needs to lock up funds? If his exchange supports Lightning, the merchant would never need to worry about the fact that transactions won't hit the blockchain (if nobody is cheating or losing connectivity).


Sharding intents to solve this by splitting the billion messages into a 1000 (or more) smaller problem space. Thusly only requiring 1 VM per node. (tho you need more nodes for equivalent security)


Maybe my imagination is too limited, but I fail to see how sharding is any different from just reducing the number of nodes in the P2P network.


Because Sharding also lessens the load on each individual node. A single node does not need to process everything


Let’s say we have 1,000 nodes in a network that does 1,000 transactions per second.

If we shard the data, such that each node only needs to process 10 transactions per second — while trusting the remaining nodes on the other 990 transactions — how is this different from just reducing the number of nodes to 10, and having each node process all 1,000 transactions?

In both cases the entire network only needs to process 10,000 transactions per second, and in both cases the network breaks down if 10 or more nodes collude.


Because in the sharded example, only the shard suffers a break down, not the entire network, if the nodes collude. It also allows people to run smaller nodes on cheap hardware, this increasing the potential number of nodes in the network.


What’s the effect of a single shard breaking down? How many shards need to break down before it causes a problem?


Well the breakdown of a share has differing effects depending on the consensus rules, same for the entire network. I can't answer that unless you specify which consensus we are talking about.


There are already ETH based projects that are trying to take this one, like this one https://www.agrello.org/

Looking forward to seeing results


It says "US Citizen cannot be registered"


Probably because of the SEC warnings on ICOs


Did anyone read the paper? I tried to, and it's a mess. There isn't nearly enough technical detail there to actually implement this system, and the incentives are so complex that game theory experts could be analyzing it for decades without finding all the potential issues. This is nothing like the Bitcoin white paper, which was very clear and complete.

Vitalik has created Ethereum of course, and he's not asking for investment, so this is better than your garden variety ICO scam. But right now this is more of a wishlist of desired features than a roadmap to implementation.


Yeah, I was struggling to understand the implementation details also.

Given: "Draft is in-progress and may be frequently updated in the next week(s)." I'll give them the benefit of the doubt, and just look forward to it getting more specific.


Why is there never a shred of evidence in these blockchain-related papers? It all sounds like a cool idea, so why not test it and run the numbers?


Because it takes too long, and everybody wants to get rich quick (or while they try to implement their idea).

Also, on bitcointalk it seems all you need is a whitepaper and a great(!) team (of 1 developer and hundred marketing strategists, financial directors and whatnot.)


"Perhaps I've been wrong. Perhaps cryptographically-secured smart contracts have uses and are powerful. Perhaps the scalability challenge can be met with MapReducable computations committed into merkle proofs. Perhaps enforced execution of smart contracts are potentially scalable to billions of state updates per second. ....... Nahhh!"

- Medieval barber, Theodoric of York


Plasma is already the name of KDE's desktop interface. Reusing the name of an already known project is confusing.


And before KDE, plasma was already the name of a state of matter. It wasn't confusing to reuse it for KDE's interface because the context makes it clear. Same here.


Finding a good name is hard, especially if you want a single word. Going with "Plasma Contacts" or something similar would easily remove the ambiguity.


Yeah, I just click thinking that was something about KDE. Bad feeling give mes, someone that "steals" some popular opensource name for his business.


Yeah it really sucks when people do that. Glad it's not very often.

https://duckduckgo.com/?q=plasma+company


Using basic/common 6 letter words is not any sort of theft.


Is there a resource/tutorial so that I can learn how to implement Plasma? Apparently Omise GO has already implementing it. There should be an open source project that shows Plasma's implementation.


Community at HN does not like Wolfram; on the issue of Oracles/Human input @ cryptosystems, he is spot on on the solution as he has had first hand experience with Wolfram|Alpha being used as an oracle by smart contracts (the whole post is amazing btw):

http://blog.stephenwolfram.com/2016/10/computational-law-sym...

And so it is with bitcoin, Ethereum, etc. The idea is that some particular thing that happened (“X paid Y such-and-such” or whatever) is shared and recorded in so many places that there can’t be any doubt about it. Yes, it’s in principle possible that all the few thousand places that actually participate in something like bitcoin today could collude to give a fake result. But the idea is that it’s like with gas molecules in a room: the probability is inconceivably small. (As it happens, my Principle of Computational Equivalence suggests that there’s more than an analogy with the gas molecules, and that actually the underlying principles at work are basically exactly the same. And, yes, there are lots of interesting technical details about the operation of distributed blockchain ledgers, distributed consensus protocols, etc., but I’m not going to get into them here.) It’s popular these days to talk about “smart contracts”. When I’ve been talking about “computational contracts” I mean contracts that can be expressed computationally. But by “smart contracts” people usually mean contracts that can both be expressed computationally and execute automatically. Most often the idea is to set up a smart contract in a distributed computation environment like Ethereum, and then to have the code in the contract evaluate based on inputs from the computation environment. Sometimes the input is intrinsic—like the passage of time (who could possibly tamper with the clock of the whole internet?), or physically generated random numbers. And in cases like this, one has fairly pure smart contracts, say for paying subscriptions, or for running distributed lotteries. But more often there has to be some input from the outside—from something that happens in the world. Sometimes one just needs public information: the price of a stock, the temperature at a weather station, or a seismic event like a nuclear explosion. But somehow the smart contract needs access to an “oracle” that can give it this information. And conveniently enough, there is one good such oracle available in the world: Wolfram|Alpha. And indeed Wolfram|Alpha is becoming widely used as an oracle for smart contracts. (Yes, our general public terms of service say you currently just shouldn’t rely on Wolfram|Alpha for anything you consider critical—though hopefully soon those terms of service will get more sophisticated, and computational.) But what about non-public information from the outside world? The current thinking for smart contracts tends to be that one has to get humans in the loop to verify the information: that in effect one has to have a jury (or a democracy) to decide whether something is true. But is that really the best one can do? I tend to suspect there’s another path, that’s like using machine learning to inject human-like judgment into things. Yes, one can use people, with all their inscrutable and hard-to-systematically-influence behavior. But what if one replaces those people in effect by AIs—or even a collection of today’s machine-learning systems? One can think of a machine-learning system as being a bit like a cryptosystem. To attack it and spoof its input one has to do something like inverting how it works. Well, given a single machine-learning system there’s a certain effort needed to achieve this. But if one has a whole collection of sufficiently independent systems, the effort goes up. It won’t be good enough just to change a few parameters in the system. But if one just goes out into the computational universe and picks systems at random then I think one can expect to have the same kind of independence as by having different people. (To be fair, I don’t yet quite know how to apply the mining of the computational universe that I’ve done for programs like cellular automata to the case of systems like neural nets.) There’s another point as well: if one has a sufficiently dense net of sensors in the world, then it becomes increasingly easy to be sure about what’s happened. If there’s just one motion sensor in a room, it might be easy to cover it. And maybe even if there are several sensors, it’s still possible to avoid them, Mission Impossible-style. But if there are enough sensors, then by synthesizing information from them one can inevitably build up an understanding of what actually happened. In effect, one has a model of how the world works, and with enough sensors one can validate that the model is correct. It’s not surprising, but it always helps to have redundancy. More nodes to ensure the computation isn’t tampered with. More machine-learning algorithms to make sure they aren’t spoofed. More sensors to make sure they’re not fooled. But in the end, there has to be something that says what should happen—what the contract is. And the contract has to be expressed in some language in which there are definite concepts. So somehow from the various redundant systems one has in the world, one has to make a definite conclusion—one has to turn the world into something symbolic, on which the contract can operate.


So we basically have to put our faith and trust into machines that by doing computational expensive operations just for the sake of making them hard to break, will trade wasting a lot of energy for a little more trust.

The point is always "make it hard so it will be too expensive to crack it". but what if some country (or group of countries) really try to temper with the clock of the internet? Are we sure the won't succed and make all of us use it?

If consensus is only established by powerful AIs, the ones with the most powerful AIs are creating the truth.


TL/DR version: AI to the rescue!

If there's one thing I really hate about all this machine-learning/AI scene it is this "Have a seemingly unsolvable problem? Don't worry, just let an AI that you don't understand and can't debug fix it for you!" silver-bullet mentality.


Blockchain mentioned. Please explain me how it would ever work in the long run, if it scales extremely badly ?


The whole point of this is to move computation off the main chain and enable it to scale better.


The emperor has no clothes, or at very best is parading around the street in a loincloth made up of cryptocurrency whitepapers.


Please don't post unsubstantively about flamewar topics? This leads to generic flamewar tangents, the worst kind of subthread.

We detached this subthread from https://news.ycombinator.com/item?id=14976350 and marked it off-topic.


I'm very glad to see this is being recognized more and more. Technically strong people can see it, but there are legions of ethereum fans who cannot.


Why does every crypto thread have these vacuous comments? Normally adding a "I agree" comment is met with "use the arrow".

Maybe we could come up with a "HN law of crypto" that states all articles must be met with "paper money works just fine" or "just another tulip scheme".

It seems asking for constructive criticism is out of the question due to the ideological motivations behind the criticisms.


I think it's because it is both hard to understand and hard to explain cryptocurrencies at the moment. It's like discussing email or social networks based on papers and ideas without really ever having seen it in action. We tend to get a bit aggressive or impatient when we find it hard to explain something.

Also, crypto skeptics realise that the crypto fans literally have money at stake so they are not unbiased. Maybe crypto skeptics are also a bit worried that perhaps there is something they didn't get. Perhaps they miss out on the next big thing.


"Crypto" isn't binary. There's a gold nugget in there somewhere buried under a literal mountain of (occasionally willful) disinformation, flimsy whitepapers and opportunistic ICOs that can best be described as Ponzi schemes. Spend any amount of time on bitcointalk or any of the altcoin subreddits to see what I'm talking about.

That - IMO - is what "crypto skeptics" are actually skeptical of.


Bingo. 98% of "crypto" is, basically, Pets.com (or worse) right now. Cryptocurrency is really, really useful for some things, just as the web is. On the other hand, there's an awful lot that simply doesn't make any sense - even ignoring the fact that many crypto advocates seem to have no idea how people work or what the constraints of any given problem are[0], a lot of it is technically and economically unsound.

[0] See also the "put voting on the blockchain and give everybody an identifying number to verify their vote" people who seem to have absolutely no idea why we have a secret ballot.


"The internet will never work because Pets.com is stupid" - would be a perfectly valid position to hold after the dot com bust. But those unable to separate HTTP from Pets.com are the real suckers. I guess that's why some people get rich and others sit on their hands and complain.


> "The internet will never work because Pets.com is stupid" - would be a perfectly valid position to hold after the dot com bust.

No it wouldn't

> I guess that's why some people get rich and others sit on their hands and complain.

I honestly don't know what your point is. There's a lot to criticize in the crypto space right now. There's also a lot of money to be made. Those aren't in any way mutually exclusive.


> I honestly don't know what your point is

I think you do. It was the sentence before the one you quoted


> But those unable to separate HTTP from Pets.com are the real suckers.

Ok. That's a bit contrived but is easy enough to agree with.

> I think you do.

Are we aggressively agreeing?


> Maybe crypto skeptics are also a bit worried that perhaps there is something they didn't get.

It's Econ 101 they don't get. It's the origin of money they don't get. With every tulip argument it becomes painfully obvious that "progressives" are economically illiterate. They talk about supply and demand they way conservatives talk about global warming being "only a theory". This Cryptophobia (let the record show I coined the term :P ) is not technologically rooted.

The only thing I want is for productive conversation to occur - but from a technical aspect. Maybe there could be a tab where people argue from an ideological perspective. But the reason I'm frustrated is that literally every crypto thread has the same comments.

Let's just all admit we're not going to convert anyone, and if you don't have constructive inputs to the technology then reconsider commenting.


You think it's a tulip scheme?

With the way technology is going it would seem everything would be connected to the web and this idea of decentralized apps that require crypto, I'd like to be in on that... the "millionaires" that came about from bitcoin, that's nice but are you saying the tulip scheme is going to be the end result of crypto?

I'm asking because I don't know. I'm buying it solely for FOMO


It's my right to be stupid


Please don't do this here.

We detached this subthread from https://news.ycombinator.com/item?id=14977061 and marked it off-topic.


Not according to the SEC.


It's a self correcting mechanism evolution.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: