[解説#4]台帳モデル、言語、その他
台帳モデルやスマートコントラクト言語、各チェーンの相互運用性について
この記事は、こん丸のカルダノチェーンに関するレポート(英語)の一部です。
英語版はこちら。
内容:
1. 台帳モデルとスマートコントラクト言語
1.a. 台帳モデル:e-UTXO
1.b. スマートコントラクト言語:PlutusとMarlowe
1.c. スケーラビリティに関わる他の要素
1.d. このセクションの資料
2. 他チェーンとの比較
2.a. 台帳モデル、言語、相互運用性
2.b. 開発者の数
2.c. このセクションの資料
1. 台帳モデルとスマートコントラクト言語
1.a. 台帳モデル:e-UTXO
カルダノはビットコインと同じくUnspent Transaction Output(UTXO)ベースのブロックチェーンで、イーサリアムなどのアカウントベースのブロックチェーンとは、記帳、つまりブロックチェーンの状態(state)の記録方法が異なります。UTXOベースの台帳では、コインはUTXOのリストとして保存され、プロトコル層にアカウントやウォレットは存在しません。各UTXOには数値と使用状態が紐づけされ、トランザクション毎に、既存のUTXOが消費され、新しいUTXOがネットワーク内で生成されます。各UTXOは一度だけ、全体として消費することができます。アカウントベースの台帳では、コインはUTXOベースのように識別されず、アカウント内の残高として表現されます。アカウントは秘密キーまたはスマートコントラクトによって管理することができます。
記帳の違いから、UTXOのトランザクションはトランザクション後の結果がトランザクション前に分かるのに対し、アカウントベースのトランザクションはトランザクション後の結果がその時の状態に依存するため確実には分かりません。また、UTXOベースのブロックチェーンは、複数のUTXOを同時に処理することが可能なため、同時並行の取引が可能となり、スケーラビリティの可能性を拡大します。
カルダノは、マルチアセットとスマートコントラクトをサポートするためのAlonzoアップグレードによって導入された、革新的なExtended Unspent Transaction Output (EUTXO)モデルを実装しています。EUTXOは、UTXOモデルのブランチ単位の設計を継承しており、1つのブランチは一連の検証を必要とするトランザクションのシーケンスとなります。それぞれのブランチで一連の検証を行うことで同時並列性を高めるため、EUTXOはスケーリングの面でメリットがあり、複数のUTXOを使用するDAppsやその他のソリューションを構築するために不可欠となります。EUTXOはスマートコントラクトの実行コストの予測可能性を可能にする高いセキュリティを提供することで、同時並列的な処理に対して新しいアプローチを可能にします。
👉 ブロックチェーンの取引手数料やチェーン間の比較については、[解説#5]トランザクションの手数料とスピードで解説しています。
1.b. スマートコントラクト言語:PlutusとMarlowe
カルダノネットワーク上のスマートコントラクトは、Solidityを使うイーサリアム上のスマートコントラクトとは異なり、Plutusを使って書かれています。カルダノは主にHaskellを使用していますが、スマートコントラクト用に最適化されたPlutusもあり、そのコードはオンチェーン、オフチェーン両方の機能を動かすために使用できます。Marloweは、プログラマーではないユーザーのための補助的なプログラミング言語で、複雑なコーディング言語を習得することなく、開発部門以外の専門家がスマートコントラクトを作成・テストできるように設計されています。
Haskellは、アカデミアと論理学の両方にルーツがあり、また、関数型プログラミング言語の初期の反復にもルーツがあり、高度な検証や保証を必要とするコードやとプログラムに適しています。PlutusとMarloweは、Haskellのライブラリセットとして提供されており、既存のHaskellのドキュメント、ツールキット、そして非常に専門的なコミュニティを活用することが出来るため、企業レベルの質と安全性を備えたスマートコントラクトを作成できる基盤があります。つまり、Haskellを通じて、カルダノのPlutusとMarloweで書かれたスマートコントラクトは、最初から高いレベルの保証を提供することができるのです。
1.c. スケーラビリティに関わる他の要素
カルダノのブロックチェーンネットワークは、”Cardano Settlement Layer(CSL)”と”Cardano Computation Layer(CCL)”という2つのレイヤーに分かれています。CSLはADAの送金に使用され、CCLは開発者がプログラムを作成するためのスマートコントラクト機能をサポートします。アクティビティごとに部屋を分けることで、両レイヤーのオペレーションを効率化することが出来ます。片方の部屋をそのままにしてもう一方をアップグレードしたり、独立した属性の2つのアップグレードを同時に行ったりできるのは大きなメリットです。一方、イーサリアムはETHの取引とスマートコントラクトを同じレイヤーで処理するため、混雑して取引手数料が高くなることが多くなっています。
委任(delegation)は、ステークホルダーの分散化が進んでもカルダノ・ブロックチェーンをスケールさせることができるため、特に有用です。委任の仕組みにより、ステークホルダーは自分の「投票権」、すなわち各エポックにおけるリーダー選出プロトコルを実施する委員会に参加する権利を委任することができます。流動的民主主義のように、ステークホルダーは互いに独立して、好きなときに委任された任命を取り消すことができます。誰もがステークプールを運営する時間、知識、資源を持っているわけではないので、ADA保持者は自分のADA(ステーク)を好きなステークプールに委任し、プールオペレータに自分のステークを代理で管理させることができます。これにより、誰もがノードを継続的にオンラインにする必要なくコンセンサスに参加し、報酬を得ることができます。
👉 カルダノのコンセンサスメカニズムと報酬メカニズムの詳細については、[解説#3]コンセンサスメカニズム”ウロボロス(Ouroboros)”で解説しています。
1.d. このセクションの資料
🔗 https://iohk.io/en/blog/posts/2021/09/10/concurrency-and-all-that-cardano-smart-contracts-and-the-eutxo-model/
🔗 https://docs.cardano.org/plutus/eutxo-explainer
🔗 https://jcliff.medium.com/intro-to-blockchain-utxo-vs-account-based-89b9a01cd4f5
🔗 https://www.coindesk.com/learn/cardano-vs-ethereum-can-ada-solve-ethers-problems/
🔗 https://www.gemini.com/cryptopedia/what-is-cardano-roadmap-cardano-ecosystem-ada-crypto
🔗 https://www.securities.io/investing-in-cardano-ada-everything-you-need-to-know/
🔗 https://medium.com/@cardano.foundation/why-cardano-chose-haskell-and-why-you-should-care-why-cardano-chose-haskell-and-why-you-should-f97052db2951
📄 Kiayias et. al. (2019)
2. 他チェーンとの比較
2.a. 台帳モデル、言語、相互運用性
以下の表5は、各チェーンの台帳モデル、スマートコントラクト言語、相互運用性を示しています。上記1.a.で説明したように、UTXOはスケーラビリティに優れ、アカウントベースのブロックチェーンは柔軟性に優れています。ビットコイン、カルダノ、アバランチを除き、ほとんどのチェーンでアカウントベースの台帳モデルが採用されています。採用されているスマートコントラクト言語はチェーンごとに異なりますが、Solidity、Rust、Javasctiptなどは、他より人気の高い言語になっています。より多くのアクティブな開発者をチェーンに引きつけるために、相互運用性の重要性が高まっています。近年、チェーン間の競争は非常に激しくなっており、チェーンのあらゆる面を高速に改善し続け、多くのテストを受けるためには、開発者の増加が非常に重要であるからです。チェーンに一定の利便性とセキュリティを保証したEVMの完全互換性が実装されれば、チェーンの設計や取引手数料やスピードなどの安定性が、より多くの開発者やユーザーを惹きつける上で重要になってくると思われます。
表5. 各チェーンの台帳モデル、スマートコントラクト言語、相互運用性
<表5の資料>
📄 Satoshi Nakamoto
🔗 https://lisk.com/blog/research/blockchain-interoperability-how-does-it-work
🔗 https://u.today/cardano-is-one-step-closer-to-interoperability-as-evm-sidechain-set-for-launch
🔗 https://www.benzinga.com/fintech/22/04/26892672/interview-tezos-is-the-ever-evolving-megatron-of-blockchain-networks
🔗 https://www.algorand.com/resources/algorand-announcements/algorand-network-upgrade-expands-smart-contract-functionality
🔗 https://www.zdnet.com/finance/blockchain/the-defi-application-platform-injective-adds-solana-avalanche-polygon-interoperability-with-wormhole-integration/
🔗 https://www.figment.io/resources/avalanche-the-interoperability-evolution-and-subnet-revolution
2.b. 開発者の数
開発者数はチェーンの発展にとってとても重要です。チェーンのアクティブな開発者が多ければ多いほど、アプリケーションが増え、テストの耐性が増し、チェーンのあらゆる側面が改善されます。
下の図2は、チェーンごとにローンチからの月間アクティブ開発者数の推移を示したものです。図2をみると、イーサリアムが一貫した先行者の優位性を示しています。イーサリアムは圧倒的に開発者が多く、月間アクティブ開発者数は約4,000人です。a16zの2022 State of Crypto Reportによると、イーサリアムはweb3のエコシステムに入ってくる新規開発者の約30%を吸収しています。図にはありませんが、イーサリアムに続くのは、2021年12月時点で月間開発者数が1400人のポルカドット、月間開発者数が950人のコスモス、900人のソラナ、500人のビットコインです。アクティブな開発者数はそれほど多くないですが、ポリゴンは2021年に開発者数がほぼ倍増し、月間開発者数が300人を超えるまでになり、2022年も増え続けています。また、カルダノは2021年に開発者数を90%増やし、月間開発者数350人超になり、2022年には、1月、2月、5月、6月にいくつかのピークがあるものの、安定して推移しています。補足すると、カルダノチェーンは2017年9月にローンチされましたが、スマートコントラクトが利用可能になったのは2021年9月のAlonzoアップググレードの際とかなり最近になっています。
図2.ローンチからの月間アクティブ開発者数の推移
<図2の資料>
📄 a16z_2022 State of Crypto Report
2.c. このセクションの資料
🔗 https://www.bsc.news/post/comparing-developers-their-activity-in-leading-blockchain-networks
📄 a16z_2022 State of Crypto Report
🔗 https://www.altcoinbuzz.io/top-article/blockchain-developers-activity-and-its-importance/






