BlockChain21 이산로그문제(DLP) in ZKP 유한한(finite) 그룹 G와 이항연산(binary operation)이 주어지고, 원소 a와 b가 주어졌을 때, a를 몇 번 연산하면 b가 되는가? 위 문제를 DLP(Discrete Logarithm Problem)라고 합니다. 먼저 DLP에 대해 알아봅시다. 이산로그문제(Discrete Logarithm Problem) 이산로그(discrete logarithm) 문제는 수학에서 중요한 문제 중 하나입니다. 이 문제는, 어떤 수 a와 b가 주어졌을 때, a^x ≡ b(mod p)를 만족하는 가장 작은 양의 정수 x를 찾는 문제입니다. 이 때 p는 소수이고, ≡ 기호는 모듈로(modulo) 연산을 나타냅니다. 좀 더 명확한 정의는 아래와 같습니다. DLP의 정의는 위와 같습니다. DLP의 경우 어떤 .. 2023. 3. 19. Ethereum storage와 keccak-256 Ethereum의 한 가지 중요한 측면은 Keccak-256 해시 함수를 기반으로 하는 storage model을 가지고 있다는 것 입니다. 이더리움에서 각 smart contract는 계약 실행에 필요한 데이터를 저장하는 데 사용할 수 있는 자체 저장 공간을 가지고 있습니다. 저장 공간은 키와 값이 32바이트(256비트) 단어인 키-값 저장소로 구성됩니다. 값은 정수, 주소 또는 바이트 배열일 수 있으며 키는 계약 주소와 256비트 인덱스 값의 연결을 해싱하여 생성됩니다. Keccak-256 해시 함수는 여러 특징 때문에 이더리움 스토리지 시스템의 키를 생성하는 데 사용됩니다. 1. 단방향 함수이므로 해시 값에서 입력 메시지를 생성하는 것이 사실상 불가능합니다. 2. 고정 길이 출력을 생성하므로 스토리.. 2023. 3. 14. proxy contract & upgradable contract 이란? proxy contract의 기본 구조 Delegatecall and Proxy Pattern 하지만 만약 transferFrom()을 호출하되, 해당 함수의 로직만 이용하고 관련 스토리지 변경은 CallERC20 컨트랙트에 적용하고 싶다면? 이를 가능하게 하는것이 바로 delegatecall 이다. 솔리디티는 다른 컨트랙트를 호출할 때, 크게 두가지 EVM opcode중 하나를 사용할 수 있도록 한다. 바로 call과 delegatecall 이다. call이 바로 우리가 통상적으로 컨트랙트를 호출할 때 사용하는 opcode이다. 바로 위의 CallERC20 예시 또한 내부적으로는 call opcode를 통해 transferFrom()을 호출한다. 이외에도 staticcall 이라는 친구가 있는데, 상태.. 2023. 3. 12. [Solidity] Wolfgame은 왜 ERC-1155를 사용하지 않았을까? 1. ERC-1155란? ERC-1155는 동일한 계약에서 여러 유형의 토큰을 생성할 수 있는 이더리움 블록체인의 가상 항목을 나타내는 새로운 표준입니다. 게임에 사용되는 항목에 특히 유용하며, 그 중 다수는 숫자로 표시됩니다. 공급량이 1인 ERC-1155 토큰도 특정 소유자가 있는 ERC-721로 볼 수 있습니다. 따라서 ERC-1155 배치 전송을 통해 작동할 수 있을 뿐만 아니라 ERC-721의 모든 상호 운용성 이점을 얻을 수 있습니다. ERC-1155 토큰 소유자(공급량 > 1)가 토큰을 ERC-721로 변환할 수 있습니다. 이렇게 하면 원래 ERC-1155 토큰의 공급이 1 감소하는 동시에 새로 발행된 토큰에 다른 NFT처럼 개인화할 수 있는 용량이 제공됩니다. 또 다른 중요한 요구 사항은 .. 2023. 3. 12. 이전 1 2 3 4 5 6 다음