비트코인 캐쉬를 문자 메시지로 전송해 보자 – 코인텍스트(CoinText) 서비스 시범 운영 중!

in #coinkorea6 years ago (edited)

이터니티 대문_캘리1.jpg

안녕하세요, 양질의 암호화폐 소식을 전달해드리기 위해 노력하는 이터니티@eternittyyy입니다 :)

오늘은 코인데스크에 올라온 비트코인 캐쉬 관련 소식기술적인 부분에 대한 제 나름대로의 해석을 전해드리겠습니다.


cointext1.jpg

코인텍스트 홈페이지 대문



블록체인 결제 솔루션 회사인 코인텍스트(CoinText)가 비트코인 캐쉬(BCH) 거래를 문자 메시지 전송 수준으로 쉽게 만드는 기술을 소개했습니다.

코인텍스트의 인터페이스를 이용하면 인터넷이나 스마트폰 어플리케이션 없이도 간단한 명령어를 이용해 비트코인 캐쉬를 주고받을 수 있다고 하네요.

아직은 베타 버전으로 운용되고 있으나, 코인텍스트 측은 곧 스마트폰이 없는 사람도 비트코인 캐쉬 거래를 할 수 있도록 만들 것이라고 포부를 밝혔습니다. 모든 베타 테스터들은 1달러의 무료 비트코인 캐쉬를 받아 해당 기능을 시험해 볼 수 있다고 하는군요. 시험 대상 지역은 미국, 캐나다, 영국, 호주입니다.

코인 텍스트 홈페이지에 올라온 인터페이스 예시입니다. 정말 간편해 보이네요.


보통 사람들은 QR 코드나 모바일 앱을 이용하여 비트코인 지갑에 접근합니다. 하지만 코인텍스트 서비스를 이용하면 연락처만 있어도 송금이 가능하죠. 기존의 암호화폐 지갑들과는 달리 코인텍스트는 거래소에 자신의 계좌를 등록하거나, 복잡한 키를 복사해 둘 필요가 없다고 합니다.

코인 텍스트의 지갑은 간단하고 기초적인 명령어만으로 이용할 수 있습니다. 또한, 코인텍스트의 월렛은 거래를 온체인내에서 직접적으로 해결하기
때문에 거래 내역을 따로 저장할 필요가 없다고 합니다. 텔레그램 봇처럼 사용할 수 있으면 접근성이 혁신적으로 늘어나긴 하겠네요.

궁극적으로 코인텍스트의 목적은 고객들이 안전하고 간편하게 송금 시스템을 이용할 수 있게 함으로써, 금융권으로부터 소외된 수십억 명의 사람들까지 비트코인 캐쉬를 사용할 수 있게 하는 것입니다. 이런 목적을 가진 프로젝트로는 동남아에 기반을 둔 대출 플랫폼, 마이크로머니가 떠오릅니다. 하지만 코인텍스트 서비스는 단순 대출 같은 특정한 분야에 한정되어 있지 않으며, 다양한 분야로 비트코인 캐쉬의 사용을 확장시킬 수 있는 가능성을 담고 있습니다.

비트코인 캐쉬를 모든 핸드폰에서 문자메시지로 보낼 수 있게 된다면, 코인텍스트의 목표처럼 이 서비스는 정말 수십억 명을 포용할 수 있는 파급력을 가질 수 있다고 생각합니다.


그런데 이런 기술은 어떻게 가능할까요?


제가 볼 때, 눈여겨볼 점은 크게 두 가지입니다. 하나는 코인텍스트의 암호화 알고리즘이고, 두 번째는 코인텍스트 지갑의 저장소입니다.


  • 코인텍스트 암호화 알고리즘


    locker.jpg

비트코인 지갑은 우리가 들고 다니는 지갑의 개념과는 조금 거리가 있습니다.


