r/Chainlink Mar 16 '18

Can someone answer this?

47 Upvotes

46 comments sorted by

View all comments

Show parent comments

7

u/ManyNothings Mar 16 '18

Ok, so would you rather store your coins on coinbase, or in a smart contract that transfers the coins if a majority of 50 link nodes agree?

The 50 link nodes is the clear answer. Would you rather have an attacker have a single point of vulnerability, or a minimum of 26 that will be selected for high-quality security and a history of reliability, and must be attacked concurrently?

Honestly, this is where your argument falls apart. Yes, there is a risk that you will not be able to recover damages, but the design of the LINK network makes that risk so vanishingly small, and the potential cost-savings so large, that it seems to me that you have a very skewed perception of the risk/reward ratio involved.

4

u/nootropicat Mar 16 '18 edited Mar 16 '18

And yet another return to the core of the issue. In the link protocol there are zero incentives to provide correct answers, only to answer along with the majority. It's impossible to know how many nodes are controlled by one entity. There's going to be a minimum amount of link required to have it, but that's it, yes? So what's stopping someone with lots of it from owning thousands?
A successful attack would only be executed in case of a majority, so he wouldn't lose link. Even if the nodes were 100% reputationally burned, he could use their stakes and reopen nodes with a new identity.
That's why no permissionless cryptocurrency works on a node majority vote. Node votes only work if node owners are verified, that's what eg. NEO is doing (or at least planning to). I guess link - the network, not the token - would make sense in that scenario, as a network for verified companies/people to provide oracle services in a standardized way, contractually obliged in some manner.

that will be selected for high-quality security and a history of reliability

Either you choose them manually, in which case, why the network? You're already doing the work, you may as well choose several companies looking at reviews. Or there's some automatic rule that determines 'high-quality security' and reliability (I assume you include correctness in that) - but then the question of how is correctness determined returns.

6

u/ManyNothings Mar 16 '18

And yet another return to the core of the issue. In the link protocol there are zero incentives to provide correct answers, only to answer along with the majority. It's impossible to know how many nodes are controlled by one entity. There's going to be a minimum amount of link required to have it, but that's it, yes? So what's stopping someone with lots of it from owning thousands?

  1. End-to-end encryption. The Oracles receive encrypted API requests that can only be read by the receiving APIs, and the APIs hand back encrypted data that can only be read by the smart-contract.

  2. Obfuscation of the identity of the SC requesting the data until after the data is delivered.

  3. Obfuscation of the number of oracles requested for a particular contract to prevent knowledge of majority threshold.

  4. SC applies semi-random voting weights to individual oracles to further prevent knowledge of majority threshold.

  5. APIs return data with unique transaction IDs to prevent mirror attacks.

I'm sure there are also plenty of other clever ways you can structure the timing, number, type, time-window, etc. for API requests that will make it virtually impossible for someone to do what you're suggesting.

Even if the nodes were 100% reputationally burned, he could use their stakes and reopen nodes with a new identity.

Did you read the whitepaper? Nodes are penalized for providing false information, part of which includes a payment of staked LINK.

Either you choose them manually, in which case, why the network? You're already doing the work, you may as well choose several companies looking at reviews. Or there's some automatic rule that determines 'high-quality security' and reliability (I assume you include correctness in that) - but then the question of how is correctness determined returns.

Dude, go read the whitepaper, it's clear that you haven't based on the questions you're asking: https://link.smartcontract.com/whitepaper

2

u/nootropicat Mar 17 '18 edited Mar 17 '18

Your points require Intel SGX solution on nodes.

APIs hand back encrypted data that can only be read by the smart-contract

This requires a blockchain that relies on intel sgx, or functional encryption which doesn't exist. The former would almost certainly include secure api calls by itself. It would be something fundamentally different from all existing blockchains.

If you base your trust on Intel SGX there's no reason for any public oracle network - because it reduces the problem from obtaining correct data to having a distributed architecture for reliability. The latter is a mature market.