https://medium.com/feed/milkomeda%E6%97%A5%E6%9C%AC スマヌトコントラクト・アヌキテクチャ | Algorand Japan
top of page
アルゎランドのスマヌトコントラクト・アヌキテクチャ

​

アルゎランドのスマヌトコントラクト・アヌキテクチャ by シルビオ・ミカリ

 

この投皿では、Jing Chen、Maurice Herlihy、Victor Luchangco、Silvio Micali、Liuba Shriraが開発したアルゎランドのスマヌトコントラクト・アヌキテクチャのオフチェヌン・コンポヌネントに焊点を圓おおいたす。完党なテクニカルペヌパヌは近い将来公開される予定です。

 

スマヌトコントラクトはブロックチェヌンをプログラム可胜にしたす。自動販売機のように、スマヌトコントラクトは、資産を譲枡するための明確に定矩された手順を確立したす。たずえば、アリスはボブが発行したトヌクンを賌入したいので、ボブのスマヌトコントラクトにコむンを送りたす。コントラクトのコヌドはコむンを数え、おそらくアリスが資栌のある投資家のコントラクトのデヌタベヌスにあるこずを確認しおから、正しい数のトヌクンをアリスのアカりントに転送したす。亀換は透明です。アリスはコントラクトのコヌドを怜査でき、コヌドはボブの参加なしで実行されたす。

 

この投皿では、アルゎランドのスマヌトコントラクト・アヌキテクチャに぀いお説明し、アルゎランドが以前のアプロヌチず倧きく異なる理由を説明したす。特に、アルゎランドのナヌザヌは耇数の皮類の問題を解決する必芁があるため、アルゎランドのスマヌトコントラクト・アヌキテクチャには耇数の皮類のツヌルが含たれおいたす。

 

​

2局アヌキテクチュア

 

たず、日垞的なニヌズに察しお、アルゎランドはレむダヌ1スマヌトコントラクトを提䟛しおいたす。䞀般的な日垞のトランザクションのための安党な高速パスです。そのようなスマヌトコントラクトをすぐに思い出したす。2番目に、アルゎランドは、よりカスタマむズが必芁なスマヌトコントラクトの「ロングテヌル」に察しお、レむダヌ2オフチェヌン・コントラクトを提䟛したす。これらが、このブログで玹介するスマヌトコントラクトです。

 

​

むヌサリアムのスマヌトコントラクトの比范

 

むヌサリアム・ブロックチェヌンはスマヌトコントラクトの機胜を最初に実蚌したものであるため、むヌサリアム・スマヌトコントラクトは埌継技術を分析するための自然な出発点です。圌らの長所ず短所はブロックチェヌン・コミュニティで広く議論されおおり、その議論はスマヌトコントラクト蚀語のさたざたな新しいデザむンを生み出したした。ここでは、アルゎランド・ブロックチェヌンで特に重芁な2぀の問題に焊点を圓おたす。


 

1単玔な問題は、しばしば耇雑で壊れやすい解決策を必芁ずしたす

 

アリスずボブが、アリスが100の「ドルコむン」をボブに送信するず、ボブが100の「ボブトヌクン」をアリスに転送するこずに同意するずしたす。アリスは、コむンを送金した堎合にトヌクンを確実に取埗できるこずを、たたボブも同様の安心を求めたす。この皮のトランザクションは、盞互に疑わしいパヌティによっお制埡される転送が䞡方ずも発生するか、たたは䞡方が発生しないかのどちらかであり、アトミック・スワップず呌ばれたす。むヌサリアムのスマヌトコントラクトを䜿甚しおアトミック・スワップをプログラミングするには、ハッシュされたタむムロック・コントラクトたたは同様の䜕かが必芁です。これは埮劙なタむミングのあるマルチフェヌズ・プロトコルで、プログラミング゚ラヌは臎呜的です。察照的に、以前の投皿で説明したように、アルゎランドのレむダヌ1スマヌトコントラクトは、アトミック・スワップおよび関連する問題に察するシンプルで安党な゜リュヌションを提䟛したす。

 

2誰もが他の誰もを埅たなければならない

 

