愛記システム概念設計:地域経済の評価項目・愛貨の流通速度指標 (AVV) | 続・ティール組織 研究会のブログ

続・ティール組織 研究会のブログ

ティール組織が話題になっているが、具現化するにはどうしたらよいか?
その研究を続けるにあたり、さらに次の形態である、続・ティール組織なるものまで視野に入れ、具体的な施策・行動内容を研究・支援する会。

先までは、"愛記"についての記載で、どのようにブロックチェーンSNSに組み込んで実装していけばよいのか、概念的なところからアプローチ方法を記載していった。大まかな概念としてはひとまず終えた。次は、ブロックチェーンの概念設計といえるところまで、基本設計書に着手できるようなところまで、概念を具体化していきたい。

地域経済の評価項目について②

先に個人の評価項目について記載した。今度は、地域経済の評価項目について見ていきたい。愛貨という通貨の性質を考えれば、地域経済をまったく違う視点で見ていくことになる。世界は金本位制から始まり、通貨発行権を駆使して金利を設けて経済を動かしてきた。今からの時代は、当方が考えている愛貨が経済を動かすだろう。それは、行動本位制と呼ばれ、愛の行動をしたら愛貨がやりとりされ、その愛の行動が実経済も動かすという理論。だから、行動量を10倍にすれば、実経済も約10倍になるということ。これを経済学的に証明していきたい。そのためにも、愛貨の経済圏の評価制度の構築を通じて、愛貨が地域社会に与えるポジティブな影響を定量的かつ定性的に評価することを考えてみる。

  1. 愛貨の経済効果指標:

    • 愛貨取引量指標 (ATV): 愛貨の取引量を示す指標である。
      ATV=愛貨取引総額​/地域内総生産(GDP)

    • 愛貨の流通速度指標 (AVV): 愛貨が地域内でどれだけ速く回転しているかを示す指標である。
      AVV=愛貨取引総額​/愛貨の流通量

  2. 社会的結束力指標:

    • 愛貨関連協力指数 (ACCI): 地域社会の結束力を示す指標である。
      ACCI=愛貨関連の協力関係数​/地域内総人口
  3. 共感性指標:

    • 愛貨共感性指数 (ASI): 地域内での共感性を示す指標である。
      ASI=愛貨取引者の共感行動数​/地域内総人口
  4. 社会的責任指標:

    • 愛貨社会的責任指数 (ASRI): 地域社会への責任を示す指標である。
      ASRI=愛貨関連の社会貢献行動数​/地域内総人口
  1. 地域内貿易指数 (AIT): 地域内での愛貨の取引による地域内貿易の活性度を示す指標である。
      AIT=地域内愛貨取引総額​/地域内総生産(GDP)

  2. 地域外貿易指数 (AET): 地域外との交流において、愛貨がどれだけ活用されているかを示す指標である。
      AET=地域外愛貨取引総額​/地域内総生産(GDP)

  3. 愛貨所得格差指数 (AIHI): 地域内における愛貨の所得格差を示す指標で、愛貨の所得の分散具合を示す。   AIHI=愛貨所得の標準偏差​/愛貨所得の平均

  4. 愛貨価値指数 (AVI): 地域内での愛貨の価値の安定性を示す指標で、価値の変動が少ないほど高い値となる。   AVI=価値変動の標準偏差​/価値の平均

  5. 愛貨利用率 (AUR): 地域内の人々が愛貨をどれだけ利用しているかを示す指標である。   
      AUR=100×愛貨取引量​/総取引量

これらの指標を利用することで、愛貨の経済圏が地域経済に与える影響をより詳細に評価することができる。

 

 

愛貨の流通速度指標 (AVV): 愛貨が地域内でどれだけ速く回転しているかを示す指標

AVV=愛貨取引総額​/愛貨の流通量を計算する際には、いくつかの難しいポイントがある。

  1. 愛貨の流通量の正確な算出: AVVを計算するためには、愛貨の流通量を正確に算出する必要がある。愛貨の流通量は、ある期間内に地域内で取引された愛貨の総額や取引回数などを考慮して算出する必要がある。例えば、愛貨の流通量を算出する際には、時系列を考慮する必要がある。期間内の取引データを正確に集計するためには、取引が行われた日時や期間の情報が必要である。送信者が送信したのに、受信者が受信せずに保留している場合などをどうカウントしていくのかという難しさもある。

  2. 愛貨の流通速度の定義: AVVは愛貨がどれだけ速く回転しているかを示す指標だが、その定義には複数の考え方がある。例えば、AVVを単純に取引総額を流通量で割った値として定義するか、あるいはより複雑な指標として定義するかなどが検討される。例えば、愛貨の流通速度を示す指標として、取引の頻度と金額の組み合わせを考慮することができる。小額の取引が多く行われる場合と、大きな取引が少なく行われる場合では、流通速度に違いが生じる可能性がある。このような場合、取引の頻度と金額の組み合わせを考慮した指標を定義することが有益である。

  3. データの取得と処理の難しさ: AVVを計算するためには、地域内での愛貨取引のデータを収集し、適切に処理する必要がある。特に、地域内での愛貨取引のデータが十分に集まっていない場合や、データの信頼性が低い場合には計算が困難になる可能性がある。ただ、データがブロックチェーンゆえに、この心配はほぼないと言える。

  4. 他の指標との関連性の検討: AVVは地域経済の特性を示す重要な指標の一つだが、他の経済指標との関連性や比較性を考慮する必要がある。他の経済指標との関連性を検討することで、AVVの解釈や活用方法をより適切に行うことができる。
     

■地域経済評価項目・AVV専用API

