MimbleWimble을 위한 Pre-knowledge

MimbleWimble을 위한 Pre-knowledge

  • 이산로그문제(Discrete log problem)
    • 이산로그문제는 덧셈과 뺄셈을 사용, 점(스칼라)는 정수로 곱하거나 나눌수있음
      더하기, 빼기, 곱셈은 표준컴퓨터로 쉽게 사용하지만 나눗셈은 양자컴퓨터로 가능할 것
      타원곡선상에 있는 점(H 혹은 G) : generator point
      private key : 큰세트(2^128보다 크거나같음)에서 랜덤으로 선택된 정수(스칼라)
      public key : generator point * private key(scala)
      → 이런 곱셈은 역연산(로그,logarithm) 수행이 어려움
  • 암호해싱(Cryptographic Hashing)
    • 임의의길이의 데이터를 수신하고 고정된 길이 문자열로 소화(digest) → 해시값: digest
      암호해시함수가 되려면 입력, 출력이 예측불가능해야함
      해시충돌 저항성
      비트코인 - RIPEMD-160(public에서 주소생성), SHA-256(PoW구현) 사용
  • 동형 암호(Homomorphic Encryption)
    • 암호화된 숫자에 수학적 연산을 수행하는 기술
      곱셈 연산이 상당히 어려우며(완전한 동형암호화 시스템은 비용이 많이듬), 더하기, 빼기 수행에 적합
  • CoinJoin- Greg Maxwell이 발명
    • 사용자가 트랜잭션을 병합, 트랜잭션 그래프가 복잡
    • 트랜잭션 그래프 : 거래 참여자, 다른 사용자 같의 관계 및 토큰 기록 정보
    • 비트코인(모든 입력이 동일한 사용자로부터 발생)과달리 CoinJoin을 사용하여 프라이버시에 도움
    • 단점 : 참여자간 상호작용 필요
      • → 모든 입력 소유자가 인증과 전체 병합된 트랜잭션 확인을 위해 서명해야함
        → 오프라인, 익명 및 비동기 방식으로 트랜잭션 병합 불가능
    • 비대화 형식의 CoinJoin : One Way Aggraegate Signatures(OWAS)
      • → 더 복잡한 암호 가정(암호페어링) 필요
  • 기밀거래(Confidential Transaction,CT) - Greg Maxwell이 제안
    • 비트코인 프라이버시 보호가 목적
    • Commitment scheme
    • Pedersen Commitment : 평범한 UTXO값을 cryptographic commitment로 대체, 동형적 특성(입력과 출력의 합이 같음)
    • commitments 는 체인에 주소를 표시하지 않음
    • Commitment : private key에 바인딩되어 암호 commitment에 포함된 잔액을 보유하고 있음을 나타냄
      • → 잔액값 표시를 원할경우 원래값 만이 수학연산을 충족하므로 수동으로 수정 불가
    • 받는 사람만 거래 금액을 정확히 알수 있음
  • blinding factor
    • commitments생성시 사용한 매개변수
    • blinding factor를 알고 있는 사람만 거래출력 사용 가능
    • blinding factor를 통해 private key를 만들고, 지불트랜잭션의 출력으로 사용
    • 신분인증의 기본요소, 공유해서는 안됨
    •  
관심 주제를 선택해주세요. 선택하지 않으면 모든 글을 구독합니다.