Merkle Proofのデータ構造ってどうなってるの
ノリで Tesuji Plasma を読んで
ノリで yosriady/merkle_tree を読んで
ノリで MerkleProofがなんで動くのか調べ て
んでElixerがオンラインで動くエディタを見つけたのでいろいろ遊んでたらembedできることがわかったのでとりあえず貼っておく
Solidityで書かれてるMerkle.solだと
proven? がcheckProof()にあたる
proof 自体のデータ構造は 32バイトがconcatされたもので、Elixer実装ではbyteArrayを内包したオブジェクト的なもの(Elixerにオブジェクトはなさそう)として表現されているので、Solidityにパスするときはいい感じにserializeしてあげないといかんぽい
Solidity Assembly触るモチベが出てきた
P.S. proofを作るインターフェース、ミニマルに必要なのはtreeとindex: int.
treeのdepthに依存してindexのbinary indexは異なるので整数で渡すべき
Ethereumのスケーリングについて
スマートコントラクトのスケーリングに限ります
主に期待値の高い順に以下
1. Plasma
2. Sharding
3. Raidos(Raiden2.0)
---
1. Plasma
これ → Minimal Viable Plasma - Plasma - Ethereum Research
を読み込むのが一番の近道(しかし簡単とは言ってない)
(3/7追記: Ethereum Foundationにお願いして公式に和訳させてもらってます)
OmiseGOのUNOさんとDavid Knottくんに助けられて理解が捗った。本当にありがたい。界隈にコントリビュートしていきたみ。
以下がわかりみにあふれる疑問なので答えが欲しい。
この界隈では答えをクレクレしてると怒られが発生するので、持論を組み立てて議論するしかないのであった。
ちなみにPlasmaはPoW上では現状無理な設計なのでだいすきなZilliqaの上では走らないのであった。あとexit管理の関係でUTXOモデルで残高管理するデザインなのでSolidityの仕様が変わる。移行には大規模な書き換えが必要。またテストしないといけない、つらいですね。
(3/7追記: WPを読み込んだら、PoWでも使えることがわかりました)
(3/7追記:Plasmaチェーンは完全に別のチェーンだと思ったほうがいいです。代わりにEthermintなどを用いて任意の言語でスマートコントラクトを書けるようになると言われています。)
---
2. Sharding
これ → Sharding FAQ · ethereum/wiki Wiki · GitHub
これ → PDF https://docs.zilliqa.com/techfaq.pdf
あたりを読むと良い感じ(ただしめっさ長い)
これはEthereumのShardingなんだけどShard間の通信を必須にしてるのと、Shard分けのロジックが簡素なのがZilliqaと違うところ。
(3/7追記:EthereumのShardingがZilliqaよりはるかに複雑なのは、コントラクトのスケーリングもやろうとしているから。Zilliqaはトランザクションのスケーリングのみ。ZilliqaはSCILLAがLoop/Recursionがないことからも分かるように、金融システムの置き換えだけなら簡単なコントラクトで良いとの考えであろうのと、トランザクションが減ればコントラクト実行も詰まらず、もともとFinalityがあるので、いいよねという考え方かなと。)
Zilliqaは2時間おきのDS(Directory Service/ノード管理) EpochでPoW(ethash)の結果に応じてDS Commitee(リーダーノード)を選んでからノードたちをShardに入れていく。Shardに入ったあとは普通にQueueに詰めて順繰り処理させるのでパフォーマンスがノード数に対して線形向上する。
Sybil Attack(Sybilというのはとある多重人格患者の名称)という、アイデンティティをめちゃくちゃ作って多数を占めてvoteに勝つみたいな不正を、参加にコストを貸すことで経済不合理にしちゃう感じ。
Zilliqaの欠点だなって思うのはk8sのGPU sharingが次の次のバージョンとかで出て来たとしたら、19枚刺しマザボとかでVM間でGPU資源を融通してしまえば、Queueに並んでるノードはGPU使わないので、そのオバケマシンに所属しているノードがリーダーノード選出に勝ち続けるみたいなASIC的な状況はあるかもなってことです。経済性やコネマターでリーダー固定化問題はRippleとかByteballとかDASHとかLISKでもちょいちょい耳にするかな。ASICみたいにGPUを刺せる枚数を増やしまくる会社が出て来たらおもしろいっすね。
(ETHのShardingの話全然してねえ)ETH Shardingの上にPlasmaが乗ったら指数関数的に処理が早くなってやべえってDavidがテンション上がってました。
(3/8追記:
“Ethereum Sharding Update— Prysmatic Labs Implementation Roadmap”
— うどん@Enigma Japan運営してます (@udon_crypto) 2018年3月7日
ShardingのEthereumテストネット"Sapphire"が2018年末に。そしてEthereumのメインネット"Diamond"実装が2019年とのこと!
https://t.co/sH3oh2Fhlw
らしいです。
)
3. Raidos
これはちょっと存在を示唆してるだけの状態でRaiden1.0ですら1年半かけてセキュリティがしっかりしてることを検証しながらRolloutするので、ちょっと遠い話なのと、Solidityってチューリング完全なので、stateに保存できてしまう状態が多様すぎて「マイクロコントラクトチャネル」的に状態更新を2者間でmutexとって相殺するのが難しいなと思っていて、他のユーザーが共有している状態を更新しようとしたらロックが成立しないかロックを待つかのどちらかが起こるので、つらたんですね、と。
でもPlasma WPのJoseph Poonがいうには、Plasmaはfinalityを得られるように作ってるわけじゃないのでfinality(つまり言い方によっちゃトランザクションの即応性)が欲しいなら、LN(Lightning Network=今回はRaidos的立ち位置にあたる)がないとダメだよって言ってるんで、まあ彼もLN作者なわけでその可能性にかけているが故にそこに繋ぐためのPlasmaという発明だと思うんで、大発明を期待して待ちたいところ。
---
さて、淡々とコントリビュートして参りましょう。以上です。
ジャカルタ暗号通貨勉強会でシニョリッジとPoW/PoSの話をしました
ジャカルタ暗号通貨勉強会での登壇内容です。
FIAT通貨とPoW通貨とPoS通貨の新規発行分の分配が系にどのような影響を与えるかについての考察です。
国家にとってのシニョリッジの使い道については以下に詳しい
簡単に図説する
1万円札の発行コストは22円である。
簡単のために赤字国債や特別立法の関わる現実のフローは無視すると、以下の図のような単純な貸し出しの図になる。実際は国債を先に買ってもらっておき、それを買い戻すことで紙幣を受けわたす
翌年度の国債の購入によって紙幣が戻ってくる
これを何回転かさせると、「お金を生み出している」と錯覚できる状態が生まれる。
以下が実際の政策金利の各国比較である
以下が中央銀行を通した通貨発行益分配のメリットとデメリットである。
国債を通して政府から直接民間にばら撒けばいいんじゃないですかね?その方が消費性向が高くて乗数効果も高くなると思うので、わざわざ銀行通す意味ってないと思うんですよね。
— 花田賢人 (@hanaken_n) January 12, 2018
失業率や貿易をコントロールする方法として実績のある方法だが、ミッションクリティカルなシステムなので上記のような試行錯誤を行えない
次に、PoW通貨に相似形となる構造がないか考えてみる
マイナーはトークンを市場価値よりも安く仕入れられることを期待し、マイニングを計画する。
マイナーの70%を占める中国のマイナーは維持費を支払う必要があり、自国でトークンを売ることができないため、USDベースの取引所で販売し国内に持ち込む。つまり、市場を回すことに繋がっている。
余談だが、トップマイニングファームの月維持費900万円に対して、月の持ち込み額制限が550万円等になっており、苦しい状況が続いているらしい。
以下がメリットとデメリットになる
GDPは上がるが、政府が国を捨てる可能性がある
次にPoSとの相似点の検証をする
PoSにおいては供託額がバリデーターに選ばれる確率であり、再供託することで稼ぐインセンティブが高い。また、PoWほどファーム経営の維持費がなく、ローリスクなので構造が変わらない。
STEEM => ブログのインセンティブ設計を司るPoS(PoB)通貨。75%がwriterとvoter報酬で、25%がvalidator報酬。毎年10%程度のインフレ起こし原資とする。インフレ率は毎年逓減する
Tezos => PoS通貨の一種でデプロイ後でも改善可能なDynamic Ledger
中央銀行を経由した通貨発行益配布と比較して以下が興味深い
例えば
図にする
開発者が集まりやすい暗号通貨をデザインできる上に市場を回せるのではなかろうか。もちろん(暗号通貨としての)セキュリティの検証は必要だが
こういう妄想もできる。PoSは極限状況に強い。
そしてマイナーが開発者をこきつかう構造になりにくい。
もっともっと議論しましょう。
ありがとうございました。
利権とdapp
TL;DR
- 政府や超国家に規制できないdapp
- 全構成要素が分散型 (ガバナンス・意思決定・AIモジュール・ストレージ・DNS等・バッチ処理)
- 第三者による信用機関という意味での利権を解体する止められない流れ
- 規制できないことを悪用した公序良俗を乱しうるdappへの抑止力のdapp実装
テクノロジー
- ガバナンス => Tezos (Decredではない)
- 意思決定 => dapp改善プロセスを補助するデータ分析基盤等
- AIモジュール => SingularityNET
- ストレージ => filecoin, storj
- DNS => ENS(Ethereum Name Service)
- バッチ処理 => これは時間を用いた定期処理をネットワークから排してblockheightを使うことで対応
利権というトラストフル技術
- 第三者組織が何かを認定するという機構が社会の要所要所に存在する
- 銀行
- 資格
- 学歴
- ハラル認定等
- 遺伝子組み換え
- トクホ
- 寄付
- 助成金
- これらは将来的にdappで実装可能だが、既存組織の反発が予想される
- ロビイストへのリワードで運転されるdappの存在が予想される
感想
- 暗号通貨への資金流出は既存資産側の希釈を意味するので加速度的に移行が進んだ場合は「社会への適用を暗号通貨が考える」ではなく「社会が暗号通貨に合わせる」が起こると予想
- dappのキラーアプリは「規制できないアプリケーション」「利権の解体」なのかなとか
- Tezos, Bancor, SingNETがすき
- 規制ポイントのないdappがAIを使うためにはSingNETのようなAI DAOが必須なのですき
PoSトークンの資金ロックのフェアさの非局在化について
田中さんのエントリ(PoSを採用する暗号通貨に未来はあるのだろうか – 田中コイン研究所 – Medium )をきっかけに考えはじめた命題として
「本当にPoSはアンフェアなのか?」
という問いがあります。
それでいろいろ調べまわって
It's counterintuitive but PoS is fairer than PoW - Will a higher stake make more money in PoS?
とか
Casperは資産を一定期間ロックする事による 「機会費用の損失」をリスクと考えるが、これはより多くの資産を持つ者に有利であるという点でこの問題を本質的には解決していない - コンセンサスアルゴリズムの比較メモ
のような双方の立場をみかけました。
今回フォーカスしたい点は
資産ロックは大口にとって有利でリスクにならない
です。
初見で私は
「資産ロックはリスクテイクだろ」
と思ってしまったんですが、どうも奇妙なひっかかりを感じたんですね。
「大口ホルダーは、ノーリスクにもハイリスクにも、どちらにもなりうるんじゃないか・・・?」
と・・・。
それで postalk で一人で考察してみました。
まず田中さん等PoS否定派の意見は直感的に理解できます。
大口ホルダーがトークン新規発行を牛耳り、新規発行分の売り圧力がインフレのように大口以外に直撃しかねない構造は
まさにねずみ講と呼ぶにふさわしい仕組みではないでしょうか
と表現するのも一理あるかもしれません。
ですが
「PoSはアンフェアだよね」という共通認識が広まると、 PoSトークンから資金が逃げ価格が下がり、 Stakeholderからすると「資金ロックはリスクである」という状況になり、 リスク量は資金ロック量に応じて大きくなるので、相対的にフェアになる。
という状況が考えられます。
さて、逆に
「PoSはフェアだよね」という共通認識が広まると PoSトークンからに資金が戻り価格が上がり Stakeholderからすると「資金ロックはリスクではない」という状況になり、 ノーリスクでbet可能になるため、相対的に アンフェアになる。
という気づきを得ました。ややこしいですが、とても面白いですね。
そのとき私は気づいてしまいました。
「ベンゼン環だ・・・」
と。
ベンゼン環というのは電子配置が「非局在化(共鳴)」しています。
二重結合であり単結合でもあるような電子密度で安定してしまっている状態です。
固定的な構造だけを扱っていた古典力学では説明できないわけです。
やや話がそれたので要約して終わりとします
まず
- 「PoSはフェアである」 という主張をします。
- 共通認識が市場に広まります。
- 資金が流入します
- PoSトークン価格が増す方向に力が働きます。
- この状況下ではValidationのための資金ロックが大口にとってリスクではないです。
- よって、このときは PoSはアンフェアになります。
PoSホルダーのポジショントークがどのように作られているのかがよくわかります。
さて、次に逆の立場からは
- 「PoSはアンフェアである」 という主張をします。
- 共通認識が市場に広まります。
- 資金が流出します
- PoSトークン価格が減る方向に力が働きます。
- この状況下ではValidationのための資金ロックが大口にとってリスクです。
- よって、このときは PoSはフェアになります
したがって
PoSがフェアじゃないと主張している人は、PoSをフェアにしてしまう方向に力を働かせていて、PoSがフェアだと主張している人はPoSをフェアでなくしてしまう方向に力を働かせている。
という動的な力学がPoSにはあると言えるかもしれません。
さて、
この「PoSにおけるフェアさの非局在化(Delocalized fairness of PoS)」についてみなさんどう思われますか?ご意見お待ちしてます。
P.S. 議論の相手を常に募集しています
Disclaimer: Tezos(PoSトークン)を保有しています。 Tezos勢はローンチまでしばらく身動きとれないので、正座してIOU価格に一喜一憂するしかありません。
15 Oct 追記
フィードバックをまとめました link
2017年10月時点のインドネシアの決済サービスまわりまとめ
基本的に https://startup.postalk.io/ でメモした内容をエキスポートしただけの個人用メモです
前提知識
cicilan
クレカ
- 人口2.61億人に対して1600万枚程度の普及率。一人2枚までしか持てない政府規制が2014年あたりから始まったらしく、なんと枚数が減り始めている(*1)。人口の3.5%~5%くらいがいずれかの銀行が発行するクレジットカードを持っていると考えてよさそう。
- クレカの割賦もあり、実質年利36%くらいが目安だが、金利の上限はない
- 月末に自分で送金しないといけない。ただ、電気代等あらゆるお金が自分で振り込まないとダメなので、支払いをまとめるという意味では便利だが、限度額も1~5万円程度であろうし、日本のクレカとは別物。
- cicilanを組むために基本的にクレジットカードが必要。クレカがすでに与信チェックをしているため保険になる。ただし上述のとおり普及していないので、金利0の割賦をダシにクレカを使わせたい商流がありそう。
- クレカのアフィリなどはない。代わりに実店舗での大きな割引で訴求している。
- 銀行系クレカしかない。百貨店などに看板を貸していない。
- 銀行で20~30分くらいかけて登録するか、モールでセールスマンにKTP(マイナンバー)を提示して仮申請してのちに3ヶ月間の銀行残高を見せて登録
銀行
- BCA, Mandiri, CIMB Niaga, BNI, BRI, MayBank, Bank Mega, HSBCあたりが主かなあ。
- 銀行しかクレカを発行していない
- 銀行ATMはジャカルタだと町中にある。しかし地方だとコンビニより少ない
- モバイルアプリが割としっかりしていて、アプリからの送金が楽
- 送金時に「Remark」の欄、補記事項の欄を使わせることはあまりない
- 世界的なunbanked populationは38%と言われているが、インドネシアでは78%にも登るunbanked人口(*2)
- Webサービスはオーダーのユーザーと送金主を紐づけるという泥臭い努力をしなければならない
収入
- 私がエンジニアなのでそのたとえでいくと、「非エンジニア一般職 3~7万円」「非エンジニアマネージャー職以上 8~15万円」「エンジニア一般レベル: 5~10万円」「エンジニア中級: 10~20万円」「シニアエンジニアレベル: 20~35万円」
- インフレ率が毎年5%弱程度なので、給与も一緒に勝手に上がるのが当たり前になっている。銀行預金も同率以上で増える。大体の金融商品には興味を示さない。借金したとしても債務が薄まるので積極的な気がする。
その他
- 各種支払いの遅延損害金は5~10%が相場
概要
オフライン
現金至上主義
店頭でその会社のcicilanに申請して割賦を使う。面倒。毎月銀行振込等で支払う。
どの店舗もクレカ端末はあるっちゃある
いろんな店舗での10~50%の割引を餌にクレカ作成の営業の人もいる。利用者数3%程度で、政府がクレカを持てる枚数を規制しはじめたのでむしろ枚数が減っている
オンライン
銀行振込(シェア60%)
銀行系デビットカードやクレカ(10%)
通販アプリが提供する独自の割賦系サービス
デカいスタートアップの独自モバイルペイメント(連携はあんまりできてない)
コンビニ払い(結構多い。銀行口座を持っていない国民の4割程度が好む。地方ではATMよりコンビニのほうが多いし、銀行アプリは登録が手間。)
着払い(ビジネス構造上、できない商品も多い)
支払いタイミングについて
先払い系
下記ほとんどすべて
後払い系
各社銀行提携cicilan(割賦)
各社独自cicilan
kredivo
- GMO後払い的な立ち位置
- 与信枠によって審査フォームの埋めねばならない量が違う
creditplus
決済種類別まとめ
リアル決済系
大企業系
OVO
- モバイルペイメント
- 財閥系
t-cash
- telkomsel社
- モバイルペイメント
- 実店舗割引がでかい
BCA ATM
- デビット
Mandiri e-money
スタートアップ系
なし
ネット決済系
大企業系
t-cash
- telkomsel社
- モバイルペイメント
Mandiri Clickpay
- ネット用デビットプロトコル
- Mandiri銀行
CIMB Click
- 銀行
- デビット系
スタートアップ系
kredivo
kreditplus
通常の銀行
- 基本的に入金確認用にスクショかレシート画像のアップロードが必要
- 裏側は人力で入金とオーダーをマッチングしているのでコスト高
- tailcode(ルピア/IDRは桁が大きいので下三桁) を使って10円以下の誤差金額をユーザーに負担/サービスが負担することで、単位時間中で一意になるID情報を送金金額に含めることが可能。オーダーもIDを記録しておけば、通常送金でもマッチングの自動化が可能
- 銀行APIは大手でいうとBCAは公開しているがProdデプロイには厳正な手続きが必要。利用可能なIPを紙に書いてハードコピーを郵送する系の重厚長大な登録の必要がある。しかもやりとりは基本的にインドネシア語だ。APIは有料。(200Rp/req~)
- MandiriはAPIなしなのでWebDriverか。
- ユーザーはサービスの銀行口座をfavしておける
- 送金数が多いサービスは口座を複数用意してロードバランスできる。あるユーザーIDに対してある口座番号が必ず使われるように紐付けがないと、ユーザーは口座を銀行システムにfav(お気に入り登録)できない
銀行振込のVirtual Account
- 一回きりの自動生成される銀行口座に指定金額を入金すると、サービス側のシステムが自動で着金処理をする
- ATMや銀行アプリからの送金時に番号と金額の療法をコピペする必要があり面倒
- 口座番号が毎回違うので、そのサービスの口座をfavできない
個人間送金特化
大企業系
Jenius (モバイルペイメント / 年金基金系)
sakuku (モバイルペイメント / BCA銀行)
スタートアップ系
gopay
特定サービス特化
大企業系
なし
スタートアップ系
tokocash
- tokopediaはAlibabaから1000億円程度出資されている
- tokopediaは他にもsaldo/pointという仕組みがあり、少し複雑
- tokocashの普及のためにtokopedia内での割引がちょいちょいある
alipay
- すでにLAZADAで使用されている
- リアルではまだ全然
- LAZADAはAlibabaによって1000億円で買収されている
- これは50%近いダウンラウンドだった
gopay
- GO-JEKはwechatから1400億円ほど調達している
- 市民の足として非常にリテンションが高い
- 高所得者層はGO-FOODを頻繁に使う
- GO-CLEAN等、GO-LIFEアプリに分離されている機能にはgopayはまだ使えない
- GO-JEKはインドの受託企業を2社買収している。それぞれのアプリは異なるチームによって作成されているはず。よってインテグレーションの歩調はあまりあっていないように思える。また、GO-LIFEは本体と別のチームなのではないだろうか。
*1 cited from "Asosiasi Kartu Kredit Indonesia (AKKI)"
Amount of Issued Credit Card
Amount of Transaction
mGTV(Monthly Gross Transaction Value of Credit Card in Indonesia) (単位は100万IDR) (10000IDR = 83.3374JPY at 2017/10/08)
*2 The Asian Development Bank’s September 2015 report Fintech Talk: Loan provision for the unbanked. Is it possible? - Business - The Jakarta Post
*3 Paypal Paypal In Indonesia ? - Living In Indonesia Expat Forum
メール便参入条件とドローン配送の可能性
メール便とは
- メール便とはヤマト運輸が行っていたサービスの名称
- 撤退理由:国は日本郵便や信書便事業者以外が配達することを禁止している。ところが、送り主が誤って、メール便に信書を同封してしまうケースが起きていた。
送り主である顧客と配送業者が刑事罰を科される可能性がある。
- 禁止理由:憲法にある「通信の秘密(あらゆるコミュニケーションの秘匿性)」を担保するため、原則的に日本郵政にハガキや手紙の配送を一任していた。
- 基本的に先進国は通信の秘密を守ることを憲法/法律で規定しているが、アメリカのみ曖昧
- 佐川の飛脚ゆうメール便は営業所に集積させた荷物の中身を確認し、信書じゃない場合にまとめて日本郵政を利用して大口送信する方式だと推定される
郵政民営化の影響
- 日本郵政も民間企業になったので、他の民間企業も信書が送れないと独占禁止法違反だろうという論調が出る
- 国は一定の条件を満たせば民間企業も信書を送れるようにした
- 一定の条件のうちの1つ:「全国10万本の信書便差し出し箱」
- ヤマトの支店は24時間営業じゃないので不可
- ヤマトは「コンビニでも代用可能だろう」と抗議声明を出しているが返事なし
規制緩和状況
- 「特定信書便」に関しては2015/10に、民間に課していた「運送料金の最低額1000円」という条件を緩和し、値付けを800円まで可能にしたことにより、日本郵政と競争する余地を与えた
- 「一般信書便」に関しては依然、基準[PDF]が変わっていない
一般信書便の民間許可基準について
以下がその全て
ドローン郵便が認可される可能性
- アプリ等の手段でドローンを一定の地点まで呼び出せることが可能であること
- ドローンを呼び出した地点から配送先までバッテリーが持つなら、直接届ける
- 呼出地点から配送先までバッテリーが持たないなら、一度支店に届けて、配送先に最寄りの支店まで最も採算と利便性の合う方法で届ける
- 配達先のポストに適切に荷物を投函できること
- イレギュラー(荷物を投函できない、撃墜、強奪、故障、雨天等)時に状況を正確に記録できること
- イレギュラー時に人的リソースでケアできること
- これらが採算の合う事業計画に落とし込めること
近いテーマを持っている方、壁打ち相手になります
追記
この動画のドローンバッテリー交換器はおもしろかった