CWN(CHANGE WITH NEWS) - 자바스크립트를 통해 나만의 블록체인을 만들어보자

  • 맑음구미13.8℃
  • 연무홍성10.2℃
  • 맑음거창16.5℃
  • 구름많음보령10.9℃
  • 연무북강릉12.8℃
  • 맑음안동10.8℃
  • 맑음강진군16.2℃
  • 맑음금산13.5℃
  • 구름많음양평6.0℃
  • 맑음진도군13.7℃
  • 구름많음정선군7.9℃
  • 연무전주12.4℃
  • 맑음포항17.6℃
  • 맑음상주9.4℃
  • 맑음고창군12.1℃
  • 맑음보성군17.5℃
  • 맑음울진15.6℃
  • 맑음통영16.5℃
  • 구름많음천안10.8℃
  • 맑음경주시18.2℃
  • 구름많음서청주11.8℃
  • 구름많음봉화8.6℃
  • 맑음창원17.7℃
  • 구름조금속초11.4℃
  • 구름많음백령도4.6℃
  • 연무서울9.0℃
  • 맑음순창군14.6℃
  • 맑음광양시17.7℃
  • 구름많음부안10.4℃
  • 흐림제천5.1℃
  • 맑음순천16.2℃
  • 맑음합천18.3℃
  • 맑음의성13.5℃
  • 맑음고창11.8℃
  • 맑음완도16.4℃
  • 맑음고산17.5℃
  • 맑음영천16.9℃
  • 맑음청송군12.7℃
  • 맑음임실15.1℃
  • 구름조금제주16.8℃
  • 연무대전12.2℃
  • 구름많음인제4.7℃
  • 연무흑산도11.7℃
  • 맑음장흥16.7℃
  • 구름많음동두천8.1℃
  • 구름많음이천8.3℃
  • 구름많음태백7.3℃
  • 구름조금울릉도13.8℃
  • 연무청주12.3℃
  • 맑음부산17.3℃
  • 맑음진주18.0℃
  • 구름많음군산9.1℃
  • 구름많음춘천2.5℃
  • 연무수원9.5℃
  • 연무광주15.6℃
  • 연무인천8.7℃
  • 맑음파주8.1℃
  • 맑음함양군16.2℃
  • 맑음서귀포17.8℃
  • 맑음강화7.1℃
  • 맑음영광군11.8℃
  • 맑음남해17.0℃
  • 맑음북부산17.5℃
  • 맑음의령군17.1℃
  • 구름많음철원7.2℃
  • 구름많음영주7.7℃
  • 맑음밀양18.1℃
  • 구름많음대관령4.5℃
  • 맑음해남15.6℃
  • 맑음남원15.5℃
  • 맑음거제16.4℃
  • 맑음서산10.4℃
  • 맑음문경9.2℃
  • 맑음김해시18.1℃
  • 흐림원주4.8℃
  • 맑음고흥17.3℃
  • 구름조금강릉13.8℃
  • 구름많음부여12.0℃
  • 구름많음충주10.1℃
  • 맑음장수13.1℃
  • 구름많음홍천3.3℃
  • 맑음여수16.0℃
  • 맑음산청17.2℃
  • 맑음양산시17.7℃
  • 구름많음세종13.0℃
  • 맑음울산17.7℃
  • 맑음성산18.9℃
  • 구름많음보은11.8℃
  • 맑음대구17.2℃
  • 흐림영월1.9℃
  • 연무목포12.5℃
  • 맑음정읍12.1℃
  • 맑음북창원19.0℃
  • 맑음영덕14.3℃
  • 맑음동해14.1℃
  • 구름많음북춘천1.3℃
  • 맑음추풍령14.5℃
  • 2026.01.15 (목)

자바스크립트를 통해 나만의 블록체인을 만들어보자

오영주 / 기사승인 : 2021-11-25 20:09:28
  • -
  • +
  • 인쇄

블록체인은 4차 산업 혁명 시대에 가장 주목받는 분야 중 하나다. 전세계적으로 블록체인과 암호화폐 시장이 성장함에 따라 관련 채용도 늘어나고 있어 개발자가 주목할만한 시장이기도 하다.

포브스에 따르면, 지난 11개월 동안 블록체인 및 암호화폐 분야 채용은 118% 증가했다. 또한 인디드 고용연구소의 분석에 따르면, 해당 분야의 일자리 수는 2020년 9월 599.6건(2020년 최저치)에서 2021년 7월 중순 1307.8건으로 급증했다.

