Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id B25CAC0032 for ; Wed, 18 Oct 2023 20:20:24 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 8492941944 for ; Wed, 18 Oct 2023 20:20:24 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 8492941944 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=eDMcvyeR X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -1.848 X-Spam-Level: X-Spam-Status: No, score=-1.848 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j4n1dAMT2ffN for ; Wed, 18 Oct 2023 20:20:18 +0000 (UTC) Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) by smtp2.osuosl.org (Postfix) with ESMTPS id 4F7274010F for ; Wed, 18 Oct 2023 20:20:18 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 4F7274010F Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-6bd0e1b1890so3634228b3a.3 for ; Wed, 18 Oct 2023 13:20:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697660416; x=1698265216; darn=lists.linuxfoundation.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Yqs+tNJhzF1EZ8kd3G6JoWA3OenSpu7lOyGVDGCeaUE=; b=eDMcvyeRMoaPbo1ucJd4gyiY35I0FI3zdULppdG+NkWxIM0bDrRcRyzU5lobB/2HI1 3oMZzonmbF+1/WJOZ8S+Wehs1yaXqswfuooDVKXlKWfEUvtx3NofXk+w57u5puMICbla OyWoepsEWEZvtKl9oKE3CpAT5gvMy7I+pKqDzjEYBtMcobUgmF3gV1GwgE9++76FnD0Z VP+RB+Ka/AAUXcXIbc8X8LOZ7MkeRiEaXL5fex7B+Y99lci46mUZs3xEC7AiLkdbCLEq 44ULCHBKtGPmWf4tSf3IkXr+FTbMv8fShy3nxI0t/pWC6nj4HQUEqB3ODkYJRi+j6P6b 1oqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697660416; x=1698265216; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Yqs+tNJhzF1EZ8kd3G6JoWA3OenSpu7lOyGVDGCeaUE=; b=b6SXqWDGRHWcTkAGpdqYZ6K2igJyCXajnZ4s4qjh1J3jpbxsJZ7X1GoWdk4XiZkiQj RFmySoSLRVGqvjYhkFFN5mISLMGctKtGRfzm1zw5HbPv1mbsYCczxNNBb925HctNClFT HJ+KCESd6e5X6B66oX1GiiImArwSZxgIqSWAxqvPy1IioFgS4vOhWWH/Fjsk88kX3YO0 ptXDg9LfwzqYcRKwQ9rEW1QcqBSk7b52vXCiAAMk/axUBO6zB60C7D2ovXfeoPu5sA20 JY2G/FJTSlreo/VzuzwK3LkzSOWrjYE54G6mV3bRyr+7UJC7F+wJbxqju7nCLAH7AZXp ftWQ== X-Gm-Message-State: AOJu0YwrNqjvv54KGJBNEadWcDoIx00zSrZ/IxNaeCWYqleEm/L0CEUw OJTlfmKzRoJb7BiJI55P8iMOUEvCZgu/XNK0h+WSJOeWKeY= X-Google-Smtp-Source: AGHT+IETO6cIvIMsW7p9tZ73B43kIt+AdpcV6qqQaHquph4GnAnDWZKevf6kAbVrCe78/e/xo63N5w2J+ojW4iUWFT8= X-Received: by 2002:a05:6a20:3ca7:b0:179:f858:784d with SMTP id b39-20020a056a203ca700b00179f858784dmr294316pzj.21.1697660416448; Wed, 18 Oct 2023 13:20:16 -0700 (PDT) MIME-Version: 1.0 From: Olaoluwa Osuntokun Date: Wed, 18 Oct 2023 13:20:03 -0700 Message-ID: To: bitcoin-dev@lists.linuxfoundation.org Content-Type: multipart/alternative; boundary="000000000000125cf50608035ea6" Subject: [bitcoin-dev] Taproot Assets on Mainnet: Announcing tapd v0.3.0-alpha X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Oct 2023 20:20:24 -0000 --000000000000125cf50608035ea6 Content-Type: text/plain; charset="UTF-8" I'm excited to announce tapd v0.3.0-alpha, the first software release that supports the Taproot Asset Protocol on mainnet! The deterministic+reproducible release can be found here: https://github.com/lightninglabs/taproot-assets/releases/tag/v0.3.0 Our launch blog post can be found here: https://lightning.engineering/posts/2023-10-18-taproot-assets-v0.3/ For those interested in keeping tabs on usage/activity of the protocol, we're running two Universes servers: * mainnet: https://universe.lightning.finance/v1/taproot-assets/universe/roots * testnet: https://testnet.universe.lightning.finance/v1/taproot-assets/universe/roots REST API documentation for the Universe servers can be found here: https://lightning.engineering/api-docs/api/taproot-assets/rest-endpoints. Users can also interact directly via gRPC as well. Users can run their own Universe server, and also federate with other universe servers using the relevant as of command (`tapcli universe federation`). A technical specification for the Universe/Multiverse protocol can be found here in the BIP: https://github.com/Roasbeef/bips/blob/bip-tap-pr/bip-tap-universe.mediawiki. At a high level, a Universe server is used by clients to verify new asset issuance, archive off-chain transaction data, and transmit proof information for transfers. A Universe data structure is an authenticated merkle-sum sparse merkle tree that maps an `(outpoint, scriptKey)` tuple to proof data. A `scriptKey` is the protocol's version of the pkScript/scriptPubkey we all know and love today. In the initial version of the protocol, the `scriptKey` is actually just a normal taproot output public key. Ultimately, Bitcoin transactions are signed+verified under the hood, as we map a logical state transition to a 1-in-1-out Bitcoin transaction. The mapping from an asset state transition to a "virtual" transaction can be found here: https://github.com/Roasbeef/bips/blob/bip-tap-pr/bip-tap-vm.mediawiki. One cool thing about reusing Bitcoin Script in the first asset script version is that higher level applications can use a familiar PSBT like structure (vPSBTs) to construct off-chain multi-party interactions. Here's an example of using PSTBs, vPSBTs, and `SIGHASH_NONE` (on the TAP layer) to construct a protocol for non-interactive, non-custodial swaps: https://github.com/lightninglabs/taproot-assets/issues/577. We look forward to experimentation and feedback for this mainnet alpha release to continue to evolve and improve the protocol! Thanks to all those that experimented with earlier versions, providing the critical feedback that made this release possible. Onwards! -- Laolu --000000000000125cf50608035ea6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I'm excited to announce tapd v0.3.0-alpha, the first s= oftware release=C2=A0that
supports the Taproot Asset Protocol on mainnet= !=C2=A0

