읽는 데 4분
개요
웹 애플리케이션에서 널리 사용되고 구문이 간단하기 때문에, 루비는 수많은 사람들이 사용하고 있습니다. 이 가이드에서는 ruby-eth 젬/패키지를 사용하여 루비로 이더리움 주소를 생성하는 방법을 다룰 것입니다.
필수 조건
- 시스템에 Ruby가 설치되어 있습니다(Ruby 2.x 이상).
- 루비 환경 관리자 (RBEnv)
- 텍스트 편집기
이더리움 주소란 무엇인가요?
인터넷상의 어떤 플랫폼에 로그인할 때든, 인증 정보를 조합하여 본인 인증을 거쳐야 합니다. 이더리움 주소를 사용자 이름으로, 이에 대응하는 개인 키를 비밀번호로 생각하면 됩니다. 이더리움 주소는 공개되어 있어 공유할 수 있지만, 개인 키는 반드시 비밀로 유지해야 합니다. 이 조합을 사용하면 이더리움 블록체인과 상호작용할 수 있습니다. 이더리움 주소는 블록체인 상에서 사용자의 신원을 나타내며, “0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE”와 같은 형태를 띱니다. 유효한 이더리움 주소는 다음을 위해 필수적입니다:
- 이더리움 수신/송금
- 거래 서명/전송
- 분산형 애플리케이션에 연결하기
이더리움 주소가 생성되는 방식:
- 먼저 64자(16진수) 길이의 임의의 개인 키(256비트 / 32바이트)가 생성됩니다.
예를 들어:
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
- 그런 다음, 생성된 개인 키를 사용하여 타원 곡선 디지털 서명 알고리즘(ECDSA)을 통해 128(16진수) 문자(64바이트) 길이의 공개 키가 도출됩니다.
예를 들어:
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe
- 그런 다음 (128자 / 64바이트) 길이의 공개 키에 Keccak-256 해시 함수를 적용하여 64자(32바이트) 길이의 해시 문자열을 얻습니다. 이 문자열의 마지막 40자 / 20바이트에 0x를 접두사로 붙이면 최종 이더리움 주소가 됩니다.
예를 들어:
0xd5e099c71b797516c10ed0f0d895f429c2781142
참고: 코딩에서 0x는 해당 숫자나 문자열이 16진수로 표기되었음을 나타냅니다.
루비란 무엇인가요?
루비는 오픈소스 인터프리터 방식의 고수준 프로그래밍 언어입니다. 루비는 마츠모토 유키히로(일명 “Matz”)가 가장 좋아했던 언어인 펄(Perl), 스몰토크(Smalltalk), 에펠(Eiffel), 아다(Ada), 리스프(Lisp)를 융합하여 만들어졌습니다. 루비는 완전히 객체 지향적이며, 정수와 같은 가장 기본적인 데이터 유형조차도 메서드와 인스턴스 변수를 가지고 있습니다. 이를 통해 메서드 체이닝이 가능해져, 여러 줄의 코드를 한 줄로 통합할 수 있습니다. 루비 프레임워크인 루비 온 레일즈(Ruby on Rails)는 이 언어가 웹 프로그래밍 분야에서 인기를 얻는 데 기여했으며, 그 주요 매력은 프로그래머가 파일 생성에 많은 시간을 할애할 필요가 없다는 점입니다.
이더리움 주소를 생성하겠다는 목표를 달성하기 위해, ‘ruby-eth’라는 루비 젬을 사용할 것입니다.
ruby-eth란 무엇인가요?
Ruby-eth는 트랜잭션 서명 및 키 생성을 지원하는 라이브러리로, Ruby-eth를 사용하면 어떤 노드를 통해서든 이더리움 트랜잭션을 생성하고 전송할 수 있습니다. 이 gem을 사용하면 키와 노드를 분리할 수 있습니다. Ruby를 실행할 수 있는 곳이라면 어디서나 트랜잭션에 서명하고 키를 관리할 수 있으며, 원하는 노드 엔드포인트를 통해 트랜잭션을 전송할 수 있습니다.
의존성 설치
젬을 설치하기 전에, 먼저 루비가 설치되어 있는지 확인해 봅시다. 터미널을 열고 다음 명령을 실행하세요:
$ ruby -v
리눅스/유닉스의 경우: 여기의 안내에 따라 사용 중인 배포판의 패키지 관리 시스템을 이용하거나, rbenv나 RVM과 같은 타사 도구를 사용할 수 있습니다.
macOS의 경우: rbenv나 RVM과 같은 타사 도구를 사용할 수 있습니다.
Windows의 경우: RubyInstaller를 사용할 수 있습니다.
이 프로젝트의 루비 버전을 관리하기 위해 rbenv를 사용할 것입니다. 먼저, rbenv가 설치되어 있는지 확인하려면 다음 명령어를 입력하세요:
$ rbenv -v
시스템에 설치된 rbenv의 현재 버전이 출력되어야 합니다. 출력되지 않는다면, 여기 있는 정보를 참고하여 rbenv를 다운로드하세요. 그런 다음 터미널을 열고 다음 명령어를 입력하여 해당 디렉터리에서 특정 Ruby 버전을 활성화하세요.
$ rbenv install 2.6.5
$ rbenv local 2.6.5
루비가 설치되어 있고 올바른 버전(이 경우 2.6.5)인지 확인했다면, 이제 필요한 젬을 설치해 보겠습니다. 루비용 패키지 관리자인 RubyGems를 사용하여 명령줄에서 설치할 수 있습니다:
$ gem install eth
macOS를 사용 중이라면, gem을 설치할 때 권한 관련 문제가 발생할 수 있습니다. macOS에 기본으로 포함된 Ruby 버전은 대개 Apple 내부 용도로만 사용되기 때문입니다. 따라서 rbenv나 RVM(Ruby Version Manager) 을 사용하여 별도의 Ruby 버전을 관리하는 것을 권장합니다. 이렇게 하면 홈 디렉토리의 샌드박스에 Ruby가 설치되므로, 시스템 Ruby를 망가뜨릴 염려 없이 마음껏 변경 작업을 수행할 수 있습니다.
이더리움 주소 생성.
텍스트 편집기를 열고 address.rb라는 새로운 Ruby 파일을 만든 다음, 다음 코드를 복사하여 붙여넣으세요.
require "eth"
key = Eth::Key.new
key.public_hex
puts "SAVE BUT DO NOT SHARE THIS (Private Key): 0x#{key.private_hex}"
puts "Address: #{key.address}"
위 코드에 대한 설명
1행: eth 젬/패키지 가져오기.
2행: Eth 객체를 생성하고, 새로운 키를 만든 다음 이를 key 변수에 저장합니다.
3행: public_hex 메서드를 사용하여 키로부터 16진수 공개 키를 생성합니다.
4행: private_key 메서드를 사용하여 key로부터 16진수 개인 키를 생성하고, 그 앞에 0x 접두사를 붙인 다음, 경고 메시지와 함께 출력합니다.
5행: 주소를 생성하고 “Address:”라는 문자열과 함께 출력합니다.
파일을 저장한 후 다음을 사용하여 실행해 주세요.
$ ruby address.rb
모든 것이 순조롭게 진행되어 코드가 성공적으로 실행되면, 다음과 같이 표시될 것입니다.

결론
축하합니다! 이제 여러분만의 이더리움 주소를 갖게 되었습니다. 이 주소를 사용하여 트랜잭션에 서명하거나 전송하고, 이더리움 네트워크와 상호작용할 수 있습니다. Ruby(ethereum.rb)를 사용하여 이더리움에 연결하는 방법에 대한 가이드를 확인해 보세요.
이더리움에 관한 더 많은 기사와 가이드를 받아보시려면 뉴스레터를 구독해 주세요. 의견이 있으시면 트위터를 통해 언제든지 연락해 주세요. 디스코드 커뮤니티 서버에서도 언제든지 저희와 대화를 나눌 수 있으며, 이곳에는 여러분이 만나볼 수 있는 가장 멋진 개발자들이 모여 있습니다 :)