사실 비트코인에서 ‘지갑’이라고 부르는 것은 전통적인 의미에서의 지갑이 아닙니다. 우리는 복잡한 ‘개인 키’를 이용, 해당 지갑에 로그인하여 잔액을 사용합니다. 그런데 해당 지갑 주소에 맞는 개인 키를 알고 있다면 누구나 그 지갑을 운용할 수 있죠. 예를 들어, 지하철 역사에 있는 물품 보관소 사물함 안에 돈이 들어 있다고 가정해 보겠습니다. 이때, 해당 사물함 비밀번호만 알면 잔액을 쓰거나 보관할 수 있겠죠? 암호화폐의 지갑은 이런 물품 보관소의 개념과 닮아 있습니다.

개인 키 생성에 관여하는 것은 랜덤 문자열을 뱉어내는 알고리즘입니다. 일반적으로, 특정한 단어들의 조합을 통해 복잡하고 긴 개인 키를 생성해 내죠. 문제는, 해당 알고리즘이 똑 같은 개인 키를 만들어 내는 경우가 없어야 한다는 것입니다.

비트코인은 BIP39와 함께 이러한 개인 키 생성 알고리즘을 2013년에 도입했습니다. 키 생성 알고리즘은 개인 키를 계속 생성하더라도 같은 문자열이 나오지 않게 큰 경우의 수를 만들어낼 수 있어야 합니다. 지갑을 새로 생성했는데 이미 존재하는 개인 키와 같은 키가 나오면 안되니까요.

코인텍스트는 자체적으로 개발한 알고리즘을 이용, 사용자의 핸드폰 번호 조합을 시드(seed)로 하여 개인 키를 생성한다고 주장합니다. 자체 알고리즘을 이용하여 BIP39처럼 단어를 시드로 하지 않고, 핸드폰 번호 각각에 의존하여 복잡한 개인 키를 만들 수 있다는군요.

즉, 위 그림에서 'Big Random Number' 대신 고객의 핸드폰 번호를 이용한다는 뜻입니다. 그리고 코인텍스트 측에서 개발하는 자체 알고리즘이 'Key Generating Function' 자리에 들어가게 되겠죠.


  • 코인텍스트 지갑은 무엇이 다른가?


개인 지갑의 종류는 여러가지가 있는데요, 많은 분들이 보통 ‘핫 월렛’ 이라고 불리는 소프트웨어 월렛에 개인 키를 넣습니다. 이런 핫 월렛(예 : 마이 이더 월렛)들은 앱 내에 개인 키가 저장됩니다. 하지만 코인텍스트는 지갑이 클라우드에 저장되어 있고, SMS 메시지를 이용해서 원격으로 조작이 가능하게 되어 있습니다. 코인텍스트 서비스를 이용할 때마다, 퍼블릭 키(지갑 주소)와 짝을 이루는 개인 키(지갑 비밀번호)가 만들어져서 해당 거래를 유효화하는 과정을 거친다고 하네요. 또한, 거래 시 생성된 개인 키는 수 초 만에 생성되며 거래가 완료된 직후 관련 정보들이 바로 삭제된다고 합니다.

이 부분에 대해 궁금해하시는 분들이 많아 보충 설명을 덧붙입니다. 위의 사진을 보면 암호화 알고리즘이 퍼블릭 키와 프라이빗 키를 생성하는 모습을 볼 수 있죠? 이때 퍼블릭 키를 '지갑의 주소'로, 프라이빗 키를 '지갑의 비밀번호'로 간주하시면 됩니다. 퍼블릭 키는 공개되어 있지만 지갑을 사용하기 위해서는 프라이빗 키가 필요하죠. 그런데 특정 알고리즘에 시드 값을 넣었을 때, 항상 원하는 프라이빗 키를 알 수 있다면 어떨까요? 이럴 경우, 알고리즘만 갖고 있으면 굳이 프라이빗 키를 어딘가에 계속 저장하지 않고 필요할 때만 이 알고리즘을 이용하면 됩니다. 알고리즘을 통해 프라이빗 키를 생성하여 전송 기능을 실행한 후, 만들어진 프라이빗 키를 바로 삭제하는 겁니다. 그렇게 되면 해커들이 데이터베이스를 해킹해도 사용자의 프라이빗 키(개인 키)를 알아낼 수가 없죠. 코인텍스트가 바로 이런 키 생성 알고리즘을 개발하는 겁니다.

