├── A personal learning plan ├── LICENSE ├── README.md └── testAccounts.tar.gz /A personal learning plan: -------------------------------------------------------------------------------- 1 | A personal learning plan 2 | 3 | 1)Learn what is Oracle 4 | https://medium.com/@dosnetwork/dos-network-boosting-blockchain-usability-c7cd7d8905cb?from=groupmessage&isappinstalled=0 5 | 6 | 2)How to use githun 7 | https://guides.github.com/activities/hello-world/ 8 | 9 | 3)Testing and deploying ethereum smart contracts in go 10 | https://hackernoon.com/a-step-by-step-guide-to-testing-and-deploying-ethereum-smart-contracts-in-go-9fc34b178d78 11 | https://medium.com/coinmonks/unit-testing-solidity-contracts-on-ethereum-with-go-3cc924091281 12 | 13 | Exercises 14 | ->Using Remix IDE to Compile and Deploy a Smart Contract to Rinkeby 15 | ->Write a go unit testing for a smart contract 16 | ->Write a go unit testing for a go client 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 DOS Network 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Research & Reading 2 | Research/Reading topics/projects related to DOS protocols 3 | 4 | 5 | ## Basics: 6 | - [What is the math behind elliptic curve cryptography?](https://hackernoon.com/what-is-the-math-behind-elliptic-curve-cryptography-f61b25253da3) 7 | - [Elliptic Curve Cryptography: a gentle introduction](http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/) 8 | - [Exploring Elliptic Curve Pairings](https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627) 9 | - [Elliptic Curves](https://crypto.stanford.edu/pbc/notes/elliptic/) 10 | - [Choosing safe curves for elliptic-curve cryptography](https://safecurves.cr.yp.to) 11 | 12 | 13 | ## Signatures BLS and Schnorr: 14 | ### Schnorr: 15 | - [How Schnorr signatures may improve Bitcoin](https://medium.com/@snigirev.stepan/how-schnorr-signatures-may-improve-bitcoin-91655bcb4744) 16 | - [Schnorr key aggregation, multisig and Rogue Key Attack](https://blockstream.com/2018/01/23/musig-key-aggregation-schnorr-signatures.html) 17 | - [Scaling bitcoin - schnorr signatures](https://bitcointechtalk.com/scaling-bitcoin-schnorr-signatures-abe3b5c275d1) 18 | 19 | ### BLS: 20 | - [BLS signatures: better than Schnorr](https://medium.com/@snigirev.stepan/bls-signatures-better-than-schnorr-5a7fe30ea716) 21 | - [Secret Sharing and Threshold Signatures with BLS](https://blog.dash.org/secret-sharing-and-threshold-signatures-with-bls-954d1587b5f) 22 | - [BLS: Is it really that slow?](https://blog.dash.org/bls-is-it-really-that-slow-4ca8c1fcd38e) 23 | - [Sample](https://gist.github.com/BjornvdLaan/ca6dd4e3993e1ef392f363ec27fe74c4) 24 | - [EIP196 precompiled contract for point add and scalar multiply on bn256](https://github.com/ethereum/EIPs/issues/196) 25 | - [EIP197 precompiled contract for pairing check](https://github.com/ethereum/EIPs/issues/197) 26 | - [EIP to reduce gas costs for precompiled contracts](https://github.com/ethereum/EIPs/issues/1088) 27 | 28 | 29 | ## Smart Contracts, Solidity, and Go: 30 | - [Solidity documentation](https://solidity.readthedocs.io/en/v0.4.24/) 31 | - [Official Ethereum Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf) 32 | - [Beigepaper Yellowpaper](https://github.com/chronaeon/beigepaper) 33 | - [Ethereum Development with Go](https://goethereumbook.org) 34 | - [A Step By Step Guide To Testing and Deploying Ethereum Smart Contracts in Go](https://hackernoon.com/a-step-by-step-guide-to-testing-and-deploying-ethereum-smart-contracts-in-go-9fc34b178d78) 35 | - [Unit testing Solidity contracts on Ethereum with Go](https://medium.com/coinmonks/unit-testing-solidity-contracts-on-ethereum-with-go-3cc924091281) 36 | 37 | 38 | 39 | ## Advanced: 40 | 41 | 42 | 43 | ### Secret Sharing: 44 | - [A webpage summarizing secret sharing](https://www.cs.umd.edu/~gasarch/TOPICS/secretsharing/) 45 | 46 | 47 | ### Group Signatures: 48 | - [A Survey of Group Signature Technique, its Applications and Attacks](https://pdfs.semanticscholar.org/97e8/d3830863b96a47f187d093981b4e37f5e2f8.pdf) 49 | - [Group Signatures Authentication with Privacy](https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/Studies/GruPA/GruPA.pdf?__blob=publicationFile) 50 | - http://courses.csail.mit.edu/6.897/spring04/L26.pdf 51 | - [Practical Threshold Signatures](https://www.iacr.org/archive/eurocrypt2000/1807/18070209-new.pdf) 52 | - [Group Signature Schemes with Distributed Traceability (or how to open a signature fairly](https://medium.com/orbs-network/group-signature-schemes-with-distributed-traceability-or-how-to-open-a-signature-fairly-65c76d4d13d1) 53 | 54 | 55 | 56 | ### Threshold Signatures: 57 | - (TODO) t-RSA V.S. t-BLS benchmark test 58 | 59 | ### SWIM: 60 | - [Serf Example](https://jacobmartins.com/2017/01/29/practical-golang-building-a-simple-distributed-one-value-database-with-hashicorp-serf/) 61 | 62 | ### DKG: 63 | 64 | 65 | ### Verifiable Computation & zk-SNARK: 66 | - [Pinocchio](https://eprint.iacr.org/2013/279.pdf) 67 | 68 | ### P2P 69 | - [Ethereum from scratch - Part 1: Ping](https://ocalog.com/post/10/) 70 | - [Ethereum from scratch - Part 2: Pinging a Bootnode](https://ocalog.com/post/18/) 71 | - [Ethereum from scratch - Part 3: Decoding Bootnode Response](https://ocalog.com/post/20/) 72 | - [Kademlia: A Design Specification](http://xlattice.sourceforge.net/components/protocol/kademlia/specs.html#updates) 73 | - [Implementing-a-DHT-in-Go](http://blog.notdot.net/2009/11/Implementing-a-DHT-in-Go-part-1) 74 | 75 | 76 | ### Solidity, go-etheruem and smart contract security: 77 | - [Crypto Zombies](https://cryptozombies.io/) 78 | - [Solidity Official Docs](https://solidity.readthedocs.io/en/v0.4.24/index.html) 79 | - [OpenZeppelin](https://openzeppelin.org/) 80 | - [Smart Contract Best Practices, Consensys](https://github.com/ConsenSys/smart-contract-best-practices) 81 | - [Solidity Challenge Tests by OpenZeppelin](https://ethernaut.zeppelin.solutions/) 82 | - [Native Dapps](https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go-bindings-to-Ethereum-contracts) 83 | - [go-ethereum](https://goethereumbook.org/) 84 | - [A Step By Step Guide To Testing and Deploying Ethereum Smart Contracts in Go](https://hackernoon.com/a-step-by-step-guide-to-testing-and-deploying-ethereum-smart-contracts-in-go-9fc34b178d78) 85 | - [Seebug](https://paper.seebug.org/category/blockchain/) 86 | - [Gas Optimization](https://medium.com/coinmonks/techniques-to-cut-gas-costs-for-your-dapps-7e8628c56fc9) 87 | 88 | ### Golang: 89 | - [named return arguments](https://blog.minio.io/golang-internals-part-2-nice-benefits-of-named-return-values-1e95305c8687) 90 | - [fmt.Stringer interface](http://musse.cc/stringer-golang/) 91 | - [Profiling and optimizing Go web applications](https://artem.krylysov.com/blog/2017/03/13/profiling-and-optimizing-go-web-applications/) 92 | - [Daily code optimization using benchmarks and profiling in Golang](https://medium.com/@hackintoshrao/daily-code-optimization-using-benchmarks-and-profiling-in-golang-gophercon-india-2016-talk-874c8b4dc3c5) 93 | -------------------------------------------------------------------------------- /testAccounts.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DOSNetwork/Research-Reading/6b8dd38c64e1d61f558c1f3f9dca0907babf6d8f/testAccounts.tar.gz --------------------------------------------------------------------------------