The deterministic+reproducible release can be found here:https://github.com/lightninglabs/taproot-assets/releases/tag/v0.3.0

Our launch blog post can be found here:
https://lightning= .engineering/posts/2023-10-18-taproot-assets-v0.3/

For those int= erested in keeping tabs on usage/activity of the protocol,
we're run= ning two Universes servers:

=C2=A0 * mainnet: https://universe.= lightning.finance/v1/taproot-assets/universe/roots

=C2=A0 * test= net: https://testnet.universe.lightning.finance/v1/taproot-ass= ets/universe/roots

REST API documentation for the Universe serve= rs can be found here:
https://lightning.engineering/api-docs/a= pi/taproot-assets/rest-endpoints.
Users can also interact directly v= ia gRPC as well.

Users can run their own Universe server, and also f= ederate with other
universe servers using the relevant as of command (`t= apcli universe
federation`).

A technical specification for the Un= iverse/Multiverse protocol can be found
here in the BIP:
https://github.com/Roasbeef/bips/blob/bip-tap-pr/bip-tap-universe.mediawik= i.

At a high level, a Universe server is used by clients to veri= fy new asset
issuance, archive off-chain transaction data, and transmit = proof information
for transfers. A Universe data structure is an authent= icated merkle-sum
sparse merkle tree that maps an `(outpoint, scriptKey)= ` tuple to proof data.
A `scriptKey` is the protocol's version of th= e pkScript/scriptPubkey we all
know and love today.

In the initi= al version of the protocol, the `scriptKey` is actually just a
normal ta= proot output public key. Ultimately, Bitcoin transactions are
signed+ver= ified under the hood, as we map a logical state transition to a
1-in-1-o= ut Bitcoin transaction. The mapping from an asset state transition
to a = "virtual" transaction can be found here:
https://github= .com/Roasbeef/bips/blob/bip-tap-pr/bip-tap-vm.mediawiki.

One coo= l thing about reusing Bitcoin Script in the first asset script
version i= s that higher level applications can use a familiar PSBT like
structure = (vPSBTs) to construct off-chain multi-party interactions. Here's
an = example of using PSTBs, vPSBTs, and `SIGHASH_NONE` (on the TAP layer) toconstruct a protocol for non-interactive, non-custodial swaps:
https://git= hub.com/lightninglabs/taproot-assets/issues/577.

We look forward= to experimentation and feedback for this mainnet alpha
release to conti= nue to evolve and improve the protocol! Thanks to all those
that experim= ented with earlier versions, providing the critical feedback
that made t= his release possible.

Onwards!

-- Laolu
--000000000000125cf50608035ea6--