㈜해시넷이 2019년 10월 15일(화)에 2019년 해시넷 블록체인 콘퍼런스를 진행합니다.

검수요청.png검수요청.png

비트어드레스

해시넷
이동: 둘러보기, 검색
비트어드레스(BitAddress) 로고
비트어드레스(BitAddress) 로고와 글자

비트어드레스(BitAddress)는 오픈소스 기반의 자바스크립트 클라이언트 측 비트코인 암호화폐 지갑 생성기이다.[1] 오프라인 사용 또는 안전한 오프라인 저장용으로 하나 이상의 비트코인 주소를 안전하게 생성하며 생성된 주소와 개인 키 쌍은 비트코인을 받은 다음 소프트웨어를 실행하거나 외부 eWallet 서비스를 사용하지 않고 보낼 수 있다. 올인원 웹 페이지는 오프라인(즉, 인터넷에 연결되지 않고)으로 사용할 수 있다.[2]

개요[편집]

비트어드레스는 비트코인의 비밀키, 주소의 생성과 보존에 전념하여 보다 안전하고 편리하게 비트코인 지갑을 만들고 관리할 수 있는 도구로 단일지갑(Single Wallet), 페이퍼월렛, 볼크월렛(Bulk Wallet), 브레인월렛(Brain Wallet), 배니티월렛(Vanity Wallet), 스플릿월렛(Split Wallet) 생성기능과 지갑내역조회 기능이 있다.[3] bitaddress.org 프로젝트는 JavaScript / Css / Image가 내장된 일체형 HTML 문서를 제공한다. JavaScript는 읽을 수 없으며 XMLHttpRequest가 없다(AJAX 없음). 이 기술의 이점은 JavaScript를 로컬로 로드하고 JavaScript가 로드된 후 변경되지 않았다는 것을 신뢰할 수 있다는 것이다.[1]

지갑 생성 및 기능[편집]

비트어드레스(bitaddress.org)는 사용자가 오프라인으로 비트코인 지갑 주소를 생성할 수 있도록 허용하고, 사이트에 들어가 접속한 다음 오른쪽 버튼을 클릭하여 "웹 사이트별 저장"을 선택하여 로컬로, 오프라인으로 저장한 후 브라우저로 열어서 사용할 수 있다. 사용자가 웹 페이지를 열면 "랜덤 시드 만들기" 페이지가 나타나며 마우스를 흔들거나 텍스트 상자에 문자를 임의로 입력함으로써 랜덤 시드가 발생한다. 이 부분은 사용자가 지갑을 생성하는 무작위성을 보장하기 위한 것이다.[3]

단일지갑(Single Wallet)[편집]

가장 기본적인 기능으로 "개인 키-주소" 쌍을 생성한다. 개인 키에 대한 비밀유지에 주의하며, 주소는 BTC주소를 수락하는데 사용되며 외부에 공개될 수 있다.[3]

단일지갑 생성
 

페이퍼월렛[편집]

사용자가 일부 지갑 주소 쌍을 대량으로 생성할 수 있도록 허용하고, 편집을 거치면 인쇄, 보관이 용이해지는 형식이다.

  1. Addresses to generatorate에서 생성하고자 하는 지갑의 수를 입력하고 * Addresses per page에서 용지에 인쇄할 지갑의 수량을 입력
  2. Generverate 버튼을 눌러 주소를 생성한다.
  3. 프린터버튼을 눌러 프린터한다.[3]

주의: BIP38 Encrypt가 선택되어 있다면 오른쪽의 텍스트 상자에 암호를 입력하여 BIP38 암호화된 개인 키를 생성할 수 있다. 이렇게 하면 다른 사람에게 보이는 것을 걱정할 필요가 없다. 주의할 점은 암호화와 암호해제가 매우 느리고 웹페이지가 오래동안 반응하지 않을 수 있으므로 기다려야 한다. Hide Art복구 박스를 선택하면 배경 이미지를 취소할 수 있어 조밀하고 스스로 사용하기가 적합하다. 배경이 있는 페이퍼월렛은 카드모양이여서 접으면 비밀키 부분을 가운데로 숨기고 주소를 밖에 전시할 수 있어 보기도 좋다.[3]

