Shufflepuff

所属分类:加密货币
开发工具:Java
文件大小:236KB
下载次数:0
上传日期:2016-06-13 22:39:21
上 传 者sh-1993
说明:  java中的CoinShuffle:比特币的实用去中心化硬币混合
(CoinShuffle in java: Practical Decentralized Coin Mixing for Bitcoin)

文件列表:
LICENSE (727, 2016-06-13)
build.gradle (582, 2016-06-13)
gradle.properties (855, 2016-06-13)
gradle (0, 2016-06-13)
gradle\wrapper (0, 2016-06-13)
gradle\wrapper\gradle-wrapper.jar (53636, 2016-06-13)
gradle\wrapper\gradle-wrapper.properties (231, 2016-06-13)
gradlew (4971, 2016-06-13)
gradlew.bat (2404, 2016-06-13)
settings.gradle (19, 2016-06-13)
shuffler (0, 2016-06-13)
shuffler\build.gradle (1117, 2016-06-13)
shuffler\config (0, 2016-06-13)
shuffler\config\checkstyle (0, 2016-06-13)
shuffler\config\checkstyle\checkstyle.xml (7964, 2016-06-13)
shuffler\src (0, 2016-06-13)
shuffler\src\main (0, 2016-06-13)
shuffler\src\main\java (0, 2016-06-13)
shuffler\src\main\java\com (0, 2016-06-13)
shuffler\src\main\java\com\shuffle (0, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin (0, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\Address.java (383, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\Coin.java (1470, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\CoinNetworkException.java (556, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\Crypto.java (875, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\DecryptionKey.java (440, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\EncryptionKey.java (325, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\SigningKey.java (548, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\Transaction.java (541, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\VerificationKey.java (763, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\blockchain (0, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\blockchain\Bitcoin.java (9932, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\blockchain\BlockchainDotInfo.java (3924, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\blockchain\Btcd.java (6554, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\blockchain\package_info.java (320, 2016-06-13)
shuffler\src\main\java\com\shuffle\bitcoin\package_info.java (432, 2016-06-13)
shuffler\src\main\java\com\shuffle\chan (0, 2016-06-13)
... ...

Shufflepuff implementation of the CoinShuffle protocol in java. This is a work in progress. If you wish to support this project, please contact me (daniel.krawisz@thingobjectentity.net) for tasks that you might try completing. CoinShuffle description: http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/coinshuffle.pdf -- Functionality Shufflepuff can run on its own or it can be used as a library and encorporated into a java program. If it is run on its own, it takes a private key, an amount to be shuffled, and a set of IP addresses or websocket addresses denoting the other players. Shufflepuff can also be used as a library in another application. The other application would instantiate player.Player and it works from there. Stufflpuff comes with a bitcoinj implementation, but the user could provide an implementation in another library too. Shufflepuff needs to look up address balances in order to run the protocol. For lite applications there is an option for querying blockchain.info. For players with full nodes, an option is provided to look up balances using btcd. The user could also provide other options by extending the Bitcoin class. -- Overall Organization of the Project Package protocol implements Coin Shuffle according to the same concepts as in the original paper. It abstracts away a lot. In order to implement this version of the protocol, a user would have to implement the following interfaces: * Coin - provides cryptocurrency functions and objects. * Crypto - provides cryptographic functions and objects. * Messages - provides for a implementation of the messages in Coin Shuffle * Network - provides a connection to the other players in the protocol. The purpose of this design is that a set of test cases can be developed for the protocol as a whole before any work has been put into its details. This means that there can already be a huge set of test cases very early in the development of a working version of the protocol, which will greatly reduce the risk of introducing errors as the rest of the development work proceeds. Furthermore, this protocol can be adapted to any java implementation of Bitcoin, or any other cryptocurrency. status: Works! Package mock includes mock implementations of all these interfaces for testing purposes. status: functional Package sim allows for the protocol to be run with any number of simulated players. There is a Simulator class which can be used to simulate runs of the protocol with any implementation. It allows for malicious players. All test cases work. status: very slick Package bitcoin will provide an implementation of Coin and Crypto which is specific to the Bitcoin network and which provides the cryptography as described in the paper. It relies on bitcoinj and Spongey Castle. status: coming along. Package p2p includes classes for constructing various internet channels, by which instances of this program will communicate. status: Partly tested, some classes still needed. Package player provides for some peripheral issues about running the protocol, such as collecting the initial data and re-running the protocol if some players have to be eliminated. Player is also quite abstract and could be implemented in various ways. status: lots to do. Package moderator will have a server which will eventually help people to find one another to create joins. It will also provide for a client that can schedule and commit to joins. status: barely started

近期下载者

相关文件


收藏者