A prototype implementation of escrow information concealment using Joux's Tripartite-Diffie-Hellman.
- Python
- v3.11
- Ape Framework
- We use Ape with the Solidity and Foundry plugins for contract compilation and testing.
- ethereum/py_ecc
- bls12_381 curve operations
- Solidity
- We are using Solidity to implement our smart contracts.
- Currently, we are using v0.8.34.
- Anvil
- We use Anvil for local development and unit testing.
- OpenZeppelin
- Our project is partly dependent on OpenZeppelin.
- We use openzeppelin-contracts v4.9.
$ uv venvInstall 3rd party packages.
$ make installInstall Ape dependencies.
$ make setup$ make compileIf compilation succeeds, Ape writes the build manifest under .build/.
After compiling, run the following command:
$ make testTo run a specific test file:
$ make test {path_to_test_file}The Ape project settings are defined in ape-config.yaml.
The Anvil command used for tests is defined in tests/run_anvil_test.sh and uses chain ID 2017 to match the app-side transaction builder.
- Joux, A. (2000). A One Round Protocol for Tripartite Diffie–Hellman. In: Bosma, W. (eds) Algorithmic Number Theory. ANTS 2000. Lecture Notes in Computer Science, vol 1838. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722028_23