(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-02
(45)【発行日】2024-05-14
(54)【発明の名称】ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法及び装置
(51)【国際特許分類】
H04L 9/32 20060101AFI20240507BHJP
G06Q 50/10 20120101ALI20240507BHJP
【FI】
H04L9/32 200Z
G06Q50/10
(21)【出願番号】P 2021559515
(86)(22)【出願日】2020-03-23
(86)【国際出願番号】 KR2020003922
(87)【国際公開番号】W WO2020197204
(87)【国際公開日】2020-10-01
【審査請求日】2023-02-24
(31)【優先権主張番号】10-2019-0033212
(32)【優先日】2019-03-22
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】521438375
【氏名又は名称】ビー-スクエアラブ カンパニー リミテッド
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】アン,ケ ヒュ
(72)【発明者】
【氏名】キム,チャン ヨン
【審査官】中里 裕正
(56)【参考文献】
【文献】特開平10-207971(JP,A)
【文献】特開2017-157910(JP,A)
【文献】米国特許出願公開第2017/0287593(US,A1)
【文献】米国特許出願公開第2018/0247191(US,A1)
【文献】韓国公開特許第10-2017-0137661(KR,A)
【文献】韓国登録特許第10-1928087(KR,B1)
【文献】江原友登, 多田充,ブロックチェーンを用いた乱数生成方式の応用,2018年 暗号と情報セキュリティシンポジウム,2018年01月26日,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
取引を少なく行うことで低いコストでブロックチェーンを使用しながらも透明で公正に抽選を行う方法において、
(a)サービスサーバが、ユーザ端末から複数の抽選参加申し込みを獲得した場合、割当モジュールに、複数の抽選参加申し込みそれぞれにプールテーブル値を割り当てるようにすることで、抽選プールを生成させるステップと、
(b)前記サービスサーバが、加工モジュールに、前記抽選プールに関する情報を利用して少なくとも一つの代表抽選プール情報を生成させた後、前記代表抽選プール情報をブロックチェーンネットワークに伝達するステップと、
(c)前記サービスサーバが、伝達された前記代表抽選プール情報またはそれを加工した情報を前記ブロックチェーンネットワークに登録した後、前記ブロックチェーンネットワークに登録された抽選スマートコントラクトに、少なくとも一つの当選基準値を生成させ、それを前記ブロックチェーンネットワークに登録させ、前記当選基準値を前記サービスサーバまたは他の装置に伝達させるステップと、
(d)前記サービスサーバが、自らに含まれている決定モジュールまたは前記他の装置に、前記当選基準値を参照して前記ユーザ端末のうちから当選された少なくとも一つの特定ユーザ端末を決定させるステップと
を含むことを特徴とする方法。
【請求項2】
前記ステップ(b)では、
前記サービスサーバが、前記加工モジュールに、前記抽選プールに関する情報を抽出した後、前記情報に、少なくとも一つのハッシュ演算を加えることで、前記抽選プールを代表する前記代表抽選プール情報を生成させることを特徴とする請求項1に記載の方法。
【請求項3】
前記ステップ(c)では、
前記サービスサーバが、前記抽選スマートコントラクトに、前記ブロックチェーンネットワークに関する情報を利用してランダムシード値を生成させ、前記ランダムシード値を利用して前記当選基準値を生成させることを特徴とする請求項2に記載の方法。
【請求項4】
前記ブロックチェーンネットワークに関する情報は、(i)前記ブロックチェーンネットワークに含まれる特定ブロックのマイナーアドレス情報、(ii)前記特定ブロックのdifficulty情報、(iii)前記特定ブロックのgas limit情報、(iv)前記特定ブロックのnumber情報、(v)前記特定ブロックに対応するtimestamp情報、及び(vi)前記特定ブロックに対応する特定ハッシュ値のうちから少なくとも一部を含むことを特徴とする請求項3に記載の方法。
【請求項5】
前記サービスサーバが、前記抽選スマートコントラクトに、前記ランダムシード値を利用して疑似乱数生成演算を行うことで、複数個の前記当選基準値が含まれた当選数列を生成させることを特徴とする請求項3に記載の方法。
【請求項6】
前記サービスサーバが、前記抽選スマートコントラクトに、下記数式によって前記疑似乱数生成演算を行わせ、
X
n+1=(aX
n+c)modM
前記a及びcは任意の定数であり、前記Mは前記抽選参加申し込みの個数以上の数であり、X
n+1及びX
nは、前記ランダムシード値に当たるX
0から前記数式を介して再帰的に生成された前記当選基準値のうち一部であることを特徴とする請求項5に記載の方法。
【請求項7】
前記ステップ(d)では、
前記サービスサーバが、前記決定モジュールまたは前記他の装置に、生成された前記当選基準値を生成された順に獲得した後、それぞれにモジュラ―演算を適用することで、前記特定ユーザ端末を決定させ、第K+1の特定ユーザ端末を決定するために、第Kの当選基準値(Kは1以上N-1以下の整数である)に対応する第Kの特定ユーザ端末を決定した後、前記第Kの特定ユーザ端末に対応するプールテーブル値より大きいプールテーブル値を有する抽選参加申し込みのプールテーブル値を1ずつ減少させ、前記抽選プールにおいて、前記プールテーブル値を減少させる前のプールテーブル値のうち最も大きいプールテーブル値が前記第Kの特定ユーザ端末に対応するようにすることで前記抽選プールをアップデートさせ、第K+1の当選基準値に前記抽選参加申し込みの個数に対応する数からKを引いた数を利用したモジュラー演算を適用することで、アップデートされた前記抽選プールを基準に第K+1の特定ユーザ端末を決定させることを特徴とする請求項6に記載の方法。
【請求項8】
前記ステップ(b)では、
前記サービスサーバが、前記加工モジュールに、前記抽選プールをなす複数個の部分それぞれに関する情報にハッシュ演算を適用することで、それぞれの部分を代表する複数個の代表抽選プール情報を生成させることを特徴とする請求項1に記載の方法。
【請求項9】
前記ブロックチェーンに登録されて任意のユーザによって閲覧可能な前記代表抽選プール情報は、前記任意のユーザが前記抽選プールの改竄可否を検証する際にリファレンスとして使用され、前記任意のユーザが一般に公開された前記抽選プールに関する情報及びハッシュ演算に関する情報を利用して生成した対照抽選プール情報と比較するためのリファレンスとして使用されることを特徴とする請求項1に記載の方法。
【請求項10】
取引を少なく行うことで低いコストでブロックチェーンを使用しながらも透明で公正に抽選を行うサービスサーバにおいて、
インストラクションを保存する一つ以上のメモリと、
前記インストラクションを行うように設定される一つ以上のプロセッサと
を含み、
前記プロセッサは、(I)ユーザ端末から複数の抽選参加申し込みを獲得した場合、割当モジュールに、複数の抽選参加申し込みそれぞれにプールテーブル値を割り当てるようにすることで、抽選プールを生成させるプロセスと、(II)加工モジュールに、前記抽選プールに関する情報を利用して少なくとも一つの代表抽選プール情報を生成させた後、前記代表抽選プール情報をブロックチェーンネットワークに伝達するプロセスと、(III)伝達された前記代表抽選プール情報またはそれを加工した情報を前記ブロックチェーンネットワークに登録した後、前記ブロックチェーンネットワークに登録された抽選スマートコントラクトに、少なくとも一つの当選基準値を生成させ、それを前記ブロックチェーンネットワークに登録させ、前記当選基準値を前記サービスサーバまたは他の装置に伝達させるプロセスと、(IV)自らに含まれている決定モジュールまたは前記他の装置に、前記当選基準値を参照して前記ユーザ端末のうちから当選された少なくとも一つの特定ユーザ端末を決定させるプロセスとを行う
ことを特徴とするサービスサーバ。
【請求項11】
前記プロセス(II)では、
前記プロセッサが、前記加工モジュールに、前記抽選プールに関する情報を抽出した後、前記情報に、少なくとも一つのハッシュ演算を加えることで、前記抽選プールを代表する前記代表抽選プール情報を生成させることを特徴とする請求項10に記載のサービスサーバ。
【請求項12】
前記プロセス(III)では、
前記プロセッサが、前記抽選スマートコントラクトに、前記ブロックチェーンネットワークに関する情報を利用してランダムシード値を生成させ、前記ランダムシード値を利用して前記当選基準値を生成させることを特徴とする請求項11に記載のサービスサーバ。
【請求項13】
前記ブロックチェーンネットワークに関する情報は、(i)前記ブロックチェーンネットワークに含まれる特定ブロックのマイナーアドレス情報、(ii)前記特定ブロックのdifficulty情報、(iii)前記特定ブロックのgas limit情報、(iv)前記特定ブロックのnumber情報、(v)前記特定ブロックに対応するtimestamp情報、及び(vi)前記特定ブロックに対応する特定ハッシュ値のうちから少なくとも一部を含むことを特徴とする請求項12に記載のサービスサーバ。
【請求項14】
前記プロセッサが、前記抽選スマートコントラクトに、前記ランダムシード値を利用して疑似乱数生成演算を行うことで、複数個の前記当選基準値が含まれた当選数列を生成させることを特徴とする請求項12に記載のサービスサーバ。
【請求項15】
前記プロセッサが、前記抽選スマートコントラクトに、下記数式によって前記疑似乱数生成演算を行わせ、
X
n+1=(aX
n+c)modM
前記a及びcは任意の定数であり、前記Mは前記抽選参加申し込みの個数以上の数であり、X
n+1及びX
nは、前記ランダムシード値に当たるX
0から前記数式を介して再帰的に生成された前記当選基準値のうち一部であることを特徴とする請求項14に記載のサービスサーバ。
【請求項16】
前記プロセス(IV)では、
前記プロセッサが、前記決定モジュールまたは前記他の装置に、生成された前記当選基準値を生成された順に獲得した後、それぞれにモジュラ―演算を適用することで、前記特定ユーザ端末を決定させ、第K+1の特定ユーザ端末を決定するために、第Kの当選基準値(Kは1以上N-1以下の整数である)に対応する第Kの特定ユーザ端末を決定した後、前記第Kの特定ユーザ端末に対応するプールテーブル値より大きいプールテーブル値を有する抽選参加申し込みのプールテーブル値を1ずつ減少させ、前記抽選プールにおいて、前記プールテーブル値を減少させる前のプールテーブル値のうち最も大きいプールテーブル値が前記第Kの特定ユーザ端末に対応するようにすることで前記抽選プールをアップデートさせ、第K+1の当選基準値に前記抽選参加申し込みの個数に対応する数からKを引いた数を利用したモジュラー演算を適用することで、アップデートされた前記抽選プールを基準に第K+1の特定ユーザ端末を決定させることを特徴とする請求項15に記載のサービスサーバ。
【請求項17】
前記プロセス(II)では、
前記プロセッサが、前記加工モジュールに、前記抽選プールをなす複数個の部分それぞれに関する情報にハッシュ演算を適用することで、それぞれの部分を代表する複数個の代表抽選プール情報を生成させることを特徴とする請求項10に記載のサービスサーバ。
【請求項18】
前記ブロックチェーンに登録されて任意のユーザによって閲覧可能な前記代表抽選プール情報は、前記任意のユーザが前記抽選プールの改竄可否を検証する際にリファレンスとして使用され、前記任意のユーザが一般に公開された前記抽選プールに関する情報及びハッシュ演算に関する情報を利用して生成した対照抽選プール情報と比較するためのリファレンスとして使用されることを特徴とする請求項10に記載のサービスサーバ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法に関する。
【背景技術】
【0002】
みんなが取りたいと思う人気の教養授業、ワールドスターのコンサート席、連休の高速列車の搭乗券など、限られた資源を公平に分配することは容易ではない。殆どの場合、このような限られた資源を分配するために単純なデジタル先着順方式を使用しており、インターネット上でより速く申し込んだ人に該当資源を分配することになる。しかし、デジタル先着順方式は該当地域のインターネットの速度、コンピュータの操作速度など不合理なファクタによって当選者が決まるという問題がある。
【0003】
それに対処するために提示された様々な実験的方式のうち一つはランダム抽選方式である。決められた期間中に該当資源を得ようとする申し込みを受け、そのうちからランダムに当選者を決定する方式であって、上述したような不合理なファクタによる影響を受けないという長所がある。しかし、このような方法の短所は、抽選過程が透明ではないため申込者の信頼を得ることが難しいということである。つまり、サーバ内部で自体的に抽選が行われる場合、担当者が任意で特性の申込者を当選者として決定するなどの不正を犯す恐れがあるため、申込者が抽選過程を信頼することができないとうことである。
【0004】
一方、ブロックチェーン技術とは、管理対象のデータを、P2P方式を基に生成されたチェーン形態のデータ分散保存環境であるブロックに保存することで、分散コンピューティング技術に基づいてデータの改竄を防止する技術である。
【0005】
このようなブロックチェーン技術を上述zンダム抽選方式に取り入れれば抽選過程を透明に公開することができるためランダム抽選方式の長所のみを取り短所はなくすことができるが、このような試みな皆無な実情である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、上述した問題点を解決することを目的とする。
【0007】
本発明は、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法を提供することで、申込者が抽選方式を信頼し得る公平な方式で資源が分配されるようにすることを目的とする。
【課題を解決するための手段】
【0008】
上述した本発明の目的を達成し、後述する本発明の特徴的な効果を実現するための本発明の特徴的な構成は下記のようである。
【0009】
本発明の一様態によると、取引を少なく行うことで低いコストでブロックチェーンを使用しながらも透明で公正に抽選を行う方法において、(a)サービスサーバが、ユーザ端末から複数の抽選参加申し込みを獲得したら、割当モジュールに、複数の抽選参加申し込みそれぞれにプールテーブル値を割り当てるようにすることで抽選プールを生成させるステップと、(b)前記サービスサーバが、加工モジュールに、前記抽選プールに関する情報を利用して少なくとも一つの代表抽選プール情報を生成させた後、前記代表抽選プール情報をブロックチェーンネットワークに伝達するステップと、(c)前記サービスサーバが、伝達された前記代表抽選プール情報またはそれを加工した情報を前記ブロックチェーンネットワークに登録した後、前記ブロックチェーンネットワークに登録された抽選スマートコントラクトに、少なくとも一つの当選基準値を生成した後、それを前記ブロックチェーンネットワークに登録するようにして、前記当選基準値を前記サービスサーバまたは他の装置に伝達させるステップと、(d)前記サービスサーバが、自らに含まれている決定モジュールまたは前記他の装置に、前記当選基準値を参照して前記ユーザ端末のうちから当選された少なくとも一つの特定ユーザ端末を決定させるステップと、を含むことを特徴とする方法が開示される。
【0010】
一例として、前記ステップ(b)は、前記サービスサーバが、前記加工モジュールに、前記抽選プールに関する情報を抽出した後、前記情報に、少なくとも一つのハッシュ演算を加えて、前記抽選プールを代表する前記代表抽選プール情報を生成させることを特徴とする方法が開示される。
【0011】
一例として、前記ステップ(c)は、前記サービスサーバは、前記抽選スマートコントラクトに、前記ブロックチェーンネットワークに関する情報を利用してランダムシード値を生成させた後、前記ランダムシード値を利用して前記当選基準値を生成させることを特徴とする方法が開示される。
【0012】
一例として、前記ブロックチェーンネットワークに関する情報は、(i)前記ブロックチェーンネットワークに含まれる特定ブロックのマイナーアドレス情報、(ii)前記特定ブロックのdifficulty情報、(iii)前記特定ブロックのgas limit情報、(iv)前記特定ブロックのnumber情報、(v)前記特定ブロックに対応するtimestamp情報、及び(vi)前記特定ブロックに対応する特定ハッシュ値のうちから少なくとも一部を含むことを特徴とする方法が開示される。
【0013】
一例として、前記サービスサーバは、前記抽選スマートコントラクトに、前記ランダムシード値を利用して疑似乱数生成演算を行うことで、複数個の前記当選基準値が含まれた当選数列を生成させることを特徴とする方法が開示される。
【0014】
一例として、前記サービスサーバは、前記抽選スマートコントラクトに、下記数式によって前記疑似乱数生成演算を行わせるが、
Xn+1=(aXn+c)modM
前記a及びcは任意の定数であり、前記Mは前記抽選参加申し込みの個数以上の数であり、Xn+1及びXnは、前記ランダムシード値に当たるX0から前記数式を介して再帰的に生成された前記当選基準値のうち一部であることを特徴とする方法が開示される。
【0015】
一例として、前記ステップ(d)において、前記サービスサーバは、前記決定モジュールまたは前記他の装置に、生成された前記当選基準値を生成された順に獲得した後、それぞれにモジュラ―演算を適用することで前記特定ユーザ端末を決定させるが、第K+1の特定ユーザ端末を決定するために、第Kの当選基準値―Kは1以上N-1以下の整数である―に対応する第Kの特定ユーザ端末を決定した後、前記第Kの特定ユーザ端末に対応するプールテーブル値より大きいプールテーブル値を有する抽選参加申し込みのプールテーブル値を1ずつ減少させ、前記抽選プールにおいて、前記プールテーブル値を減少させる前のプールテーブル値のうち最も大きいプールテーブル値が前記第Kの特定ユーザ端末に対応するようにすることで前記抽選プールをアップデートした後、アップデートされた前記抽選プールを基準に第K+1の当選基準値に前記抽選参加申し込みの個数に対応する数からKを引いた数を利用したモジュラー演算を適用することで、第K+1の特定ユーザ端末を決定させることを特徴とする方法が開示される。
【0016】
一例として、前記ステップ(b)は、前記サービスサーバが、前記加工モジュールに、前記抽選プールをなす複数個の部分それぞれに関する情報にハッシュ演算を適用することで、それぞれの部分を代表する複数個の代表抽選プール情報を生成させることを特徴とする方法が開示される。
【0017】
一例として、前記ブロックチェーンに登録されて任意のユーザによって閲覧可能な前記代表抽選プール情報は、前記任意のユーザが前記抽選プールの改竄可否を検証する際にリファレンスとして使用されるが、前記任意のユーザが一般に公開された前記抽選プールに関する情報及び前記ハッシュ演算に関する情報を利用して生成した対照抽選プール情報と比較するためのリファレンスとして使用されることを特徴とする方法が開示される。
【0018】
本発明の他の様態によると、取引を少なく行うことで低いコストでブロックチェーンを使用しながらも透明で公正に抽選を行うサービスサーバにおいて、インストラクションを保存する一つ以上のメモリと、前記インストラクションを行うように設定される一つ以上のプロセッサと、を含みが、前記プロセッサは、(I)ユーザ端末から複数の抽選参加申し込みを獲得したら、割当モジュールに、複数の抽選参加申し込みそれぞれにプールテーブル値を割り当てるようにすることで抽選プールを生成させるプロセスと、(II)加工モジュールに、前記抽選プールに関する情報を利用して少なくとも一つの代表抽選プール情報を生成させた後、前記代表抽選プール情報をブロックチェーンネットワークに伝達するプロセスと、(III)伝達された前記代表抽選プール情報またはそれを加工した情報を前記ブロックチェーンネットワークに登録した後、前記ブロックチェーンネットワークに登録された抽選スマートコントラクトに、少なくとも一つの当選基準値を生成した後、それを前記ブロックチェーンネットワークに登録するようにして、前記当選基準値を前記サービスサーバまたは他の装置に伝達させるプロセスと、(IV)自らに含まれている決定モジュールまたは前記他の装置に、前記当選基準値を参照して前記ユーザ端末のうちから当選された少なくとも一つの特定ユーザ端末を決定させるプロセスと、を行うことを特徴とするサービスサーバが開示される。
【0019】
一例として、前記プロセス(II)は、前記プロセッサが、前記加工モジュールに、前記抽選プールに関する情報を抽出した後、前記情報に、少なくとも一つのハッシュ演算を加えて、前記抽選プールを代表する前記代表抽選プール情報を生成させることを特徴とするサービスサーバが開示される。
【0020】
一例として、前記プロセス(III)は、前記プロセッサは、前記抽選スマートコントラクトに、前記ブロックチェーンネットワークに関する情報を利用してランダムシード値を生成させた後、前記ランダムシード値を利用して前記当選基準値を生成させることを特徴とするサービスサーバが開示される。
【0021】
一例として、前記ブロックチェーンネットワークに関する情報は、(i)前記ブロックチェーンネットワークに含まれる特定ブロックのマイナーアドレス情報、(ii)前記特定ブロックのdifficulty情報、(iii)前記特定ブロックのgas limit情報、(iv)前記特定ブロックのnumber情報、(v)前記特定ブロックに対応するtimestamp情報、及び(vi)前記特定ブロックに対応する特定ハッシュ値のうちから少なくとも一部を含むことをことを特徴とするサービスサーバが開示される。
【0022】
一例として、前記プロセッサは、前記抽選スマートコントラクトに、前記ランダムシード値を利用して疑似乱数生成演算を行うことで、複数個の前記当選基準値が含まれた当選数列を生成させることを特徴とするサービスサーバが開示される。
【0023】
一例として、前記プロセッサは、前記抽選スマートコントラクトに、下記数式によって前記疑似乱数生成演算を行わせるが、
Xn+1=(aXn+c)modM
前記a及びcは任意の定数であり、前記Mは前記抽選参加申し込みの個数以上の数であり、Xn+1及びXnは、前記ランダムシード値に当たるX0から前記数式を介して再帰的に生成された前記当選基準値のうち一部であることを特徴とするサービスサーバが開示される。
【0024】
一例として、前記プロセス(IV)は、前記プロセッサが、前記決定モジュールまたは前記他の装置に、生成された前記当選基準値を生成された順に獲得した後、それぞれにモジュラ―演算を適用することで前記特定ユーザ端末を決定させるが、第K+1の特定ユーザ端末を決定するために、第Kの当選基準値―Kは1以上N-1以下の整数である―に対応する第Kの特定ユーザ端末を決定した後、前記第Kの特定ユーザ端末に対応するプールテーブル値より大きいプールテーブル値を有する抽選参加申し込みのプールテーブル値を1ずつ減少させ、前記抽選プールにおいて、前記プールテーブル値を減少させる前のプールテーブル値のうち最も大きいプールテーブル値が前記第Kの特定ユーザ端末に対応するようにすることで前記抽選プールをアップデートした後、アップデートされた前記抽選プールを基準に第K+1の当選基準値に前記抽選参加申し込みの個数に対応する数からKを引いた数を利用したモジュラー演算を適用することで、第K+1の特定ユーザ端末を決定させることを特徴とするサービスサーバが開示される。
【0025】
一例として、前記プロセス(II)は、前記プロセッサが、前記加工モジュールに、前記抽選プールをなす複数個の部分それぞれに関する情報にハッシュ演算を適用することで、それぞれの部分を代表する複数個の代表抽選プール情報を生成させることを特徴とするサービスサーバが開示される。
【0026】
一例として、前記ブロックチェーンに登録されて任意のユーザによって閲覧可能な前記代表抽選プール情報は、前記任意のユーザが前記抽選プールの改竄可否を検証する際にリファレンスとして使用されるが、前記任意のユーザが一般に公開された前記抽選プールに関する情報及び前記ハッシュ演算に関する情報を利用して生成した対照抽選プール情報と比較するためのリファレンスとして使用されることを特徴とするサービスサーバが開示される。
【発明の効果】
【0027】
本発明は、ブロックチェーンネットワークに抽選用因子を保存することで、状況に応じて選択的なアルゴリズムを使用して公正な抽選を行う方法を提供することで、申込者が抽選方式を信頼し得る公平な方式で資源を分配することができる効果がある。
【図面の簡単な説明】
【0028】
【
図1】本発明の一実施例による、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法を行うためのサービスサーバの構成を示す図である。
【
図2】本発明の一実施例による、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法の全体的な構成を示す図である。
【
図3】本発明の一実施例による、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法を示すフローチャートである。
【
図4】本発明の一実施例による、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法の変形実施例を行うために抽選プール情報をアップデートする過程を示す図である。
【発明を実施するための形態】
【0029】
後述する本発明に関する詳細な説明は、本発明が実施され得る特定実施例を例示として示す添付図面を参照する。これらの実施例は、当業者が本発明を十分に実施し得るように詳細に説明される。本発明の多様な実施例は、互いに異なるが相互排他的な必要はないことを理解すべきである。例えば、ここに記載されている特定形状、構造、及び特性は、一実施例に関して本発明の精神及び範囲を逸脱しないながらも他の実施例として具現されてもよい。また、それぞれの開示された実施例内の個別の構成要素の位置または配置は、本発明の精神及び範囲を逸脱しないながらも変更され得ることを理解すべきである。よって、後述する詳細な説明は限定的な意味で取られるものではなく、本発明の範囲は、適切に説明されるのであれば、その請求項が主張するものと均等な全ての範囲と共に添付した請求項によってのみ限定られる。図面において、類似した参照符号は多様な側面にわたって同じであるか類似した機能を指す。
【0030】
以下、本発明が属する技術分野における通常の知識を有する者が本発明を容易に実施し得るようにするために、本発明の好ましい実施例について添付した図面を参照して詳細に説明する。
【0031】
図1は、本発明の一実施例による、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法を行うためのサービスサーバの構成を示す図である。
【0032】
図1を参照すると、サービスサーバ100は、割当モジュール130と、加工モジュール140と、決定モジュール150とを含む。この際、割当モジュール130、加工モジュール140、及び決定モジュール150の入出力及び演算過程はそれぞれ通信部110及びプロセッサ120によって行われる。但し、
図1では通信部110及びプロセッサ120の具体的な連結関係は省略している。この際、メモリ115は後述する様々な指示を保存している状態であり、プロセッサ120はメモリ115に保存されている指示を行うように設定されるが、プロセッサ120は後述するプロセスを行うことで本発明を行う。このようにサービスサーバ110が描写されたとしても、サービスサーバ100が本発明を実施するためのミディアム、プロセッサ、及びメモリが統合された形態のintegratedプロセッサを含む場合を排除することはない。
【0033】
これまでサービスサーバ100について説明したが、サービスサーバ100と連動するブロックチェーンネットワーク200及びその連動関係について説明するために
図2を参照する。
【0034】
図2は、本発明の一実施例による、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法の全体的な構成を示す図である。
【0035】
サービスサーバ100と連動されているブロックチェーンネットワーク200は、後ほど説明する抽選スマートコントラクトを登録している状態でなければならないためスマートコントラクト方式を採用したブロックチェーンであり、代表的にイーサリアムネットワークであってもよいが、これに限らない。このように示されたサービスサーバ100とブロックチェーンネットワーク200は互いに連動してデータを交換するが、その過程でAPIが利用されてもよい。
【0036】
以下、本発明の抽選方法について詳しく説明するために
図3を参照する。
【0037】
図3は、本発明の一実施例による、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法を示すフローチャートである。
【0038】
概括的に見ると、サービスサーバ100は、ブロックチェーンネットワーク200に予め抽選スマートコントラクトを配布しているS00。これは基本的に本発明の抽選過程が始まる前に行われている。次に、サービスサーバ100は後に説明する抽選プールを生成した後、それを代表する代表抽選プール情報をブロックチェーンネットワーク200に伝達するS201。そして、サービスサーバ100は、ブロックチェーンネットワーク200に抽選基準値を生成させた後S02、抽選基準値を獲得し、それを利用して特定ユーザ端末を決定するS203。概括的な構成はこのようであり、以下でより詳しく説明する。
【0039】
まず、サービスサーバ100は、ユーザ端末から複数個の抽選参加申し込みを獲得する。この際、ユーザ端末は、SSL標準を利用して生成されたパケットを介して抽選参加申し込みを伝送する。それによって機密性を維持した状態で抽選参加申し込みを伝送することができる。また、抽選参加申し込みを受信したら、サービスサーバ200は、携帯電話の認証を介してユーザ端末を検証する。
【0040】
次に、サービスサーバ100は、割当モジュール130に、複数の抽選参加申し込みそれぞれにプールテーブル値を割り当てさせることで、抽選プールを生成させる。割り当てられたそれぞれのプールテーブル値は、後ほど説明する当選基準値との連動性のために連続した整数に設定されてもよいが、これに限らない。一例として、それぞれのプールテーブル値は、それぞれの抽選参加申し込みが獲得された順に0から始まる整数値であってもよい。
【0041】
次に、サービスサーバ100は、加工モジュール40に、抽選プールに関する情報を参照して少なくとも一つの代表抽選プール情報を生成させる。詳しくは、代表抽選プール情報は、サービスサーバ100が、加工モジュール140に、抽選プールに関する情報を抽出させた後、前記情報に少なくとも一つのハッシュ演算を加えて生成されたものである。
【0042】
代表抽選プール情報とは、抽選プールに関する情報を圧縮的に含んでいる情報である。これは図面に示されており、後ほど説明するが、ブロックチェーンネットワーク200に登録されて他のユーザが確認できるように掲示される値である。抽選プールをそのままブロックチェーンネットワーク200に登録することが一番明確だが、このように単純に具現する場合、それを伝送するために大量の容量が必要なため、取引コストが多くかかってしまう。よって、本発明では、取引コストを節約するために抽選プールに関する情報を含んでいる代表抽選プール情報をブロックチェーンネットワーク200に登録してユーザが確認できるようにし、同時に抽選プール及びハッシュ演算を公開することで、ユーザが抽選過程を信頼できるようにする。つまり、代表抽選プール情報は、サービスサーバ100を管理する担当者が抽選プールを改竄するなどの不正を犯していないという証拠としてブロックチェーンネットワーク200に登録されるものである。詳しくは、任意のユーザが公開された抽選プール及びハッシュ演算を使用して直接対照抽選プール情報を生成した後、それを登録された代表抽選プール情報と比較してみることで、抽選プールの信頼性を確認することができる。
【0043】
細部的に、上述した抽出された抽選プールに関する情報は、プールテーブル値及びそれぞれの抽選参加申し込みに対するバイナリー値を含む。つまり、プールテーブル値のみを含むか、バイナリー値のみを含むか、2つの値を共に含んでもよい。また、ハッシュ演算は、MD5、SHAなどのハッシュアルゴリズムを使用した演算であってもよいが、これに限らない。
【0044】
別の実施例として、代表抽選プール情報を一つ生成するのではなく、複数個生成してもよい。詳しくは、サービスサーバ100が、加工モジュール140に、抽選プールをなす複数個の部分それぞれに関する情報にハッシュ演算を適用することで、それぞれの部分を代表する複数個の代表抽選プール情報を生成させる。一例として、抽選参加申し込みのうちそのプールテーブル値が0以上100以下の申し込みを代表する一つの代表抽選プール情報と、プールテーブル値が101以上200以下の申し込みを代表する他の代表抽選プール情報を生成してもよい。
【0045】
このような少なくとも一つの代表抽選プール情報が生成されたら、サービスサーバ100はこれをブロックチェーンネットワーク200に伝達する。
【0046】
次に、サービスサーバ100は、伝達された代表抽選プール情報またはそれを加工した情報をブロックチェーンネットワーク200に登録する。代表抽選プール情報を加工した情報とは、代表抽選プール情報に他のハッシュ演算を適用するか、所定の変形演算を適用することで生成されたものである。
【0047】
次に、サービスサーバ100は、ブロックチェーンネットワーク200に予め登録された抽選スマートコントラクトに、少なくとも一つの当選基準値を生成した後、それをブロックチェーンネットワーク200に登録させる。
【0048】
詳しくは、サービスサーバ100は、抽選スマートコントラクトに、ブロックチェーンネットワーク200に関する情報を利用してランダムシード値を生成させた後、ランダムシード値を利用して当選基準値を生成させる。この際、ブロックチェーンネットワーク200に関する情報は、(i)ブロックチェーンネットワーク200に含まれている特定ブロックのマイナーアドレス情報、(ii)前記特定ブロックのdifficulty情報、(iii)前記特定ブロックのgas limit情報、(iv)前記特定ブロックのnumber情報、(v)前記特定ブロックに対応するtimestamp情報、及び(vi)前記特定ブロックに対応する特定ハッシュ値のうちから少なくとも一部を含む。上述した特定ブロックのdifficulty情報とは、特定ブロックの採掘難易度である。
【0049】
また、特定ブロックとは、前記代表抽選プール情報をブロックチェーンネットワーク200に登録する際に使用したブロックであるか、または後ほど説明する当選基準値をブロックチェーンネットワーク200に登録する際に使用するブロックであるか、現在使用しているブロックまたは過去に使用した、それぞれのノードが保存しているブロックのうち一つのブロックである。それぞれの値は予測することが難しいため、それを前記ランダムシード値として使用すればランダムに近い値を生成することができるようになる。
【0050】
よって、一例として、サービスサーバ100は、抽選スマートコントラクトに、上述した情報のうち少なくとも一部の値をランダムシード値として利用させ、それを利用して疑似乱数生成演算を行うことによって複数個の当選基準値が含まれた当選数列を生成することで、前記当選基準値を生成させる。
【0051】
疑似乱数生成演算は、以下の数式によって行われる。
Xn+1=(aXn+c)modM
前記数式において、a及びcは任意の定数であり、一般に大きさが大きい素数に設定される。Mは、一実施例では抽選参加申し込みの個数であり、他の実施例では予め設定された臨界値以上の大きい定数である。Xn+1及びXnは、ランダムシード値に対応するX0から前記数式を介して再帰的に生成された前記当選基準値のうち一部である。例えば、当選基準値がP個以上生成される場合、X1乃至Xpが前記当選基準値として生成される。
【0052】
このような方法によって当選基準値が生成されたら、サービスサーバ100は、抽選スマートコントラクトに、当選基準値をブロックチェーンネットワーク200に登録させ、決定モジュール150に、当選基準値を参照してユーザ端末のうちから当選された少なくとも一つの特定ユーザ端末を決定させる。上述した一実施例では当選基準値を含む当選す列が生成されるため、当選基準値にそのプールテーブル値が対応するユーザ端末が選択される。例えば、当選数列が1、7、51、79であれば、該当プールテーブル値を有するユーザ端末が特定ユーザ端末として選択されるのである。上述した他の実施例では、当選数列に含まれた値に、抽選参加申し込みの個数に対応する数を利用してモジュラー演算をもう一度行うことで、プールテーブル値と同じ大きさの範囲の値を導出し、それを利用して特定ユーザ端末を選択する。例えば、当選数列が12583725、6543864396、3496340であり、抽選プールのサイズが100であれば、100を利用したモジュラー演算を適用して25、96、40に対応するユーザ端末を特定ユーザ端末として選択する。
【0053】
当選基準値が生成された後のプロセスに関して、上述した説明は、当選基準値が生成されてからサービスサーバ100に再度伝達されてプロセスが行われることを想定したが、実際には必ずしもサービスサーバ100に伝達されなくてもよい。つまり、当選基準値が生成されたら、サービスサーバ100は、抽選スマートコントラクトに、当選基準値を他の装置に伝達させる。他の装置は、他のユーザの端末または他のサーバである。次に、サービスサーバ100は、他の装置に、当選基準値を参照して、上述したように特定ユーザ端末を決定させる。
【0054】
これまで本発明の一実施例について説明したが、以下では当選基準値の重複から派生される問題を防ぐことができる変形実施例について説明する。
【0055】
つまり、サービスサーバ100が抽選スマートコントラクトに当選基準値を生成させる際、その方式を少し変形した実施例が導出される。詳しくは、サービスサーバ100は、決定モジュール150または上述した他の装置に、当選基準値を生成された順に獲得した後、それぞれにモジュラ―演算を適用することで特定ユーザ端末を決定させるが、第K+1の特定ユーザ端末を決定するために(Kは1以上N-1以下の整数である)、第Kの当選基準値に対応する第Kの特定ユーザ端末を決定した後、抽選プールから第Kの特定ユーザ端末を除外し、第Kの特定ユーザ端末に対応するプールテーブル値より大きいプールテーブル値を有する抽選参加申し込みのプールテーブル値を1ずつ減少させ、抽選プールから、プールテーブル値を減少させる前のプールテーブル値のうち最も大きいプールテーブル値が第Kの特定ユーザ端末に対応するようにすることで抽選プールをアップデートした後、アップデートされた抽選プールを基準に第K+1の当選基準値に抽選参加申し込みの個数に対応する数からKを引いた数を利用したモジュラー演算を適用することで、第K+1の特定ユーザ端末を決定させる。説明から分かるように、これは上述した実施例のうち、Mが予め設定された臨界値以上の定数である実施例に基づく。この際、抽選参加申し込みの個数に対応する数からKを引いた数を利用することは、特定ユーザ端末を選択するたびに上述した抽選プールのアップデート過程に対応することであるが、このような関係をより明確に説明するために
図4を参照する。
【0056】
図4は、本発明の一実施例による、ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法の変形実施例を行うために抽選プール情報をアップデートする過程を示す図である。
【0057】
図4を参照すると、このような変形実施例について詳しく調べることができる。つまり、図面の上端のボックスは第Kの特定ユーザ端末が決定される前であって、Aはプールテーブル値が467で、A’は468、B、C、Dはそれぞれ467、468、469であることが分かる。この際、第Kの当選基準値にモジュラー演算を適用した結果が467であると確認されたら、Aが第Kの特定ユーザ端末と決定されるが、この場合Aを抽選プールの最後に移し、Aより後ろにあるユーザ端末を前に一つずつ移す。それによって、図示したように、A’のプールテーブル値が467になり、B、C、Dのプールテーブル値がそれぞれ466、467、468になる。そして、Aのプールテーブル値は1000になる。この際、当選基準値にモジュラー演算を適用しながら、そのために使用される値を1ずつ減らしていったため、抽選プールで後ろに移された値が再度選択されることはない。つまり、第Kの当選基準値にモジュラー演算を適用した結果の範囲が0から1000であれば、第K+1の当選基準値には、それに対応する範囲が0から999であるとのことである。但し、このようなアルゴリズムに限ることはなく、多様な変形例が想定される。
【0058】
このような実施例の長所は、もし当選基準値が重複しても実際に当選されるユーザ端末は重複しないということである。
図4の例において、第K+1の当選基準値が467と確認されても、再度Aが第K+1の特定ユーザ端末と決定されるのではなく、他のユーザ端末であるA’が第K+1の特定ユーザ端末と決定される。
【0059】
上述した変形実施例を介して、当選基準値が重複しても、それによる問題が生じないようにすることができる。
【0060】
これまで説明された本発明の実施例は、多様なコンピュータの構成要素を介して行われるプログラム命令語の形態に具現されてコンピュータで読取可能な記録媒体に記録される。前記コンピュータで読取可能な記録媒体は、プログラム命令語、データファイル、データ構造などを単独にまたは組み合わせて含む。前記コンピュータで読取可能な記録媒体に記録されるプログラム命令語は、本発明のために特別に設計されて構成されたものであるか、コンピュータソフトウェア分野の当業者に公知されて使用可能なものである。コンピュータで読取可能な記録媒体の例としては、ハードディスク、フロッピーディスク、及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical media)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令語を保存し行うように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例としては、コンパイラによって作られるもののような機械語コードだけでなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードも含まれる。前記ハードウェア装置は、本発明による処理を行うために一つ以上のソフトウェアモジュールとして作動するように構成されるが、その逆も同じである。
【0061】
これまで本発明を具体的な構成要素などのような特定事項と限定された実施例及び図面によって説明したが、これは本発明のより全般的な理解を助けるために提供されたものであって、本発明は前記実施例に限らず、本発明の属する技術分野における通常的な知識を有する者であれば、このような記載から多様な修正及び変形を図ることができるはずである。
【0062】
よって、本発明の思想は上述した実施例に限って決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等にまたは等価的に変形された全てのものは本発明の思想の範疇に属するといえる。