基于区块链的毕业设计Smash Avax – 粉碎阿瓦克斯

本文提供基于区块链的毕业设计国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,基于区块链的毕业设计Smash Avax – 粉碎阿瓦克斯 是一篇很好的国外资料

Smash Avax

Smash Avax is a non-custodial Ethereum and ERC20 privacy solution based on zkSNARKs. It improves transaction privacy by breaking the on-chain link between the recipient and destination addresses. It uses a smart contract that accepts ETH deposits that can be withdrawn by a different address. Whenever ETH is withdrawn by the new address, there is no way to link the withdrawal to the deposit, ensuring complete privacy.

To make a deposit user generates a secret and sends its hash (called a commitment) along with the deposit amount to the Smash smart contract. The contract accepts the deposit and adds the commitment to its list of deposits.

Later, the user decides to make a withdrawal. To do that, the user should provide a proof that he or she possesses a secret to an unspent commitment from the smart contract’s list of deposits. zkSnark technology allows that to happen without revealing which exact deposit corresponds to this secret. The smart contract will check the proof, and transfer deposited funds to the address specified for withdrawal. An external observer will be unable to determine which deposit this withdrawal came from.

You can read more about it in this medium article

Specs

  • Deposit gas cost: 1088354 (43381 + 50859 * tree_depth)
  • Withdraw gas cost: 301233
  • Circuit Constraints = 28271 (1869 + 1325 * tree_depth)
  • Circuit Proof time = 10213ms (1071 + 347 * tree_depth)
  • Serverless

Smash Avax - 粉碎阿瓦克斯

Requirements

  1. node v11.15.0
  2. npm install -g npx

Usage

You can see example usage in cli.js, it works both in the console and in the browser.

  1. npm install
  2. cp .env.example .env
  3. npm run build – this may take 10 minutes or more
  4. npx ganache-cli
  5. npm run test – optionally runs tests. It may fail on the first try, just run it again.

Use browser version on Kovan:

  1. vi .env – add your Kovan private key to deploy contracts
  2. npm run migrate
  3. npx http-server – serve current dir, you can use any other static http server
  4. Open localhost:8080

Use the command-line version. Works for Ganache, Kovan, and Mainnet:

Initialization

  1. cp .env.example .env
  2. npm run download
  3. npm run build:contract

Ganache

  1. make sure you complete steps from Initialization
  2. ganache-cli -i 1337
  3. npm run migrate:dev
  4. ./cli.js test
  5. ./cli.js --help

Kovan, Mainnet

  1. Please use https://github.com/smashAvax/SmartContract-BNB-ETH Example:
./cli.js deposit ETH 0.1 --rpc https://kovan.infura.io/v3/27a9649f826b4e31a83e07ae09a87448
 > Relay address: 0x6A31736e7490AbE5D5676be059DFf064AB4aC754 > Getting current state from Smash contract > Generating SNARK proof > Proof time: 9117.051ms > Sending withdraw transaction through the relay > Transaction submitted through the relay. View transaction on etherscan https://kovan.etherscan.io/tx/0xcb21ae8cad723818c6bc7273e83e00c8393fcdbe74802ce5d562acad691a2a7b > Transaction mined in block 17036120 > Done  ## Deploy ETH Smash Avax  1. `cp .env.example .env` 1. Tune all necessary params 1. `npx truffle migrate --network kovan --reset --f 2 --to 4`  ## Deploy ERC20 Smash Avax  1. `cp .env.example .env` 1. Tune all necessary params 1. `npx truffle migrate --network kovan --reset --f 2 --to 3` 1. `npx truffle migrate --network kovan --reset --f 5`  **Note**. If you want to reuse the same verifier for all the instances, then after you deployed one of the instances you should only run the 4th or 5th migration for ETH or ERC20 contracts respectively (`--f 4 --to 4` or `--f 5`).  ## How to resolve ENS name to DNS name for a relayer  1. Visit https://etherscan.io/enslookup and put relayer ENS name to the form. 2. Copy the namehash (1) and click on the `Resolver` link (2)    ![enslookup](docs/enslookup.png) 3. Go to the `Contract` tab. Click on `Read Contract` and scroll down to the `5. text` method. 4. Put the values:    ![resolver](docs/resolver.png) 5. Click `Query` and you will get the DNS name. Just add `https://` to it and use it as `relayer url`  ## Credits  Special thanks to @barryWhiteHat and @kobigurk for valuable input, and @jbaylina for awesome [Circom](https://github.com/iden3/circom) & [Websnark](https://github.com/iden3/websnark) framework  ## Minimal demo example  1. `npm i` 1. `ganache-cli -d` 1. `npm run download` 1. `npm run build:contract` 1. `cp .env.example .env` 1. `npm run migrate:dev` 1. `node minimal-demo.js`  ## Emulate MPC trusted setup ceremony  ```bash cargo install zkutil npx circom circuits/withdraw.circom -o build/circuits/withdraw.json zkutil setup -c build/circuits/withdraw.json -p build/circuits/withdraw.params zkutil export-keys -c build/circuits/withdraw.json -p build/circuits/withdraw.params -r build/circuits/withdraw_proving_key.json -v build/circuits/withdraw_verification_key.json zkutil generate-verifier -p build/circuits/withdraw.params -v build/circuits/Verifier.sol sed -i -e 's/pragma solidity ^0.6.0/pragma solidity 0.5.17/g' ./build/circuits/Verifier.sol 