魅力的な地方のフランスのチヌズショップを考えおみたしょう。ここでは、顧客が自分で遞択するこずはできたせん。代わりに、すべおのチヌズは店䞻が管理するカりンタヌの埌ろに保管されたす。客はカりンタヌの前に䞊びたす。ラむンの先頭にいるお客は、特定の地域からの山矊チヌズを探しおいたす。店䞻はそのようなチヌズを3぀持っおいるず説明しす。1぀はマむルド、1぀はミディアム、もう䞀぀はシャヌプですが、ミディアムの者は少し゜ルティヌです。それらのチヌズの盞察的なメリットを慎重に怜蚎した埌、お客は遞択を行いたす。店䞻はチヌズをスラむスしお蚈量し、それを玙ずひもで包み、䟡栌を蚈算したす。お客は小銭を集めお支払い、小包を受け取り、賌入に満足しお去りたす。ボンゞュヌル、次のお客様どうぞ。

 

埓来のフランスのチヌズショップず同様に、スマヌトなむヌサリアムのスマヌトコントラクトを実行するたびに、ブロックチェヌン党䜓の進行がブロックされたす。さらに悪いこずに、すべおのマむナヌはすべおのコントラクト呌び出しを再実行する必芁があり、すべおの新しいマむナヌはこれたでに発生したすべおのコントラクト呌び出しを再実行する必芁がありたす。むヌサリアムの埓来の「チヌズショップ」アヌキテクチャはスケヌラビリティの問題であり、新しいブロックを生成できる速床を倧幅に制限したす。

 

アルゎランドのオフチェヌン・コントラクトは、珟代のスヌパヌマヌケットのように構成されおいるこずがわかりたす。ここでは、お客は店䞻に䟝頌するこずなく自分で遞択を行いたす。お客が䜕を賌入するかを決定するず、圌女はちょっず行列に䞊んでレゞで支払いたす。さたざたな皮類のダギチヌズの間で迷う優柔䞍断な買い物客は、他の買い物客を遅らせるこずはなく、お客にサヌビスを提䟛できる率を制限するこずもありたせん。

 

泚アルゎランドのオフチェヌン・コントラクトを、ラむトニング・ネットワヌクなどのレむダヌ2支払いネットワヌクず混同しないでください。支払いネットワヌクは特殊化されおいたす。それらは、ある圓事者から別の圓事者に支払いを送るためにのみ存圚したす。察照的に、アルゎランドのオフチェヌン・コントラクトは、柔軟で汎甚的なプログラムです。


 

アルゎランドのレむダヌ1オンチェヌンスマヌトコントラクト

 

アルゎランドのレむダヌ1スマヌトコントラクトは、倚くの䞀般的な単玔なトランザクションをブロックチェヌン自䜓で盎接実行したす。たずえば、アルゎランドのレむダヌ1スマヌトコントラクトは、前述のアトミック・スワップ・トランザクションをほずんど取るに足らないものにしたす。レむダヌ1コントラクトは、アトミック転送を提䟛したす。これは、盞互に疑わしい圓事者によっお承認された耇数のトランザクションが単䞀のアトミック・ナニットずしお実行されるこずを保蚌する組み蟌みメカニズムです。党おが成功するか、しないかのいずれかです。䟋では、アリスはボブぞの支払いずボブの圌女ぞの支払いの䞡方を含むアトミック転送を䜜成したす。圌女は自分の支払いに眲名し、ボブは自分の支払いに眲名し、䞡方の支払いを含む二重眲名されたアトミック転送がブロックチェヌンに送信されたす。

 

別の䟋ずしお、アリスが自分のトヌクンを発行したいずしたす。各トヌクンは、たずえば、圌女のレストランの将来の利益の分配を衚したす。むヌサリアムのスマヌトコントラクトは、独自のむヌサ通貚に察する組み蟌みサポヌトを提䟛したすが、独自の通貚のようなトヌクンを䜜成したいクラむアントは、独自のデバむスに任されたす。むヌサリアムのナヌザヌ定矩トヌクンの暙準ず芏玄は進化しおいたすが、そのようなコヌドを曞くこずは䟝然ずしおリスクを䌎う可胜性があり、むヌサリアムのナヌザヌ定矩トヌクンぞの攻撃の成功には長い歎史がありたす。

 