이 때, 코인텍스트가 개인 키나 전화 번호, 거래 내역을 저장하지 않으려고 하는 이유는 크게 3가지로 정리해 볼 수 있습니다.

  • 코인텍스트는 개인 키나 거래 내역을 저장할 이유가 없습니다. 코인텍스트 서비스는 거대한 데이터베이스의 운용을 필요로 하지 않으므로 거래의 효율성이라는 큰 메리트를 가질 수 있기 때문입니다.

  • 또한, 보안성 측면에서 사용자에게 민감할 수 있는 정보를 저장하고 있다는 것은 잠재적 위협으로 작용할 수 있습니다.

  • 마지막으로, 사용자의 개인 정보를 가지고 있다는 것 때문에 정부 규제의 눈치를 끊임없이 보아야 할 수 있습니다.

즉, 코인 텍스트는 거래 마다 개인 키를 발급하여 안정성을 높이고, 데이터 저장을 최소화함으로써 전송 속도를 늘릴 수 있습니다.



그럼 코인텍스트를 이용하면 훨씬 적은 수수료로 비트코인 캐쉬를 전송할 수 있을까요? 코인텍스트 측에 따르면, 송금/출금시 12$ 이하의 금액에는 3센트, 12 달러 이상의 금액에는 0.25퍼센트의 수수료가 부과된다고 합니다. (100달러를 보낸다고 하면 25센트정도네요.) 수수료 책정은 합리적인 것 같습니다.

이외에도 인터뷰 등에서 다양한 기술적 이야기를 합니다만, 다 읽으실 필요는 없습니다. 중요한 부분만 다시 요약하면,

  • 핸드폰 번호를 이용해 복잡한 개인 키를 만드는 자체 알고리즘을 보유하고 있다.

  • 코인텍스트 지갑은 핸드폰이 아니라 클라우드에 저장되어 간편하고 안전하게 이용할 수 있다.

정도로 정리해 볼 수 있습니다.

다만 핸드폰을 잃어버렸을 때 생기는 보안 문제는 여전히 존재합니다. 그래서 코인텍스트 측에서는 사용자가 ‘자체적으로 핸드폰에 잠금을 걸어 놓을 것’을 권유하더군요. 개발진들은 보안성을 강화하기 위해, 2FA(Tow-Factor Authentication, 이미 많은 분들이 쓰고 계시죠?) 등을 이용해 취약점을 보충해 나갈 것이라고 하네요. 물론 핸드폰을 잃어버리는 일 자체가 없어야 하겠습니다.


비트코인 캐쉬는 정말 구설수에 자주 오르는 코인입니다. 하지만 저는 컬러드 코인이나 이번 코인 텍스트 서비스에서 볼 수 있듯, 비트코인 캐쉬에 실질적인 호재들이 계획되어 있는 느낌을 받고 있습니다. 개인적으로 선호하는 코인은 아니지만, 투자의 측면에서는 가능성을 걸어봐도 좋은 코인이라고 생각합니다.



읽어 주셔서 감사합니다. 언제나 현명한 투자를 하시길 기원하겠습니다 :)




암호화폐 관련 이전 글들 소개:

Tangem 프로젝트 : 비트코인을 손으로 만질 수 있게된다고? – Tangem 프로젝트를 소개합니다

아이오타(IOTA) : 2018년은 (IOTA)아이오타의 해? – 현실 도입이 임박한 아이오타