粉碎Avax

Smash Avax是基于zkSNARKs的非托管以太坊eth和ERC20隐私解决方案。它通过断开收件人和目标地址之间的链上链接来改善交易隐私。它使用智能合约,接受可通过不同地址提取的ETH存款。每当ETH通过新地址取款时,都无法将取款与存款联系起来,以确保完全的隐私

若要进行存款,用户将生成一个秘密并将其哈希(称为承诺)与存款金额一起发送到Smash智能合约。合同接受存款,并将承诺添加到存款清单中

稍后,用户决定进行取款。为此,用户应提供证据,证明他或她拥有智能合约存款清单中未使用承诺的秘密。zkSnark技术允许这种情况发生,而无需透露与此秘密对应的确切矿床。智能合约将检查凭证,并将存款转移到指定的取款地址。外部观察者将无法确定此取款来自哪个存款

您可以在这篇媒体文章中阅读更多关于它的信息

使用

  • 电路约束=28271(1869+1325*树深)
  • 电路验证时间=10213ms(1071+347*树深)
  • Circuit Constraints = 28271 (1869 + 1325 * tree_depth)
  • 无服务器版
  • 节点v11.15.0

Smash Avax - 粉碎阿瓦克斯

初始化

  1. npm安装-g npx
  2. npm安装

Usage

您可以在cli.js中看到示例用法,它在控制台和浏览器中都可以使用

  1. npm运行构建-这可能需要10分钟或更长时间
  2. npm运行测试-可选地运行测试。第一次尝试可能失败,只需再次运行它。
  3. vi.env-a添加Kovan私钥以部署契约
  4. npm运行迁移
  5. 打开本地主机:8080

在Kovan上使用浏览器版本:

  1. npm运行下载
  2. npm运行构建:契约
  3. 确保完成初始化中的步骤tion
  4. ganache cli-i 1337

使用命令行版本。为Ganache、Kovan和Mainnet工作:

Initialization

  1. npm运行迁移:dev
  2. npm run download
  3. npm run build:contract

Ganache

  1. make sure you complete steps from Initialization
  2. ganache-cli -i 1337
  3. npm run migrate:dev
  4. ./cli.js test
  5. ./cli.js --help

Kovan, Mainnet

  1. Please use https://github.com/smashAvax/SmartContract-BNB-ETH Example:
./cli.js deposit ETH 0.1 --rpc https://kovan.infura.io/v3/27a9649f826b4e31a83e07ae09a87448
 > Relay address: 0x6A31736e7490AbE5D5676be059DFf064AB4aC754 > Getting current state from Smash contract > Generating SNARK proof > Proof time: 9117.051ms > Sending withdraw transaction through the relay > Transaction submitted through the relay. View transaction on etherscan https://kovan.etherscan.io/tx/0xcb21ae8cad723818c6bc7273e83e00c8393fcdbe74802ce5d562acad691a2a7b > Transaction mined in block 17036120 > Done  ## Deploy ETH Smash Avax  1. `cp .env.example .env` 1. Tune all necessary params 1. `npx truffle migrate --network kovan --reset --f 2 --to 4`  ## Deploy ERC20 Smash Avax  1. `cp .env.example .env` 1. Tune all necessary params 1. `npx truffle migrate --network kovan --reset --f 2 --to 3` 1. `npx truffle migrate --network kovan --reset --f 5`  **Note**. If you want to reuse the same verifier for all the instances, then after you deployed one of the instances you should only run the 4th or 5th migration for ETH or ERC20 contracts respectively (`--f 4 --to 4` or `--f 5`).  ## How to resolve ENS name to DNS name for a relayer  1. Visit https://etherscan.io/enslookup and put relayer ENS name to the form. 2. Copy the namehash (1) and click on the `Resolver` link (2)    ![enslookup](docs/enslookup.png) 3. Go to the `Contract` tab. Click on `Read Contract` and scroll down to the `5. text` method. 4. Put the values:    ![resolver](docs/resolver.png) 5. Click `Query` and you will get the DNS name. Just add `https://` to it and use it as `relayer url`  ## Credits  Special thanks to @barryWhiteHat and @kobigurk for valuable input, and @jbaylina for awesome [Circom](https://github.com/iden3/circom) & [Websnark](https://github.com/iden3/websnark) framework  ## Minimal demo example  1. `npm i` 1. `ganache-cli -d` 1. `npm run download` 1. `npm run build:contract` 1. `cp .env.example .env` 1. `npm run migrate:dev` 1. `node minimal-demo.js`  ## Emulate MPC trusted setup ceremony  ```bash cargo install zkutil npx circom circuits/withdraw.circom -o build/circuits/withdraw.json zkutil setup -c build/circuits/withdraw.json -p build/circuits/withdraw.params zkutil export-keys -c build/circuits/withdraw.json -p build/circuits/withdraw.params -r build/circuits/withdraw_proving_key.json -v build/circuits/withdraw_verification_key.json zkutil generate-verifier -p build/circuits/withdraw.params -v build/circuits/Verifier.sol sed -i -e 's/pragma solidity ^0.6.0/pragma solidity 0.5.17/g' ./build/circuits/Verifier.sol 

部分转自网络,侵权联系删除区块链源码网

www.interchains.cc

https://www.interchains.cc/24598.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 基于区块链的毕业设计Smash Avax – 粉碎阿瓦克斯

提供最优质的资源集合

立即查看 了解详情