Paper 2020/325
SmartDHX: Diffie-Hellman Key Exchange with Smart Contracts
Robert Muth and Florian Tschorsch
Abstract
Blockchain technologies enable decentralized applications (DApps) that run on distributed infrastructures without any central authority. All transactions for communication and data storage are public and can be verified by all participants. DApps interacting with a smart contract typically require client-side code, which is not part of the smart contract, and therefore do not hold the same verifiability properties. Following the vision of a verifiable DApp, we propose SmartDHX, a Diffie-Hellman key exchange (DHKE) scheme, fully implemented as a smart contract. That is, SmartDHX communicates only via the Ethereum blockchain and provides both backend and client-side code with the smart contract. The application code can therefore be verified and deployed without external trust requirements. By executing DHKE on-chain, we gain a number of properties, including asynchronicity as well as message integrity and authenticity. We generalize the two-party SmartDHX to emphasize that our approach is able to handle complex cryptographic protocols. In our analysis, we expose an efficiency tradeoff when executed on chain. In particular, we provide a proof-of-concept implementation and analyze the runtime and transaction fees. Since DHKE is used by many cryptographic algorithms, SmartDHX contributes a fundamental building block in the domain of DApps.
Metadata
- Available format(s)
- Category
- Implementation
- Publication info
- Published elsewhere. Minor revision. 2nd IEEE International Conference on Decentralized Applications and Infrastructures
- Keywords
- Key ExchangeDecentralized ApplicationSmart ContractImplementationBlockchain
- Contact author(s)
-
muth @ tu-berlin de
florian tschorsch @ tu-berlin de - History
- 2020-03-17: received
- Short URL
- https://ia.cr/2020/325
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2020/325, author = {Robert Muth and Florian Tschorsch}, title = {{SmartDHX}: Diffie-Hellman Key Exchange with Smart Contracts}, howpublished = {Cryptology {ePrint} Archive, Paper 2020/325}, year = {2020}, url = {https://eprint.iacr.org/2020/325} }