Orb Coreシリーズ
技術情報
Ver. 1.02
2017年7⽉29⽇
株式会社Orb
Chief Business Officer
Wataru Fukatsu
© 2017 Orb, Inc.
Orb DLT - Coreシリーズ
Oracle
Cloud, @Customer, On-Premise
Apollo : Decentralized Data Operating System
CoinCore ContractCore
Wallet
App
Smart
Coin Custom App Custom App
Storage
Transaction Analytics
Toolbox
OrbDLT
QueryCore
1. Coreシリーズ概要
2. Core アプリケーション
3. CoinCore
a. Coinトランザクションエンジン
b. 対改ざん性
4. コイン定義例
5. コイン定義設定クライアント
© 2017 orb, inc.
Core - 通貨や契約における処理の振る舞いを柔軟に定義可能なミドルウェア群
• アプリケーション共通の機能を汎⽤化
• Apolloの複雑性を隠蔽
• 複雑なことを簡単に実現
3
Driver
Transaction Analytics
Coin
Account Query
Storage
Apollo
Core
Model your client’s
organization
Design and deploy your
client’s economy
Aggregate your client’s
data as you like
© 2017 Orb, Inc.
CoinCore –
通貨におけるトランザクションの振る舞いを柔軟に定義可能なミドルウェア
4
[
{
"ID": "charge",
"Modifiers": [
{
"Type": "basic",
"Order": 0,
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer",
"AvailableCoins": [
"regular"
],
"UnavailableCoins": null,
"Amount": null,
"Percentage": 100
}
},
{
"Type": "basic",
"Order": 1,
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer",
"AvailableCoins": [
"bonus"
],
"UnavailableCoins": null,
"Amount": null,
"Percentage": 5
}
}
]
},
{
"ID": "payment",
"Modifiers": [
{
"Type": "basic_fee",
"Order": 0,
"Config": {
"DecreaseTarget": "consumer",
"IncreaseTarget": "merchant",
"AvailableCoins": [
"regular",
"bonus"
],
"UnavailableCoins": null,
"FeeTarget": "issuer",
"CoinID": null,
"Amount": null,
"Percentage": 100,
"FeePercentage": 2
}
}
]
}
]
Predefined Modifiers :
basic
basic_fee
max_use
dependent
tiered
tiered_dependent
time_tiered
地域通貨の例
Regularコイン、Bonusコイン、Merchantコイン
チャージ
• A銀⾏がユーザに指定額のRegularコインを付与
• チャージしたRegularコインの5%分のBonusコイ
ンをチャージボーナス消費者に付与
⽀払い
• 消費者はRegularコインもしくはBonusコインか
ら必要な額のコインを加盟店に⽀払い
• A銀⾏は⼿数料として⽀払額の2%を加盟店から
徴収
© 2017 orb, inc.
CoinCore – 基本API
• ⼝座作成
• トランザクション
• 残⾼確認
• 取引履歴の閲覧
5
POST /accounts
POST /transactions
Request Payload:
{event: "charge", amount: 100, accounts: {consumer: XXX}}
GET /accounts/XXX/balances
POST /transactions
Request Payload:
{event: "payment", amount: 100, accounts: {consumer: XXX, merchant: YYY}}
⼊⾦(charge イベント)※イベントは発⾏事業体が定義する
⽀払(payment イベント)※イベントは発⾏事業体が定義する
GET /transactions
Request Payload:
{account_id: "XXX"}
© 2017 Orb, Inc.
加盟店
AccountCore
6
新宿店 渋⾕店 銀座店
決済事業者
利⽤者
太郎 花⼦ 夢⼦
Target:
“merchant”
Target:
“consumer”
attributes:
“device”:5
Target:
“consumer”
attributes:
“device”:12
Target:
“consumer”
attributes:
“device”:1
Target:
“merchant”
Target:
“merchant”
• アカウントの作成
• アカウントを階層化
• メタデータの保持
• トランザクションのターゲット
• 属性
© 2017 Orb, Inc.
QueryCore
7
• CoinCore 上で発⽣したトランザクションを検索することが可能
– 決済されたコインは、どこから⼊⾦されたものなのか?
– 20代の若い男⼥がよく⾏くお店は?
• AccountCoreなどで作られたデータに基づいて集計することが可能
• カスタム・クエリーを顧客ごとに作成可能
© 2017 Orb, Inc.
CoinCore - アーキテクチャ
8
HTTP
Middleware
Routing
Apollo	IntegrationCoin	Transaction	Engine
Balance
Modifiers
Config
TLS
Tamper	
EvidenceData structures
様々なユースケースに対応可能な
コイントランザクション管理ソフトウェア
• B2Cトランザクション
• C2C/P2Pトランザクション
• 電⼦マネーシステム
• リワードプログラム
• プリペイド・マネー
© 2017 Orb, Inc.
CoinCore - アーキテクチャ
9
HTTP
Middleware
Routing
Apollo	IntegrationCoin	Transaction	Engine
Balance
Modifiers
Config
TLS
Tamper	
EvidenceData structures
Coin Transaction Engine
以下の2つのエンジンで構成
• Configuration モジュール
コインの振る舞いを定義するモジュール
• Balance Modifiers モジュール
コインの振る舞いに合わせたトランザクションを実⾏し、
アカウントの残⾼を更新するモジュール
Tamper Evidence
トランザクションを改ざんできないように署名連ねる。
トランザクションが改ざんされていないかをチェックする。
HTTP
HTTPで通信。REST API を使った操作。
Apollo Integration
Orb DLT Apollo との統合によって、トランザクションを分散処理し、分散台帳に保持。
© 2017 orb, inc.
CoinCore のトランザクション性能測定結果
• 測定環境
– ノードスペック
– CPU: 2Core, Memory: 15.25GB, Storage: 475GB NVMe SSD
– クラスタ構成
– 3ノード
– データ複製数: 3
10
© 2017 Orb, Inc.
CoinCore - 事前定義済みの振る舞い
11
事前に定義されたパターンを組み合わせることによって、様々な振る舞いのトランザク
ションを実⾏することが可能。以下は、よく利⽤される振る舞いのパラメータ。これら
のパラメータを組み合わせることによって、複雑な振る舞いを実装することができる。
• basic :基本トランザクション
• basic_fee :基本トランザクション+決済⼿数料
• max_use :利⽤上限付きルールでのトランザクション
• dependent :従属したトランザクションの実施
• tiered :ボリュームに応じて振る舞いが異なるトランザクション
• tiered_dependent :直前の処理に応じて振る舞いが異なるトランザクション
• time_tiered :実⾏時間によって振る舞いが異なるトランザクション
これらの振る舞いの定義そのものも、開発して追加することが可能。
© 2017 Orb, Inc.
CoinCore - 対改ざん性
12
• 顧客データの確実な安全の保証を提供
• 台帳修正の証明を暗号化
• 全てのトランザクションの
コンポーネントで構成
• どんなデータにも使える
汎⽤化された仕組み
Type: “decrease”
Amount: 500
AccountID: “xyz”
CoinID: “regular”
Version: 12
Entry
Event: “payment”
Amount: 500
TransactionEntry
Tamper Evidence Library
Cipher: <binary>
PublicKey: <binary>
Proof
Type: “decrease”
Amount: 500
AccountID: “xyz”
CoinID: “regular”
Version: 12
© 2017 Orb, Inc.
CoinCore – Transaction Engine
13
基本トランザクション
• シンプルな2つのアカウントの増額と減額処理
• 2つアカウントの残⾼更新を⼀つのトランザクションとして処理
例)”Issuer” から ”Customer” へ 600 Coin の移動
Issuer
-600 coins
Customer
+600 coins
© 2017 Orb, Inc.
CoinCore – Transaction Engine
14
基本トランザクション+⼿数料の徴収
• 基本トランザクションに決済⼿数料を徴収する機能を追加
• 1つのアカウントを減額、2つのアカウントを増額
例)100 Coin の⽀払いを⾏い、うち5%を⼿数料として徴収
Customer
-100 coins
Merchant
+95 coins
Issuer
+5 coins
© 2017 Orb, Inc.
CoinCore – Transaction Engine
15
利⽤上限付きルールでのトランザクション
• コインに対するトランザクションに制限を設定
• トランザクションごとに使⽤可能な最⼤コインを定義
例)”bonus”コインは、トランザクションの最⼤10%まで利⽤
Customer starting balance
Bonus coins: 700
Regular coins : 1,200
Total coins : 1,900
Merchant
+100 bonus coins
+900 regular coins
Transaction amount
1,000 coins
Customer
-100 bonus coins
-900 regular coins
© 2017 Orb, Inc.
CoinCore – Transaction Engine
16
従属したトランザクションの実施
• 特定のトランザクションに連動するトランザクション
• 直前のコインの利⽤に連動したトランザクション
例)1,000 Coin 以上の利⽤の場合、15%キャッシュバック
Customer starting balance
Bonus coins : 300
Regular coins : 700
Total coins : 1,000
Merchant
+300 bonus coins
+700 regular coins
Transaction amount
1,000 coinsCustomer
-300 bonus coins
-700 regular coins
+105 bonus coins
Issuer
+105 coins
※700 regular coin x 15% = 105 coins
Customer receive
Bonus coins : 105
© 2017 Orb, Inc.
CoinCore – Transaction Engine
17
実⾏時間によって振る舞いが異なるトランザクション
• 時間に依存したトランザクション
• 時間属性によって、振る舞いを変える
例)⼊⾦時刻によって、ボーナスが変動
@ 9:00 AM – 5% bonus
Deposit 900 regular coins
Add bonus coins : 45(5%)
@ 3:00 PM – 10% bonus
Deposit 900 regular coins
Add bonus coins : 90(10%)
Customer
+900 regular coins
+90 bonus coins
Customer
+900 regular coins
+45 bonus coins
Issuer
-900 regular coins
-90 bonus coins
Issuer
-900 regular coins
-45 bonus coins
© 2017 Orb, Inc.
CoinCore – Transaction Engine
18
基本トランザクション
• Charge (⼊⾦)イベント
– アカウントへのコインの⼊⾦
• Payment(⽀払)イベント
– アカウント同⼠での送⾦
• Withdraw(精算)イベント
– アカウントからコインを消去して精算
19
CoinCore 設定⽅法
© 2017 Orb, Inc.
CoinCore – Transaction Engine
20
基本トランザクション
• charge (⼊⾦)イベント
– 2つのターゲット
– 1回の残⾼変更
"ID": "charge",
"Modifiers": [
{
"Type": "basic",
"Order": 0,
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer",
"AvailableCoins": [
"regular"
],
"Percentage": 100
}
}
]
イベントの名前
処理のタイプ
減額するアカウントタイプ
増額するアカウントタイプ
操作対象のコイン
© 2017 Orb, Inc.
CoinCore – Transaction Engine
21
基本トランザクション
• payment (⽀払)イベント
– 2つのターゲット
– 1回の残⾼変更
"ID": "payment",
"Modifiers": [
{
"Type": "basic",
"Order": 0,
"Config": {
"DecreaseTarget": "consumer",
"IncreaseTarget": "merchant",
"AvailableCoins": [
"regular"
],
"Percentage": 100
}
}
]
イベントの名前
処理のタイプ
減額するアカウントタイプ
増額するアカウントタイプ
操作対象のコイン
© 2017 Orb, Inc.
CoinCore – Transaction Engine
22
基本トランザクション
• withdraw (精算)イベント
– 2つのターゲット
– 1回の残⾼変更
"ID": "withdrawal",
"Modifiers": [
{
"Type": "basic",
"Order": 0,
"Config": {
"DecreaseTarget": "merchant",
"IncreaseTarget": "issuer",
"AvailableCoins": [
"regular"
],
"Percentage": 100
}
}
]
イベントの名前
処理のタイプ
減額するアカウントタイプ
増額するアカウントタイプ
操作対象のコイン
© 2017 orb, inc.
CoinCore - ウェブベースのツールにより開発効率の⼤幅な向上を実現
23
Web-based Configuration Tool Transaction-behavior Test Tool
24
⾼度なコイン設計の例
• ゲームコイン
• ハッピーアワーコイン
© 2017 Orb, Inc.
CoinCore - ⾼度な実装の例 - ゲームコイン
25
Ruby CoinDiamond Coin
購⼊コイン
• 現⾦からの購⼊
獲得コイン
• ゲームでの勝利によって獲得
• ユーザーのレベルによって獲得できる
コインの量が変わる
• 1 Diamond で 100 Ruby を購⼊できる
1 Diamond
100 Ruby
=
交換レート
© 2017 Orb, Inc.
CoinCore - ⾼度な実装の例 - ゲームコイン
26
Diamond Coin の購⼊
• buy_diamonds (⼊⾦)イベント
– 2つのターゲット
– 1回の残⾼変更
"ID": "buy_diamonds",
"Modifiers": [
{
"Type": "basic",
"Order": 0,
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer",
"AvailableCoins": [
"diamond"
],
"Percentage": 100
}
}
]
© 2017 Orb, Inc.
CoinCore - ⾼度な実装の例 - ゲームコイン
27
勝利によってRubyを獲得
• win_rubies (コイン獲得)イベント
– 2つのターゲット
– 1回の残⾼変更
– 3つのティア "ID": "win_rubies",
"Modifiers": [
{
"Type": "tiered",
"Order": 0,
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer",
"AvailableCoins": [
"ruby"
],
“Tiers”: []
}
}
]
{
"UsageAmount": 1,
"Amount": 500
},
{
"UsageAmount": 2,
"Amount": 300
},
{
"UsageAmount": 3,
"Amount": 200
}
© 2017 Orb, Inc.
CoinCore - ⾼度な実装の例 - ゲームコイン
28
Diamond から Ruby に交換
• exchange (交換)イベント
– 2つのターゲット
– 2回の残⾼変更
– 2つのコイン "ID": "exchange",
"Modifiers": []
{
"Type": "basic",
"Order": 0,
"Config": {
"DecreaseTarget": "consumer",
"IncreaseTarget": "issuer",
"AvailableCoins": [
"diamond"
],
"Percentage": 100
}
}
{
"Type": "dependent",
"Order": 1,
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer",
"AvailableCoins": [
"ruby"
],
"DependentCoinID": "diamond",
"Percentage": 10000
}
}
交換⽐率
© 2017 Orb, Inc.
CoinCore - ⾼度な実装の例 - ハッピーアワーコイン
29
Happy Hour!!
4:00 PM – 7:00 PM
10% Back
Last Call!!
3:00 AM – 5:00 AM
15% Back
Shot Coin
© 2017 Orb, Inc.
CoinCore - ⾼度な実装の例 - ゲームコイン
30
⽀払いに対するインセンティブのバック
• cash_back (キャッシュバック)イベント
– 3つのターゲット
– 2回の残⾼変更
– 5つのティア
"ID": "cash_back",
"Modifiers": [
{
"Type": "basic"
"Config": {
"DecreaseTarget": "consumer",
"IncreaseTarget": "merchant"
}
},
{
"Type": "time_tiered",
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer"
}
}
]
{
"Time": "00:00:00",
"Percentage": 0
},
{
"Time": "03:00:00",
"Percentage": 15
},
{
"Time": "05:00:00",
"Percentage": 0
},
{
"Time": "16:00:00",
"Percentage": 10
},
{
"Time": "19:00:00",
"Percentage": 0
}
© 2017 Orb, Inc.
Thank You
Orb Decentralized Ledger Technology
Empower Community Based Economies
31

