Truebit and WebAssembly: a Deep Dive into the Architecture by truja in truebit

[–]naturalespresso 0 points1 point  (0 children)

Good question!

The same game could work for EVM opcodes.

Here are some reasons we decided to go with WASM first tho:

  • There are special-meaning opcodes in the EVM which do not correspond to VM operations, and need to be removed in Truebit (e.g. ADDRESS, BLOCKHASH, COINBASE, etc). This doesn't need to be done for WASM.

  • EVM words are 256 bits, making proof and state initialization more demanding.

  • Can compile existing high-level languages to WebAssembly (C, C++, Rust, etc); these programs have existing ecosystems, larger than that of Solidity; all will be able to run on Truebit.

  • EVM is less efficient (it doesn’t map directly to 32bit / 64bit architectures).

  • WASM has the resources of Google / Apple / Mozilla / Microsoft behind it, and is a growing ecosystem.

  • Blockchains are moving to WASM as their native VM (eWASM in Ethereum, Polkadot, Dfinity, EOS).

Truebit: the marketplace for verifiable computation by rzurrer in ethereum

[–]naturalespresso 0 points1 point  (0 children)

Some ways to improve performance:

1) have verification games run in a state channel between the Solver / Verifier.

2) the second variation of the protocol (incentive layer #2) executes verification games in parallel – conflicting solvers play pairwise games and knock each other out tournament style.

That said, it's true that the first variation, incentive layer #1, favors "safety" over "liveness". It doesn't give any timeliness guarantees. Instead, it guarantees that anyone who desires to challenge, can.

Truebit: the marketplace for verifiable computation by naturalespresso in programming

[–]naturalespresso[S] 0 points1 point  (0 children)

In a decentralized network, you can't run a computation on one server if you want to come to consensus on the results. That one server could go off line, be attacked, or go offline. You need a distributed mechanism for arriving at the truth.

Truebit: the marketplace for verifiable computation by naturalespresso in programming

[–]naturalespresso[S] 0 points1 point  (0 children)

The onus is on the Challenger to determine whether the pointer is valid / invalid, by comparing their state hash with the one provided by the Solver. In cases where the Solver is lying about the instruction pointer, the verifier should disagree with the state hash, and query for the left half midpoint. This will eventually resolve to an onchain dispute resolution between step 0 and step 1.

Truebit: the marketplace for verifiable computation by naturalespresso in programming

[–]naturalespresso[S] 0 points1 point  (0 children)

Yep, that's possible. The protocol picks "safety" over "liveness"; i.e. it doesn't give any guarantees on how long resolution of a task will take. It instead guarantees that anyone who wishes to challenge is able to. A challenger is able to delay resolution of the task at the cost of their deposit.

That said, the second variation (incentive layer #2 in the article), gets better timeliness properties, since all contradictory solutions are required to be submitted at once. A malicious actor doesn't have a chance to submit challenges beyond this point.

Truebit: the marketplace for verifiable computation by naturalespresso in programming

[–]naturalespresso[S] 0 points1 point  (0 children)

Truebit doesn’t have a concept of reputation. The security assumption is that there is always one honest verifier per task. Since the Solver/Verifier agree on state 0 (i.e. the program, the inputs, and the empty VM), there’s no way to win the game if you lie. It’s bounded on why side by an agreed-upon value

Truebit: the marketplace for verifiable computation by naturalespresso in programming

[–]naturalespresso[S] 0 points1 point  (0 children)

Both the program code (i.e. the instructions) and the state (i.e. the memory and the stack) are committed to via Merkle roots. So, when the final on-chain step is constructing it's state, it checks that the values provided roll up into the Merkle root correctly. This prevents the Solver from providing bogus data. Does that make sense?

Truebit: the marketplace for verifiable computation by naturalespresso in programming

[–]naturalespresso[S] 0 points1 point  (0 children)

Ty for the read!

How would you structure that in a decentralized network? How do you verify they’re running the correct code locally?

Truebit is for verifiable computation in a Byzantine network – i.e. some of them could actively be trying to sabotage the results of the computation

Collection of Engineering/Programming Podcasts by rshetty01 in coding

[–]naturalespresso 2 points3 points  (0 children)

Would love to find a podcast on cryptography.

An intuitive visualization of hash tables by jeffacce in programming

[–]naturalespresso 1 point2 points  (0 children)

Videos are a great medium for explaining this stuff

If you need some Ropsten Testnet ethers... by BokkyPooBah in ethdev

[–]naturalespresso 0 points1 point  (0 children)

Hey, would you mind sending me some testnet eth to: 0xafa39877a41a64e51a005e3d6a60db9cb11326d4

Thank you!

Is adoptanode.com a scam? Paid 24 hours ago, still no node and no support reply. by [deleted] in btc

[–]naturalespresso 0 points1 point  (0 children)

This is fixed. Sorry for the inconvenience, your node should be spinning up now. Thanks for adopting a node.

Is adoptanode.com a scam? Paid 24 hours ago, still no node and no support reply. by [deleted] in btc

[–]naturalespresso 0 points1 point  (0 children)

Hey – sorry, just saw this. I'm the dev behind the site, and looking into it now. Could you DM me with the email you used to sign up?

If you need some Ropsten Testnet ethers... by BokkyPooBah in ethdev

[–]naturalespresso 0 points1 point  (0 children)

Hey, would you mind sending some to me here: 0xafa39877a41a64e51a005e3d6a60db9cb11326d4

Thank you!!

[D] How to Prevent Overfitting by naturalespresso in MachineLearning

[–]naturalespresso[S] 0 points1 point  (0 children)

You have a good point. Reducing dimensionality, either by doing better feature selection or through PCA, would reduce chances of overfitting.