페이퍼월렛 생성
 

볼크월렛[편집]

사용자가 많은 지갑을 단숨에 생성하여 예비용으로 사용할 수 있도록 허용한다. 예를 들어 사용자가 비트코인 지불을 받는 사이트가 있는데, 고객 개개인을 위한 하나의 지불 주소를 마련해야 한다면 비교적 영리한 방법은 대량지갑 도구로 많은 지갑을 생성하여 그것들의 주소를 서버에 두고 개인키는 오프라인으로 보관하는 것이다. 서버에서 지갑을 실시간으로 생성하는 것이 아니라 또한 개인 키를 서버에 두는 것은 위험하다. 생성된 양식은 인덱스번호, "주소", "개인 키"를 로딩처리가 용이하도록 SCV포맷으로 작성된다.

  1. Start index에서 시작 번호를 입력했는데, 만약 지난번에 사용자가 1,000개의 지갑을 생성했다가 충분하지 않다는 것을 알게 되면, 이번에는 1001을 입력하면 번호 1001부터 생성된다.
  2. Rows to geneate에서 대량으로 생성하려는 지갑의 수량을 입력한다.
  3. Generate버튼을 누르고 지갑 생성
  4. 프린터버튼을 누르고 프린터한다.

비고: Compressed addresses 프레임을 리셋하면 압축주소와 압축 개인키가 생성된다.[3]

볼크월렛 생성
 

브레인월렛[편집]

한 단락의 명령어 입력으로 생성된 지갑이다. 사용자가 구령을 기억하는 한 어떤 컴퓨터에서든지 사용자의 개인 키를 복원할 수 있다. 물론 사용자가 비밀키를 직접 암기할 수도 있지만, 분명히 구령이 더 잘 기억할 것이다. 페이퍼월렛에 비해 브레인월렛은 다른 사람이 볼 수없다. 하지만 브레인월렛은 다른 사람이 추측할수 있는 것이 단점이다. 브레인월렛의 가장 큰 위험은 약한 구령에서 오는 것으로, 구령은 사용자 한명이 기억할 수 있어야 하고 충분히 복잡하고 충분히 길어야 한다. Enter Passphrase 및 Confirm Passphrase에 구령을 입력하면 utf-8 코드를 지원한다.[3]

브레인월렛 생성
 

배니티월렛[편집]

일부 사용자 정의로 생성된 지갑이다. 예를 들어 1LoveYoU 으로 시작하는 주소를 생성 한다면 주로 궁여지책, 충돌을 통해 원하는 주소를 얻게 된다. 일반적으로 개인키는 공용 키, 공용 키는 주소를 산출하며 한사람이 주소를 산출해 낸다는 것은 그가 개인 키를 장악했음을 설명한다. 이런 배니티 주소의 안전성을 보장할 수 있는 방법은 의뢰인을 통해 구체적으로 다음과 같이 할 수 있다.

  1. Generate 버튼을 눌러 첫 번째 단계의 공-개인 키를 생성한다. 본인이 개인키 R1을 보존하고 공키 U1만 의뢰인에게 알려준다.
  2. 의뢰인은 배니티주소를 산출한 후 공용키 U2를 사용자에게 알려주며 U1과 U2를 각각 두 개의 텍스트 상자에 부착한다. Calculate Vanity Wallet버튼을 누르면 공용키 U3 및 배니티주소를 얻을 수 있다. 이 주소가 사용자의 요구에 부합되면 지불을 할 수 있다.
  3. 지불이 완료되면, 의뢰인은 사용자에게 개인 키 R2를 산출하고 R1과 R2를 각각 두 개의 텍스트 상자에 부착하여 Calculate Vanity Wallity버튼을 누르면 개인 키 R3을 얻는다.
  4. Calculate Vanity Wallet버튼을 눌러 두개의 텍스트박스에 대해 '가운산'을 실행한다(일반적인 덧셈이 아님)[3]
