All Projects → NoahZinsmeister → ProveIt

NoahZinsmeister / ProveIt

Licence: GPL-3.0 license
Implements proof of historical data possession on the Ethereum blockchain

Programming Languages

solidity
1140 projects
javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to ProveIt

Eth Vue
Featured in Awesome Vue [https://github.com/vuejs/awesome-vue], a curated list maintained by vuejs of awesome things related to the Vue.js framework, and Awesome List [https://awesomelists.net/150-Vue.js/3863-Open+Source/18749-DOkwufulueze-eth-vue], this Truffle Box provides everything you need to quickly build Ethereum dApps that have authentication features with vue, including configuration for easy deployment to the Ropsten Network. It's also Gravatar-enabled. Connecting to a running Ganache blockchain network from Truffle is also possible -- for fast development and testing purposes. Built on Truffle 5 and Vue 3, eth-vue uses vuex for state management, vuex-persist for local storage of app state, and vue-router for routing. Authentication functionalities are handled by Smart Contracts running on the Ethereum blockchain.
Stars: ✭ 171 (+362.16%)
Mutual labels:  ethereum-contract, web3, ethereum-dapp
Trust Wallet Ios
📱 Trust - Ethereum Wallet and Web3 DApp Browser for iOS
Stars: ✭ 1,228 (+3218.92%)
Mutual labels:  ethereum-contract, web3, ethereum-dapp
vue-web3
🐙 Web3 blockchain bindings for Vue.js (inspired by Vuefire and Drizzle)
Stars: ✭ 63 (+70.27%)
Mutual labels:  ethereum-contract, web3, ethereum-dapp
React Ethereum Dapp Example
A starter boilerplate for an Ethereum dapp using web3.js v1.0, truffle, react, and parity
Stars: ✭ 384 (+937.84%)
Mutual labels:  ethereum-contract, web3, ethereum-dapp
Seriality
Seriality is a library for serializing and de-serializing all the Solidity types in a very efficient way which mostly written in solidity-assembly
Stars: ✭ 105 (+183.78%)
Mutual labels:  ethereum-contract, ethereum-dapp
Solidity Auction
A simple auction dApp for Ethereum, written in Solidity.
Stars: ✭ 60 (+62.16%)
Mutual labels:  ethereum-contract, ethereum-dapp
Angular Truffle Starter Dapp
Angular CLI + Truffle Starter Dapp; write, compile & deploy smart contracts on Ethereum blockchains
Stars: ✭ 174 (+370.27%)
Mutual labels:  ethereum-contract, ethereum-dapp
web3jdemo
功能强大的web3j以太坊用例,支持批量生成钱包,批量不同账户转账,查询余额等,监控,定时任务,交易mint等方法,持续更新中... ...
Stars: ✭ 262 (+608.11%)
Mutual labels:  ethereum-contract, web3
Ethlist
The Comprehensive Ethereum Reading List
Stars: ✭ 3,576 (+9564.86%)
Mutual labels:  ethereum-contract, ethereum-dapp
crypto-high-score
Add your name to the global, immutable leaderboard by paying in ETH.
Stars: ✭ 18 (-51.35%)
Mutual labels:  web3, ethereum-dapp
ethereum-kit-ios
Comprehensive EVM SDK (ex: Ethereum, Binance Smart Chain) for iOS, implemented on Swift. Create wallets, watch wallets (read-only), sync transactions, filter transactions by type (erc20, bep20, swap transactions etc.), swap using native DEX protocols, easily extendable to work with custom smart contracts, and full support for EIP1159.
Stars: ✭ 148 (+300%)
Mutual labels:  web3, ethereum-dapp
Daox Contracts
Smart contracts for creating Daox-based fundraising organization
Stars: ✭ 31 (-16.22%)
Mutual labels:  ethereum-contract, ethereum-dapp
NFT-Dapp-Boilerplate
A highly scalable NFT and DEFI boilerplate with pre added web3 and different wallets with a focus on performance and best practices
Stars: ✭ 51 (+37.84%)
Mutual labels:  web3, ethereum-dapp
solidity-contracts
📦 Resources for the Ethereum Smart Contract Development tutorial series.
Stars: ✭ 64 (+72.97%)
Mutual labels:  ethereum-contract, ethereum-dapp
eth-self-token-example
在本地网络发布一个名叫 YuTou 的 token
Stars: ✭ 8 (-78.38%)
Mutual labels:  ethereum-contract, web3
zksync-dapp-checkout
zkCheckout — trustable permissionless DeFi payment gateway. Brand new zkSync dApp w/t all L2 perks: fast&cheap transfers / simple&quick withdrawal
Stars: ✭ 37 (+0%)
Mutual labels:  web3, ethereum-dapp
CryptoKitties
A simple implementation of CryptoKitties on Ethereum using ERC721 token.
Stars: ✭ 32 (-13.51%)
Mutual labels:  ethereum-contract, ethereum-dapp
Augur
Augur - Prediction Market Protocol and Client
Stars: ✭ 294 (+694.59%)
Mutual labels:  ethereum-contract, ethereum-dapp
cheezyverse
Cheeze Wizards is the world's first battle royale on the blockchain (with cheese!)
Stars: ✭ 38 (+2.7%)
Mutual labels:  ethereum-contract, ethereum-dapp
ethereum-dapp-ipfs-node.js-mongodb
以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台
Stars: ✭ 46 (+24.32%)
Mutual labels:  ethereum-contract, ethereum-dapp

ProveIt

At long last, we have the technology. You can finally prove to your friends that you liked that band before they were cool! 👌

To Interact with ProveIt

Visit the shiny and highly functional ProveIt website!

Some Semi-Technical Background

ProveIt implements proof of historical data possession on the Ethereum blockchain. What this means in practice is that any Ethereum address can submit a 32-byte cryptographic hash to ProveIt's ledger and gain the ability to prove that the owner(s) of this address wrote/possessed the text/data that resolves to the hash at a particular time. The ledger also allows addresses to stake arbitrary amounts of Ether alongside their entries, lending credibility.

Hypothetical Use Cases

  • Alice is a rabid Elon Musk fan, and wants to make a prediction about Musk's glorious future endeavors. Using her Ethereum address AddressAlice, Alice could submit By 2030, a company founded or owned in part by Elon Musk will have delivered a human to the surface of Mars. to the ProveIt ledger at time T. At any point from now until 2030, Alice could submit evidence of her ownership of AddressAlice in standard ways (i.e. by signing a credible message via something like the Etherscan verifySig tool), thereby proving that she made this statement at time T. This makes her seem prescient, and more importantly, affirms her Musk fanhood. One could imagine, however, that a rival Musk supporter Bob might submit many such messages, varying the year, and revealing only the one that makes him appear most credible. To combat this issue, Alice can lock up an arbitrary amount of ether, x, alongside her statement. This amount cannot be recovered without destroying the associated ledger entry. If we assume that Bob must submit 20 different entries to have a high probability of ending up with at least one very close prediction, he’s forced to lock up 20*x ether to guarantee that his revealed entry will have the same amount of credibility as Alice's, dissuading him from attacking.
  • Alice also moonlights as an amateur paparazza, and manages to snap an incredibly compromising flattering photograph of Elon at time T. She’s desperately worried that the photo will be stolen and published by Bob at T+1, depriving her of all potential proceeds. If Alice wants to be able to prove that she possessed this photo at T she could simply make a (cryptographically secure) 32-byte hash of this photograph, and store the hash in ProveIt. The data that produced this hash will of course be unknown at T, but upon Bob's release of the photo at T+1, Alice could prove her prior possession by letting anyone see that the photo hashes to the entry that she made in ProveIt at time T.
  • Alice's day job is as a professional economist. She runs a lot of randomized controlled trials (RCTs), and in the spirit of value-free scientific inquiry, she often wants to publicly commit herself to a particular statistical hypothesis H0 before running an RCT to prevent ex-post p-hacking. She could of course use the American Economic Association's RCT Registry, but centralized solutions are so 2017. A better idea would be to formulate an appropriate H0, store its hash in ProveIt, and reveal it after the RCT has concluded. In addition to the commitment mechanism, this method has the benefit of not revealing H0 to rival economists (looking at you Bob) who might steal her idea. Of course, nothing prevents Alice from submitting many H0 s, and only revealing the most favorable one ex-post. To combat this, verifiers should only trust Alice if she submits her hash to ProveIt, publicizes it along with her name, and associates it with her current project, all before running the RCT. This reputationally commits her to a single H0.

Technical Notes

  • While building ProveIt, I realized that having set functionality would be helpful, so I implemented it in contracts/Sets.sol. It's quite efficient, with O(1) insertion, removal, and existence checks.
  • Contracts of interest are deployed at:
Contract Address Link Network
Prover.sol 0x117ca39dffc4da6fb3af6145dfff246830637fe2
0x286e1143ab350d0238be4494da6dab9ca3662517
0x286e1143ab350d0238be4494da6dab9ca3662517
verified on Etherscan
Etherscan
Etherscan
Mainnet
Rinkeby
Ropsten
Hash.sol 0xca260ffffb0270ee07ec6892fa9d44f040454e4d
0x125bbe680d2c6665151ad8c9c89727a64683fdcb
0x125bbe680d2c6665151ad8c9c89727a64683fdcb
verified on Etherscan
Etherscan
Etherscan
Mainnet
Rinkeby
Ropsten
Sets.sol 0x48d904b3bf1cfcd7e1ce2dbcf7dcaecf0b0575c6
0x2aacb774a7214075372b52e24ff7391a4e3ea883
0x2aacb774a7214075372b52e24ff7391a4e3ea883
verified on Etherscan
Etherscan
Etherscan
Mainnet
Rinkeby
Ropsten

Tips

Accepted, not required! ETH: 0x8688a84fcFD84d8F78020d0fc0b35987cC58911f

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