비트커넥트(Bitconnect) : 최악의 폰지 사기, 비트커넥트 근황 - 리퍼럴 링크의 위험성?

네오(NEO) : 네오 1편 : 네오가 무슨 플랫폼인가요?, 네오 2편 : 네오는 어떻게 채굴되나요?, 네오 3편 추가 예정



건전한 비판과 논의는 언제나 환영입니다. 댓글로 달아주시면 감사드리겠습니다. 글이 도움이 되었다면, 다른 분들도 읽을 수 있게 응원해주시면 정말 감사하겠습니다!

Sort:  

Cheer Up!

  • from Clean STEEM activity supporter

스스로 홍보하는 프로젝트에서 나왔습니다.
오늘도 좋은글 잘 읽었습니다.
오늘도 여러분들의 꾸준한 포스팅을 응원합니다.

약간 이해가 잘 안되서 그러는데 질문 드려도 될까요?

  • 코인텍스트의 월렛은 거래를 온체인내에서 직접적으로 해결하는 알고리즘을 사용하기 때문에 거래 내역을 따로 저장할 필요가 없다고 합니다.
    --> 이게 어떤 의미인지 잘 모르겠습니다..

  • 기존에 BIP39가 아닌 휴대폰 번호기준 비대칭키를 만든다는 것은 이해했는데요.
    글을 읽어보면 공개키(지갑)는 클라우드에 저장되지만, 개인키는 어디에 저장이 되는 것이죠? 사용자의 휴대폰에 저장이 되는 것인가요?

  • 임시키의 기능이 정확히 무엇인지 궁금합니다. 개인키의 전자서명 및 공개키를 통한 검증이 블록체인 유효성 검증의 기본인데 어떤 식으로 구성하는지 잘 이해가 안가서요 ㅜ

감사합니다!

먼저, 피드백 주셔서 정말 감사드립니다 :)

  • 온체인, 오프체인 등의 개념이 있는데, 이게 그렇게 복잡한 개념은 아닙니다. 온체인은 그냥 네트워크 내에서 이루어지는 거래(거의 대부분의 거래)를 의미합니다. 예를 들어 @apmmh님이 이더월렛으로 친구에게 1이더를 전송하기 버튼을 눌렀다면, 그건 온체인입니다. 네트워크에 바로 해당 거래가 올라가니까요. 반면 오프체인일 경우, 거래가 블록체인 네트워크 상에 바로바로 올라가지 않고 어느 정도 거래 내역을 정리해서 한 번에 올리게 됩니다.

예를 하나 들어보겠습니다. 친구들끼리 꼬치구이 집에 가서 술과 각종 음식을 시킵니다. 이때, 꼬치구이를 하나 먹을 때마다 각자 돈을 지불하는 것은 온체인 입니다. 반면 꼬치구이를 전부 다 먹고 나서 가게를 나가기 전 돈을 모아 1명이 결제하는 것은 오프체인 입니다. 꼬치구이를 먹는 것을 거래 생성, 꼬치구이를 계산하는 것을 '해당 거래의 정보를 블록체인 네트워크에 올리는 것'이라고 보시면 되겠네요. 즉, 온체인은 바로 바로 계산을 하는 것이고, 오프체인은 모아두었다가 한꺼번에 계산하는 것에 가깝습니다. 이런 맥락으로 이해하시면 되는데.. 도움이 되었을까요? ^^;

  • 2, 3번의 항목과 관련해서는 제가 봐도 조금 헷갈리게 본문이 작성되었습니다. 정말 죄송합니다. 수정된 본문에서 보충설명을 가져오면,

