BORA의 난수 생성 API 소개

BORA
BORA
Published in
5 min readApr 18, 2019

안녕하세요, BORA팀입니다.

확률 시스템을 사용한 콘텐츠는 우리 주변에서 흔하게 볼 수 있습니다. 대표적으로 게임이 있는데요. 많은 분들이 게임을 하면서 아이템 강화나 뽑기 확률에 웃고 우는 일을 경험해 본 적이 있으실 겁니다.

이런 경험을 통해 누구나 한 번쯤 ‘나만 정말 운이 없는 건가?’라며 확률 조작에 대한 의구심을 가져보기도 하는데요. 이 확률 시스템의 기반이 되는 것이 바로 난수 생성(무작위 숫자 생성기 또는 Random Number Generator(RNG))입니다.

BORA는 블록체인 기술을 통해 확률의 공정성과 신뢰성 그리고 투명성을 확보한 난수 생성 API (Application Programming Interface)를 제작했고, BORA 플랫폼의 콘텐츠 개발자분들이 사용할 수 있도록 제공하고 있습니다. 오늘은바로 이 ‘BORA의 새로운 난수 생성 API’에 대해 소개해드리고자 합니다.

그럼 우선 기존의 난수 생성 방식에 대해 알아보겠습니다.

난수를 생성하는 방법은 정말 다양한데요. 일반적으로 ‘seed(시드)’라고 하는 숫자 값을 기반으로, 계산 알고리즘을 이용해 난수를 생성하는 방법을 많이 사용합니다. 여기서 seed 값은 유동적으로 변하는 숫자로, 대부분 현재 시각(Time)을 사용해 값을 만들어 냅니다.

여기서 문제는 seed 값을 ‘시각(Time)’과 같은 예측이 가능한 값을 사용하게 되면, 계산 알고리즘을 조작해 원하는 값으로 난수를 발생시키거나 어떤 난수가 나올지 예측하여 이를 악용할 수도 있습니다.

BORA는 이런 부분을 보완해 예측이 불가능하도록, ‘미래의 숫자’를 seed 값으로 가져와 난수를 추출하는 형태의 난수 생성 API를 개발했습니다.

조금 더 빠른 이해를 위해, 미래의 숫자로 ‘난수 요청 후 5초 후에 생성되는 블록 해시값’을 예로 들어 설명해보겠습니다.

누군가 난수를 요청하면, BORA의 난수 생성기는 요청 시점에서 5초 후에 생성되는 BORA 네트워크 내부의 블록 해시값(TxHash)을 seed 값으로 불러와 이를 토대로 난수를 만듭니다. 해시값은 숫자와 문자가 무작위로 나열된 형태로 계속해서 생성되고, 미래의 해시값은 미리 알 수 없기 때문에 누구도 예측할 수 없습니다. 이 때문에 BORA의 난수 생성 API를 통한 확률 시스템은 신뢰성과 공정성을 확보할 수 있습니다.

더불어 난수 생성에 사용된 seed 값이 정말로 미래의 해시값을 기반으로 한 것인지에 대해서도 투명하게 공개됩니다. BORA Explorer를 통해 누구나 해시를 포함, 난수 생성 결과 정보에 관한 블록 데이터를 확인할 수 있습니다.

https://lagoon.boraecosystem.com/ko

현재 BORA Lagoon에는 이 새로운 방식의 난수 생성 API를 적용한 프로그램 다이스 롤러(Dice Roller)가 공개된 상태이며, 관심있는 개발자 및 일반 유저 누구나 체험해 볼 수 있습니다. (간단한 회원가입 후, 상단의 BORA Test ground에서 확인이 가능합니다.)

주사위 프로그램에 표시된 내용 중 Request Address는 난수 요청자의 계정, Maximum No는 난수 범위(주사위의 경우 6까지)을 뜻합니다.

Waiting Block Count(ex. 1)은 미래의 숫자로 ‘난수 요청 후 1번째로 생성되는 블록 해시값’을 사용함을 의미합니다. 앞서 드린 설명에서는 미래의 숫자를 ‘난수 요청 5초 후에 생성되는 블록 해시값’으로 예를 들었는데요. 이처럼 시간과 순서 등 다양한 개념이 미래의 숫자를 정하는 기준이 될 수 있습니다.

마지막으로 난수 요청 횟수로, Request Sequence는 동시다발적 난수 요청 공격을 통하여 특정 난수를 취득하는 ‘어뷰징’을 방지하기 위해 스마트컨트랙트 내부적으로 사용됩니다.

저희 BORA는 이번에 공개한 난수 생성 API 외에도, 콘텐츠 개발자들이 디지털 콘텐츠에 블록체인 기술을 손쉽게 접목시킬 수 있도록 다양한 API를 개발해 제공할 예정이오니 앞으로도 많은 관심과 응원 부탁드립니다.

감사합니다.

BORA팀 드림

--

--

BORA
BORA
Editor for

Store, secure and grow your entertainment crypto assets. Visit https://boraportal.com to learn more about our services and games!