Giter VIP home page Giter VIP logo

linkbit-backend-lambda's Introduction

Linkbit-Backend-Lambda Build Status Coverage Status

Cryptocurrency Linking Service - Linkbit
암호화폐 간편 송금 솔루션 Linkbit 백엔드

Environment

  • node version : 10.15.3
  • Typescript
  • AWS-Lambda
  • Serverless.js

Project structure

├─domain        // Clean Architecture - Domain Layer : Usecase 정의 
├─handler       // aws-lambda handler 정의
├─models        // model, Database Table 정의
├─service       // Clean Architecture - Data Layer : Usecase 구현
└─util          // 유틸리티 모듈

Link address 컨셉

문제상황

  • 복잡하고 외울 수 없는 암호화폐 지갑 주소
  • 여러 코인의 지갑마다 주소가 존재 => 이를 위해 각각의 주소를 관리하고 송금시 알려주어야 함.

link address 해결 방안

지갑 주소를 간단하게 만들어주며 코인마다 존재하는 지갑주소를 하나의 주소로 통합해주는 link address 컨셉

한계

  • 일부 코인들의 경우 추적을 불가능 하도록 주기적으로 지갑 주소가 변경됨
  • 현재 블록체인의 속도와 비용으로 주소 관리, 조회를 정상적으로 하기엔 어려움이 있다고 판단됨

Address Owner 검증 전략

주소 생성 과정 : Private Key -> Public Key -> Account Address
Public Key로 encrypt한 token을 client가 private key로 decrypt하여 해당 account address의 소유주임을 인증함

linkbit-backend-lambda's People

Contributors

boxfox619 avatar

Watchers

James Cloos avatar  avatar Ashton Yoon avatar

linkbit-backend-lambda's Issues

eccrypto - ecdh native module

eccrypto 모듈에서 구현된 ecdh native library가 aws lambda 배포시 함께 배포가 되지 않는 문제

public key 저장 로직 보안 강화

public key를 db에 저장하면 보안에 문제가 있을 수 있음
private key -> public key -> address 순으로 만들어짐
역순으로 탐색하는 것은 거의 불가능 함.
public key를 탈취당하면 해독과정이 한단계 스킵된다고 볼 수 있음

암호화 또는 account address로 대체 필요

db 연동

public blockchain에 주소 매핑 정보를 업로드 하는게 가장 이상적
-> 기술 및 비용이 필요함

따라서 database로 구축 후 서비스 경과에 따라 이전여부 결정

address 소유 검사 알고리즘 구현

eth-crypto 라이브러리가 java버전으로 존재하지 않아 javascript로 변경할 것인지 java로 구현할것인지 결정 필요
타원곡선 암호화 알고리즘 중 ECIES를 사용

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.