
Plasma: Scalable Autonomous Smart Contracts - hackerews
https://www.plasma.io
======
contingencies
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.

~~~
AlwaysBCoding
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.

~~~
mrep
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.

~~~
darawk
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.

~~~
mrep
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.

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

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

~~~
darawk
Proof of stake is implemented in tons of coins already.

------
hyper_reality
> 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.

------
runeks
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.

~~~
pepesza
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.

~~~
runeks
> 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.

~~~
timeout27
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)

~~~
runeks
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?

~~~
iso-8859-1
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

~~~
runeks
> 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).

~~~
chatmasta
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.

~~~
runeks
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.

~~~
iso-8859-1
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).

------
buf
There are already ETH based projects that are trying to take this one, like
this one [https://www.agrello.org/](https://www.agrello.org/)

Looking forward to seeing results

~~~
whatnotests
It says "US Citizen cannot be registered"

~~~
amingilani
Probably because of the SEC warnings on ICOs

------
modeless
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.

~~~
state
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.

------
sktrdie
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?

~~~
imafish
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.)

------
jamespitts
"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

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

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

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

[https://duckduckgo.com/?q=plasma+company](https://duckduckgo.com/?q=plasma+company)

------
afeezaziz
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.

------
ntemiann
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...](http://blog.stephenwolfram.com/2016/10/computational-law-symbolic-
discourse-and-the-ai-constitution/)

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.

~~~
walterstucco
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.

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

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

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

~~~
rothbardrand
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.

~~~
smokeyj
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.

~~~
flexie
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.

~~~
doktrin
"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.

~~~
smokeyj
"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.

~~~
doktrin
> "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.

~~~
smokeyj
> I honestly don't know what your point is

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

~~~
doktrin
> 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?

------
ge96
It's my right to be stupid

~~~
runeks
Not according to the SEC.

~~~
ge96
It's a self correcting mechanism evolution.

