Cross-Chain Transfer Protocol (CCTP) - Demo
Summary
TLDRジェフ・デイが開発したクロスチェーン転送プロトコル(CCTP)についてのデモを紹介します。CCTPは、ブロックチェーン間でネイティブUSDCをシームレスに移動できるように設計されており、ラップされたアセットを排除し、統一された流動性を提供し、高速な転送を実現することを目的としています。また、異なるブロックチェーンにも対応するシンプルで柔軟なバリデーション戦略を持ち、コミュニティと開発者が上に構築できる軽量で組み合わせ可能なコアプロトコルを提供します。
Takeaways
- 🚀 CCTP(Cross-Chain Transfer Protocol)は、Circle社が開発したブロックチェーン間でUSDCをシームレスに転送できるプロトコルです。
- 🎯 CCTPの主な目的は、ネイティブUSDCの焦点を当て、ブロックチェーン間でUSDCを簡単に移動できるようにすることです。
- 🛡️ ラップされた資産の使用を避け、安全性と効率性を高め、資金の損失を防ぎます。
- 🌐 現在、ネイティブUSDCは8つのブロックチェーンで利用でき、CCTPを介してさらに多くのブロックチェーンに展開する予定です。
- 🔁 異なるブロックチェーン間でUSDCを高速で転送可能にし、数分以内で完了するように設計されています。
- 🔄 USDCの転送プロセスは、トークンメッセンジャー契約書による承認、デポジットとバーン、メッセージ送信、そして遡及証明の取得を含みます。
- 🔗 CCTPはシンプルで統一されたバリデーション戦略を採用し、任意のスマートコントラクトブロックチェーンで動作します。
- 🔄 今後のCCTPの開発では、EVMチェーンだけでなく、それ以外のチェーンにも対応するように設計されています。
- 🌐 ユーザーは直接SolanaからArbitrumなどのブロックチェーンにUSDCを転送できるようになります。
- 🔧 CCTPは軽量で組み合わせやすいプロトコルとして設計されており、コミュニティや開発者が上に素晴らしい体験を構築できるようにしています。
- 📚 Circle社の開発者ドキュメントには、CCTPの仕組みや使用方法に関する詳細が記載されており、例アプリケーションでの活用も紹介されています。
Q & A
CTCTPの主な目的は何ですか?
-CTCTP(Circleのクロスチェーン転送プロトコル)の主な目的是は、ユーザーがワンチェーン上でネイティブUSDCをバーンし、別のチェーンで同じ量のUSDCをミントすることを可能にすることです。
ネイティブUSDCを他のブロックチェーンにシームレスに移動することの重要性は何ですか?
-ネイティブUSDCをシームレスに移動することは、ラップされたアセット(大きなハニーポットの原因となる)を避け、ユーザーが異なるUSDCバージョン(ネイティブとラップ)の違いを理解しやすくすることで、カスタマーエクスペリエンスを向上させ、資金の損失を防ぐことにあります。
CTCTPの設計の基盤とは何ですか?
-CTCTPの設計の基盤には3つの要素があります。まず第一に、ネイティブUSDCに焦点を当てること。第二に、リキッドитиの統一化。第三に、高速な転送を実現すること。
CTCTPはどのようにしてクロスチェーン転送を実現するか説明できますか?
-CTCTPは、イーサリアムからアバロア这样的のメッセージを送信する際、イベントがイーサリアムで発生し、アタテストサービスがイベントを観察してメッセージを署名することで実現します。この署名とイベントデータはオフチェーンAPIを通じて取得され、avaxのコントラクトで検証され、メッセージが有効であると信頼できます。
CTCTPがサポートするブロックチェーンは何ですか?
-現在、ネイティブUSDCは8つのブロックチェーンで利用でき、CTCTPは将来さらに多くのチェーンにUSDCを追加する予定です。
CTCTPのバリデーション戦略は何ですか?
-CTCTPのバリデーション戦略はシンプルであり、任意のスマートコントラクトブロックチェーン(EVMチェーンかどうかに関係なく)で動作するように設計されています。
CTCTPがどのようにして高速な取引を実現するか説明できますか?
-CTCTPは、ブロックチェーン間の資金移動において、銀行のような長い待ち時間から離れ、数分以内に資金を移動できるように設計されています。
CTCTPが将来的にどのように進化するかについて説明できますか?
-CTCTPは将来的により多くのブロックチェーンにUSDCを追加し、シンプルで軽量なプロトコルを維持し、開発者コミュニティがその上に素晴らしい体験を構築できるようにします。
デモアプリケーションを使ってCTCTPの機能をどのように示すか?
-デモアプリケーションでは、AvalancheからEthereumにUSDCを転送するプロセスが示されています。これは、トークンメッセンジャーコントラクトの承認、デポジットとバーン機能の実行、CircleのAPIによるアタテストの取得、そして宛先チェーンでのメッセージ受信機能の呼び出しを通じて行われます。
CTCTPを使用する際に参考になる開発者ドキュメントはどこにありますか?
-CTCTPを使用する方法について詳しく説明した開発者ドキュメントは、developers.circle.comにあります。
CTCTPがどのようにしてクロスチェーン転送を簡素化するか?
-CTCTPは、シンプルで軽量なコアプロトコルを提供し、開発者が簡単に組み合わせて使用できるようにすることで、クロスチェーン転送を簡素化しています。また、異なるブロックチェーン間の直接的な資金移動を可能にし、一連のプロセスをスムーズに行うことができます。
Outlines
🚀 導入とCCTPの概要
ビデオスクリプトの第1段落では、ソフトウェアエンジニアのジェフ・デイがCircleのクロスチェーン転送プロトコル(CCTP)について説明しています。CCTPは、ユーザーが一つのチェーンでネイティブUSDCをバーンし、別のチェーンで同じ額のUSDCをマイントすることを可能にします。このプレゼンテーションでは、CCTPの開発理由、高いレベルでの概要、統合ウォークスルー、短いデモなどについて説明します。CCTPの主要な設計原則は、ネイティブUSDCの焦点、流動性の統一、迅速な転送です。また、CCTPはシンプルで拡張性があり、コミュニティや開発者が上に素晴らしい体験を構築できるように設計されています。
🔄 USDCのクロスチェーン転送手順
第2段落では、USDCのクロスチェーン転送の手順について詳しく説明しています。EthereumからAvalancheへのメッセージの送信プロセスを例に取り、イベントの発生源、Attestationサービスによるイベントの確認、Off-chain APIの使用、そしてAVAXのコントラクトでのイベントデータとAttestationの検証プロセスを説明しています。さらに、USDCのクロスチェーン転送の具体的な手順も紹介されており、トークンメッセンジャー契約の承認、Deposit for Burn関数の実行、Attestationの取得、最後にメッセージトランスミッター契約のReceive Message機能の呼び出しが含まれています。デモアプリケーションによる実際の動作も展示されています。
Mindmap
Keywords
💡Circle
💡CCTP (Cross Chain Transfer Protocol)
💡USDC
💡Native USDC
💡Permissionless
💡Liquidity
💡Interoperability
💡Fast Transfers
💡Extensible
💡Attestation Service
💡MetaMask
Highlights
Jeff Day, a software engineer at Circle, presents on Circle's Cross Chain Transfer Protocol (CCTP).
CCTP is a permissionless on-chain utility for cross-chain transfer of native USDC.
The protocol allows burning of native USDC on one chain and minting the same amount on another.
The primary goal of CCTP is seamless movement of native USDC between blockchains without using wrapped assets.
CCTP aims to unify liquidity by eliminating confusion between native and wrapped USDC versions.
The protocol focuses on fast transfers, aiming to move funds between chains within minutes.
Interoperability is a key feature, with native USDC currently on eight blockchains and plans for expansion.
CCTP uses a simple validation strategy compatible with any smart contract blockchain, including non-EVM chains.
The protocol enables direct money movement between two blockchains with native USDC.
CCTP is designed to be extensible, allowing developers to build on top of it.
The presentation includes a high-level overview of how CCTP works, from event emission to message transmission.
A live demo showcases transferring USDC from Avalanche to Ethereum, highlighting the practical application of CCTP.
Developer documentation for CCTP is available at developers.circle.com for those interested in implementing the protocol.
CCTP's design pillars include focus on native USDC, unification of liquidity, fast transfers, interoperability, and extensibility.
The protocol's architecture is designed to avoid wrapped assets, which can be vulnerable to exploits.
CCTP aims to improve user experience by eliminating the need to understand the difference between native and wrapped USDC.
The protocol is built to be lightweight and composable, encouraging community and developer engagement.
CCTP's validation strategy is based on event observation and attestation signing by the attestation service.
The demo application shows the capability of CCTP in a user-friendly interface, facilitating cross-chain transfers.
The presentation concludes with a call to action for developers to explore CCTP's potential through its documentation.
Transcripts
hi everyone my name is Jeff day I'm a
software engineer at Circle uh today I'm
going to be giving a demo on circles
cross chain transfer protocol also known
as cctp a permissionless on chain
utility that will allow users to burn
native usdc on one chain and mint the
same amount on another chain so at a
high level this presentation will cover
the following why we built cctp a high
level overview an integration
walkthrough and a short demo so first
why we built cctp we had a few key
design pillars around which we wanted to
build cctp first a focus on Native usdc
our primary goal was to allow
individuals to seamlessly move native
usdc between blockchains we really want
to move away from any type of wrapped
asset because they create huge honey
pots as we've seen over the past year or
so so the escrow contracts can be
drained and cause a huge loss of funds
second unify liquidity we have a lot of
confusion in customer errors caused on
blockchains where there are two versions
of usdc uh both the native usdc and
wrapped usdc many users are not sure the
difference between them uh or and which
ones you use and this has caused uh poor
ux and lots of customer mistakes uh long
term we want to have native usdc
everywhere and eliminate the usage of
wrapped usdc completely third or fast
transfers we looked around at some of
the existing Bridges and it's really not
a great ux when you need to wait many
hours or maybe even up to a week to move
your money between Chains It's kind of
similar to a bank and that's all what we
want to move away from We Believe moving
money between blockchains should not
take more than a minute or two next
interoperable today native usdc is on
eight blockchains and we are planning to
add usdc to many more chains in the
future
all of these chains are a little
different uh with these differences in
mind our goal was to have a simple
validation strategy that can work on any
smart contract blockchain whether it's
an evm chain or not next many many to
many we wanted to decide the protocol in
a way where money can move directly
between 92 blockchains which both have
native usdc we've built it in a way
where customers will be able to move
money from Solana onto arbitrum directly
without needing to go through each first
which we think is pretty cool last but
not least extensible we wanted to allow
the community and developers to really
build and take this and run with it so
we purposefully keep the core protocol
lightweight and composable in order to
allow all developers to build some
awesome experiences on top of it so now
that we talked about what we wanted to
build let's talk about how we built it a
high level overview in practice let's
consider passing a message from ethereum
to Avalanche at a very high level an
event would first happen on ethereum
which emits some message next our
attestation service will observe the
event happening and sign a message
saying that it is seen event a on eth
anyone can call this off chain API and
say hey Circle I want an attestation for
event a our API will return the event
data along with the attestation
the event data and the attestation can
then be passed into a contract on avax
all the contract needs to do is verify
the author of the signature and then I
can trust that the message is valid and
take whatever step steps it wants to so
let's walk through the steps for a usdc
cross chain transfer
first approve the token messenger
contract to transfer usdc
second you would execute the deposit for
burn function which deposits the user's
usdc to the Token messenger contract
burns the usdc and calls the message
transmitter to pass the message and emit
an event
third uh fetch the attestation for
circles API the message can be fetched
using the message hash from the message
sent event from step two finally call
the receive message function on the
message transmitter contract on the
destination chain to receive usdc at the
original specified address so this is
kind of a higher level uh you know image
of how all the smart contracts interact
basically a diagram that explains what I
just walked through so next we're going
to go through an integration walkthrough
in demo this is a demo application that
we've built to show the capabilities of
cctp at the landing page you can see
I've already connected my metamask
wallet
that holds um some avax and some usdc on
Avalanche so first I'm going to go here
and specify that the source chain that I
want to burn usdc on is Avalanche the
destination chain that I'm going to want
to Mint on is ethereum I'm going to
press this button to copy my wallet
address here so that my usdc ends up in
the same wallet on ethereum let's say we
want to transfer one usdc so we would
hit the next button now this message
will pop up asking to approve the
transfer so I'm going to hit approve
this is popping up a notification from
metamask I'm going to confirm it
[Music]
next we just want to hit send to uh to
uh which will make the deposit for burn
call we mentioned earlier
so that that should also pop up a
metamask notifications you see we're
calling deposit for burn here
so I'm going to confirm that
great uh so now we wait for the burn to
take place on Avalanche and to fetch the
attestation using circles API so this is
just kind of a screen saying that that's
going on in the background
um
so we're going to wait for this to uh
wait wait for the burn and mint to
happen
foreign
great so now we have a notification uh
popping up confirming that we want to
receive uh usdc on at the address that
we specified on the destination chain
ethereum so first we want to switch to
this to the Gurley Network as we were on
the Avalanche test Network and click the
receive button
so this is uh asking us to confirm the
transaction to receive usdc on
gurleyheath we're going to confirm
wait for the transfer to complete
and as you can see our transfer is
completed so if we take a look at our
metamask account now
on ethereum
if we look at assets
we now have one more usdc than we did
here on ethereum if we go back to our
Avalanche
we'll have one fewer usdc
that's that's that's the demo
um going back to the presentation the
last thing I wanted to talk about is
just our developer docs we have some
developer documentation at
developers.circle.com this can really
outline uh it you know how the cross
chain transfer protocol works and also
how you can use it in an example
application so that's the presentation
thanks so much
foreign
5.0 / 5 (0 votes)