APPLICATION OF SOURCE CODE OBFUSCATION TECHNIQUES IN THE SOLIDITY PROGRAMMING LANGUAGE
DOI:
https://doi.org/10.24867/20BE42TrifunovicKeywords:
obfuscation, opaque predicates, blockchain, smart contractsAbstract
This work will present the possibilities of applying obfuscation techniques over source code written in the Solidity programming language. The work also includes a description of the implementation of these techniques written in the Go programming language.
References
[1] M. Van Steen, A.S. Tanenbaum, „A brief introduction to distributed systems“, Computing 98, pp. 967-1009, 2016.
[2] R. Ugarte, J. Luis, „Distributed Ledger Technology (DLT): Introduction“, Banco de Espana Article 19/18, October 2018.
[3] L. Lamport, R. Shostak, M.Pease, „The Byzantine Generals Problem“, Transactions on Programming Languages and Systems, volume 4, issue 3, July 1982.
[4] S. Haber, W.S. Stornetta, „How to Time-stamp a Digital Document“, Journal of Cryptography, volume 3, pp. 99-111, 1991.
[5] D. Bayer, W.S. Stornetta, S. Haber, „Improving the Efficiency and Reliability of Digital Time-Stamping“ u Sequences II: Methods in Communication, Security and Computer Science, New York: Springer-Verlag, 1993, pp. 329-334
[6] S. Nakamoto, „Bitcoin: A peer-to-peer electronic cash system“, https://bitcoin.org/bitcoin.pdf , 2008.
[7] N. Szabo, „Smart Contracts: Building Blocks for Digital Markets“, 1996. [Online]. Dostupno na: https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html (pristupljeno u septembru 2022.)
[8] J. Frankenfield, „What is Cryptocurrency?“, May 2022. [Online]. Dostupno na: https://www.investopedia.com/terms/c/cryptocurrency.asp (pristupljeno u septembru 2022.)
[9] S. Kepser, „A Simple Proof of the Turing-completeness of XSLT and XQuery“, u Proc. Extreme Markup Languages, Quebec, 2004.
[10] V. Buterin, „Ethereum Whitepaper“, 2013. [Online]. Dostupno na: https://ethereum.org/en/whitepaper/ (pristupljeno u septembru 2022.)
[11] [Online]. Dostupno na: https://docs.soliditylang.org/en/v0.8.17/ (pristupljeno u septembru 2022.)
[12] C. Collberg, C. Thomborson, D. Low, „A Taxonomy of Obfuscating Transformations“, 1997.
[13] C. Collberg, C. Thomborson, D. Low, „Manufacturing cheap, resilient, and stealthy opaque constructs“, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '98, 1998.
[14] D. Xu, J. Ming, D. Wu, „Generalized Dynamic Opaque Predicates: A New Control Flow Obfuscation Method“, Lecture Notes in Computer Science, Springer, pp. 323-342
[2] R. Ugarte, J. Luis, „Distributed Ledger Technology (DLT): Introduction“, Banco de Espana Article 19/18, October 2018.
[3] L. Lamport, R. Shostak, M.Pease, „The Byzantine Generals Problem“, Transactions on Programming Languages and Systems, volume 4, issue 3, July 1982.
[4] S. Haber, W.S. Stornetta, „How to Time-stamp a Digital Document“, Journal of Cryptography, volume 3, pp. 99-111, 1991.
[5] D. Bayer, W.S. Stornetta, S. Haber, „Improving the Efficiency and Reliability of Digital Time-Stamping“ u Sequences II: Methods in Communication, Security and Computer Science, New York: Springer-Verlag, 1993, pp. 329-334
[6] S. Nakamoto, „Bitcoin: A peer-to-peer electronic cash system“, https://bitcoin.org/bitcoin.pdf , 2008.
[7] N. Szabo, „Smart Contracts: Building Blocks for Digital Markets“, 1996. [Online]. Dostupno na: https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html (pristupljeno u septembru 2022.)
[8] J. Frankenfield, „What is Cryptocurrency?“, May 2022. [Online]. Dostupno na: https://www.investopedia.com/terms/c/cryptocurrency.asp (pristupljeno u septembru 2022.)
[9] S. Kepser, „A Simple Proof of the Turing-completeness of XSLT and XQuery“, u Proc. Extreme Markup Languages, Quebec, 2004.
[10] V. Buterin, „Ethereum Whitepaper“, 2013. [Online]. Dostupno na: https://ethereum.org/en/whitepaper/ (pristupljeno u septembru 2022.)
[11] [Online]. Dostupno na: https://docs.soliditylang.org/en/v0.8.17/ (pristupljeno u septembru 2022.)
[12] C. Collberg, C. Thomborson, D. Low, „A Taxonomy of Obfuscating Transformations“, 1997.
[13] C. Collberg, C. Thomborson, D. Low, „Manufacturing cheap, resilient, and stealthy opaque constructs“, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '98, 1998.
[14] D. Xu, J. Ming, D. Wu, „Generalized Dynamic Opaque Predicates: A New Control Flow Obfuscation Method“, Lecture Notes in Computer Science, Springer, pp. 323-342
Downloads
Published
2022-11-07
Issue
Section
Electrotechnical and Computer Engineering