배니티월렛 생성
 

스플릿월렛[편집]

한 번에 여러 개의 '분열 개인키'를 생성해 그 일부를 모아놓으면 진정한 개인 키를 되찾을 수 있다. 두 개의 변수를 입력해야 한다.

  1. 변수 Minimum share threshold neededed to combine 개인 키 조합에 필요한 최소 분할 개인 키의 개수
  2. 변수 Number of shares 분열할 총 개수. 첫번째, Generate 버튼을 눌러 하나의 분열지갑을 생성한다. 두번째, Enter Available Shares (whitespace separated)에 "분할 개인 키"를 충분히 입력한다(공백표 분할). 세번째, Combine Shares 버튼을 누르면 결과 개인 키를 만들 수 있다. 예를 들어 변수 5, 7은 주소 1개와 "분열 개인 키" 7개를 발생시킨다. 이 중 최소 5개를 사용하면 결과 키를 만들 수 있다.(경고: 사용하는 분열 수량 개인 키가 충분하지 않을 경우, 합성된 개인 키와 실제 결과는 서로 다르다.)[3]
스플릿월렛 생성
 

지갑내역 조회[편집]

지갑내역을 조회할 수 있는 기능이다. Enter Private Key에 개인 키를 입력하면 개인 키는 WIF, WIFC, HEX, B64, B6, MINI, BIP38 등 형식을 지원한다. 그 중

  1. WIF, 지갑 개인키를 유도할 수 있다. 5로 시작하는 51개자리 Base58, 통상적으로 우리가 사용하는 개인 키 쓰기법은 바로 여러 클라이언트를 직접 가져올 수 있다.
  2. WIFC, 지갑을 가져올 수 있는 개인 키-압축, K 또는 L로 시작하는 52개 자리 Base58, 클라이언트를 가져오면 보통 해당 개인 키가 대응하는 압축 주소가 생성된다.
  3. HEX, 개인 키의 16진법, 64개 자리.
  4. B64, 개인 키의 Base64 쓰기, 44개 자리
  5. B6, 개인 키의 Base6 쓰기, 99자리, 아래에 자세히 설명되어 있다.
  6. MINI, 미니 키는 안전성이 우려되므로 사용하지 않는 것이 좋다.
  7. BIP38, BIP38 암호화 키는 암호를 입력해야 자세한 내용을 볼 수 있다.(주의, 암호화와 암호해제는 매우 느리고 사이트가 오래 동안 아무런 반응이 없을 수 있으며, 아마도 새로고침을 하여 다시 할 필요가 있다.)[3]
지갑내역 조회
 

사용자 참고사항[편집]

  • 대량 지갑의 경우 Chrome을 사용하는 것을 권장한다.
  • IE9 +, Firefox, Chrome 또는 충분한 JavaScript 지원이 필요하다.
  • Mobile Safari는 iPhone4 이상 기기에서만 작동한다. JavaScript를 실행하는 동안 이전 장치가 시간이 초과될 수 있다.
  • Opera Mini를 사용하지 않는다. JavaScript 출력 서버 측을 렌더링하므로 생성한 개인 키를 기록 할 수 있다.
  • BIP38은 하드웨어 제한으로 인해 모바일 장치에서 작동하지 않을 가능성이 높다.[1]

각주[편집]

  1. 1.0 1.1 1.2 "bitaddress.org", GitHub
  2. "BitAddress", Bitcoin Wiki
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 BigMan, 〈开源比特币钱包工具bitaddress.org功能介绍〉, 《优享》, 2018-10-24

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 비트어드레스 문서는 암호화폐 지갑에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.