NEMの手数料計算

暗号通貨NEMの手数料についてです。

2017年8月20日あたりに手数料の大幅な改訂がありながら、未だに古い情報が多く検索しても日本語で正確な手数料が載っていないので掲載します。

[原文](https://nemproject.github.io/#transaction-fees)

<table>
  <tbody>
    <tr>
      <th>トランザクションの種類</th>
      <th>計算方法</th>
    </tr>
    <tr>
      <td>送金</td>
      <td>
        手数料は、送金するXEMの量に応じた手数料とトランザクションに対するメッセージに対する手数料の合計です。
        <ol>
          <li>
            <p>他のアカウントへXEMを送金するのための手数料:</p>
            <p>送付量10,000 XEM毎に0.05 XEM、最大1.25 XEM</p> 
            <p>例:</p>
            <p>45,000 XEMの送金には0.20 XEMの手数料、500,000 XEMの送金には1.25XEMの手数料</p>
          </li>
          <li>
            <p>メッセージをトランザクションに添付するための手数料</p>
            <p>32メッセージバイトのコメント(メッセージ長 / 32 + 1)につき0.05 XEM</p>
            <p>例:</p>
            <p>暗号化されていないメッセージ "The New Economy Movement will change the world!!!" は、49文字であり、0.15 XEM の手数料がかかります。</p>
          </li>
          <li>
            <p>ほかのアカウントへ1つのモザイクを送金するための手数料</p>
            <ol>
              <li>
                <p>可分性が0(小数点以下に分割不可)で総供給量が10,000以下のモザイクをスモールビジネスモザイクと呼びます。</p>
                <p>スモールビジネスモザイクはどの送金でも0.05 XEMの手数料がかかります</p>
              </li>
              <li>
                <p>それぞれのモザイクに応じた手数料は、以下の手順で計算されます。</p>
                <p>
                  モザイクの初期総発給量を s、可分性を d、総供給量を q としてXEM equivalent（XEM換算、以下xemEquivalentと呼びます）は<br>
                  xemEquivalent = (8,999,999,999 * q) / (s * 10^d)<br>
                  （小数点以下切り捨て）
                </p>
                <p>異なるモザイクの総量を考慮に入れるために、調整項が計算される</p>
                <p>モザイクをmとして計算</p>
                <ol>
                  <li>最大モザイク量 = 9,000,000,000,000,000</li>
                  <li>トータルモザイク量 = モザイク m 供給量 * 10 ^ (モザイク m 可分性)</li>
                  <li>供給量関連調整 = floor(0.8 * ln(最大モザイク量 / トータルモザイク量) </li>
                  <li>
                    <p>加重されていない手数料は次のように計算されます</p>
                    <p>加重されていない手数料 = max(1L, xemFee - 供給量関連調整)</p>
                  </li>
                  <li>
                    <p>最後に加重される手数料は次のように計算できます</p>
                    <p>手数料 = 加重されない手数料 * 手数料単位</p>
                  </li>
                </ol>
                <p>例:</p>
                <p>9,000,000の供給と小数点3桁の可分性のモザイクの場合</p>
                <ol>
                  <li>トータルモザイク量 = 9,000,000 * 1,000 = 9,000,000,000</li>
                  <li>供給量関連調整 = floor(0.8 * ln(9,000,000,000,000,000 / 9,000,000,000)) = floor(11.052) = 11</li>
                  <li>
                    <p>
                      150のモザイクを送金するとして(可分性を考慮すると最小単位150,000と等価です)<br>
                      xemEquivalent = (8,999,999,999 * 150,000) / (9,000,000 * 10^3) = 149,999<br>
                      xemFee = 14 XEM
                    </p>
                  </li>
                  <li>
                    <p>なのでトランザクションが従う加重されていない手数料は</p>
                    <p>加重されない手数料 = 14 XEM - 11 XEM = 3 XEM</p>
                  </li>
                  <li>
                    <p>現在の手数料単位0.05 XEMで加重すると</p>
                    <p>手数料 = 3 XEM * 0.05 = 0.15 XEM</p>
                  </li>
                </ol>
              </li>
            </ol>
          </li>
        </ol>
      </td>
    </tr>
    <tr>
      <td>インポータンス移行</td>
      <td>0.15 XEM</td>
    </tr>
    <tr>
      <td>集計変更</td>
      <td>0.5 XEM</td>
    </tr>
    <tr>
      <td>マルチシグ</td>
      <td>0.15 XEM</td>
    </tr>
    <tr>
      <td>マルチシグ署名</td>
      <td>0.15 XEM</td>
    </tr>
    <tr>
      <td>ネームスペース確保</td>
      <td>
        0.15 XEM<br>
        加えて:<br>
        ルートネームスペース確保手数料: 100 XEM<br>
        サブルートネームスペース確保手数料: 10 XEM
      </td>
    </tr>
    <tr>
      <td>モザイクの定義作成</td>
      <td>0.15 XEM</td>
    </tr>
    <tr>
      <td>モザイクの供給変更</td>
      <td>0.15 XEM</td>
    </tr>
  </tbody>
</table>