이 부분에 대해 궁금해하시는 분들이 많아 보충 설명을 덧붙입니다. 위의 사진을 보면 암호화 알고리즘이 퍼블릭 키와 프라이빗 키를 생성하는 모습을 볼 수 있죠? 이때 퍼블릭 키를 '지갑의 주소'로, 프라이빗 키를 '지갑의 비밀번호'로 간주하시면 됩니다. 퍼블릭 키는 공개되어 있지만 지갑을 사용하기 위해서는 프라이빗 키가 필요하죠. 그런데 특정 알고리즘에 시드 값을 넣었을 때, 항상 원하는 프라이빗 키를 알 수 있다면 어떨까요? 이럴 경우, 알고리즘만 갖고 있으면 굳이 프라이빗 키를 어딘가에 계속 저장하지 않고 필요할 때만 이 알고리즘을 이용하면 됩니다. 알고리즘을 통해 프라이빗 키를 생성하여 전송 기능을 실행한 후, 만들어진 프라이빗 키를 바로 삭제하는 겁니다. 그렇게 되면 해커들이 데이터베이스를 해킹해도 사용자의 프라이빗 키(개인 키)를 알아낼 수가 없죠. 코인텍스트가 바로 이런 키 생성 알고리즘을 개발하는 겁니다.

개인 키는 보관되지 않고, 코인텍스트 자체 알고리즘으로 생성된 후 수초 안에 삭제됩니다. 생성되고 삭제되는 수초 동안 전송 등의 기능이 수행되는 것이구요.

제 답변이 도움이 되었길 바랍니다. 또 질문이 있으면 언제나 문의주세요 :)

친절한 설명 감사드립니다.

  • 온체인관련 : 온체인의 의미는 알고는 있었는데 본문에서 말하는 "직접적으로 해결하는 알고리즘" 이란게 뭔가 다른 방식이 포함되어 있는지 해서 질문을 드렸습니다. ㅎㅎ

  • 개인키 관련 : 그렇다면 휴대폰 번호가 seed라면 휴대폰 번호도 어느정도 공개된 정보라 할 수 있는데, 안전하면서도 특정 개인에게 유니크한 개인키가 생성되기 위해서는 휴대폰 번호 이외에 다른 정보도 결합되어야 할 것으로 보여지는데요. (가령 mac주소 등) 해당 사용자에게는 매번 동일한, 그러면서도 남들은 유추할 수 없는 개인키를 매번 다이나믹하게 생성하는게 신기하네요...

  • 그리고 답변주신 내용에서 공개키를 통해 개인키를 계산한다는 내용이 있는데요. 이게 정말인가요? ;;;; 제가 아는 지식수준에서는 놀라울 따름입니다...

  • '직접적으로 해결하는 알고리즘'이라는 표현이 모호하고 오독의 여지가 커서 수정했습니다. 죄송합니다 ㅠㅠ 그냥 실시간으로 거래 장부에 올라간다고 이해하시면 될 것 같습니다.
  • 개인키를 생성하는 알고리즘만 잘 지킨다면, 어느 정도 안정성이 보장될 수 있다고 생각합니다. 인터뷰에서는 지역번호 + 개인 번호 뿐만 아니라 기지국과도 연계를 해서 거래가 정말 유효한 거래인지 확인한다더군요. 기술적인 부분이 아직 전부 공개된 것이 아니라서, 조금 더 지켜봐야 할 것 같습니다. 또한, 개인 키가 매번 달라지지는 않을 것이라고 생각합니다.
  • 비트코인이 주소를 만드는 방법을 생각하면, 개인 키를 생성하는 과정은 비트코인과 비슷한 절차를 밟는 것 같습니다. 비트코인은 해쉬 함수를 이용해서 퍼블릭 키로부터 주소를 추출하니까요.