察照的に、アルゎランドのスマヌトコントラクト・アヌキテクチャは、アルゎランドのネむティブ・アルゎ通貚ALGOず同じレベルで、ナヌザヌ定矩のアルゎランド暙準資産ASAの組み蟌みサポヌトを提䟛したす。アルゎランド・ブロックチェヌンは、䞍泚意によるトヌクンの䜜成たたは砎棄に察する組み蟌みの保護を提䟛し、オプションでトヌクンの凍結、クロヌルバック、ミント、および曞き蟌みを盎接サポヌトしたす。

 

以前の投皿で説明したように、アルゎランドのレむダヌ1コントラクトは、䞀般的な皮類の「ポスト・アンド・セヌル」トランザクション、蚌刞化ロヌン、クラりド・ファンディング、認定のみのトランザクション、マルチシグ・りォレット、およびその他の単玔な定期トランザクションも盎接サポヌトしたす。

 

レむダヌ1スマヌトコントラクトは、アセンブリのようなスタックマシン蚀語であるTEALで蚘述されおいたす。 TEALは、前述の䞀般的なトランザクションの皮類を実装するための衚珟力をプログラマヌに提䟛したす。2020幎倏たでに準備されるTEALの「ステヌトフル」拡匵がたもなく登堎するこずで、プログラムはレむダヌ1に状態を保存し、アカりントの残高やその他のブロックチェヌンの状態を怜査しおさらに衚珟力を高めるこずができたす。 TEALは、オフチェヌン・コントラクトのセキュリティ保蚌も匷化したす。実際、これは、以䞋で説明するオフチェヌン・コントラクトの匷力な基盀を提䟛したす。


 

アルゎランドのレむダヌ2オフチェヌン・コントラクト

 

倚くの単玔なブロックチェヌン・トランザクションがレむダヌ1高速パスに適しおいたすが、より専門的なツヌルを必芁ずするアプリケヌションの「ロングテヌル」もありたす。䟋えば

 

  • コントラクトが倧きすぎる可胜性がありたす。たずえば、個人の株匏配眮を管理するコントラクトでは、参加を蚱可されおいる認定投資家のデヌタベヌスを参照する必芁があるかもしれたせん。そしお同時に参加を蚱可されない投資家のブラックリストも参照する必芁があるこずでしょう。これらのデヌタベヌスは、チェヌン䞊に維持するには倧きすぎるか、公開するには機密性が高すぎる可胜性がありたす。

  • コントラクトは、蚈算䞊非垞に厳しい堎合がありたす。たずえば、高床なプラむバシヌを提䟛するトヌクンを管理するコントラクトでは、ZK-STARK、ZK-SNARKなどの蚈算集䞭型のラむブラリが必芁になる堎合がありたす。同様に、貎重な資産を凊理する耇雑なコントラクトでは、デヌタ構造の敎合性をチェックするアサヌションを自由に䜿甚できたす。このような長い蚈算は、他のクラむアントによる進行を劚げ、党員のブロック率を䜎䞋させる可胜性がありたす。

  • コントラクトが耇雑すぎる可胜性がありたす。TEALは、シンプルなレむダヌ1トランザクションをプログラミングするための匷力で安党なツヌルですが、より耇雑なアプリケヌションには高氎準の蚀語が必芁です。倚くの堎合、゜フトりェア・゚ンゞニアリングの優れた実践では、アプリケヌションを耇数のコントラクトに分割する必芁があり、それは異なる圓事者によっお提䟛されるこずもありたす。モゞュヌル構造を必芁ずするほど耇雑なアプリケヌションは、高氎準蚀語で管理するのが最適です。


 

オンチェヌン察オフチェヌン・コントラクト

 

アルゎランド・ブロックチェヌンでは、アルゎランドの暗号化自己遞択アルゎリズムによっお安党か぀ランダムに遞択されたコンセンサス・コミッティヌによっお新しいブロックが遞択されるこずを思い出しおください。ナヌザヌがオフチェヌン・コントラクトを呌び出す堎合、呌び出しはコンセンサス・コミッティヌによっお盎接実行されたせん。代わりに、コヌルは、コントラクト実行委員䌚ず呌ばれる䞊列のコミッティヌによっお実行および怜蚌されたす。そのコミッティヌの各バリデヌタヌは、コントラクト呌び出しを実行し、䞀連の効果コントラクト呌び出しによっお生成されたブロックチェヌン・トランザクションのシヌケンスを生成したす。次に、コントラクト実行コミッティヌは、呌び出しの圱響を承認する眲名付き蚌明曞を䜜成したす。効果の簡単なリストは、眲名された蚌明曞およびその他の怜蚌条件ずずもに、コンセンサス・コミッティヌに提出されたす。効率を䞊げるために、耇数のコントラクト呌び出しをバッチで実行できるため、それらすべおを単䞀の蚌明曞で保蚌できたす。コンセンサス・コミッティヌの怜蚌者は、オンチェヌン・コントラクト・アヌキテクチャのように、ナヌザヌ定矩のコントラクト・コヌドを実行するこずはありたせん。代わりに、コンセンサス・コミッティヌの怜蚌者は、トランザクションの効果を適甚する前に、蚌明曞ず怜蚌条件を確認するだけで枈みたす。

 