Orb core series技術情報

  • 1.
  • 2.
    © 2017 Orb,Inc. Orb DLT - Coreシリーズ Oracle Cloud, @Customer, On-Premise Apollo : Decentralized Data Operating System CoinCore ContractCore Wallet App Smart Coin Custom App Custom App Storage Transaction Analytics Toolbox OrbDLT QueryCore 1. Coreシリーズ概要 2. Core アプリケーション 3. CoinCore a. Coinトランザクションエンジン b. 対改ざん性 4. コイン定義例 5. コイン定義設定クライアント
  • 3.
    © 2017 orb,inc. Core - 通貨や契約における処理の振る舞いを柔軟に定義可能なミドルウェア群 • アプリケーション共通の機能を汎⽤化 • Apolloの複雑性を隠蔽 • 複雑なことを簡単に実現 3 Driver Transaction Analytics Coin Account Query Storage Apollo Core Model your client’s organization Design and deploy your client’s economy Aggregate your client’s data as you like
  • 4.
    © 2017 Orb,Inc. CoinCore – 通貨におけるトランザクションの振る舞いを柔軟に定義可能なミドルウェア 4 [ { "ID": "charge", "Modifiers": [ { "Type": "basic", "Order": 0, "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer", "AvailableCoins": [ "regular" ], "UnavailableCoins": null, "Amount": null, "Percentage": 100 } }, { "Type": "basic", "Order": 1, "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer", "AvailableCoins": [ "bonus" ], "UnavailableCoins": null, "Amount": null, "Percentage": 5 } } ] }, { "ID": "payment", "Modifiers": [ { "Type": "basic_fee", "Order": 0, "Config": { "DecreaseTarget": "consumer", "IncreaseTarget": "merchant", "AvailableCoins": [ "regular", "bonus" ], "UnavailableCoins": null, "FeeTarget": "issuer", "CoinID": null, "Amount": null, "Percentage": 100, "FeePercentage": 2 } } ] } ] Predefined Modifiers : basic basic_fee max_use dependent tiered tiered_dependent time_tiered 地域通貨の例 Regularコイン、Bonusコイン、Merchantコイン チャージ • A銀⾏がユーザに指定額のRegularコインを付与 • チャージしたRegularコインの5%分のBonusコイ ンをチャージボーナス消費者に付与 ⽀払い • 消費者はRegularコインもしくはBonusコインか ら必要な額のコインを加盟店に⽀払い • A銀⾏は⼿数料として⽀払額の2%を加盟店から 徴収
  • 5.
    © 2017 orb,inc. CoinCore – 基本API • ⼝座作成 • トランザクション • 残⾼確認 • 取引履歴の閲覧 5 POST /accounts POST /transactions Request Payload: {event: "charge", amount: 100, accounts: {consumer: XXX}} GET /accounts/XXX/balances POST /transactions Request Payload: {event: "payment", amount: 100, accounts: {consumer: XXX, merchant: YYY}} ⼊⾦(charge イベント)※イベントは発⾏事業体が定義する ⽀払(payment イベント)※イベントは発⾏事業体が定義する GET /transactions Request Payload: {account_id: "XXX"}
  • 6.
    © 2017 Orb,Inc. 加盟店 AccountCore 6 新宿店 渋⾕店 銀座店 決済事業者 利⽤者 太郎 花⼦ 夢⼦ Target: “merchant” Target: “consumer” attributes: “device”:5 Target: “consumer” attributes: “device”:12 Target: “consumer” attributes: “device”:1 Target: “merchant” Target: “merchant” • アカウントの作成 • アカウントを階層化 • メタデータの保持 • トランザクションのターゲット • 属性
  • 7.
    © 2017 Orb,Inc. QueryCore 7 • CoinCore 上で発⽣したトランザクションを検索することが可能 – 決済されたコインは、どこから⼊⾦されたものなのか? – 20代の若い男⼥がよく⾏くお店は? • AccountCoreなどで作られたデータに基づいて集計することが可能 • カスタム・クエリーを顧客ごとに作成可能
  • 8.
    © 2017 Orb,Inc. CoinCore - アーキテクチャ 8 HTTP Middleware Routing Apollo IntegrationCoin Transaction Engine Balance Modifiers Config TLS Tamper EvidenceData structures 様々なユースケースに対応可能な コイントランザクション管理ソフトウェア • B2Cトランザクション • C2C/P2Pトランザクション • 電⼦マネーシステム • リワードプログラム • プリペイド・マネー
  • 9.
    © 2017 Orb,Inc. CoinCore - アーキテクチャ 9 HTTP Middleware Routing Apollo IntegrationCoin Transaction Engine Balance Modifiers Config TLS Tamper EvidenceData structures Coin Transaction Engine 以下の2つのエンジンで構成 • Configuration モジュール コインの振る舞いを定義するモジュール • Balance Modifiers モジュール コインの振る舞いに合わせたトランザクションを実⾏し、 アカウントの残⾼を更新するモジュール Tamper Evidence トランザクションを改ざんできないように署名連ねる。 トランザクションが改ざんされていないかをチェックする。 HTTP HTTPで通信。REST API を使った操作。 Apollo Integration Orb DLT Apollo との統合によって、トランザクションを分散処理し、分散台帳に保持。
  • 10.
    © 2017 orb,inc. CoinCore のトランザクション性能測定結果 • 測定環境 – ノードスペック – CPU: 2Core, Memory: 15.25GB, Storage: 475GB NVMe SSD – クラスタ構成 – 3ノード – データ複製数: 3 10
  • 11.
    © 2017 Orb,Inc. CoinCore - 事前定義済みの振る舞い 11 事前に定義されたパターンを組み合わせることによって、様々な振る舞いのトランザク ションを実⾏することが可能。以下は、よく利⽤される振る舞いのパラメータ。これら のパラメータを組み合わせることによって、複雑な振る舞いを実装することができる。 • basic :基本トランザクション • basic_fee :基本トランザクション+決済⼿数料 • max_use :利⽤上限付きルールでのトランザクション • dependent :従属したトランザクションの実施 • tiered :ボリュームに応じて振る舞いが異なるトランザクション • tiered_dependent :直前の処理に応じて振る舞いが異なるトランザクション • time_tiered :実⾏時間によって振る舞いが異なるトランザクション これらの振る舞いの定義そのものも、開発して追加することが可能。
  • 12.
    © 2017 Orb,Inc. CoinCore - 対改ざん性 12 • 顧客データの確実な安全の保証を提供 • 台帳修正の証明を暗号化 • 全てのトランザクションの コンポーネントで構成 • どんなデータにも使える 汎⽤化された仕組み Type: “decrease” Amount: 500 AccountID: “xyz” CoinID: “regular” Version: 12 Entry Event: “payment” Amount: 500 TransactionEntry Tamper Evidence Library Cipher: <binary> PublicKey: <binary> Proof Type: “decrease” Amount: 500 AccountID: “xyz” CoinID: “regular” Version: 12
  • 13.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 13 基本トランザクション • シンプルな2つのアカウントの増額と減額処理 • 2つアカウントの残⾼更新を⼀つのトランザクションとして処理 例)”Issuer” から ”Customer” へ 600 Coin の移動 Issuer -600 coins Customer +600 coins
  • 14.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 14 基本トランザクション+⼿数料の徴収 • 基本トランザクションに決済⼿数料を徴収する機能を追加 • 1つのアカウントを減額、2つのアカウントを増額 例)100 Coin の⽀払いを⾏い、うち5%を⼿数料として徴収 Customer -100 coins Merchant +95 coins Issuer +5 coins
  • 15.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 15 利⽤上限付きルールでのトランザクション • コインに対するトランザクションに制限を設定 • トランザクションごとに使⽤可能な最⼤コインを定義 例)”bonus”コインは、トランザクションの最⼤10%まで利⽤ Customer starting balance Bonus coins: 700 Regular coins : 1,200 Total coins : 1,900 Merchant +100 bonus coins +900 regular coins Transaction amount 1,000 coins Customer -100 bonus coins -900 regular coins
  • 16.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 16 従属したトランザクションの実施 • 特定のトランザクションに連動するトランザクション • 直前のコインの利⽤に連動したトランザクション 例)1,000 Coin 以上の利⽤の場合、15%キャッシュバック Customer starting balance Bonus coins : 300 Regular coins : 700 Total coins : 1,000 Merchant +300 bonus coins +700 regular coins Transaction amount 1,000 coinsCustomer -300 bonus coins -700 regular coins +105 bonus coins Issuer +105 coins ※700 regular coin x 15% = 105 coins Customer receive Bonus coins : 105
  • 17.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 17 実⾏時間によって振る舞いが異なるトランザクション • 時間に依存したトランザクション • 時間属性によって、振る舞いを変える 例)⼊⾦時刻によって、ボーナスが変動 @ 9:00 AM – 5% bonus Deposit 900 regular coins Add bonus coins : 45(5%) @ 3:00 PM – 10% bonus Deposit 900 regular coins Add bonus coins : 90(10%) Customer +900 regular coins +90 bonus coins Customer +900 regular coins +45 bonus coins Issuer -900 regular coins -90 bonus coins Issuer -900 regular coins -45 bonus coins
  • 18.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 18 基本トランザクション • Charge (⼊⾦)イベント – アカウントへのコインの⼊⾦ • Payment(⽀払)イベント – アカウント同⼠での送⾦ • Withdraw(精算)イベント – アカウントからコインを消去して精算
  • 19.
  • 20.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 20 基本トランザクション • charge (⼊⾦)イベント – 2つのターゲット – 1回の残⾼変更 "ID": "charge", "Modifiers": [ { "Type": "basic", "Order": 0, "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer", "AvailableCoins": [ "regular" ], "Percentage": 100 } } ] イベントの名前 処理のタイプ 減額するアカウントタイプ 増額するアカウントタイプ 操作対象のコイン
  • 21.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 21 基本トランザクション • payment (⽀払)イベント – 2つのターゲット – 1回の残⾼変更 "ID": "payment", "Modifiers": [ { "Type": "basic", "Order": 0, "Config": { "DecreaseTarget": "consumer", "IncreaseTarget": "merchant", "AvailableCoins": [ "regular" ], "Percentage": 100 } } ] イベントの名前 処理のタイプ 減額するアカウントタイプ 増額するアカウントタイプ 操作対象のコイン
  • 22.
    © 2017 Orb,Inc. CoinCore – Transaction Engine 22 基本トランザクション • withdraw (精算)イベント – 2つのターゲット – 1回の残⾼変更 "ID": "withdrawal", "Modifiers": [ { "Type": "basic", "Order": 0, "Config": { "DecreaseTarget": "merchant", "IncreaseTarget": "issuer", "AvailableCoins": [ "regular" ], "Percentage": 100 } } ] イベントの名前 処理のタイプ 減額するアカウントタイプ 増額するアカウントタイプ 操作対象のコイン
  • 23.
    © 2017 orb,inc. CoinCore - ウェブベースのツールにより開発効率の⼤幅な向上を実現 23 Web-based Configuration Tool Transaction-behavior Test Tool
  • 24.
  • 25.
    © 2017 Orb,Inc. CoinCore - ⾼度な実装の例 - ゲームコイン 25 Ruby CoinDiamond Coin 購⼊コイン • 現⾦からの購⼊ 獲得コイン • ゲームでの勝利によって獲得 • ユーザーのレベルによって獲得できる コインの量が変わる • 1 Diamond で 100 Ruby を購⼊できる 1 Diamond 100 Ruby = 交換レート
  • 26.
    © 2017 Orb,Inc. CoinCore - ⾼度な実装の例 - ゲームコイン 26 Diamond Coin の購⼊ • buy_diamonds (⼊⾦)イベント – 2つのターゲット – 1回の残⾼変更 "ID": "buy_diamonds", "Modifiers": [ { "Type": "basic", "Order": 0, "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer", "AvailableCoins": [ "diamond" ], "Percentage": 100 } } ]
  • 27.
    © 2017 Orb,Inc. CoinCore - ⾼度な実装の例 - ゲームコイン 27 勝利によってRubyを獲得 • win_rubies (コイン獲得)イベント – 2つのターゲット – 1回の残⾼変更 – 3つのティア "ID": "win_rubies", "Modifiers": [ { "Type": "tiered", "Order": 0, "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer", "AvailableCoins": [ "ruby" ], “Tiers”: [] } } ] { "UsageAmount": 1, "Amount": 500 }, { "UsageAmount": 2, "Amount": 300 }, { "UsageAmount": 3, "Amount": 200 }
  • 28.
    © 2017 Orb,Inc. CoinCore - ⾼度な実装の例 - ゲームコイン 28 Diamond から Ruby に交換 • exchange (交換)イベント – 2つのターゲット – 2回の残⾼変更 – 2つのコイン "ID": "exchange", "Modifiers": [] { "Type": "basic", "Order": 0, "Config": { "DecreaseTarget": "consumer", "IncreaseTarget": "issuer", "AvailableCoins": [ "diamond" ], "Percentage": 100 } } { "Type": "dependent", "Order": 1, "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer", "AvailableCoins": [ "ruby" ], "DependentCoinID": "diamond", "Percentage": 10000 } } 交換⽐率
  • 29.
    © 2017 Orb,Inc. CoinCore - ⾼度な実装の例 - ハッピーアワーコイン 29 Happy Hour!! 4:00 PM – 7:00 PM 10% Back Last Call!! 3:00 AM – 5:00 AM 15% Back Shot Coin
  • 30.
    © 2017 Orb,Inc. CoinCore - ⾼度な実装の例 - ゲームコイン 30 ⽀払いに対するインセンティブのバック • cash_back (キャッシュバック)イベント – 3つのターゲット – 2回の残⾼変更 – 5つのティア "ID": "cash_back", "Modifiers": [ { "Type": "basic" "Config": { "DecreaseTarget": "consumer", "IncreaseTarget": "merchant" } }, { "Type": "time_tiered", "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer" } } ] { "Time": "00:00:00", "Percentage": 0 }, { "Time": "03:00:00", "Percentage": 15 }, { "Time": "05:00:00", "Percentage": 0 }, { "Time": "16:00:00", "Percentage": 10 }, { "Time": "19:00:00", "Percentage": 0 }
  • 31.
    © 2017 Orb,Inc. Thank You Orb Decentralized Ledger Technology Empower Community Based Economies 31