





전체 글(67)
-
XMSS(Extended Merkle Signature Scheme)
블록체인과 양자컴퓨팅2025.03.25 - [Blockchain/Base] - 양자 컴퓨팅과 블록체인2025.03.25 - [Development/Cryptography] - XMSS(Extended Merkle Signature Scheme)양자 내성을 가지는 암호 알고리즘인 XMSS에 대하여 확인해 본다.개요기존 비대칭 공개키 알고리즘이 소인수분해, 이산 수학적으로 풀기 어려운 구조이기 때문에 private key를 유추할 수 없는 구조이지만, 양자 컴퓨터를 이용하여 Shor's algorithm을 적용하면 이를 유추할 수 있게 된다.이를 대비하기 위하여 양자 컴퓨터로 암호학적 문제 해결이 어려운 충돌 저항성 기반 해시를 통한 서명 알고리즘을 사용하는 XMSS에 대하여 확인해 본다.XMSS는 Merk..
2025.03.25 -
양자 컴퓨팅과 블록체인
2025.03.25 - [Blockchain/Base] - 양자 컴퓨팅과 블록체인2025.03.25 - [Development/Cryptography] - XMSS(Extended Merkle Signature Scheme)양자 컴퓨터가 점차 상용화 된다는 기사가 많이 보인다. 대표적으로는 구글인데, 슈퍼 컴퓨터로 1025년의 시간이 걸리는 문제를 단 5분만에 해결했다는 내용도 보인다. (참고) 이러한 양자 컴퓨팅 기사 나오면 계속 따라오는 것이 암호화폐의 위험성에 대한 내용이다. 블록체인에서 주로 사용되는 암호학적 기술들이 양자 컴퓨터로는 뚫리는 것이 이론적으로 가능하기 때문에 이러한 상황을 대비한 블록체인 업계의 이론적 동향을 알아보려 한다.블록체인이 양자 컴퓨팅에 대비해야 하는 이유공개키 ..
2025.03.25 -
Cosmos SDK v0.47.X과 v0.50.X의 구조 차이
현재 시점 Cosmos SDK의 release 버전은 v0.50.X이다. Cosmos SDK는 v0.47.X까지 릴리즈를 하고 단숨에 v0.50.X로 버전을 올렸다. 그만큼 급격한 차이가 존재하는 부분이 생겼기 때문이다. (v0.47.X도 계속 업데이트 중이다.) 모든 변경 부분을 세세하게 언급할 수는 없지만 코어 개발 상 주요하게 변경된 부분에 대해서 확인한다.비교 대상은 SDK v0.47.5와 v0.50.11이다. (이하 v0.47.X는 구버전, v0.50.X는 신버전으로 구분하여 설명한다.)모듈의 패키지화Cosmos SDK의 각 모듈들의 설정이 가장 크게 변경되었다. 모든 모듈이 해당되는 건 아니지만, 몇몇 모듈은 go module로써 별도로 import가 필요하다. 기존에 존재하던 evidence..
2025.03.20 -
Gas price != zero
테스트코드를 작성 하고 있을 때 Geth node가 백그라운드에서 돌아가고 컨트랙트 배포 등 트랜잭션 처리를 도와야할 필요가 있어서 Geth로 노드를 돌아가게 하는 개발을 진행중이었다. 다른 코드들에서는 계속 예전 mining 하는 버전의 Geth를 쓰다가 이제는 beacon으로 컨센서스 돌리는 버전으로 바꿔야겠다는 생각이 들어 업데이트를 수행했다. (기존에는 EthHash 또는 Clique로 컨센서스 알고리즘을 사용했었다.)백엔드 노드를 변경을 하고, 컨트랙트 배포 코드는 그대로 사용했더니 tx처리가 안되는 부분이 있어서 확인하고 기록을 남겨둔다.설정 변경Geth 버전은 1.15.0이며, genesis의 config는 params.AllDevChainProtocolChanges를 사용했다. 이 Chai..
2025.03.18 -
블록체인 계정 주소 checksum
이더리움의 경우, 만들어진 초기에는 계정 주소(account address)가 오타가 있는지 없는지 검증하는 기능이 들어가 있지 않았다. 아래의 케이스를 보면 주소가 다르다는 것을 눈으로 확인하는 것은 굉장히 어렵다. 0xfb6916095ca1df60bb79ce92ce3ea74c37c5d3590xfb6916095ca1df60bb79ee92ce3ea74c37c5d35920-byte hex 값으로 구성되어 있는 주소는 한개의 단어라도 오타가 발생하면 착오송금이 이루어지는 큰 문제가 발생하기 때문에 주소의 유효성을 검증하는 필요성이 부각되어서 EIP 55에서는 계정 주소가 올바른지 판단하는 표준을 제안한다.Mixed-case checksum address encoding운영되고 있는 이더리움 네트워크에서 갑자..
2025.02.03 -
인터페이스 구현 검증
코드를 보다 보면var _ SomeInterface = &SomeStruct{}이런 식으로 표현되어 있는 것을 종종 본적이 있을 것이다. Golang의 interface는 덕 타이핑을 사용하여 interface 내에 선언된 method들의 실제 구현 없이 method명만 언급되어도 된다.예를 들어 SomeInterface가 아래와 같은 method명 들을 가지고 있다고 가정하자.type SomeInterface interface { GetHomeDir() string GetApp(string) *types.App GetNumber() (*big.Int, error)}이 때 코드 내에 var _ SomeInterface = &SomeStruct{}로 명시된 상황에서 SomeStruct가 r..
2024.11.14