질문 드린 사항에 대해 보충설명 링크를 달아드리고 싶었는데, 찾을 수가 없네요ㅠ 시간 나실 때 해시함수의 작동 원리에 대해 읽어보시는 것을 추천드립니다. 재밌게 읽으실 수 있을 거에요 :-)

  • 넹~ 매번 동일한 개인키를 다이나믹하게 생성하되, 동일한 개인키를 남들이 만들 수 없는 SEED를 통해 만들어야 하는게 핵심인것 같습니다. 상세한 기술내용이 나오면 한 번 보고싶네요.

  • RSA 자체가 역산이 불가능한 점이 보안성의 핵심입니다. 개인키의 전자서명을 공개키로 검증을 통해 이 전자서명이 유효하단 것을 알 수 있는 것이지 공개키를 통해 개인키를 계산하는 것은 불가능하거든요. 그걸 말씀 드렸습니다. ㅎㅎ

넵.. 시드키를 통해 주소와 페어를 이루는 개인 키를 계산한다고 썼었어야 했는데 제가 퍼블릭 키를 통해 계산한다고 적어 놓았네요 ㅠ 죄송합니다 수정/보팅으로 감사함을 표현하고 갑니다!

2fa가 적용되어 좀 더 보안만 강화된다면 유용해질수 있겠네요!

보안 문제는 기존 월렛보다 나은것 같습니다 ^^

Congratulations @eternittyyy! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on any badge to view your own Board of Honor on SteemitBoard.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

잘봤습니다 ㅎㅎ

감사합니다 :)

좋은 정보감사합니다

읽어주셔서 감사합니다 :)

역시 점점 발전하네요. 암호화폐의 끝은 어딜지 궁금합니다.

외쳐보시죠. 끝은 없는~거야~

비캐의 비지니스는 우주최강입니다. 언젠가는 일인자의 자리에 앉길 바랍니다. 리스팀할께요.

감사합니다. 저도 비캐 보유 비율 고민이 많습니다 ㅋㅋ..

코인텍스트 서비스에 관심이 많은데, 만약 2fa 를 도입하면 보안성은 확실히 향상되겠네요. 문자 전송해킹하는 것을 막을 수 있는 해결책 입니다. 개개인의 개인지갑을 어딘가 보관해야 할텐데 이런건 잘 이해가 안됩니다

이 부분에 대해 궁금해하시는 분들이 많아 보충 설명을 덧붙입니다. 위의 사진을 보면 암호화 알고리즘이 퍼블릭 키와 프라이빗 키를 생성하는 모습을 볼 수 있죠? 이때 퍼블릭 키를 '지갑의 주소'로, 프라이빗 키를 '지갑의 비밀번호'로 간주하시면 됩니다. 퍼블릭 키는 공개되어 있지만 지갑을 사용하기 위해서는 프라이빗 키가 필요하죠. 그런데 특정 알고리즘에 시드 값을 넣었을 때, 항상 원하는 프라이빗 키를 알 수 있다면 어떨까요? 이럴 경우, 알고리즘만 갖고 있으면 굳이 프라이빗 키를 어딘가에 계속 저장하지 않고 필요할 때만 이 알고리즘을 이용하면 됩니다. 알고리즘을 통해 프라이빗 키를 생성하여 전송 기능을 실행한 후, 만들어진 프라이빗 키를 바로 삭제하는 겁니다. 그렇게 되면 해커들이 데이터베이스를 해킹해도 사용자의 프라이빗 키(개인 키)를 알아낼 수가 없죠. 코인텍스트가 바로 이런 키 생성 알고리즘을 개발하는 겁니다.

개인 키는 보관되지 않고, 코인텍스트 자체 알고리즘으로 생성된 후 수초 안에 삭제됩니다. 생성되고 삭제되는 수초 동안 전송 등의 기능이 수행되는 것이구요.

제 답변이 도움이 되었길 바랍니다. 또 질문이 있으면 언제나 문의주세요 :)

같은 질문인 것 같아, @apmmh님께 달았던 답글을 그대로 가져왔습니다. 양해 부탁드려요 ^^;; 피드백 주셔서 감사합니다!

Coin Marketplace

STEEM 0.32
TRX 0.12
JST 0.033
BTC 64647.16
ETH 3160.49
USDT 1.00
SBD 4.13