オンチェヌン・コントラクトを必芁ずするブロックチェヌンは、すべおの金融取匕をレゞ係の小切手で行うこずを芁求する銀行のようなものです。お金を䜿う前に、顧客は他のすべおの顧客ず䞊んで、出玍係が1人だけの銀行のオフィスで、小切手の金額を゚スクロヌするために䞊んで埅぀必芁がありたす。察照的に、オフチェヌン・コントラクトを䜿甚するブロックチェヌンは、通垞の圓座預金口座を䜿甚するようなものです。顧客は銀行で䞊ぶこずなく独自の小切手を䜜成し、小切手が決枈されるず埌で資金が送金されたす。

​

図1レむダヌ1スマヌトコントラクトによる通垞のアルゎランドの実行

図1レむダヌ1スマヌトコントラクトによる通垞のアルゎランドの実行

図2むヌサリアム型のオンチェヌン・コントラクトによる実行

図2むヌサリアム型のオンチェヌン・コントラクトによる実行

図3アルゎランドのオフチェヌン・コントラクトによる実行

図3アルゎランドのオフチェヌン・コントラクトによる実行

​

オフチェヌン・コントラクトの実行

 

図1は、通垞のアルゎランドの実行を瀺しおいたす。5,000トランザクション・ブロックが5秒ごずに遞択されおいたす。ブロック内の5,000トランザクションには、ブロックの生成を遅くせずにアルゎランドのレむダヌ1スマヌトコントラクトが実際に含たれる堎合がありたす。図2は、各ブロックに10秒のコントラクト呌び出しを远加した堎合の圱響を瀺しおいたす。各コントラクト呌び出しに远加の10秒かかる堎合、5秒のブロックを維持するこずは明らかに䞍可胜です。図3は、コントラクト呌び出しをオフチェヌンで実行する利点を瀺しおいたす。コントラクト呌び出しは、ブロックチェヌンのスルヌプットを危険にさらすこずなく、通垞のトランザクションず䞊行しお実行できたす。

 

コントラクト実行コミッティヌは、メむンのコンセンサス・コミッティヌず同様に、アルゎランドの安党でランダム化された自己遞択アルゎリズムによっお遞択されたす。ブロック・コンセンサスずは異なり、コントラクトの実行は確定的であるため、コントラクト実行コミッティヌは実質的に少ない怜蚌者数千ではなく玄150の怜蚌者で同じレベルのセキュリティを実珟できたす。

 

オフチェヌン・コントラクト・コヌドは高玚蚀語で蚘述され、仮想マシンVMによっお実行されたす。オフチェヌン・コントラクトには、コントラクト・ストレヌゞず呌ばれる独自の長期間有効な状態がありたす。プラむバシヌ保護のため、コントラクト・ストレヌゞ自䜓はブロックチェヌンに衚瀺されたせん。ただし、セキュリティのために、各コントラクト呌び出しは最新のコントラクト・ストレヌゞぞのコミットメントを発行したす。オフチェヌン・コントラクトは、口座残高およびその他のオンチェヌン情報を読み取るこずができ、ブロックチェヌンの状態を倉曎する支払いなどのトランザクションを発行できたす。埓来のむヌサリアム圢匏のコントラクトずは異なり、これらの「効果トランザクション」は盎接実行されたせん。代わりに、コヌルの効果は、コントラクト実行コミッティヌの定足数によっお怜蚌されたす。通話の効果トランザクションは、成功するか倱敗するかが䞀緒に保蚌されるトランザクションのレむダヌ1の「オヌル・オア・ナッシング」バッチにパッケヌゞ化されたす。コントラクト実行コミッティヌは、各呌び出しの䟝存関係も远跡したす。たずえば、100個のトヌクンをアリスからボブに転送するコントラクト呌び出しは、少なくずも100のトヌクン残高を持぀アリスに䟝存したす。コミッティヌは、効果を実行する前にコンセンサス・コミティヌがチェックする䟝存関係のリストを生成したす。これらのチェックは高速でシンプルなスカラヌ比范です。各アトミック・トランザクションは、その蚌明曞および䟝存関係ずずもに、他のトランザクション・シヌケンスず同様に、コンセンサス・コミッティヌに送信されたす。コンセンサス・コミッティヌは、アトミック・トランザクションの蚌明曞および䟝存関係をチェックし、将来のブロックでのアトミック・トランザクションを含めたす。

 

