今回は「zkSync」について解説します。
zkSyncとは
zkSyncとは、セキュリティを損なうことなく、イーサリアムのスケーラビリティ問題を解決する方法です。
バリデータではなく、数学に依存する方法をとっています。
トランザクションコストが低く、ファイナリてぃが速いです。
ZKロールアップは、純粋に数学に依存しているため、単一のバリデーターを仕様しても安全な仕組みになっています。
隆起的には、Z K -SNARKテクノロジーが向上するにつれて、全てのユースケースでZKロールアップが優先されます。
zkSyncをネイティブにサポートすることにより、シンプルで使いやすい、信頼性の高いウォレット製品を提供するという目標に向けて一歩前進できています。
詳細
zkSyncは、イーサリアムのスケーリングおよびプライバシーエンジンです。
現在の機能範囲には、イーサリアムネットワークでのETHおよびERC20トークンの低ガス転送・アトミックスワップ・指値注文・ネイティブL2NFTサポートが含まれます。
このドキュメントは、zkSync開発エコシステムの概要です。
zkSyncは、ZKロールアップアーキテクチャに基づいて構築されています。
ZK RollupはL2スケーリングソリューションです。
全ての資金はメインチェーン上のスマートコントラクトによって保持されています。
計算とストレージはオフチェーンで実行されます。
ロールアップブロックごとに、状態遷移ゼロ知識証明(SNARK)が生成されます。
そしてメインチェーンコントラクトによって検証されます。
このSNARKには、ロールアップブロック内の全てのトランザクションの有効性の証明が含まれています。
更に、全てのブロック公開データの更新は、メインチェーンネットワークを介して安価なCalldataで公開されます。
このアーキテクチャは、次の保証を提供します。
・ロールアップバリデーターは、(サイドチェーンとは異なり)状態を破壊したり、資金を盗んだりすることはできない
・データが利用可能であるためにバリデーターが協力を停止した場合でえも、ユーザーはいつでもロールアップから資金を取得できる(※Plasmaとは異なる)
・有効性の証明のおかげで、詐欺を防ぐためにユーザーも他の単一の信頼できる当事者もオンラインでロールアップブロックを監視する必要はありません(支払いチャネルや※Optimistic Rollupとは異なる)
※Plasmaとは→【 Plasmaとは 】代表的なレイヤー2/システム・課題についても解説
※Optimistic Rollupとは→【 Optimistic Rollupとは 】分かりやすく解説
つまり、ZKロールアップは、基盤となるL1のセキュリティ補償を厳密に継承します。
特徴
zkSyncは、セキュリティとUXファーストという特徴があります。
上限のないセキュリティ
他のスケーリングアプローチとは異なり、ZKロールアップには、L2で安全に処理できる値に上限がありません。
10分間のファイナリティ
楽観的なロールアップとは異なり、全ての資産は、ZKロールアップとL1の間で資本効率が高く高速に移動できます。
低コスト
2020年6月から稼働しているzkSyncは、既存および計画中の全てのロールアップの中で実際のtxコストが最も低くなっています。
機能
速度が速い・手数料が安い
スケーリングソリューションとしてのzkSyncは、転送を実行し、それらの迅速かつ安価に実行することができます。
スマートコントラクトに最適
zkSyncはスマートコントラクト(詳細→【 スマートコントラクトとは 】Defi)に適しています。
2021年をターゲットにすると、Rustベースのタイプセーフプログラミング言語であるZinicでコントラクトを記述したり、既存のSolodityコードeo再利用したりすることが可能になります。
トレードにも適している
zkSyncはトレードやスワップにも適しています。
交換プロトコルの需要なコンポーネントであるあとミックススワップは、既にメインネットで利用可能です。
ネイティブに対応
zkSyncはNFTをネイティブでサポートしています。
ウォレットにて確認できます。
プラットフォームに実装
zkSyncサポートが全ての主要なプラットフォームに実装されています。
ドキュメントのSDKセクションにて確認でき、zkSyncで開発を開始できます。
zkSyncでの支払い
オペレーション
zkSyncには2つのタイプの操作があります。
優先操作・トランザクションです。
それぞれ解説します。
優先操作
優先操作は、イーサリアムメインネット上で直接開始されます。
優先操作は、イーサリアムトランザクションの数値IDまたはハッシュで識別できます。
現在(2022年6月)では次の種類の優先操作があります。
Deposit | ・イーサリアムネットワークからzkSyncネットワークの指定されたあくんとに資金を移動する ・受信者アカウントがzkSyncネットワークにまだ存在しない場合にはアカウントが作成され、指定されたアドレスに数値IDが割り当てられる |
FullExit | ・zkSyncサーバーとインタラクティんぐせずに、zkSyncネットワークからイーサリアムネットワークに引き出す ・zkSyncサーバーノードからの検閲が検出された場合の非常口として、またはzkSyncネットワークのアカウントの著名キーを設定できない状況で資金を引き出すために使用できる(アドレスがスマートコントラクトに対応している場合) |
トランザクション
トランザクションは、APIを使用してzkSyncオペレーターを介して送信する必要があります。
トランザクションは、シリアル化された表現のハッシュによって識別されます。
現在は、次の種類のトランザクションがあります。
ChangePuKey | ・アカウントに関連づけられた著名キーを設定(または変更)する ・著名キーが設定されていないと、対応するアカウントで操作(優先操作を除く)許可できない |
Transfer | ・あるzkSyncアカウントから別のzkSyncアカウントに資金を転送する ・受信者アカウントがzkSyncネットワークにまだ存在しない場合は、アカウントが作成され、指定されたアドレスに数値IDが割り当てられる |
Swap | ・2つの既存のzkSyncアカウント間で原始的に資金を交換する |
Withdraw | z・kSyncネットワークからEthereumネットワークに資金を引き出す |
ForcedExit | ・著名キーが設定されていない「ターゲット」L2アカウントから、イーサリアムネットワーク上の同じ「ターゲット」アドレスに資金を引き出す ・zkSyncネットwーあくのアカウントの著名キーを設定できない状況で資金を引き出すために使用できる(アドレスがスマートコントラクトに対応している場合) |
MintNFT | ・提供された「受信者」に提供されたコンテンツハッシュに基づいてNFTを作成する |
Withdraw NFT | ・zkSyncネットワークからイーサリアムネットワークにNFTを撤回する |
ブロック
zkSyncオペレーターがブロックを作成した後、トランザクションを使用して、イーサリアムメインネット上のzkSyncスマートコントラクトにプッシュされ、「Commit」します。
ブロックがコミットされた時、その状態はまだ最終ではありません。
数分後、このブロックの正しさのZK証明が生成されます。
この照明は、「Verify」トランザクションを使用してイーサリアムで公開されます。
txがマイニングされた後でのみ「Verify」、新しい状態が最終とみなされます。
複数のブロックをコミットできますが、まだ検証されていません。
ただし、実行モデルはやや異なります。
ユーザーがブロックのファイナライズを持たないようにするため、トランザクションはタイムアウトが非常に小さい「ミニブロック」にグループ化されます。
そのため、ブロックは小さな感覚で部分的に適用されているため、トランザクションを受信した直後にブロックが実行され、それに応じてL2状態が更新されます。
これは、トランザクションを送信した後、ユーザーはブロックコミットメントも検証も待つ必要がありません。
転送された資金は対応するトランザクション実行の直後に使用できることを意味します。
フロー
zkSyncの一般的な使用例を説明します。
アカウントの作成
zkSyncアカウントは、イーサリアムから資金を入金するか、zkSyncの資金を目的のアドレスに送金することにより作成できます。
これたのオプションのいずれかが存在しない場合、zkSyncネットワークに新しいアカウントが作成されます。
ただし、新しく作成されたアカウントは、まだアカウントからのトランザクションを承認できません。
そのためには、アカウント所有者が自分のアカウントの著名キーを設定する必要があります。
著名キーの設定
デフォルトでは、各あかうんとの著名キーはゼロ値に設定されており、アカウントを「所有されていない」とマークします。
これは、次の理由によります。
・あるアドレスへの転送がイーサリアムで有効な場合、zkSyncでも有効
・全てのアドレスが秘密鍵を持つことができるわけではない
・ユーザーのアカウントへの転送は、ユーザーがzkSyncに関心を持つ前に発生する可能性がある
したがって、アカウントでL2(詳細→仮想通貨における【 レイヤー2とは 】レイヤー1とレイヤー2の違い・メリット・デメリットも含めて解説)トランザクションを開始できるようにするには、ユーザーは「ChangePubKey」トランザクションを介してアカウントの著名キーを設定する必要があります。
このトランザクションには、次の2つの著名が必要です。
①トランザクションデータのzkSync著名:トランザクションの内容を変更できなくなる
②アカウントの所有権を証明するイーサリアムの著名:事前定義されたメッセージの著名である必要がある
「ChangePucKey」また対応するトランザクションをzkSyncスマートコントラクトに送信することにより、チェーン上での操作を承認することもできます。
アカウントの所有権は、セキュリティ保証を強化するために、zkSyncサーバーとスマートコントラクトの両方によってチェックされます。
全てのトランザクションフィールドのzkSync
著名は、トランザクションで提供される公開鍵に対応している必要があります。
【注意点】
異なるネットワーク間でデフォルトのレイヤー2秘密鍵を異なる状態に保つために、ユーザーが著名するメッセージは、ユーザーのウォレットのイーサリアムプロバイダーのネットワークによって異なります。
そのため、ソリューションが複数のチェーン(mainnetやrinkeby等)をサポートしている場合は、正しいネットワークに移行した後でのみ、ユーザーがChangePun Keyに著名していることを確認してください。
そうしないと、ユーザーがxkWalletまたは他のzkSync製品を使用しようとした時い、ChangePuKey関連のエラーが発生し、CPKの料金をもう一度支払う可能性があります。
送金
上記のように、イーサリアムで有効な転送は全て、zkSyncでも有効です。
ユーザーは、EthrまたはサポートされているERC-20トークンのいずれか任意の金額の資金を転送できます。
サポートされているトークンのリストは、対応するエクスプローラーページにあります。
APIを介して公開されます。
ただし、存在しないアカウントへの転送では、スマートコントラクトで送信するデータがわずかに多くなるため(新しいアカウントに関する情報を含める必要がある)、そのような転送の料金は、既存のアカウントへの転送の料金よりもわずかに高くなります。
料金
zkSyncは、ネットワークメンテナンスの費用をカバーするために、トランザクションの料金を要求します。
各種類の取引の手数料は、次の3つの主な要因に基づいて計算されます。
・イーサリアムネットワークに送信されるデータの量
・現在のガス価格
・トランザクションでブロックの証明を静止絵sルウための計算リソースのコスト
1つのブロックに多くのトランザクションが含まれているため、含まれている全てのトランザクション間でコストが償却され、手数料の値が非受に小さくなります。
更に、APIは、対応するAPIメソッドを介して料金計算に使用される全ての入力データを提供します。
資金の引き出し
現在、zkSyncからイーサリアムアカウントに資金を引き出すには3つの方法があります。
1つ目は「Wthdraw」トランザクションです。
これは、アカウントから任意のイーサリアムアドレスへの引き出しを要求するために使用できるL2トランザクションです。
転送と同じように、正しいzkSync秘密鍵で著名する必要があります。
この方法は、アカウントを所有していて、その秘密鍵を持っている場合に適しています。
2つ目は「ForceExit」トランザクションです。
これは
所有されていないアカウント(著名キーが設定されていないアカウント)からの引き出しを要求するために使用できるL2トランザクションです。
このトランザクションでは、イーサリアムのアドレスも金額も選択できません。
唯一のオプションは、ターゲットL2のアドレスからターゲットL1アドレスへの特定のトークンの利用可能な全ての資金の引き出しを要求することです。
また、取引開始者は、運営と全く同じ料金を負担する必要があります。
この方法は、著名キーを設定できないアカウント(つまり、スマートコントラクト)から資金を引き出す必要があり、このタイプのトランザクションを送信できるL2アカウントが存在する場合に適しています。
3つ目は「Full Exit」優先操作です。
この種のの操作は、L1から開始され、スマートコントラクトによってこの要求が妥当な時間間隔内に処理に処理されるか、ネットワークが危険に晒されている・停止しているとみなされて契約が締結されることが保証されるため、「優先操作」と呼ばれます。
この方法は、ユーザーがネットワークオペレーターからの検閲を経験する場合に適しています。
トランザクションの送信
トランザクションを送信するには、ユーザーは次の手順を実行する必要があります。
①トランザクションデータを準備する
②トランザクションでーたをバイトシーケンスにエンコードする
③zkSync秘密鍵を使用して、これらのバイトのzkSync著名を作成する
④トランザクション説明用にイーサリアム著名を生成するか、E IP-1271著名を提供する
⑤対応するJDONRPCメソッドを介してトランザクションを送信する
イーサリアムのシグニチャのメッセージは、トランザクションタイプによって異なります。
一部のイーサリアム署名者は、署名されたメッセージにプレフィックスを追加するため、使用済みの署名者が自動的に追加しない場合は、このプレフィックスを手動で追加する必要がある場合のことに注意してください。
トランザクションバッチの送信
トランザクションバッチは、全て一緒に成功するヒチョグアあるトランザクションのセットです。
バッチトランザクションの1つが失敗すると、このバッチの全てのトランザクションも失敗します。
【セキュリティに関する注意】
現在の形式では、トランザクションバッチはサーバー側の抽象化です。
正常に実行されたことが回路前でチェックされ、バッチに関する情報は回路に渡されません。
したがって、この機能を使用して別のトークンで料金を支払う場合は、料金支払いトランザクショおんを最後に設定することをお勧めします。
(これにより、サーバーは理論上でも最後のトランザクションを実行できなくなりますが、他のトランザクションは無視されます。)
将来的には、この機能の全体的なセキュリティを強化するために、バッチが回線に適用されます。
現在、バッチは最大50のトランザクションを正常に処理できることが保証されています。
トランザクションバッチの場合、個々のトランザクションで料金を設定する必要はありません。
唯一の要件は、トランザクションで設定された料金の合計が、個別に送信された場合のトランザクションの料金の合計以上である必要があります。
つまり、トランザクションバッチを使用すると、転送に使用される以外のトークンを使用してトランザクションの料金を支払うことができます。
そのために、2つのトランザクションのバッチを作成できます。
・F00:手数料を0に設定してトークンで受信者に転送
・BAR:金額を0に設定し、2回の送金に十分な手数料を設定して、トークン(料金を支払いたいトークン)で自分のアカウントに送金する
サーバーは、料金の合計(最初のトランザクションで0、2番目のトランザクションで2xの予想料金)が2つの転送の処理をカバーするのに十分であることを確認し、バッチを実行します。
バッチのイーサリアム署名
トランザクションバッチの場合、トランザクションごとにイーサリアム署名を提供する必要はありません。
代わりに、バッチごとに1つの署名を提供することができます。
署名するバッジのメッセージは、次のように作成する必要があります。
この取得された署名は、対応sるうJSON RPCメソッドを介してバッチと一緒に送信でき、どのバッチトランザクションにもイーサリアム署名が必要ありません。
2要素認証
ユーザーのzkSyncアカウントのセキュリティがイーサリアムウォレットのsキュリティと同等であることを保証するために、zkSyncサーバーはトランザクションを送信するときにレイヤー1とレイヤー2の両方の署名を必要とします。
zkSyncレイヤー2秘密鍵を保護する一部のウォレットクライアントでっは、イーサリアム秘密鍵を紛失した場合d目おzkSync資金にアクセスできるように、2つをバンドル解除することを選択できます。
2FAはデフォルトで有効になっていますが、そのようなリクエストをAPIに送信することで無効にすることができます。
安全性
正確性・分離・曖昧さによるセキュリティ
コンピュータシステムを保護するために、3つの主要なアプローチがあります。
これらのアプローチをzkSyncとブロックチェーンにどのように適用できるかを説明します。
正確性によるセキュリティ
正確性によるセキュリティとは、バグや悪意を持って動作するコードを含まないソフトウェアを作成する際に、できる限り積極的に取り組むことができます。
これは、業界のベストプラクティスに従うことで実現します。
Trail of Bits・スマートコントラクトのベストプラクティスによって維持されています。
Consensys Digigence・Security &SafeResearchBaseによっても維持されています。
過去数年間の本番環境でのテストからの業界の学習を文書化した多くの優れたリソースの3つです。
当社の契約及び暗号化は、内部・外部の監査の対象にもなります。
分離によるセキュリティ
分離によるセキュリティの目標は、システムをより小さな部分に分割して、1つの部分の障害が他の全ての部分に与える影響を最小限に抑えることです。
この哲学にしたがって、スマートコントラクトは分割され、他の全ての部分がビザンチンである可能性があるという家庭の下で設計されています。
※ビザンチンとは→【 ビザンチンフォールトトレランスとは 】ビザンチン故障についても分かりやすく解説
更に、情緒性を追加することにより、分離するセキュリティを更に強化できると菅g萎えています。
zkSyncでは、送信された全てのトランザクションは、ブロックに含める前に単純な実行によって検証されます。
したがって、ZK回路に着尺性がある場合、攻撃者は暗号化とシーケンサーの両方を突破する必要があります。
(現時点ではサーバーですが、最終的にはマルチバリデーターPoSコンセンサスに切り替えます。)
隠すことによるセキュリティ
このアプローチは、攻撃者の生活を可能な限り困難にするために曖昧さに依存しています。
しかしブロックチェーンの文化は、開発者とユーザーの根本的な透明性に基づいています。
ホワイトハットハッカーの強力なコミュニティによって補完されています。
セキュリティのための秘密と透明性のバランスを取るために、私たちは次のことに取り組んでいます。
アップグレード | ・アップグレードの全てのコードは、公開される前に1ヶ月間公開される |
監査 | ・完全な監査レポートは、ドキュメントで公開される |
脆弱性の開示 | ・修正が展開され、Matter Labsチームが根本原因だけでなく、全体的なセキュリティ設計の潜在的な弱点についても徹底的な内部レビューを実施する多mで、全ての脆弱性をサイレントに処理する必要性がある ・体系的な変更が完全に実装された後、脆弱性ごとに公開の事後分析がリリースされる ・完全な脆弱性開示ポリシーと既知のバグの更新されたリストを見れる |
バグバウンティプログラム
範囲
多額のお金の損失・壊れた活力状態のような重大なバグ・アップグレードシステムのブロック・不可逆的な資金の損失・強制的な脱出モードにつながる可能性のある問題
仮定
バグバウンティの対象となるには、バグはzkSyncのセキュリティの前提に準拠している必要があります。
開示方針
潜在的なセキュリティ問題が発見されたら、できるだけ早く知らせるようユーザーに呼びかけています。
一般または第三者に開示する前に、問題を解決するための妥当な時間を提供するようにとも呼びかけています。
【開示する間違った方法】
次のアクションにより、バグバウンティプログラムの対象外になります。
・脆弱性に関する公開問題の提出
・メインネットまたはテストネットでの脆弱性のテスト
【開示する正しい方法】
security@zkSync.io まで問い合わせることができます。
脆弱性の確認または修正に関する詳細情報をいただければ幸いです。
可能であれば、以下のPGPキーを使用してメッセージを暗号化します。
除外
・既知の脆弱性
・資金の損失や凍結に繋がらないコードの脆弱性
・プロトコルで使用されるスマートコントラクトや暗号化に関連しない脆弱性
適格性
・脆弱性のシア署の報告者でなければならない
・同じアドレスからの署名を確認できる必要がある
・脆弱性に関する十分な情報を提供する
バウンティペイアウト
資金の全損を伴う深刻なケースについては、50万ドルの報奨金を支払います。
コントラクト
ここに全てのリクエストを送信してください。
PGPキー
次のPGPキーを使用して、機密情報を開発者に伝達できます。
指紋:5FED B2D0 EA2C 4906 DD66 71D7 A2C5 0B40 CE3C F297
脆弱性の開示
クレジット:Geth and Solidityチームは、脆弱性開示のポリシーと慣行を形作る上で役割を担っている
開示について
Matter Labsチームの主な目標は、zkSyncネットワーク全体の健全性であり、着尺性の詳細をいつ公開するかの決定は、その発見と悪用のリスクと影響を最小限に抑えることに依存しています。
脆弱性の公表がzkSyncメインネットユーザーに害を及ぼす場合、修正を黙ってパッチを適用して出荷する権利を留保します。
一般に、重大な脆弱性レポートを受け取ったら、サイレントフィックスを展開し、zkSyncフォークに通知し、セキュリティの設計とプロセスに追加の対策を講じてから、一般に公開するという順序で続行します。
公共の透明性
全ての脆弱性は、修正が展開され、Matter Labsチームが根本原因だけでなく、全体的なセキュリティ設計の潜在的な脆弱性リンクについても徹底的な内部レビューを実施するまで、サイレントに処理する必要があります。
体系的な変更が完全に実装された後、脆弱性ごとに公開の事後分析がリリースされます。
以前の脆弱性とその事後分析については、以下を参照してください。
開示された脆弱性
このGithubリポジトリには、セキュリティ関連の既知のバグのJSON形式のリストがあります。
このリストは2022年1月1日に開始され、バージョン5.2以降を対象としています。
既知の脆弱性のJSONファイルは、脆弱性ごとに1つずつ、次のキーを持つオブジェクトのリストです。
name | 脆弱性に付けられた一意の名前 |
uid | フォーマットの脆弱性に付けられた一意の名前 KSYNC1-<year>-<sequential id> |
summary | 脆弱性の簡単な説明 |
description | 脆弱性の詳細な説明 |
links | より詳細な情報を含む関連URLのリスト(オプション) |
introduced | 脆弱性を含む最初に公開されたzkSyncバージョン |
fixed | 脆弱性を含まなくなった最初に公開されたzkSyncバージョン |
severity | 脆弱性の重大度:low影響の重大度と悪用の可能性 medium性 highをcriticalを考慮に入れる |
スマートコントラクト
zkSyncは、非常に効率的で安全なチューリング完全んあ他言語スマートコントラクトの導入に向けて順調に進んでいます。
プログラミングモデル
zkSyncスマートコントラクトプログラミングモデルは、イーサリアムのモデルを継承しています。
Solidityが最初にサポートされるため、無制限のループ・再帰・任意の長さのベクトルとマップなどを使用できます。
ローカル変数はスタックまたはヒープに格納されますが、コントラクトストレージはグローバルにアクセスされます。
コントラクトは、強く片づけされたインターフェースを介して相互に呼び出し、パブリックストレージフィールドにアクセスできます。
構成可能性
zkSyncスマートコントラクトは、イーサリアムスマートコントラクトと同じように相互に呼び出すことができます。
関係するコントラクトインスタンスの数に関係なく、各呼び出しトランザクションツリーはアトミックです。
既存のSolidityコードのほとんどは変更なしでデプロイできるため、どのDefiプロジェクトもzkSyncに移行できます。
zkEVM
zkEVMは、スマートコントラクトを実行するための非常に効率的でチューリング完全なSNARK対応の仮想マシンです。
最先端の最適化がスマートコントラクトバイトコードに適用され、仮想マシン自体が高負荷用に最適化されているため、瞬く間にトランザクションを実行できます。
マシンはSNARKに対応しています。
つまり、実行トレースはSNARKで証明できます。
ただし、プログラムごとに1つの回路は必要ありません。
代わりに単一の回路を使用できます。
これは一度だけ監査する必要があります。
同期VMのターゲットプルーフシステムはPLONKです。
堅牢性
スマートコントラクトの移植
ほとんどのDefi及びNFTプロジェクトは、コードを変更せずに機能します。
ただし、最初のバージョンでは、SHA256及びKeccak256の呼び出しは、コンバイラによって自動的に回路に適したハッシュ関数に置き換えられます。
ecrecoverや暗号ブリコンパイルなど、他のいくつかの暗号プリミティブも現在サポートされていません。
UIインタラクション
Web3 APIとEthers SDKを介して、スマートコントラクトとzkSyncネットワークと完全に対話できます。
読み取り要求の場合 | ・任意の言語のWeb3準拠のフレームワークは、オプションのzkSync L2固有の機能を追加してすぐに機能する |
書き込みリスト | ・(トランザクションの送信)の場合、L1とL2の基本的な違いにより、追加コードを記述する必要がある →(例えば、zkSyncは任意のトークンで料金の支払いをサポートしているため、トランザクションの送信には料金を支払うトークンの選択が含まれる) |
※L2とは→仮想通貨における【 レイヤー2とは 】レイヤー1とレイヤー2の違い・メリット・デメリットも含めて解説
Discordで質問をしたり援助を得ることができます。
トランザクションの送信
スマートコントラクトとのやり取りの場合、ユーザーはcalldataのハッシュを使用してEIP712メッセージに署名します。
EIP712はネイティブのEthereum署名に基づいているため、ハードウェアウォレットを含め、全てのウォレットは拡張機能を必要とせずに機能します。
展開
zkSync 2.0 Testneetはこちらです。
Zinc
Znicは、zkSyncプラットフォームでスマートコントラクトとSNARK回路を開発するための新しいフレームワークです。
既存のZLPフレームワークには、スマートコントラクトに固有の機能がありません。
スマートコントラクトは貴重な金融資産を扱うため、セキュリティと安全性は非常に重要です。
そのため、SimplictyやLibra’s Moveなどの最新のスマートコントラクト言語の設計者は、表現力よりもコードの安全性と正式な検証可能性を優先していました。
Zincは、ZKP回路用に最適化され、開発者が簡単に習得できる、シンプルで信頼性の高いスマートコントラクト言語を提供することにより、これら2つの世界のギャップを埋めるために作成されています。
このフレームワークには、スマートコントラクトとフラットな学習曲線を備えたゼロ知識証明回路を開発するために特別に設計された、シンプルでチューリング完全な安全性に重点を置いた汎用言語が含まれています。
Zincコンパイラは、ミドルエンド及びバックエンドとしてLLVMMを使用します。
これにより、コードeo最適化するための強力なソリューションセットが提供されます。
現在、Solidityファーストのアプローチに完全に焦点を当てています。
Solidityがリリースされた後、Zincの作業を再開します。
zkSync1.xのNFT
zkSync1.xのNFTの詳細はこちらです。→【 zkSync1.xのNFTについて 】必要情報まとめ
お問合せ
ほとんどの質問はzkENMFAQで解答されます。
https://docs.zksync.io/zkevm/#general
主要な概念はメディアで解説されています。
その他はDiscordにて質問できます。
最近のコメント