All Projects → TrueBitFoundation → Scrypt Interactive

TrueBitFoundation / Scrypt Interactive

Licence: mit
[DEPRECATED] Truebit Verification for Scrypt

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Scrypt Interactive

Ed25519 Dalek
Fast and efficient ed25519 signing and verification in Rust.
Stars: ✭ 383 (+714.89%)
Mutual labels:  verification
Coiniumserv
Next-gen crypto currency mining pool software
Stars: ✭ 651 (+1285.11%)
Mutual labels:  scrypt
Trumail
✉️ ✅ A Fast and Free Email Verification API written in Go
Stars: ✭ 937 (+1893.62%)
Mutual labels:  verification
Vunit
VUnit is a unit testing framework for VHDL/SystemVerilog
Stars: ✭ 438 (+831.91%)
Mutual labels:  verification
F License
Open Source License Key Generation and Verification Tool written in Go
Stars: ✭ 535 (+1038.3%)
Mutual labels:  verification
Cocotb
cocotb, a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python
Stars: ✭ 740 (+1474.47%)
Mutual labels:  verification
Certigrad
Bug-free machine learning on stochastic computation graphs
Stars: ✭ 366 (+678.72%)
Mutual labels:  verification
Gesture recognition
a gesture recognition verification lock
Stars: ✭ 37 (-21.28%)
Mutual labels:  verification
Pact broker
Enables your consumer driven contracts workflow
Stars: ✭ 540 (+1048.94%)
Mutual labels:  verification
Rn Countdown
⏰ 纯 JavaScript 实现的针对 React Native App 的倒计时组件。
Stars: ✭ 19 (-59.57%)
Mutual labels:  verification
Upash
🔒Unified API for password hashing algorithms
Stars: ✭ 484 (+929.79%)
Mutual labels:  verification
Cosette
Cosette is an automated SQL solver.
Stars: ✭ 533 (+1034.04%)
Mutual labels:  verification
Smsverifycatcher
Android library for phone number verification feature in your app. Automatically copies verification code from SMS right into the app. Made by Stfalcon
Stars: ✭ 788 (+1576.6%)
Mutual labels:  verification
Mockk
mocking library for Kotlin
Stars: ✭ 4,214 (+8865.96%)
Mutual labels:  verification
Liquidhaskell
Liquid Types For Haskell
Stars: ✭ 863 (+1736.17%)
Mutual labels:  verification
Validate
⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。
Stars: ✭ 378 (+704.26%)
Mutual labels:  verification
Age
A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
Stars: ✭ 9,409 (+19919.15%)
Mutual labels:  scrypt
Owasp Masvs
The Mobile Application Security Verification Standard (MASVS) is a standard for mobile app security.
Stars: ✭ 1,030 (+2091.49%)
Mutual labels:  verification
Rverify.js
✅❎ A lightweight image rotation verification plugin.
Stars: ✭ 33 (-29.79%)
Mutual labels:  verification
Rage
A simple, secure and modern encryption tool (and Rust library) with small explicit keys, no config options, and UNIX-style composability.
Stars: ✭ 826 (+1657.45%)
Mutual labels:  scrypt

Truebit Verification for Scrypt.

Overview

This repo provides a proof-of-concept implementation of the Truebit smart contract system.

It enables a step-by-step running and verification of the Scrypt hashing function on the EVM.

This can form the basis of a Dogecoin/Ethereum relay. Dogecoin uses Scrypt for its Proof-of-Work algorithm, specifically to calculate the block hash. Therefore, an ability to compute Scrypt hashes is required in order to verify the validity of Dogecoin transactions, as it allows one to check Merkle proofs from a known block header. This computation is too large given Ethereum's gas constraints, making it an ideal use case for Truebit.

For more context on how relays work, look at the BTCRelay project.

Protocol Schematic

The client relies on a local Parity instance to execute the ScryptRunner contract and compute state roots. These calls do not write to the blockchain, and conveniently, the Parity client does not trigger a timeout for long-running EVM operations.

The rest of the contracts can be deployed on any chain (currently ganache for local development, Rinkeby for staging, and mainnet for production).

There are 2 actors in the system:

  1. The Claimant:
    • submits doge block headers to the DogeRelay contract.
    • must also defend their block headers in the event of a challenge.
  2. The Verifier:
    • monitors the Truebit contract and challenges incorrect claims.

The address for the contracts as deployed on Rinkeby are in the .env file.

Running the client

The client software is open-source and available in this repo.

Follow these directions to setup the client.

Use the CLI tool to interact with the client:

# check the status
npm start status

# manage your deposits
npm start deposit <amout_in_ether>
npm start withdraw <amout_in_ether>

# monitor the system as a Verifier.
# note: you must have the required amount of eth deposited to stake per claim you want to challenge;
# otherwise, it won't be able to do anything but watch.
npm start monitor --auto-challenge

# submit a claim as a Claimant.
# note: you must defend your claim (scrypt hash and plaintext payload) against challenges. 
# note: you must have the required amount of eth deposited to stake.
npm start claim <input> <hash> <proposalID>

Running the tests

First, install the needed dependencies as described in the setup docs.

Running the tests involves

  1. Running ganache npm run ganache
  2. Running parity npm run parity
  3. Running the tests npm run test

We also have a convenient test.sh script that does all that for you.

./bin/test.sh

Deploying the contracts

To deploy the contracts to your favorite chain:

# first:
# update the .env file.

# then
npm run migrate:rinkeby  # or target another chain.

# then
# update the resulting contract addresses in .env

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].