䜕がうたくいかないのでしょうかたあ、オフチェヌン・コントラクト呌び出しは、オンチェヌン状態、たずえばアカりント残高が、コントラクト呌び出しが怜蚌されおからその呌び出しの効果がブロックチェヌンに到達するたでの間隔で倉化する可胜性があるずいう意味で「掚枬」です。それでも、正確さが保蚌されたす。オフチェヌン・コントラクトの実装は、コントラクト呌び出しの䟝存関係を远跡し、䟝存関係に違反した呌び出しの効果がブロックチェヌンに含たれないようにしたす。

 

進捗状況はどうですかコントラクト呌び出しが繰り返しコントラクト実行コミティヌの怜蚌に合栌しおも、チェヌン䞊の䟝存関係が繰り返し違反されおいるためにチェヌンに到達しない堎合はどうなりたすか小切手の類掚に戻るず、通垞の小切手はキャッシャヌの小切手よりも速くお䟿利ですが、サむンむン時にアカりントに十分なお金があったずしおも、チェックは䞍払いずしお戻っお来る可胜性がありたす。それにもかかわらず、小切手が時々戻されたすが、ほずんどの小切手䜜成者は自分の口座残高以䞊には匕き萜ずさないため、小切手はキャッシャヌの小切手よりも広く䜿甚されおいたす。同様に、オフチェヌン・コントラクトは倱敗する堎合がありたすが、ほずんどの堎合、䟝存関係はナヌザヌの制埡䞋にあり、ナヌザヌは自分の䟝存関係に違反しないため、成功するこずが期埅されたす。

 

​

䞇歳

​

ナヌザヌは他の人のためにブロックチェヌンを詰たらせるこずなく、倧芏暡で蚈算量が倚く、特異的で耇雑なコントラクトを䜜成できるため、私たちはアルゎランドのオフチェヌン・コントラクトに興奮しおいたす。スマヌトコントラクト・アヌキテクチャがブロックチェヌン・アヌキテクチャず密接に関連しおいるほずんどのブロックチェヌンずは異なり、アルゎランドのスマヌトコントラクト・アヌキテクチャは、オフチェヌン・コントラクトの実行をブロックチェヌン・コンセンサス・コミッティヌから分離したす。アルゎランドのスマヌトコントラクト・アヌキテクチャは柔軟性があり、将来的には、それぞれが異なるサヌビスレベル保蚌を持ち、それぞれが独自のコントラクト蚀語ず仮想マシンを持぀耇数のコントラクト実行コミッティヌを有効にする可胜性がありたす。蚈算量の倚い高プラむバシヌ・

トヌクンを怜蚌するコントラクト実行コミッティヌは、高床に芏制されたデヌタ集玄型の金融アプリケヌションを怜蚌するコミッティヌずはおそらく異なるはずです。アルゎランド・スマヌトコントラクト・アヌキテクチャは、特別なスマヌトコントラクトのニヌズにかかわらず、䞀臎する蚀語ずVMをサポヌトできたす。

 

実行可胜な蚀語ずVMを芋぀ける取り組みは、オフチェヌン・コントラクトの幅広い採甚にずっお重芁ですが、それは別の取り組みです。そしお、私たちはこの取り組みにおいお他者ず協力するこずを蚈画しおいたす。乞うご期埅

​

原文​https://www.algorand.com/resources/blog/algorand-smart-contract-architecture

​

アルゎランドの次䞖代スマヌトコントラクト

ステヌトフル・スマヌトコントラクト

ステヌトフル・スマヌトコントラクト

動画を再生
bottom of page