なお、メインチェーンにアクセスしてデータを取得するため、スマートコントラクトでは危険である。セキュリティを強固にしたAPI経由にてデータを取得することとする。以下のAPIでは、このAPIを利用する際には、まず/update_transactions_totalと/update_circulation_volumeエンドポイントを使用して、愛貨取引総額と愛貨の流通量を更新する。その後、/calculate_avvエンドポイントを使用してAVVを計算し、その結果を取得する。

from flask import Flask, jsonify, request
from functools import wraps

app = Flask(__name__)

# セキュリティトークン
SECURITY_TOKEN = "your_security_token_here"

# 認証デコレータ
def requires_auth(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        token = request.headers.get('Authorization')
        if not token or token != f"Bearer {SECURITY_TOKEN}":
            return jsonify({'error': 'Unauthorized'}), 401
        return f(*args, **kwargs)
    return decorated

# 愛貨取引総額と流通量を保持する変数
transactions_total = 0
circulation_total = 0

@app.route('/update_transactions_total', methods=['POST'])
@requires_auth
def update_transactions_total():
    global transactions_total
    try:
        data = request.get_json()
        transactions_total = float(data.get('transactions_total', 0))
        return jsonify({'message': 'Transactions total updated successfully'})
    except Exception as e:
        return jsonify({'error': str(e)}), 400

@app.route('/update_circulation_total', methods=['POST'])
@requires_auth
def update_circulation_total():
    global circulation_total
    try:
        data = request.get_json()
        circulation_total = float(data.get('circulation_total', 0))
        return jsonify({'message': 'Circulation total updated successfully'})
    except Exception as e:
        return jsonify({'error': str(e)}), 400

@app.route('/calculate_avv', methods=['GET'])
@requires_auth
def calculate_avv():
    global transactions_total, circulation_total
    try:
        if circulation_total == 0:
            return jsonify({'error': 'Circulation total is not available'}), 400

        avv = transactions_total / circulation_total
        return jsonify({'avv': avv})
    except Exception as e:
        return jsonify({'error': str(e)}), 500

if __name__ == '__main__':
    app.run(debug=True, ssl_context='adhoc')  # SSL/TLSを使用して通信を暗号化
 

この修正では、update_transactions_totalエンドポイントで取引総額を更新し、同時に取引回数もカウントしている。そして、calculate_avvエンドポイントで取引の頻度と金額の組み合わせを考慮したAVVを計算している。

 

■地域経済評価項目・AVV分析バックエンドプログラム

以下は、DApps側のPythonプログラムである。セキュリティトークンを使用して認証を行い、API経由で分析結果を取得するようになっている。

import requests
from flask import Flask, jsonify, request
import threading
import time

app = Flask(__name__)

# セキュリティトークン
SECURITY_TOKEN = "your_security_token_here"

# APIエンドポイント
API_URL = 'https://your_api_url/calculate_avv'

# 愛貨の流通速度指標 (AVV) を保持する変数
avv = 0

# AVVを定期的に更新する関数
def update_avv():
    global avv
    while True:
        try:
            # API経由でAVVを取得
            response = requests.get(API_URL, headers={'Authorization': f'Bearer {SECURITY_TOKEN}'})
            if response.status_code == 200:
                avv_data = response.json()
                avv = avv_data.get('avv')
            else:
                print(f"Failed to get AVV. Status code: {response.status_code}")
        except Exception as e:
            print(f"An error occurred: {e}")
        time.sleep(60)  # 60秒ごとにAVVを更新

# AVVを取得する関数
def get_avv():
    global avv
    return avv

# スレッドでAVV更新処理を実行
update_thread = threading.Thread(target=update_avv)
update_thread.daemon = True
update_thread.start()

@app.route('/get_avv', methods=['GET'])
def get_avv_endpoint():
    avv = get_avv()
    return jsonify({'avv': avv})

if __name__ == '__main__':
    app.run(debug=True)
 

このプログラムは、Flaskを使用してAPIを作成し、定期的に外部APIからデータを取得している。具体的には、以下のような機能が含まれている。

  1. update_avv関数: スレッドで定期的に実行され、外部APIからAVVを取得し、グローバル変数avvに格納する。この関数は、例外が発生した場合やAPIからエラーレスポンスが返された場合に、エラーメッセージを出力する。time.sleep(60)により、60秒ごとにAVVの更新を行う。

  2. get_avv関数: 現在のAVVを取得する。この関数は、API経由で取得されたavvの値を返す。

  3. /get_avvエンドポイント: Flaskアプリケーションにおいて、GETリクエストを受け取ると現在のAVVを返すエンドポイントである。get_avv関数を呼び出してAVVを取得し、JSON形式でレスポンスを返す。

  4. メインブロック: Flaskアプリケーションをデバッグモードで実行する。スレッドを開始してupdate_avv関数を定期的に実行する。

このプログラムは、外部APIからAVVを取得して定期的に更新し、APIエンドポイントを通じて取得したAVVを提供することで、AVVの計算と提供を実現している。

 

 

いかがであろうか、これが地域経済評価項目・AVVについてであった。これにより、AVVをリアルタイムで分析できるようになる。リアルタイムでAVVを分析するか、月次などの頻度で行うかは、用途や必要性によって異なる。リアルタイムで分析することで、より即座に地域経済の動向を把握できるが、そのためにはシステムが十分なスケーラビリティとリソースを持っている必要がある。一方、月次などの頻度で行う場合は、データ処理や分析の負荷が軽減され、十分な精度で地域経済を評価できる場合がある。使い方や目的によって、適切な頻度を選択することが重要であろう。