그렇다면, 초보 개발자도 쉽게 블록체인을 만들어볼 수는 없을까? 이와 관련, 코인긱은 자바스크립트를 사용하여 나노 크기의 블록체인을 만드는 방법을 공개했다. 해당 방법에는 30줄 미만의 코드만이 사용돼 초보자도 비교적 쉽게 따라할 수 있다.

코인긱 측은 "이러한 방법은 코드를 알고 있지만 블록체인에 대해 전혀 모르는 초보자들이 비트코인의 블록 구조를 깊게 이해를 얻는 데 도움 된다"면서 "반대로 블록체인에 대해서는 몇 가지 알고 있지만 코딩에 관해서는 완전 초보인 경우에도 흥미를 유발할 것이다"라고 말했다.

먼저 암호화 라이브러리를 사용해 비트코인과 블록체인 기술에서 수행되는 가장 일반적인 기능 중 하나인 해싱을 수행해야 한다. 사용할 암호화 라이브러리는 crypto-js 라이브러리다. 터미널 창(명령 프롬프트)에서 npm install crypto-js를 입력하면 된다.

그후 비트코인의 창시자인 사토시 나카모토가 비트코인 코드베이스에 수행했던 것과 비슷한 작업을 진행한다. 첫 번째 줄에서 이 라이브러리 개체를 변수에 로드하고 CryptoJS라는 이름을 사용해 블록을 쉽고 동적으로 생성할 수 있도록 생성자를 생성한다.

각 블록에는 여러 값을 설정해야 한다. 이들은 인덱스, 시간 및 날짜 스탬프, 트랜잭션의 Merkle 루트 및 이전 블록 해시 등이다. 인덱스는 각 블록에 연속적으로 할당하는 숫자다. 특정 블록을 참조할 때 많은 블록 탐색기가 이를 "블록 높이"라고 부르는 것을 볼 수 있다. 이것들은 인덱스 값을 참조하고 있다.

그후 txHash로 이동한다. 나노 크기의 블록체인은 실제로 블록에 트랜잭션이 없으므로 이를 나타내기 위해 임의의 데이터를 입력하면 된다. 비트코인에서 블록 헤더는 해당 블록에 있는 모든 트랜잭션의 해시인 "머클 루트"를 보유한다. 따라서 나중에 프로그램에서 이를 나타내기 위한 최소한의 해시를 제공할 것이다.

'previousHash' 매개변수는 블록체인에 대한 ‘체인’을 생성하는 링크다. 각 블록은 이전 블록의 해시를 보유한다. 따라서 새 블록을 생성할 때마다 마지막 블록의 해시를 인수로 전달하고자 한다. 생성자에서 인라인으로 해시 함수를 실행할 수 있으므로 블록을 전달하기만 하면 된다.

블록을 적절하게 정의하면 다음 블록을 생성하기 위해 호출할 수 있는 간단한 함수를 만든다. 이 함수는 트랜잭션을 나타내기 위해 임의의 데이터를 넣고 새 블록을 반환한다. 마지막 블록을 인수로 전달하기 때문에 새 B블록 인스턴스를 호출하는 데 필요한 모든 변수가 있다.

마지막으로 블록체인 배열을 초기화하고 첫 번째 블록인 제네시스 블록을 생성하기만 하면 된다. 제네시스 블록에서 데이터를 수동으로 생성하면 다음 블록으로 해시 될 첫 번째 값 세트를 제공하므로 체인을 시작할 수 있다. 각 블록에는 이전 블록의 해시가 필요하다.

코인긱 측에 따르면, 비트코인의 근본적인 특성은 모든 블록이 이전 블록 위에 구축되는 것이다. 또한 마지막 블록으로 들어가는 모든 작업 증명은 현재 블록으로 해시된다. 작업 증명 주기를 계속하면 비트코인이 지속적으로 보안을 구축하는 것을 볼 수 있지만 채굴은 필요하다.

코인긱 측은 “따라서 이것을 조금 더 구축하고 싶다면 생성자에 Nonce(난수 포함)를 추가할 수 있으며 각 블록을 표시하기 전에 프로그램은 Nonce가 무엇인지 반복적으로 추측하고 올바르게 추측할 때까지 포기하지 않아야 한다”면서 “이것은 작업 증명 기능의 기본 모방과 광부가 Nonce를 해결하는 방법을 제공한다”고 말했다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue