(57)【要約】一実施例は、互いにネットワークを通じて動作可能なように連結された複数のコンピューティング装置を含む分散ネットワークを含み、複数のコンピューティング装置に含まれる第１ゲートウェイは、複数のコンピューティング装置のうち少なくとも一部のコンピューティング装置とネットワークを通じて具現される分散データベース、および複数のコンピューティング装置に含まれ、第１ゲートウェイによって管理される第１グループに含まれるコンピューティング装置と関連した情報を保存するグループ装置目録を含む第１メモリと、分散データベースおよび第１メモリと動作可能なように連結された第１プロセッサとを含み、サーバーは、分散ネットワークと通信するように設定されたネットワークインターフェースと、第１ゲートウェイを含む複数のゲートウェイと関連した情報を含むゲートウェイ目録を保存する第２メモリと、第２プロセッサとを含む。【選択図】図１
2021532494.tif 000002
【特許請求の範囲】
【請求項１】
システムにおいて、
複数のコンピューティング装置を含む分散ネットワークを含み、前記分散ネットワークに含まれる複数のコンピューティング装置は、互いにネットワークを通じて動作可能なように連結され、
前記複数のコンピューティング装置に含まれる第１ゲートウェイは、
前記複数のコンピューティング装置のうち少なくとも一部のコンピューティング装置とネットワークを通じて具現される分散データベース、および前記複数のコンピューティング装置に含まれ、前記第１ゲートウェイによって管理される第１グループに含まれるコンピューティング装置と関連した情報を保存するグループ装置目録を含む第１メモリと、
前記分散データベースおよび前記第１メモリと動作可能なように連結された第１プロセッサとを含み、
前記複数のコンピューティング装置に含まれるサーバーは、
前記分散ネットワークと通信するように設定されたネットワークインターフェースと、
前記第１ゲートウェイを含む複数のゲートウェイと関連した情報を含むゲートウェイ目録を保存する第２メモリと、
第２プロセッサとを含み、
前記第２プロセッサは、前記ゲートウェイ目録に含まれた前記複数のゲートウェイの第１位置情報および前記複数のコンピューティング装置のうち第２コンピューティング装置から受信された第２位置情報に基づいて、前記第２コンピューティング装置に対して前記複数のゲートウェイのうち前記第１ゲートウェイを決定し、前記第１ゲートウェイと関連した情報を前記第２コンピューティング装置に伝送するように設定され、
前記第１プロセッサは、前記グループ装置目録に前記第２コンピューティング装置と関連した情報を保存するように設定された、システム。
【請求項２】
前記第２プロセッサは、
前記第１位置情報および前記第２位置情報に基づいて、前記第２コンピューティング装置と最も隣接した距離に位置する前記第１ゲートウェイを決定するように設定された、請求項１に記載のシステム。
【請求項３】
前記第１位置情報は前記複数のゲートウェイの緯度情報および／または経度情報を含み、
前記第２位置情報は前記第２コンピューティング装置の緯度情報および／または経度情報を含み、
前記第２プロセッサは、
前記第２コンピューティング装置の前記の緯度情報および／または前記経度情報と前記ゲートウェイの緯度情報および／または経度情報とに基づいて、前記第１ゲートウェイを決定するように設定された、請求項２に記載のシステム。
【請求項４】
前記第１プロセッサは、
前記分散ネットワークから第１補償を獲得し、
前記第２コンピューティング装置の点数に基づいて前記第１補償のうち前記第２コンピューティング装置に対する第２補償を決定し、
前記決定された第２補償を前記第２コンピューティング装置のアカウントに支給するように設定された、請求項１に記載のシステム。
【請求項５】
前記第１プロセッサは、
前記第２コンピューティング装置に指定された周期ごとに第１メッセージを伝送し、
前記第１メッセージに応答して受信された情報に基づいて前記第２コンピューティング装置の点数を決定するように設定された、請求項４に記載のシステム。
【請求項６】
前記第２コンピューティング装置は、
前記分散ネットワークに接続するための財布アプリケーションを保存するメモリを含む、請求項４に記載のシステム。
【請求項７】
前記情報は前記第２コンピューティング装置のアカウントに保管された暗号通貨の量を含む、請求項５に記載のシステム。
【請求項８】
前記第２補償は、
前記暗号通貨の量に比例するように決定される、請求項７に記載のシステム。
【請求項９】
前記第１プロセッサは、
前記第２補償を前記第２コンピューティング装置のアカウントに支給した後に、前記点数を初期化するように設定された、請求項７に記載のシステム。
【請求項１０】
前記第２プロセッサは、
前記第２コンピューティング装置から前記第１ゲートウェイと関連した情報の少なくとも一部を含む前記第１グループに対する加入要請メッセージを受信し、
前記加入要請メッセージに応答して、前記第２コンピューティング装置と関連した情報を前記グループ装置目録に保存するように設定された、請求項１に記載のシステム。
【請求項１１】
前記分散データベースはブロックチェーン構造でデータを保存し、
前記第１プロセッサは、
ブロックを生成し、ブロック補償としての第１補償を獲得するように設定された、請求項１に記載のシステム。
【請求項１２】
前記第１プロセッサは、
前記第１グループに含まれる第３コンピューティング装置からブロック生成を要請する第２メッセージを受信し、
前記第２メッセージに応答してブロックを生成して前記第１補償を獲得すると、前記第１補償のうち前記第３コンピューティング装置に対する第３補償を前記第３コンピューティング装置のアカウントに支給するように設定された、請求項１１に記載のシステム。
【請求項１３】
前記第２メッセージは前記第３コンピューティング装置によって発生したトランザクションらと関連したトランザクション点数を含み、
前記第１プロセッサは、
前記トランザクション点数があらかじめ指定された値以上の場合、前記第３補償を前記第３コンピューティング装置のアカウントに支給するように設定された、請求項１２に記載のシステム。
【請求項１４】
サーバー装置において、
分散ネットワークシステムに含まれる複数のコンピューティング装置と通信するように設定された通信インターフェースと、
前記複数のコンピューティング装置のうちゲートウェイに対するゲートウェイ目録を保存するメモリと、
少なくとも一つのプロセッサとを含み、
前記少なくとも一つのプロセッサは、
前記複数のコンピューティング装置のうち前記ゲートウェイではない第１コンピューティング装置に対する位置情報と前記ゲートウェイ目録に含まれた前記ゲートウェイの位置情報に基づいて、前記第１コンピューティング装置に対して前記ゲートウェイのうち第１ゲートウェイを決定し、前記第１コンピューティング装置に前記第１ゲートウェイと関連した情報を伝送するように設定された、サーバー装置。
【請求項１５】
前記第１コンピューティング装置から前記第１コンピューティング装置の緯度情報および／または経度情報を含む第１メッセージを受信し、
前記第１コンピューティング装置の前記緯度情報および／または前記経度情報と前記ゲートウェイの緯度情報および／または経度情報に基づいて、前記第１ゲートウェイを決定するように設定された、請求項１４に記載のサーバー装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本文書で開示される実施例は、ピアツーピア分散ネットワークシステム技術に関する。
【背景技術】
【０００２】
分散ネットワークシステムのように多数のノードで構成されるネットワークシステムでは、そのネットワークに含まれる多数のノードの間で情報が到達する時間に差が発生することになる。合意アルゴリズムとは、ネットワークに参加するノードが一つの結果に対する合意を得るためのアルゴリズムとして理解され得る。
【０００３】
ブロックチェーンネットワークシステムは分散ネットワーク（Ｐ２Ｐネットワーク）システムである。ブロックチェーンシステムの信頼性のためにネットワークに含まれたすべてのノードが同一の結果値を決定しなければならないため、合意アルゴリズムが要求される。例えば、現在は作業証明（ｐｒｏｏｆ  ｏｆ  ｗｏｒｋ）方式、持分証明（ｐｒｏｏｆ  ｏｆ  ｓｔａｋｅ）方式、委任された持分証明（ｄｅｌｅｇａｔｅｄ  ｐｒｏｏｆ  ｏｆ  ｓｔａｋｅ）方式の合意アルゴリズムが使われている。
【０００４】
分散ネットワークシステムは全世界の任意の地域に広まっている数多くのノードで構成され得る。そのため、ノード間にデータやメッセージを伝播する速度が遅延され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
既存の合意アルゴリズムの場合、直接ブロックを生成するノードであるか、特定個数以上の暗号通貨を所有したノードがブロック補償を取得することになる。したがって、ウェブ環境やモバイル環境のノードまたは特定個数未満の暗号通貨を所有したノードはブロック補償を受けることができない。しかし、このようなノードは分散ネットワーク、特にブロックチェーンネットワークの生態系の活性化に貢献することができる。したがって、補償を支給することによってより多くのノードの参加を誘引する必要がある。
【０００６】
分散ネットワークシステムに参加するノードの数が多くなるほどデータの伝播速度が遅くなることになる。物理的な位置が近いノードをグループ化することによって分散ネットワークの速度を増加させることができる。
【課題を解決するための手段】
【０００７】
本文書に開示される一実施例に係るシステムは、複数のコンピューティング装置を含む分散ネットワークを含み、前記分散ネットワークに含まれる複数のコンピューティング装置は互いにネットワークを通じて動作可能なように連結され、前記複数のコンピューティング装置に含まれる第１ゲートウェイ（ＧＷ）は、前記複数のコンピューティング装置のうち少なくとも一部のコンピューティング装置とネットワークを通じて具現される分散データベース、グループ装置目録を含む第１メモリを含み、前記グループ装置目録は前記複数のコンピューティング装置に含まれ、前記第１ゲートウェイによって管理される第１グループに含まれるコンピューティング装置と関連した情報を保存し、および前記分散データベースおよび前記第１メモリと動作可能なように連結された第１プロセッサを含み、前記分散ネットワークと通信するように設定されたネットワークインターフェース、前記第１ゲートウェイを含む複数のゲートウェイと関連した情報を含むゲートウェイ目録を保存する第２メモリ；および第２プロセッサ；を含むサーバーを含み、前記第２プロセッサは、前記ゲートウェイ目録に含まれた前記複数のゲートウェイの第１位置情報および前記複数のコンピューティング装置のうち第２コンピューティング装置から受信された第２位置情報に基づいて、前記第２コンピューティング装置に対して前記複数のゲートウェイのうち第１ゲートウェイを決定し、前記第１ゲートウェイと関連した情報を前記第２コンピューティング装置に伝送するように設定され、前記第１プロセッサは、前記グループ装置目録に前記第２コンピューティング装置と関連した情報を保存するように設定され得る。
【０００８】
また、本文書に開示される一実施例に係るサーバー装置は、分散ネットワークシステムに含まれる複数のコンピューティング装置と通信するように設定された通信インターフェース、前記複数のコンピューティング装置のうちゲートウェイに対するゲートウェイ目録を保存するメモリおよび少なくとも一つのプロセッサを含み、前記少なくとも一つのプロセッサは、前記複数のコンピューティング装置のうち前記ゲートウェイではない第１コンピューティング装置に対する位置情報と前記ゲートウェイ目録に含まれた前記ゲートウェイの位置情報に基づいて、前記第１コンピューティング装置に対して前記ゲートウェイのうち第１ゲートウェイを決定し、前記第１コンピューティング装置に前記第１ゲートウェイと関連した情報を伝送するように設定され得る。
【発明の効果】
【０００９】
本文書に開示される実施例によると、分散ネットワークシステムで位置に基づいてノードを効率的に管理し、分散ネットワークシステムの速度を改善することができる。
【００１０】
この他に、本文書を通じて直接的または間接的に把握される多様な効果が提供され得る。
【図面の簡単な説明】
【００１１】
【図１】一実施例に係る分散ネットワークシステムのブロック図である。
【図２】一実施例に係るブロックチェーン構造を説明するための図面である。
【図３】一実施例に係る分散ネットワークシステムに含まれるノードの種類を説明するための図面である。
【図４】一実施例に係るフルノードに対するブロック図を示す。
【図５】一実施例に係るライトノードに対するブロック図を示す。
【図６】一実施例に係るサーバーに対するブロック図を示す。
【図７】一実施例に係るゲートウェイ登録過程を説明するためのフローチャートである。
【図８】一実施例に係るゲートウェイの管理動作を説明するためのフローチャートである。
【図９Ａ】一実施例でノードがグループに加入する動作を説明するためのフローチャートである。
【図９Ｂ】一実施例でノードがグループに加入する動作を説明するためのフローチャートである。
【図９Ｃ】一実施例でノードがグループに加入する動作を説明するためのフローチャートである。
【図１０】一実施例に係るサーバー間のゲートウェイ目録を同期化する動作のフローチャートである。
【図１１】一実施例によりゲートウェイがブロックを生成し、グループのノードにブロック補償を分配する動作を説明するためのフローチャートである。
【図１２】一実施例によりゲートウェイがグループのノードの要請によってブロックを生成し、ブロック補償を分配する動作を説明するためのフローチャートである。
【図１３】一実施例でゲートウェイの間にブロック生成順序を決定する方法のフローチャートである。
【図１４】一実施例でゲートウェイの間にブロック生成順序を説明するための図面である。
【発明を実施するための形態】
【００１２】
以下、本発明の多様な実施例が添付された図面を参照して記載される。しかし、これは本発明を特定の実施形態に対して限定しようとするものではなく、本発明の実施例の多様な変更（ｍｏｄｉｆｉｃａｔｉｏｎ）、均等物（ｅｑｕｉｖａｌｅｎｔ）、および／または代替物（ａｌｔｅｒｎａｔｉｖｅ）を含むものと理解されるべきである。
【００１３】
図１は、一実施例に係る分散ネットワークシステム１００のブロック図である。図２は、一実施例に係るブロックチェーン構造を説明するための図面である。
【００１４】
分散ネットワークシステム１００は複数のコンピューティング装置１１０、１２０、１３０、１４０を通じて具現され得る。図１で４個のコンピューティング装置１１０、１２０、１３０、１４０が図示されたが、分散ネットワークシステム１００は図示されていない任意の数のコンピューティング装置をさらに含むことができる。
【００１５】
ネットワーク１０５は有線ネットワークおよび／または無線ネットワークを含むことができる。例えば、ネットワーク１０５はＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、仮想ネットワーク、遠隔通信ネットワークであり得る。コンピューティング装置１１０、１２０、１３０、１４０はネットワーク１０５を通じて動作可能なように連結され得る。
【００１６】
コンピューティング装置１１０、１２０、１３０、１４０はネットワーク１０５と通信することができ、ネットワーク１０５を通じて互いにデータを送受信することができる。各コンピューティング装置１１０、１２０、１３０、１４０は一つ以上の他のコンピューティング装置からデータを送信および／または受信するために、ネットワーク１０５を通じてデータを送信するように構成された任意の類型のデバイスであり得る。以下、コンピューティング装置１１０に対する説明は他のコンピューティング装置１２０、１３０、１４０に適用され得る。
【００１７】
コンピューティング装置１１０はプロセッサ１１１およびメモリ１１２を含むことができる。例えば、メモリ１１２はＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、メモリバッファ、ハードドライブ、データベース、ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）などを含むことができる。
【００１８】
一部の実施例において、プロセッサ１１１は汎用プロセッサ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などであり得る。
【００１９】
一部の実施例において、コンピューティング装置１１０、１２０、１３０、１４０の一つ以上の部分は、ハードウェア基盤モジュール（例えば、ＤＳＰ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ））および／またはソフトウェア基盤モジュール（例えば、メモリに保存されおよび／またはプロセッサで実行されるコンピュータコードのモジュール）を含むことができる。一部の実施例において、コンピューティング装置１１０、１２０、１３０、１４０と関連した一つ以上の機能（例えば、プロセッサ１１１、１２１、１３１、１４１と関連した機能）は一つ以上のモジュールに含まれ得る。
【００２０】
一部の実施例において、コンピューティング装置１１０のメモリ１１２は分散データベース１１４を含むことができる。コンピューティング装置１１０、１２０、１３０、１４０はネットワーク１０５を通じて分散データベース１１４、１２４、１３４、１４４を具現することができる。
【００２１】
プロセッサ１１１は、他のコンピューティング装置からトランザクションと関連した同期化データなどを受信することに応答して分散データベース１１４をアップデートするために、モジュール、機能および／またはプロセスを実行するように構成され得る。
【００２２】
一部の実施例において、分散データベース１１４は分散ネットワークシステム１００を通じて発生したトランザクション、トランザクションと関連したデータをブロックチェーン構造の形態で保存することができる。図２を参照すると、ブロックチェーン構造２００が例として図示された。分散データベース１１４に図２（１）のように、ブロック単位で保存されたデータが線形的に連結され得る。各ブロックは以前ブロックを指すことによって連結され得る。図２（２）を参照すると、ブロック２１０はヘッダ（ｈｅａｄｅｒ）２２０とボディ（ｂｏｄｙ）２３０で構成され得る。ヘッダ２２０に保存されたデータは該当ブロック２１０に対する要約情報として理解され得る。ブロックのハッシュ値はブロック２１０のヘッダ２２０に保存されたデータに基づいて計算され得る。次のブロックは以前ブロックのハッシュ値を保存することによって以前ブロックを指すことができる。これに伴い、分散ネットワークシステム１００はブロックチェーンネットワークシステムと呼称され得る。
【００２３】
図３は、一実施例に係る分散ネットワークシステム１００に含まれるノードの種類を説明するための図面である。
【００２４】
分散ネットワークシステム１００に含まれるコンピューティング装置（例：図１のコンピューティング装置１１０、１２０、１３０、１４０）はノード（ｎｏｄｅ）として理解され得る。分散ネットワークシステム１００に含まれるノードはフルノード（ｆｕｌｌ  ｎｏｄｅ：ＦＮ）３００とライトノード（ｌｉｇｈｔ  ｎｏｄｅ：ＬＮ）４００に区分され得る。
【００２５】
フルノード３００は、ブロックチェーン２００に含まれるすべての情報（例：ヘッダ２２０情報およびボディ２３０情報）をリアルタイムに同期化して維持するノードである。トランザクション機能（例：財布機能）を遂行できるノードである。ライトノード４００はトランザクションを発生させ、発生したトランザクションをネットワーク１０５を通じて隣のノードに伝播することができる。一部の実施例でライトノード４００はブロックチェーン２００に含まれる一部の情報（例：ヘッダ２２０情報）のみを有し、生成されたブロックに対する検証を遂行してもよい。
【００２６】
以下、フルノード３００とライトノード４００は分散ネットワークシステム１００に含まれるノードと呼称され得る。
【００２７】
分散ネットワークシステム１００に含まれたノードは、位置情報に基づいて互いに異なるグループに所属することができる。位置的に近いところに位置したノードは同一グループに分類され得る。
【００２８】
グループは分散ネットワークシステム１００と通信する少なくとも一つ以上のサーバー５００によって決定され得る。以下、一つのサーバー５００として説明するが、複数のサーバー５００がグループの分類を遂行してもよい。サーバー５００はノードの位置情報に基づいて、隣接したノードを同一グループに分類することができる。これに伴い、相互間に通信を頻繁に遂行する隣のノードが一グループに属することになり、通信の効率性が増加し得る。サーバー５００はサードパーティーによって運営され得る。
【００２９】
フルノード３００の少なくとも一部はゲートウェイ（ｇａｔｅｗａｙ：ＧＷ）３０１として動作することができる。ゲートウェイ３０１はブロック２１０を生成することができ、一つのグループを管理することができる。ゲートウェイ３０１はブロック２１０を生成することによってブロック補償を受け取り、受け取ったブロック補償を自身が属したグループのノードに分配することができる。互いに異なるゲートウェイ３０１は互いに異なるグループを管理することができる。
【００３０】
図３を参照すると、グループ１は４個のフルノード３００と６個のライトノード４００を含んでいる。４個のフルノード３００のうち１個のフルノード３００がゲートウェイ３０１として動作することができる。ゲートウェイ３０１はグループ１に所属したノードに対する情報を有することができる。ゲートウェイ３０１はブロック補償を受け取ると、グループ１に所属したノードにブロック補償を分配することができる。分散ネットワークシステム１００は一つ以上のグループを有することができ、それぞれのグループは少なくとも一つのゲートウェイ３０１を有することができる。
【００３１】
図４は一実施例に係るフルノード３００に対するブロック図を示し、図５は一実施例に係るライトノード４００に対するブロック図を示す。図６は、一実施例に係るサーバー５００に対するブロック図を示す。
【００３２】
図４を参照すると、フルノード３００は通信インターフェース３０５、プロセッサ３１０、メモリ３２０を含むことができる。フルノード３００は通信インターフェース３０５を通じて分散ネットワークシステム１００に含まれるノードおよびサーバー５００と通信を遂行できる。
【００３３】
フルノード３００はメモリ３２０にブロックチェーン情報３２２（例：図２のブロックチェーン２００と関連した情報）、サーバー目録３２４、グループ加入内訳３２６、および財布プログラム３２８が保存され得る。
【００３４】
ブロックチェーン情報３２２は図２のブロックチェーン２００に含まれるすべての情報を含むことができる。本文書に開示された多様な実施例に係るフルノード３００はウインドウズ（登録商標）やリナックス（登録商標）環境のＰＣであり得る。フルノード３００はブロックチェーン２００と関連した情報を保存しリアルタイムに同期化できるハードウェア資源を有することができる。
【００３５】
サーバー目録３２４は分散ネットワークシステム１００のノードに対してグルーピングを遂行するサーバーと関連した情報を含むことができる。例えば、サーバー目録３２４はサーバー５００の固有ＩＤとサーバー５００位置情報（ＩＰ、緯度、経度）を含むことができる。フルノード３００はグループに加入したりゲートウェイ３０１となるためにサーバー目録３２４に含まれる少なくとも一つのサーバー５００に要請を送ることができる。
【００３６】
グループ加入内訳３２６はフルノード３００が以前にグループに加入した履歴がある場合、そのグループと関連した情報を含むことができる。例えばグループ加入内訳３２６は加入したグループのゲートウェイ３０１のアカウント情報を含むことができる。
【００３７】
財布プログラム３２８は分散ネットワークシステム１００上の暗号通貨に対する入金、送金のようなトランザクションを生成することができる。フルノード３００のアカウントは財布プログラム３２８の財布アドレスとなり得る。財布プログラム３２８はウインドウズ（登録商標）やリナックス（登録商標）の環境で動作するプログラムであり得る。
【００３８】
もし、フルノード３００がゲートウェイ３０１として動作した場合、フルノード３００はゲートウェイ目録３３０とノードプール３３５をさらに含むことができる。ゲートウェイ目録３３０は現在ゲートウェイ３０１として動作してグループを運営しているゲートウェイと関連した情報を含むことができる。ゲートウェイ目録３３０はサーバー５００にも保管され得、サーバー５００の動作不可のような例外状況でバックアップの役割をすることができる。
【００３９】
多様な実施例において、一つのフルノード３００が複数個のゲートウェイとして動作することができる。この場合、前記複数個のゲートウェイはＩＰは同一であるものの、異なるポート番号を有することができる。
【００４０】
ノードプール３３５はゲートウェイ３０１が運営するグループに所属したノード（コンピューティング装置）と関連した情報を含むことができる。ノードプール３３５はそのグループに属するコンピューティング装置の目録を含むことができる。
【００４１】
図５を参照すると、ライトノード４００は通信インターフェース４０５、プロセッサ４１０、メモリ４２０を含むことができる。ライトノード４００は通信インターフェース４０５を通じて分散ネットワークシステム１００に含まれるノードおよびサーバー５００と通信を遂行できる。
【００４２】
ライトノード４００のメモリ４２０に財布アプリケーション４２２、サーバー目録４２４、およびグループ加入内訳４２６が保存され得る。
【００４３】
財布アプリケーション４２２は分散ネットワークシステム１００上の暗号通貨に対する入金、送金のようなトランザクションを生成することができる。財布アプリケーション４２２はアンドロイド（登録商標）やＩＯＳ（登録商標）のようなモバイル環境で動作するプログラムであり得る。サーバー目録４２４とグループ加入内訳４２６はフルノード３００のサーバー目録３２４およびグループ加入内訳３２６と同一である。
【００４４】
図６を参照すると、サーバー５００は通信インターフェース５０５、プロセッサ５１０、およびメモリ５２０を含むことができる。サーバー５００は通信インターフェース５０５を通じて分散ネットワークシステム１００のノード（フルノード３００、ライトノード４００）と通信を遂行できる。
【００４５】
プロセッサ５１０はグルーピングモジュール５１２を含むことができる。例えば、プロセッサ５１０はメモリ５２０に保存された命令語を実行してグルーピングモジュール５１２を駆動させることができる。グルーピングモジュール５１２はハードウェアで具現されてもよく、ソフトウェアで具現されてもよい。グルーピングモジュール５１２により遂行される動作はプロセッサ５１０により遂行される動作として理解され得る。グルーピングモジュール５１２はノードの位置情報に基づいてノードに対するグループを決定することができる。
【００４６】
メモリ５２０にはゲートウェイ目録５２２とサーバー目録５２４が保存され得る。ゲートウェイ目録５２２はフルノード３００に保存されるゲートウェイ目録３３０と互いに同期化され得る。サーバー目録５２４はサーバー５００と同一の役割を遂行する他のサーバーに対する情報を含むことができる。
【００４７】
図７は、一実施例に係るゲートウェイ３０１の登録過程を説明するためのフローチャートである。
【００４８】
フルノード３００はゲートウェイ３０１として動作するために、いずれか一つのサーバー（第１サーバー５００−１）にゲートウェイ登録要請メッセージを送信することができる（７０１）。フルノード３００は内部に保存されたサーバー目録を利用して、サーバー目録に含まれるいずれか一つのサーバーに前記メッセージを送信することができる。例えば、第１サーバー５００−１に前記メッセージが送信された例示が図示された。
【００４９】
ゲートウェイ登録メッセージはフルノード３００のＩＰアドレス情報、フルノード３００のポート（ｐｏｒｔ）番号情報、フルノード３００の緯度情報、フルノード３００の経度情報のうち少なくともいずれか一つの情報を含むことができる。前記情報はゲートウェイ３０１の位置と関連した情報として理解され得る。
【００５０】
第１サーバー５００−１は受信されたゲートウェイ登録メッセージの有効性を検査し（７０３）、ゲートウェイ登録応答メッセージをフルノード３００に送信することができる（７０５）。第１サーバー５００−１はゲートウェイ登録要請メッセージに含まれたデータとゲートウェイ目録情報を比較することができる。第１サーバー５００−１はフルノード３００の位置と関連した情報を利用して、前記フルノード３００と隣接した位置にあるゲートウェイ３０１をゲートウェイ目録の中から選択することができる。
【００５１】
ゲートウェイ登録応答メッセージは、ゲートウェイ登録メッセージに対する処理結果に対する成功／失敗の有無（ｒｅｔｕｒｎ＿ｖａｌ）を含むことができ、前記フルノード３００に割当されるゲートウェイＩＤを含むことができる。
【００５２】
フルノード３００はゲートウェイ登録応答メッセージに含まれた前記処理結果が成功である場合、受信されたゲートウェイＩＤを自身のＩＤとして登録し、第１サーバー５００−１にゲートウェイ登録処理メッセージを送信することができる。ゲートウェイ登録処理メッセージはフルノード３００が登録したゲートウェイＩＤを含むことができる。もし、ゲートウェイ登録応答メッセージに含まれた前記処理結果が失敗である場合、フルノード３００はサーバー目録に含まれた他のサーバーに動作７０１〜動作７０９を遂行することになる。
【００５３】
第１サーバー５００−１はゲートウェイ登録処理メッセージを受信すると、それに含まれたゲートウェイＩＤを利用してゲートウェイ目録を更新することができる（７１１）。第１サーバー５００−１はゲートウェイ追加要請メッセージを他のサーバーに伝送することによって、更新されたゲートウェイ目録を伝播することができる。ゲートウェイ追加要請メッセージは下記の情報のうち少なくとも一つ以上の情報を含むことができる。ゲートウェイ追加要請メッセージは第１サーバー５００−１の同期化インデックス（番号）を含むことができる。同期化インデックスはゲートウェイ目録が更新される時（ゲートウェイが追加される時）に更新される数字であり得る。例えば、同期化インデックスは０〜２３２−１値の範囲内の数字であり得る。ゲートウェイ追加要請メッセージは第１サーバー５００−１に登録されたゲートウェイの個数と第１サーバー５００−１に含まれたゲートウェイ目録を含むことができる。ゲートウェイ追加要請メッセージはゲートウェイ目録に含まれたゲートウェイのＩＰアドレス、ポート番号、緯度情報、経度情報のうち少なくとも一つを含むことができる。
【００５４】
ゲートウェイ追加要請メッセージは、例えば、第１サーバー５００−１に保存されたサーバー目録に含まれた第２サーバー５００−２〜第ｎサーバー５００−ｎに伝送され得る（７１３、７１７）。ゲートウェイ追加要請メッセージを受信した第２サーバー５００−２は前記メッセージを送信した第１サーバー５００−１を識別することができる。例えば第２サーバー５００−２は前記メッセージが送信された送信先のＩＰを利用して第１サーバー５００−１を識別することができる。第２サーバー５００−２は第２サーバー５００−２に保存されたゲートウェイ目録をロードすることができる。具体的には、第２サーバー５００−２は受信されたメッセージに含まれた第１同期化インデックスと第２サーバー５００−２に保存された第２同期化インデックスを比較することができる。もし、第１同期化インデックスが第２同期化インデックスより大きいのであれば、第２サーバー５００−２は第２サーバー５００−２に保存されたゲートウェイ目録を前記メッセージを通じて受信されたゲートウェイ目録に更新し、自身の第２同期化インデックスを更新することができる。ゲートウェイ更新過程が完了すると、第２サーバー５００−２は処理結果が反映されたゲートウェイ追加応答メッセージを第１サーバー５００−１に伝送することができる（７１５）。７１３動作〜７１５動作は第１サーバー５００−１のサーバー目録に含まれた第２サーバー５００−２の他に第３サーバー〜第ｎサーバー５００−ｎに対して遂行され得る。
【００５５】
図８は、一実施例に係るゲートウェイの管理動作を説明するためのフローチャートである。
【００５６】
フルノード３００が第１サーバー５００−１によってゲートウェイ３０１として登録されると、第１サーバー５００−１はゲートウェイ３０１を管轄することになる。また、フルノード３００はゲートウェイ３０１として動作を遂行することになる。第１サーバー５００−１は周期的にゲートウェイ３０１にメッセージが到達可能であるかどうかを検査することができる。例えば、第１サーバー５００−１はＰＩＮＧメッセージをゲートウェイ３０１に伝送し（８０１）、それに対する応答メッセージを受信することによって（８０３）、ゲートウェイ３０１が正常動作中であるかどうかを判断することができる。動作８０１および動作８０３はあらかじめ定められた周期（例：２分）ごとに繰り返し遂行され得る。
【００５７】
例えば、ＰＩＮＧメッセージはＰＩＮＧメッセージを識別するための任意の数を含むことができる。ＰＩＮＧ応答メッセージは受信したＰＩＮＧメッセージに含まれた任意の数を含むことができる。第１サーバー５００−１は前記任意の数を比較することによって、該当ＰＩＮＧメッセージに対する応答が受信されたことを確認することができる。
【００５８】
もし、第１サーバー５００−１がゲートウェイ３０１に繰り返しＰＩＮＧメッセージを送ったにもかかわらず、それに対する応答がない場合には、ゲートウェイ３０１をゲートウェイ目録から削除することができる（８０７）。例えば、第１サーバー５００−１はあらかじめ定められた回数（例：３回）のＰＩＮＧメッセージを伝送し、それに対する応答が受信されない場合、該当ゲートウェイ３０１で関連プログラムが終了したか、ゲートウェイ３０１のネットワークが断絶したものと判断することができる。
【００５９】
この場合、第１サーバー５００−１は他のサーバーにゲートウェイ削除要請メッセージを伝送することによって、他のサーバーとゲートウェイ目録を同期化することができる（８０９、８１３）。ゲートウェイ削除要請メッセージは第１サーバー５００−１の同期化インデックス（番号）を含むことができる。同期化インデックスはゲートウェイ目録が更新される時（すなわち、ゲートウェイが削除される時）に更新される数字であり得る。例えば、同期化インデックスは０〜２３２−１値の範囲内の数字であり得る。ゲートウェイ削除要請メッセージは第１サーバー５００−１に登録されたゲートウェイの個数と第１サーバー５００−１に含まれたゲートウェイ目録を含むことができる。
【００６０】
ゲートウェイ削除要請メッセージは、例えば、第１サーバー５００−１に保存されたサーバー目録に含まれた第２サーバー５００−２〜第ｎサーバー５００−ｎに伝送され得る（８０９、８１３）。ゲートウェイ削除要請メッセージを受信した第２サーバー５００−２は前記メッセージを送信した第１サーバー５００−１を識別することができる。例えば第２サーバー５００−２は前記メッセージが送信された送信先のＩＰを利用して第１サーバー５００−１を識別することができる。第２サーバー５００−２は第２サーバー５００−２に保存されたゲートウェイ目録をロードすることができる。具体的には、第２サーバー５００−２は受信されたメッセージに含まれた第１同期化インデックスと第２サーバー５００−２に保存された第２同期化インデックスを比較することができる。もし、第１同期化インデックスが第２同期化インデックスより大きいのであれば、第２サーバー５００−２は第２サーバー５００−２に保存されたゲートウェイ目録を前記メッセージを通じて受信されたゲートウェイ目録に更新し、自身の第２同期化インデックスを更新することができる。ゲートウェイ更新過程が完了すると、第２サーバー５００−２は処理結果が反映されたゲートウェイ削除応答メッセージを第１サーバー５００−１に伝送することができる（８１１）。８０９動作および８１３動作は第１サーバー５００−１のサーバー目録に含まれた第２サーバー５００−２の他に第３サーバー〜第ｎサーバー５００−ｎに対して遂行され得る。
【００６１】
図９Ａ、図９Ｂおよび図９Ｃは、一実施例でノードがグループに加入する動作を説明するためのフローチャートである。
【００６２】
分散ネットワークシステム１００に含まれるフルノード３００（ゲートウェイとして動作しないフルノード）とライトノード４００は、少なくとも一つのゲートウェイ３０１によって運営されるいずれか一つのグループに加入することができる。以下、ライトノード４００がグループに加入する動作を例示として説明するが、フルノード３００も同一の動作を遂行することによってグループに加入することができる。
【００６３】
一例において、ライトノード４００はグループ加入内訳を含むことができる。グループ加入内訳は例えば、分散ネットワークシステム１００の少なくとも一つのゲートウェイと連結された履歴がある場合、連結されたゲートウェイと関連した情報を含むことができる。
【００６４】
ライトノード４００はグループ加入内訳を照会することができる（９０１）。グループ加入内訳は少なくとも一つのゲートウェイのアドレスを含むことができる。例えば、前記アドレスはゲートウェイのアドレスとして分散ネットワークシステム１００上に登録されているアドレス（例：公開鍵、財布アドレス）として理解され得る。グループ加入内訳は例えば、第１ゲートウェイ３０１−１のアドレス、および第２ゲートウェイ３０１−２のアドレスを含むことができる。ライトノード４００はグループ加入内訳で第１ゲートウェイ３０１−１を先に選択し（９０３）、第１ゲートウェイ３０１−１にグループ加入要請メッセージを伝送することができる（９０５）。グループ加入要請メッセージはライトノード４００のアドレス（例：財布アドレス）を含むことができる．第１ゲートウェイ３０１−１はグループ加入要請メッセージを受信すると、ライトノード４００の加入可能の有無を確認することができる（９０７）。第１ゲートウェイ３０１−１は受信されたライトノード４００のアドレスを確認し、前記ライトノード４００を収容できるかどうかを確認することができる。例えば、それぞれのゲートウェイに対して収容可能なノードの個数が制限され得る。前記個数はそれぞれのゲートウェイのハードウェア環境および／またはソフトウェアの政策によってあらかじめ設定され得る。
【００６５】
第１ゲートウェイ３０１−１は、ライトノード４００を収容可能な場合、ライトノード４００のアドレスを第１ゲートウェイ３０１−１のノードプールに保存することができる。第１ゲートウェイ３０１−１はライトノード４００に対応するノードＩＤを生成し、前記ノードＩＤと前記ライトノード４００のアドレスを前記ノードプールに保存することができる。前記ノードＩＤとライトノード４００のアドレスはマッピングされて保存され得る。
【００６６】
しかし、第１ゲートウェイ３０１−１がライトノード４００を収容不可能な場合、ライトノード４００は他のノードに再びグループ加入要請をしなければならない。
【００６７】
第１ゲートウェイ３０１−１はライトノード４００のグループ加入要請メッセージに対する、グループ加入応答メッセージをライトノード４００に伝送することができる。グループ加入応答メッセージは、グループ加入要請に対する成功／失敗の有無を含むことができる。また、グループ加入が成功した場合、ライトノード４００に対して生成されたノードＩＤが含まれ得る。
【００６８】
例えば、第１ゲートウェイ３０１−１がライトノード４００を収容できない場合、失敗（例：ｎｕｌｌ）の応答を含むグループ加入応答メッセージをライトノード４００に伝送することができる（９０９）。ライトノード４００は受信されたグループ加入応答メッセージをパーシングし、失敗の有無を確認すると、グループ加入内訳のうち第１ゲートウェイ３０１−１ではない他のゲートウェイを選択することができる。もし、グループ加入内訳に他のゲートウェイがそれ以上ない場合には、ライトノード４００は図１０を通じて後述される動作を遂行できる。
【００６９】
図９Ａで、ライトノード４００はグループ加入内訳に含まれた第２ゲートウェイ３０１−２を選択することができる（９１１）。ライトノード４００は第２ゲートウェイ３０１−２にグループ加入要請メッセージを伝送することができる（９１３）。第２ゲートウェイ３０１−２は受信されたライトノード４００のアドレスを確認し、前記ライトノード４００を収容できるかどうかを確認することができる（９１５）。第２ゲートウェイ３０１−２は、ライトノード４００を収容可能な場合、ライトノード４００のアドレスを第２ゲートウェイ３０１−２のノードプールに保存することができる（９１７）。例えば、第２ゲートウェイ３０１−２はライトノード４００に対応するノードＩＤを生成し、前記ノードＩＤと前記ライトノード４００のアドレスを前記ノードプールに保存することができる。第２ゲートウェイ３０１−２はライトノード４００のグループ加入要請メッセージに対する、グループ加入応答メッセージをライトノード４００に伝送することができる（９１９）。該当グループ加入応答メッセージはグループ加入要請に対する成功の応答を含むことができ、ライトノード４００に対するノードＩＤを含むことができる。
【００７０】
図９Ｂを参照すると、ライトノード４００がグループ加入内訳を含まない場合、ライトノード４００はサーバー目録に含まれるサーバーのうちいずれか一つのサーバー５００にゲートウェイ情報要請メッセージを伝送することができる（９５０）。ゲートウェイ情報要請メッセージはライトノード４００のＩＰ情報、ライトノード４００のポート情報、ライトノード４００の緯度情報、およびライトノード４００の経度情報のうち少なくとも一つの情報を含むことができる。
【００７１】
サーバー５００はゲートウェイ情報要請メッセージに応答して、候補ゲートウェイ目録を生成することができる（９５３）。サーバー５００はゲートウェイ情報応答メッセージを伝送することができる（９５５）。ゲートウェイ情報応答メッセージは、前記生成した候補ゲートウェイ目録と候補ゲートウェイの個数情報を含むことができる。
【００７２】
ライトノード４００は受信された候補ゲートウェイ目録を利用して図９Ａを通じて上述された動作９０１〜動作９１９を遂行できる。もし、現在加入可能なグループがない場合に動作９５１〜動作９５５は繰り返し遂行され得る。
【００７３】
図９Ｃを参照すると一例示において、ライトノード４００はライトノード４００の位置情報として緯度情報および／または経度情報を獲得することができる（９６１）。例えば、ライトノード４００はポータブルデバイス（例：スマートフォン、タブレットＰＣ）であり得る。ライトノード４００の位置はリアルタイムに変更され得る。
【００７４】
ライトノード４００は前記の緯度情報および／または経度情報を含むゲートウェイ情報要請メッセージをサーバー５００に伝送することができる（９６３）。多様な実施例において、ライトノード４００の緯度座標および／または経度座標が変更されるにつれサーバー５００に接続しなければならないゲートウェイに対する情報を要請することができる。またはライトノード４００はサーバー５００に一定の周期ごとに現在の位置情報に基づいて接続しなければならないゲートウェイに対する情報を要請することができる。
【００７５】
一部の実施例において、ゲートウェイ情報要請メッセージはライトノード４００が要請したゲートウェイの個数、ライトノード４００のＩＰアドレス、ライトノード４００の緯度情報、およびライトノード４００の経度情報を含むことができる。
【００７６】
サーバー５００はノード待機プールにライトノード４００を登録することができる（９６５）。サーバー５００はライトノードからゲートウェイ情報要請メッセージを受信すると、前記要請を順次処理するためにノード待機プールを運営することができる。以下、サーバー５００の動作はサーバー５００のプロセッサ５１０のグルーピングモジュール５１２によって遂行され得る。
【００７７】
サーバー５００はゲートウェイ目録を照会し（９６７）、ゲートウェイ目録に含まれたゲートウェイとライトノード４００の間の距離を計算することができる（９６９）。例えば、サーバー５００はライトノード４００の緯度情報および経度情報とゲートウェイの緯度情報および経度情報に基づいて、両者間の距離（例：ＧＰＳ座標上距離）を計算することができる。サーバー５００はゲートウェイ目録に含まれたゲートウェイに対して前記計算を遂行し、ライトノード４００と近い距離を有する順で候補ゲートウェイを決定することができる。サーバー５００は決定された候補ゲートウェイが含まれた候補ゲートウェイ目録を生成することができる（９７１）。候補ゲートウェイ目録はライトノード４００によって要請された個数の候補ゲートウェイを含むことができる。サーバー５００は候補ゲートウェイ目録を含むゲートウェイ情報応答メッセージをライトノード４００に伝送することができる（９８３）。
【００７８】
図１０は、一実施例に係るサーバー間のゲートウェイ目録を同期化する動作のフローチャートである。
【００７９】
サーバー５００はあらかじめ定められた周期ごとにサーバー５００に含まれたゲートウェイ目録を他のサーバーに共有することができる。図１０を参照すると、例えば第１サーバー５００−１と第２サーバー５００−２の同期化過程が例示された。第２サーバー５００−２はゲートウェイ目録に対する同期化要請メッセージを第１サーバー５００−１に伝送することができる（１００１）。前記同期化要請メッセージは、第２サーバー５００−２に保存された同期化インデックス（番号）、ゲートウェイ目録を含むことができる。同期化インデックスはゲートウェイ目録が更新される時に更新される数字であり得る。例えば、同期化インデックスは０〜２３２−１値の範囲内の数字であり得る。
【００８０】
第１サーバー５００−１は第１サーバー５００−１に保存された第１同期化インデックスと第２サーバー５００−２から受信された第２同期化インデックスを比較することができる。もし、第２同期化インデックスが第１同期化インデックスより大きいのであれば、第１サーバー５００−１は第１サーバー５００−１に保存されたゲートウェイ目録を前記メッセージを通じて受信されたゲートウェイ目録に更新し、自身の第１同期化インデックスを更新することができる（１００３）。第１サーバー５００−１は同期化要請応答メッセージを第２サーバー５００−２に伝送することができる。同期化要請応答メッセージは同期化要請に対する処理結果（成功または失敗）を含むことができる。動作１００１〜動作１００５はあらかじめ定められた周期ごとに分散ネットワークシステム１００に含まれる互いに異なるサーバーの間で遂行され得る。
【００８１】
多様な実施例において、新しく追加された第ｎサーバー５００−ｎは初期化ブーティングを遂行し（１０１１）、任意の隣のサーバーである第１サーバー５００−１に初期同期化要請メッセージを伝送することができる（１０１３）。第１サーバー５００−１は初期同期化応答メッセージを第ｎサーバー５００−ｎに伝送することができる。初期同期化応答メッセージは、分散ネットワークシステム１００に含まれたサーバーに対する情報を含むことができる。サーバーに対する情報は、サーバーの個数、サーバーに保存されたゲートウェイの目録、ゲートウェイの個数、ゲートウェイ目録に対する同期化インデックスを含むことができる。第ｎサーバー５００−ｎは初期同期化応答メッセージを受信すると、前記メッセージに含まれた情報を保存し、同期化を遂行できる。
【００８２】
図１１は、一実施例によりゲートウェイがブロックを生成し、グループのノードにブロック補償を分配する動作を説明するためのフローチャートである。
【００８３】
例えば、ゲートウェイ３０１によって運営されるグループは第１ライトノード４００−１、第２ライトノード４００−２、および第３ライトノード４００−３を含むことができる。ゲートウェイ３０１はグループに含まれるノードに対する情報をノードプールに保存することができる。
【００８４】
ゲートウェイ３０１はノードプールに含まれるノードに対して周期的に年齢情報（ａｇｅ  ｉｎｆｏｒｍａｔｉｏｎ）を収集することができる。ゲートウェイ３０１は収集した年齢情報を基準としてノードにブロック補償を分配することができる。年齢情報はノードが所有した暗号通貨の量に比例し得、該当暗号通貨を所有した期間に比例し得る。より多くの暗号通貨を長期間保有したノードがより多くのブロック補償を受け取ることができることになる。
【００８５】
ゲートウェイ３０１は周期的にノードプールに含まれるノードに年齢情報要請メッセージを伝送することができる。例えば、ゲートウェイ３０１は第１ライトノード４００−１、第２ライトノード４００−２、および第３ライトノード４００−３に年齢情報要請メッセージを伝送することができる（１１０１、１１０５、１１０９）。ゲートウェイ３０１は前記年齢情報要請メッセージに応答して受信された年齢応答メッセージを第１ライトノード４００−１、第２ライトノード４００−２、および第３ライトノード４００−３から受信することができる（１１０３、１１０７、１１１１）。他の例において、ノードが周期的に年齢情報を送信し、ゲートウェイ３０１は受信された年齢情報を収集することができる。
【００８６】
年齢情報応答メッセージは、ノードが特定の時点で所有している暗号通貨の量に対する情報を含むことができる。または年齢情報応答メッセージは、ノードそれぞれによって演算された数値（点数）の値を含むことができる。分散ネットワークシステム１００に含まれたノードは年齢情報を計算する同一のアルゴリズムを適用することができる。例えば、第１ライトノード４００−１に対する第１年齢点数、第２ライトノード４００−２に対する第２年齢点数、第３ライトノード４００−３に対する第３年齢点数が演算され得る。
【００８７】
第１年齢点数はゲートウェイ３０１のノードプールに第１ライトノード４００−１にマッピングされて保存され得る。第２年齢点数、第３年齢点数はゲートウェイ３０１のノードプールに第２ライトノード４００−２、第３ライトノード４００−３にマッピングされて保存され得る。
【００８８】
ゲートウェイ３０１は本人のブロック生成順序になると、ブロックを生成しブロック補償を受け取ることができる。ブロック補償は生成されるごとにゲートウェイ３０１はブロック生成メッセージを分散ネットワーク上に伝播することができる（１１１５）。ゲートウェイ３０１は収集された年齢情報に基づいてノードに支給される補償を決定することができる（１１１７）。
【００８９】
ブロック補償は、ブロックを生成したゲートウェイ３０１とゲートウェイ３０１によって運営されるノードに分配され得る。例えば、ゲートウェイ３０１に割当された補償を除いて、残りは第１ライトノード４００−１の第１年齢点数、第２ライトノード４００−２の第２年齢点数、および第３ライトノード４００−３の第３年齢点数の比率にしたがって、それぞれのノードに分配され得る。ゲートウェイ３０１はノードの口座（例：財布）に決定された補償を支給できる。例えば、ゲートウェイ３０１はノードプールに含まれたノードにブロック補償を支給するトランザクションを発生させることができる（１１１９）。ゲートウェイ３０１は前記トランザクションが発生した後に、ブロック補償支給に対する通知メッセージをノードプールのノードに伝送することができる（１１２１、１１２５、１１２９）。第１ライトノード４００−１、第２ライトノード４００−２、および第３ライトノード４００−３は、前記通知メッセージに応答してそれぞれの年齢点数を０に初期化することができる（１１２３、１１２７、１１３１）。それぞれの年齢点数はゲートウェイ３０１が次のブロックを生成するまでの暗号通貨保有量および保有時間によって再び演算され得る。
【００９０】
多様な実施例において、ゲートウェイ３０１はあらかじめ定められた周期ごとにグループに属したノードに対して、該当ゲートウェイ３０１との連結の有無と暗号通貨保有量を確認することができる（例：動作１１０１〜動作１１１１）。例えば５分ごとに前記確認動作を遂行できる。ゲートウェイ３０１は一つのノードの年齢点数はゲートウェイ３０１に連結されたものと確認された周期の個数と保有している暗号通貨の量とに比例するように決定することができる。動作１１１７で決定された補償は、ゲートウェイ３０１に属したノードの年齢点数の総合×年齢点数当たりに支給された補償の量と同一であり得る。ブロック生成メッセージを受信したフルノード３００はゲートウェイ３０１に対する補償とグループのノードに支給された補償を合わせた値がブロック生成により発生したブロック補償と同一であれば、ブロックの連結を遂行できる。
【００９１】
図１２は、一実施例によりゲートウェイがグループのノードの要請によってブロックを生成し、ブロック補償を分配する動作を説明するためのフローチャートである。
【００９２】
分散ネットワークシステム１００のノード３００、４００は多様なトランザクションを発生させることができる。発生したトランザクションは分散ネットワークシステム１００に含まれる少なくとも一つのノードによって処理されてブロックチェーン２００に保存され得る。
【００９３】
一部の実施例において、多量のトランザクションを発生させたノードは自身が属するグループのゲートウェイ３０１にブロック生成を要請することができる。ノードはあらかじめ定められた量以上のトランザクションを発生させた場合に、ゲートウェイ３０１にブロック生成を要請することができる。ゲートウェイ３０１はブロックを生成し、前記ノードにブロック補償を支給できる。該当ブロック補償は、分散ネットワークシステム１００に含まれたノードはトランザクションを多く発生させるようにする誘引策となり得る。
【００９４】
それぞれのノードはトランザクションを発生させ、トランザクション点数を更新することができる。例えば、第１ノード４００−１はトランザクションを発生させ、トランザクション点数を更新することができる（１２０１）。一部の実施例において、トランザクション点数はトランザクションに付加された手数料に比例して決定され得る。例えばトランザクション点数は単位手数料当たり１点として計算され得る。
【００９５】
第１ノード４００−１は更新されたトランザクション点数が基準値以上であるかどうかを確認することができる（１２０３）。動作１２０１および動作１２０３はトランザクション点数が基準値以上になるまで繰り返され得る。基準値は分散ネットワークシステム１００上でのトランザクションの発生頻度にしたがって相対的に決定され得る。
【００９６】
第１ノード４００−１は自身のトランザクション点数が基準値以上の場合、自身が所属したグループの運営者であるゲートウェイ３０１にブロック生成要請メッセージを伝送することができる（１２０５）。前記ブロック生成要請メッセージは第１ノード４００−１のトランザクション点数と第１ノード４００−１によって発生したトランザクションの目録を含むことができる。前記トランザクションは第１ノード４００−１のアカウントによってデジタル署名される。
【００９７】
ゲートウェイ３０１は第１ノード４００−１のトランザクション点数とトランザクションの目録を検証し、ブロックを生成することができる（１２０７）。該当ブロックはブロック生成を要請した第１ノード４００−１のアカウントアドレスと第１ノード４００−１から受信したトランザクション点数を含むことができる。
【００９８】
ゲートウェイ３０１はブロック生成メッセージを分散ネットワーク上に伝播することができる（１２０９）。ゲートウェイ３０１はブロック補償を受け取ると、該当ブロック補償をゲートウェイ３０１自身と第１ライトノード４００−１に分配することができる。ゲートウェイ３０１はブロック補償を支給するトランザクションを発生させ（１２１１）、ブロック補償の支給を知らせる通知メッセージを第１ライトノード４００−１に伝送することができる（１２１３）。第１ライトノード４００−１は自身のトランザクション点数を０に初期化することができる（１２１５）。例えば、第１ライトノード４００−１のアカウントアドレスと関連したブロック発行タイムスタンプを基準として該当ブロックに対する補償が支給された時間を確定することができる。
【００９９】
トランザクション点数を定める政策は、分散ネットワークシステム１００に含まれたノードに共通して適用され得る。ブロック生成メッセージを受信したフルノード３００は前記政策に照らして第１ライトノード４００−１に対するトランザクション点数が正当であるかどうかと支給された補償が正当であるかどうかを検証することができる。フルノード３００は検証が完了するとブロックの連結を遂行できる。
【０１００】
図１３は、一実施例でゲートウェイの間にブロック生成順序を決定する方法のフローチャートである。図１４は、一実施例でゲートウェイの間にブロック生成を説明するための図面である。
【０１０１】
分散ネットワークシステム１００に含まれたフルノード３００の中でゲートウェイ３０１がブロックを生成する権限を有することができる。例えば、あるフルノード３００が一定の保証金（例：一定個数の暗号通貨）を分散ネットワークシステム１００に支払った場合にゲートウェイ３０１として動作することができる。前記保証金はゲートウェイ３０１がゲートウェイの権限を返却するとその口座に回収され得る。
【０１０２】
ゲートウェイ３０１は分散ネットワークシステム１００上でゲートウェイとして動作するノードの目録（ゲートウェイ目録）を有することができる。ゲートウェイ３０１が追加または削除されるたびに前記ゲートウェイ目録はサーバー５００および／またはゲートウェイ３０１によって同期化され得る。
【０１０３】
図１３を参照すると、一実施例によりブロック生成者を決定する方法は動作１３１０〜１３３０を含むことができる。前記動作１３１０〜１３３０は例えば、図４のフルノード３００により遂行され得る。前記動作１３１０〜１３３０は、例えば、前記フルノード３００のプロセッサ３１０により遂行（あるいは、実行）され得るインストラクション（命令語）で具現され得る。前記インストラクションは、例えば、コンピュータ記録媒体またはフルノード３００のメモリ３２０に保存され得る。
【０１０４】
動作１３１０で、少なくとも一つのゲートウェイ３０１はゲートウェイ目録に含まれた少なくとも一部のゲートウェイ３０１に対して点数値を計算することができる。
【０１０５】
一部の実施例において、複数のゲートウェイ３０１はゲートウェイとして動作したのが長い順でブロックを生成するように決定され得る。また、ブロックを生成して補償を受け取ったゲートウェイは次の順位に押し出されることになる。ゲートウェイ３０１は動作したのが長い順でブロック生成者プールに登録され得る。例えば、動作したのが長い順で上位ｎ％のゲートウェイに対して前記点数値が計算され得る。
【０１０６】
前記点数値はハッシュ関数を通じて演算されるように設定され得る。ハッシュ関数のパラメータとして、以前ブロックのハッシュ値、年齢点数値（例：図１１の年齢点数値）が利用され得る。ハッシュ関数として公知になっている多様なハッシュ関数（例：ＳＨＡ−２５６）が利用され得る。前記年齢点数値は特定のゲートウェイ３０１が管理するグループに含まれるノードの年齢点数値をすべて足した値であり得る。ブロック生成の権限を合意する過程で、ゲートウェイが管理するグループと関連した情報が利用され得る。このような観点で分散ネットワークシステム１００にグループ持分証明方式の合意アルゴリズムが適用され得る。
【０１０７】
動作１３２０で、少なくとも一つのゲートウェイ３０１は前記点数値を基準としてあらかじめ定められた個数（第１値）のゲートウェイ（第１セット）を決定することができる。例えば、点数値が高い順で上位１０個のゲートウェイが選定され得る。
【０１０８】
動作１３３０で、第１セットに含まれた少なくとも一部のゲートウェイはブロック生成者として決定され得る。一実施例において、第１セットに含まれたゲートウェイはブロック生成者に対する投票を遂行できる。例えば第１セットに含まれたゲートウェイはブロック生成に関する投票を遂行できる。第１セットに含まれたゲートウェイのうちあらかじめ定められた数（第２値）以上の投票を獲得したゲートウェイはブロック生成者として決定され得る。
【０１０９】
図１４（１）を参照すると、決定されたブロック生成者は一サイクルの間順にブロックを生成することになる。例えば、ゲートウェイＡ、ゲートウェイＢ、ゲートウェイＣ、およびゲートウェイＤが今回のサイクルのブロック生成者として決定された。ブロック生成者はそれぞれ自身がブロックを生成することに定められたタイムスロットにブロックを生成することができる（フォーク防止）。ゲートウェイＡはタイムスロット１にブロックＡを生成し、ゲートウェイＢはタイムスロット２にブロックＢを生成し、ノードＣはタイムスロット３にブロックＣを生成し、ゲートウェイＤはタイムスロット４にブロックＤを生成するように設定され得る。それぞれのゲートウェイＡ〜Ｄは図１１で上述された動作を通じてブロック（第１タイプのブロック）を生成し、ブロック補償を各自のグループのノードに分配することができる。
【０１１０】
一部の実施例において、一サイクル内でトランザクション点数を充足したノードによるブロック生成要請が発生し得る（例：図１２の動作１２０５）。図１４（２）を参照すると、タイムスロット２で任意のゲートウェイＸからブロック生成要請が発生し得る。ゲートウェイＸによって管理されるグループに含まれたいずれか一つのノードによってブロック生成要請が発生し得る。この場合、タイムスロット３で前記ブロック生成要請によるブロックＸが生成され、タイムスロット４およびタイムスロット５でゲートウェイＣ、Ｄによるブロック生成が進行され得る。ゲートウェイＸは図１２で上述された動作を通じてブロック（第２タイプのブロック）を生成し、ブロック補償を自身と前記ノードに分配することができる。
【０１１１】
本文書の多様な実施例およびこれに使われた用語は、本文書に記載された技術的特徴を特定の実施例に限定しようとするものではなく、該当実施例の多様な変更、均等物、または代替物を含むものと理解されるべきである。図面の説明と関連して、類似するまたは関連した構成要素に対しては類似する参照符号が使われ得る。アイテムに対応する名詞の単数型は関連した文脈上明白に異なるように指示しない限り、前記アイテム一つまたは複数個を含むことができる。本文書で、「ＡまたはＢ」、「ＡおよびＢのうち少なくとも一つ」、「ＡまたはＢのうち少なくとも一つ、」「Ａ、ＢまたはＣ、」「Ａ、ＢおよびＣのうち少なくとも一つ、」および「Ａ、Ｂ、またはＣのうち少なくとも一つ」のような文面のそれぞれは、その文面のうち該当する文面に共に羅列された項目の可能なすべての組み合わせを含むことができる。「第１」、「第２」、または「最初」または「二番目」のような用語は、単に該当構成要素を他の該当構成要素と区分するために使われ得、該当構成要素を他の側面（例：重要性または順序）に限定しない。ある（例：第１）構成要素が他の（例：第２）構成要素に、「機能的に」または「通信的に」という用語とともにまたはこのような用語なしに、「カップルド」または「コネクテッド」と言及された場合、それは前記ある構成要素が前記他の構成要素に直接的に（例：有線で）、無線で、または第３構成要素を通じて連結され得るということを意味する。
【０１１２】
本文書で使われた用語「モジュール」はハードウェア、ソフトウェアまたはファームウェアで具現されたユニットを含むことができ、例えば、ロジック、論理ブロック、部品、または回路などの用語と相互に互換的に使われ得る。モジュールは、一体に構成された部品または一つまたはそれ以上の機能を遂行する、前記部品の最小単位またはその一部となり得る。例えば、一実施例によると、モジュールはＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）の形態で具現され得る。
【０１１３】
本文書の多様な実施例は、機器（ｍａｃｈｉｎｅ）（例：電子装置＃０１）より読み取り可能な保存媒体（ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）（例：内蔵メモリ＃３６または外装メモリ＃３８）に保存された一つ以上の命令語を含むソフトウェア（例：プログラム＃４０）として具現され得る。例えば、機器（例：電子装置＃０１）のプロセッサ（例：プロセッサ＃２０）は、保存媒体から保存された一つ以上の命令語のうち少なくとも一つの命令を呼び出し、それを実行することができる。これは機器が前記呼び出された少なくとも一つの命令語によって少なくとも一つの機能を遂行するように運営されることを可能にする。前記一つ以上の命令語はコンパイラによって生成されたコードまたはインタープリタによって実行され得るコードを含むことができる。機器で読み取り可能な保存媒体または、非一過性の（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）保存媒体の形態で提供され得る。ここで、「非一過性の」は保存媒体が実在（ｔａｎｇｉｂｌｅ）する装置であり、信号（ｓｉｇｎａｌ）（例：電磁波）を含まないことを意味するだけであり、この用語はデータが保存媒体に半永久的に保存される場合と臨時的に保存される場合を区分しない。
【０１１４】
一実施例によると、本文書に開示された多様な実施例に係る方法はコンピュータプログラム製品（ｃｏｍｐｕｔｅｒ  ｐｒｏｇｒａｍ  ｐｒｏｄｕｃｔ）に含まれて提供され得る。コンピュータプログラム製品は商品として販売者および購買者間に取引され得る。コンピュータプログラム製品は機器で読み取り可能な保存媒体（例：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ））の形態で配布されたり、またはアプリケーションストア（例：プレイストアＴＭ）を通じて、または二つの使用者装置（例：スマートフォン）間に直接、オンラインで配布（例：ダウンロードまたはアップロード）できる。オンライン配布の場合に、コンピュータプログラム製品の少なくとも一部は、メーカーのサーバー、アプリケーションストアのサーバー、または中継サーバーのメモリのような機器で読み取り可能な保存媒体に少なくとも一時保存されたり、臨時的に生成され得る。
【０１１５】
多様な実施例によると、前記記述した構成要素のそれぞれの構成要素（例：モジュールまたはプログラム）は、単数または複数の個体を含むことができる。多様な実施例によると、前述した該当構成要素のうち一つ以上の構成要素または動作が省略されたり、または一つ以上の他の構成要素または動作が追加され得る。おおむねまたは追加的に、複数の構成要素（例：モジュールまたはプログラム）は一つの構成要素に統合され得る。このような場合、統合された構成要素は前記複数の構成要素それぞれの構成要素の一つ以上の機能を前記統合以前に前記複数の構成要素のうち該当構成要素によって遂行されるものと同一または類似するように遂行できる。多様な実施例によると、モジュール、プログラムまたは他の構成要素によって遂行される動作は順次、並列的に、繰り返し、またはヒューリスティックに実行されたり、前記動作のうち一つ以上が他の順序で実行されたり、省略されたり、または一つ以上の他の動作が追加され得る。
【図１】
2021532494.tif 000003
【図２】
2021532494.tif 000004
【図３】
2021532494.tif 000005
【図４】
2021532494.tif 000006
【図５】
2021532494.tif 000007
【図６】
2021532494.tif 000008
【図７】
2021532494.tif 000009
【図８】
2021532494.tif 000010
【図９Ａ】
2021532494.tif 000011
【図９Ｂ】
2021532494.tif 000012
【図９Ｃ】
2021532494.tif 000013
【図１０】
2021532494.tif 000014
【図１１】
2021532494.tif 000015
【図１２】
2021532494.tif 000016
【図１３】
2021532494.tif 000017
【図１４】
2021532494.tif 000018
【国際調査報告】
2021532494.tif 000019
2021532494.tif 000020
2021532494.tif 000021
2021532494.tif 000022