取引
指名した買い手のためにトークンのロットを予約し、1 回の購入取引で QTC と交換します。
お互いを信頼しなくても、特定の 1 人にトークンを QTC で売るにはどうすればよいのでしょう?
QLYP-v1 は相対での販売に対応しています。売り手は、指名した 1 人の買い手のために、トークンのロット(ひとまとまりのトークン)を予約します。価格は QTC で固定され、期限となるブロック高も決まっています。ほかのアカウントはこの予約を買えません。一部だけの約定もありません。誰でも買える市場であるオープン出品は開発中です。
現在の提供状況
購入には、信頼された 2 つの証人(ウィットネス)を持つ開発用のデプロイと、その信頼ポリシーを組み込んでビルドしたウォレットが必要です。メインネットでは、購入はまだ無効のままです。以下の流れは、その開発用プロトコルの説明であり、検証済みでメインネットで稼働している市場の説明ではありません。
ロットを予約する
まず、売り手と買い手には、ネイティブの 2-of-2 取引アカウントが必要です。これは買い手ごとに一度だけ作ります。次に売り手は、オファーの提案に署名します。この提案は、資産、数量、買い手、受取アドレス、価格、1% の手数料、期限を約束するものです。QLYP はこのオファーを受け入れたあと、トークンを予約します。予約されたトークンは、ほかへ送金できません。取引アカウントは購入代金を預かりません。ネイティブのアカウントや提案の費用、ネットワーク手数料がかかることがあります。出品に Qlyphs の手数料はかかりません。
- ロット
- 1,000 GLYF
- 価格
- 5 QTC
- 状態
- アカウント準備完了
- 署名者
- あなた
- 署名者
- 署名前に指名
- しきい値
- 2
- 提案 ID
- ブロック記録時に割り当て
- 01 / 04
取引アカウントから始める
売り手と指名された買い手は、ネイティブの 2-of-2 取引アカウントを使います。このアカウントの作成はオファーの提案とは別の手順で、ネイティブの費用がかかることがあります。購入代金は預かりません。
- 02 / 04
正確なオファーを提案する
売り手は、1,000 GLYF を 5 QTC で売るオファー提案に署名します。変更できない条件として、買い手、受取先、Qlyphs 手数料、期限が書かれています。売り手と買い手は、既存の取引アカウントの2人の署名者です。
- 03 / 04
提案を特定する
ネイティブの提案には、その取引アカウントの中で ID が付きます。この ID とネットワーク、マルチシグアカウントを合わせると、予約が特定できます。ウォレットは購入を組み立てる前に、まさにその提案を確認します。
- 04 / 04
予約の確定を待つ
QLYP は有効なオファーを受け入れ、トークンを予約します。買い手は確定を待ってから、購入バッチの中でその提案を検証し、承認します。決済されていない予約は、キャンセルや期限切れで解除されることがあります。
予約されたロットを買う
指名された買い手は、予約が確定するのを待ちます。買い手のウォレットは証人の証明を検証し、ネイティブの提案を確認して、約束された条件どおりに購入を組み立てます。
- 2つの証人が証明
- まだ有効(チェーンで確認)
- 条件はウォレットが作成
- 01 / 05
「Trade」を押す
あるオファーが、あなたのために 1,000 GLYF を 5 QTC で予約しています。買えるのは指名された買い手だけです。アプリは予約キーを使って購入を依頼し、ウォレットはその条件を自分で取得して検証します。
- 02 / 05
ウォレットが証明を求める
ウォレットは、組み込まれた開発用の信頼ポリシーが認める2つの運営者に、証明と署名を求めます。どちらも同じステートルートと、確定済みの同じチェックポイントに結びついている必要があります。証人のコードはそれぞれ別ですが、インフラが独立しているかどうかは運営者が確かめる必要があります。
- 03 / 05
チェーンを自分で確認する
証明が示すのは、あるチェックポイントの状態です。ウォレットは設定されたノードからネイティブの提案も読み、正確な呼び出し、メンバー、承認、期限を確認します。それでも、取引がブロックに入るまでに状態が変わることはあります。
- 04 / 05
支払いを組み立てる
ウォレットは検証したオファーから購入を組み立て、ロット、売り手への支払い、1% の Qlyphs 手数料、ネットワーク手数料を表示します。購入は既存の提案を承認するもので、新しいチケットを作ることも、別の固定チケット料金を払うこともありません。
- 05 / 05
1回の署名で完了
あなたの署名で、1つのアトミックなバッチが承認されます。提案の承認、売り手への支払い、Qlyphs への支払いです。QLYP がトークンを渡すのは、条件に合う有効な購入だけです。ブロックへの取り込み、ネイティブの結果、QLYP による受け入れ、確定を追ってください。ハッシュを送信しただけでは成功ではありません。
購入は、1 つのネイティブなアトミックバッチ(すべて成功するか、すべて取り消されるかの一括処理)です。中身は、その提案そのものを承認する、売り手に支払う、Qlyphs の手数料を支払う、の 3 つです。QLYP が予約されたトークンを買い手に入れるのは、この正規のバッチが必要なイベントを出して成功したときだけです。買い手は価格に加えて 1%(QTC の最小単位に切り上げ)とネットワーク手数料を払います。売り手は価格の全額を受け取ります。
ネイティブのアトミック性が守るのは、承認と QTC の支払いです。トークンの受け渡しはその上に重ねたルールなので、オファーのデータが正しいこと、チェーンのデータが正しく取り込まれること、プロトコルが正しく解釈されることにも左右されます。QTC を手動で送金しても、保護されたトークンの購入にはなりません。
成功した購入に二重に支払うことはない
指名された買い手が最初のネイティブ承認を出せるのは一度だけです。同じ提案への 2 回目の購入は、支払いの前に失敗します。それでもネットワーク手数料はかかることがあります。
- 既存の提案を承認
- 売り手に 5 QTC を支払う
- Qlyphs に 0.05 QTC を支払う
- 既存の提案を承認
- 売り手に 5 QTC を支払う
- Qlyphs に 0.05 QTC を支払う
- 01 / 05
1人の買い手、2回の購入
指名された買い手が、確定済みの同じ予約に対して、ネイティブの nonce が異なる購入を2回送信したとします。これはプロトコル側の防止策を示す例です。結果がわからない取引を、ウォレットが自動で再送してはいけません。
- 02 / 05
1回目が実行される
1回目の取引は、約束された呼び出しそのままで既存の提案を承認します。ネイティブのパレットが、指名された買い手の最初の承認を記録します。
- 03 / 05
購入が通る
同じアトミックなバッチの中で、売り手への支払いと 1% の Qlyphs 手数料の支払いが行われます。条件に合う有効な購入があると、QLYP は予約を買い手に決済します。トークンの解釈は、ネイティブの実行とは別のものです。
- 04 / 05
2回目はロックで止まる
重複した取引が、同じ提案をもう一度承認しようとします。この買い手がすでに承認しているか、提案が削除されているため、ネイティブの承認は失敗します。バッチはどちらの支払いにも進めません。
- 05 / 05
まるごと取り消し
失敗した重複取引は、売り手にも Qlyphs の販売手数料にも支払いません。ネットワーク手数料はかかることがあります。購入をやり直さず、最初の取引のハッシュを保管して、その結果を追ってください。
これは同じ買い手による重複購入の例で、別々の買い手どうしの競争ではありません。送信の結果がわからないときは、そのハッシュを保管して状態を確認してください。再送はしないでください。
キャンセルと期限切れ
売り手は、有効な提案をキャンセルできます。購入より先にキャンセルが処理されれば、承認は失敗し、購入代金は支払われません。購入が先に成功した場合は、あとから後片付けをしても、売れたトークンは売り手に戻りません。期限切れの場合、まだ有効な予約は、期限のブロック高より後の最初のブロックで解除されます。キャンセルや失敗した試みにも、ネットワーク手数料がかかることがあります。