이더리움 블록체인상의 페어링 연산 구현 및 응용
Implementation and application of pairing operation on Ethereum Blockchain
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
이더리움은 모든 사용자가 블록체인에 저장된 데이터를 확인할 수 있는 공개형 블록체인이기 때문에 이더리움 상에서 개인 정보 등의 민감한 데이터를 활용하는 것은 근본적으로 어렵다. 이를 해결하기 위해서 데이터의 기밀성을 보장하는 프로토콜을 이더리움의 스마트 컨트랙트로 구현하는 것을 고려할 수 있고, 대표적인 기밀성 보장 프로토콜로 zkSNARKs와 함수암호가 있다. 대부분의 기밀성 보장 프로토콜들은 페어링을 주요한 암호 연산으로 사용하기 때문에 이더리움 상에서 기밀성 보장 프로토콜을 구현하기 위해서는 반드시 페어링이 먼저 구현되어야 한다. 본 논문에서는 페어링 기반의 기밀성 보장 프로토콜들을 스마트 컨트랙트로 구현하기 위해 페어링 함수를 Solidity 언어로 구현하였고, 페어링 함수의 구현 적합성을 평가함으로써 페어링 함수가 정상적으로 동작함을 확인하였으며, 기존의 이더리움 상에서 페어링을 수행하는 방법과 본 논문의 페어링 함수를 비교하였다. 또한, 페어링 함수를 이용해 페어링 기반의 암호 프로토콜인 BLS 서명을 스마트 컨트랙트로 구현하고 이더리움 상에서 실행함으로써 본 논문에서 구현한 페어링 함수가 실제 응용에 적용될 수 있음을 확인하였다.
Abstract
Ethereum is a public blockchain that allows all users to verify data stored in the blockchain, so it is essentially difficult to utilize sensitive data on Ethereum. To resolve this issue, we can consider implementing protocols that ensure confidentiality of data on Ethereum smart contracts. The representative protocols that achieve this goal include zkSNARKs and functional encryption. Since most of these protocols use pairing as a major cryptographic operation, pairing must be implemented to provide Ethereum with confidentiality. In this paper, we implemented pairing functions in the Solidity language to provide pairing-based confidentiality protocols as smart contracts, verified whether the pairing functions work correctly and compared the proposed pairing functions with the existing method for pairing computation on Ethereum. In addition, using the pairing functions, we implemented the BLS signature scheme as smart contracts and executed them on Ethereum, confirming that the implemented pairing functions can be effectively applied to practical applications.
참고문헌 (18)
- "ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER"[URL]
- Elli Androulaki, "Financial Cryptography and Data Security 2013", pp.34~51 (2013), Financial Cryptography and Data Security 2013, pp
- Philip Koshy, "Financial Cryptography and Data Security 2014", pp.469~485 (2014)
- Ahmed Kosba, "Hawk: The Blockchain Model of Cryptography and PrivacyPreserving Smart Contracts", IEEE Symposium on Security and Privacy 2016, pp.839~8582016 (2016)
- Eli Ben-Sasson, "Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture", Proceedings of the 23rd USENIX conference on Security Symposium, pp.781~796 (2014)
- Bryan Parno, "Pinocchio: nearly practical verifiable computation", Communications of ACM, 59(2), pp.103~112 (2016)
- "Solidity Documentation Release 0.8.14", Ethereum, 15~ (2021)
- "eip-197(Precompiled contracts for optimal ate pairing check on the elliptic curve alt_bn128)"[URL]
- Dan Boneh, "Advanced in Cryptography–ASIACRYPT 2001", pp.514~532 (2001)
- 박윤수, "이더리움 스마트 컨트랙트상의 페어링 구현 및 평가", 한국차세대컴퓨팅학회 춘계학술대회 2022, pp.127~130 (2022)
- N.E. Mrabet, "Guide to Pairing-Based Cryptography", pp.2016, Chapman and Hall
- F. Vercauteren, "Optimal Pairings", IEEE Transactions on Information Theory, 56(1), pp.455~461 (2010)
- J.L. Beucaht, "High Speed Software Implementation of the Optimal Ate Pairing over Barreto-Naehrig Curves", pp.21~39 (2010), Pairing 2010
- "eip-198(Big integer modular exponentiation)"[URL]
- "Go Ethereum(Geth)"[URL]
- "Solidity Documentation Release0.8.14", Ethereum, 13~ (2021)
- "eip-196(Precompiled contracts for addition and scalar multiplication on the elliptic curve alt_bn128)"[URL]
- "solidity-BN256G2 library"[URL]
