Bitcoin Forum
May 05, 2024, 08:56:33 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: [Edukasi] Proses Transaksi & Block di Jaringan Blockchain Bitcoin  (Read 663 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
Chikito
Legendary
*
Offline Offline

Activity: 2380
Merit: 2054



View Profile WWW
March 06, 2024, 03:05:54 AM
 #21

Untuk membuat Taproot address serta melakukan sebuah transaksi Taproot hanya bisa dilakukan dengan Descriptor Wallet
Selain bitcoin core, taproot address bisa juga dibuat menggunakan sparrow wallet, hal ini pernah saya bahas pada april 2022 lalu [1]. Mungkin awal-awal dulu tidak banyak faucet yang bisa nerima taproot address versi testnet, sehingga agak minim untuk melakukan penelitian kayak sekarang. Namun sekarang ini sudah banyak wallet yang support karena banyaknya token-token sempalan di bitcoin blockchain kayak brc20 dan ordinal yang bikin macet lalu lintas jaringan.

[1]. [Introduction] Sparrow for bitcoin Wallet (Taproot Address)
[2]. Taproot

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
1714899393
Hero Member
*
Offline Offline

Posts: 1714899393

View Profile Personal Message (Offline)

Ignore
1714899393
Reply with quote  #2

1714899393
Report to moderator
Unlike traditional banking where clients have only a few account numbers, with Bitcoin people can create an unlimited number of accounts (addresses). This can be used to easily track payments, and it improves anonymity.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714899393
Hero Member
*
Offline Offline

Posts: 1714899393

View Profile Personal Message (Offline)

Ignore
1714899393
Reply with quote  #2

1714899393
Report to moderator
1714899393
Hero Member
*
Offline Offline

Posts: 1714899393

View Profile Personal Message (Offline)

Ignore
1714899393
Reply with quote  #2

1714899393
Report to moderator
1714899393
Hero Member
*
Offline Offline

Posts: 1714899393

View Profile Personal Message (Offline)

Ignore
1714899393
Reply with quote  #2

1714899393
Report to moderator
Husna QA
Legendary
*
Offline Offline

Activity: 2268
Merit: 2863


#SWGT CERTIK Audited


View Profile WWW
March 06, 2024, 04:52:16 AM
 #22

Untuk membuat Taproot address serta melakukan sebuah transaksi Taproot hanya bisa dilakukan dengan Descriptor Wallet
Selain bitcoin core, taproot address bisa juga dibuat menggunakan sparrow wallet, hal ini pernah saya bahas pada april 2022 lalu [1]. Mungkin awal-awal dulu tidak banyak faucet yang bisa nerima taproot address versi testnet, sehingga agak minim untuk melakukan penelitian kayak sekarang. Namun sekarang ini sudah banyak wallet yang support karena banyaknya token-token sempalan di bitcoin blockchain kayak brc20 dan ordinal yang bikin macet lalu lintas jaringan.

[1]. [Introduction] Sparrow for bitcoin Wallet (Taproot Address)
[2]. Taproot


Yang saya pahami dari konteks penyebutan Taproot hanya bisa di Descriptor wallet oleh agan z@punk di atas mengacu jika menggunakan wallet Bitcoin Core.
Dengan kata lain Legacy wallet di Bitcoin Core tidak bisa menghasilkan address Taproot dan tidak bisa digunakan untuk transaksi dengan tipe address Bitcoin tersebut.



Nampak pada screenshot tidak ada opsi Taproot ketika menggunakan Legacy wallet.

Sementara itu, mengenai wallet mana saja yang sudah support transaksi menggunakan Taproot address (Bech32m/P2TR), bisa juga dilihat di sini:
https://en.bitcoin.it/wiki/Bech32_adoption

punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
March 06, 2024, 08:17:39 AM
Last edit: April 21, 2024, 04:57:37 AM by punk.zink
Merited by Husna QA (2)
 #23

=== Tantangan Taproot === [Ended]

- Jaringan : Bitcoin Testnet
- Membuat MultiSig Taproot Address (2-of-2)
- Import MultiSig Taproot Address (2-of-2) ke Bitcoin Core
- Membuat Transaksi MultiSig (2-of-2) menggunakan UTXO* dari MultiSig Taproot Address (2-of-2)
* Agar MultiSig Taproot Address (2-of-2) memiliki UTXO, maka harus dibuat transaksi (lain) dimana MultiSig Taproot Address (2-of-2) sebagai address penerima

Posting (tanda keikutsertaan terhadap Tantangan Taproot)
1. MultiSig Taproot Address (2-of-2)
2. TXID dari transaksi MultiSig (2-of-2) yang dibuat
3. Proof yang menyatakan MultiSig Taproot Address (2-of-2) berhasil di import ke Bitcoin Core (testnet) (screenshot dari Receiving Address)


Contoh :

1. MultiSig Taproot Address (2-of-2) tb1pup9ut295a0j72hyje8h4ktnk9kls7jegfn5jl6kpun4scqfpe7gsg8m6p2
2. TXID ccac49ac2cdedb60c53e107b8e735790ad0be4968761cb02776dcc68e079522a
3. Proof



- Masing-masing peserta yang bisa menyelesaikan tantangan akan mendapatkan 5 merit

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
March 06, 2024, 08:55:54 AM
Last edit: March 06, 2024, 09:08:15 AM by punk.zink
 #24

Nampaknya ada yang sedang ber-eksperimen dengan Tantangan Taproot, namun malah salah sasaran dengan mengirimkan tBTC ke address contoh
https://mempool.space/testnet/tx/86564cc1ed6f7c3664f7584ae812c4a4f23e34f141854aa93d1f20066440c4f9

Masing-masing peserta membuat MultiSig Taproot Address (2-of-2) dan import address tersebut ke Bitcoin Core testnet
Setelah itu kirimkan tBTC ke MultiSig Taproot Address (2-of-2) yang anda buat (misal dihasilkan TXID A)
Lalu buat Transaksi MultiSig (2-of-2) dengan input yang menggunakan TXID A sebagai UTXO (transaksi ini akan menghasilkan txid, misal TXID B)

Yang diposting calon peserta:
1. MultiSig Taproot Address (2-of-2) yang dibuat oleh masing-masing peserta
2. TXID B (txid dari Transaksi MultiSig (2-of-2))
3. Screenshoot dari Receiving Address di Wallet Bicoin Core (yang merupakan MultiSig Taproot Address (2-of-2) yang dibuat oleh masing-masing peserta)



edited:

Untuk seseorang : tBTC yang dikirimkan ke address contoh sudah saya kirim balik ke Address tb1qpz42mxgklwkxhefj7ryg25788kftlx6p9xphgh

https://mempool.space/testnet/tx/e9bfad68aca2842cf0347cc1f4689fcc8ae8db12aae51b3626b879ecb3da6e23

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
March 09, 2024, 07:09:39 AM
 #25

Taproot yang mengimplementasikan MAST Protocol memberikan keuntungan yang cukup besar pada saat membuat sebuah transaksi, dimana dalam hal ini sebuah transaksi jadi memiliki use case dan opsi yang lebih beragam. Dengan adanya MAST Protocol maka untuk setiap penggunaan UTXO (output dari Transaksi yang belum digunakan) bisa didasarkan pada struktur script dari sebuah Merkle Tree (script Tree), sementara script yang disusun dalam script Tree tersebut disebut dengan istilah Tapscript.

Sebelum Taproot direlease, jika kita ingin membuat sebuah Transaksi Multisig pada format transaksi P2SH maupun P2WSH, maka untuk bisa menggunakan UTXO pada transaksi tersebut diperlukan signature dari masing-masing Key yang terkorelasi. Sementara pada Taproot, memungkinkan bagi suatu transaksi yang dalam penggunaan UTXO-nya diwakili oleh proses MultiSig atau menggunakan metode unlocking lainnya yang didasarkan pada Tapscript yang sudah dituliskan di script Tree.

Untuk detail lebih lanjut, maka akan saya berikan contoh pembuatan sebuah Taproot Address yang menggunakan dasar Script path spends, dimana pada struktur script Tree memiliki 2 Tapscript dengan fungsi yang berbeda. Tascript pertama merupakan unlocking-script berdasarkan proses Multisig 2-of-2, sementara untuk Tapscript kedua merupakan unlocking-script yang didasarkan pada signature dari dari sebuah Private Key.

Contoh kasus penggunaan Script path spends diatas bisa dijadikan opsi bagi seseorang (Owner contohnya) yang memiliki 2 wakil terpecaya, dimana untuk setiap transaksi yang dibuat bisa dilakukan oleh 2 wakil tersebut dengan masing-masing melakukan "sign" secara terpisah atau transaksi bisa dilakukan cukup dengan hanya mendapatkan "sign" dari si Owner sendiri. Sementara untuk pembuatan Taproot address dan transaksi, bisa dilakukan oleh pihak ke-4 (sekretaris misalnya  Grin).



Transaksi Taproot dengan 2 opsi Script path spends


Bahan
  • 3 Extended Private Key untuk masing-masing : Owner, Signer 1 dan Signer 2
  • 1 Extended Public Key sebagai Internal Key (dalam bentuk X-Only PubKey)
  • Node JS dan bitcoinjs-lib (serta beberapa library JavaScript lainnya))

Membuat Address

- Untuk masing-masing node harus selalu menampilkan (provide) library dibawah ini, dalam setiap prosesnya
Code:
import * as bitcoin from "bitcoinjs-lib";
import { BIP32Factory } from 'bip32';
import * as bip39 from 'bip39';
import * as ecc from "tiny-secp256k1";
const testnet = bitcoin.networks.testnet;
import pkg from 'bip174/src/lib/interfaces.js';
const { PsbtInput, TapLeaf, TapLeafScript } = pkg;
import { LEAF_VERSION_TAPSCRIPT } from 'bitcoinjs-lib/src/payments/bip341.js';
import { toXOnly, tapTreeToList, tapTreeFromList } from 'bitcoinjs-lib/src/psbt/bip371.js';
bitcoin.initEccLib(ecc);
const bip32 = BIP32Factory(ecc);


- Mendapatkan X-Only PubKey dari masing-masing: Owner, Signer 1 dan Signer 2

  • Owner
Code:
const xprivOwner = 'tprv8ZgxMBicQKsPduxxxxxxxxxxxxxxxxCueWfakJRjEbiJKTwgx';
const OwnerKey = bip32.fromBase58(xprivOwner, bitcoin.networks.testnet);
const ownerPubkeys = toXOnly(OwnerKey.publicKey).toString('hex');

console.log("PubKey Owner: " + ownerPubkeys)

  • Signer 1
Code:
const xprivleafKey1 = 'tprv8ZgxMBicQKsPe9xxxxxxxxxxxxxxxxxx2nLLNwKkpfbPq91W';
const leafKey1 = bip32.fromBase58(xprivleafKey1, bitcoin.networks.testnet);
const leafPubkeys1 = toXOnly(leafKey1.publicKey).toString('hex');

console.log("signerPubkeys1: " + leafPubkeys1);

  • Signer 2
Code:
const xprivleafKey2 = 'tprv8ZgxMBicQKsPeMxxxxxxxxxxxxxABFVfaGRRwz9vqDnwSK2';
const leafKey2 = bip32.fromBase58(xprivleafKey2, bitcoin.networks.testnet);
const leafPubkeys2 = toXOnly(leafKey2.publicKey).toString('hex');

console.log("signerPubkeys2: " + leafPubkeys2);


- Membuat Address di Node Operator
Code:
const xpubKey = 'tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9';
const internalKey = bip32.fromBase58(xpubKey, bitcoin.networks.testnet);

const ownerPubkeys = '6d966f42e1672c8ebd5224f48bb67ae698ee2a11aa84bd8eeebae06457822bb8';
const ownerAsm = `${ownerPubkeys} OP_CHECKSIG`;
const ownerScript = bitcoin.script.fromASM(ownerAsm);

const signerPubkeys1 = '8a30b94ede9dcb8831339b8cd68856b52f745164c944f1b46cb2832b6c3d9468';
const signerPubkeys2 = '5b7955d831a41e5c4d4cf7dc07f4d8463c96f2492e0d2633df2d01d3074de2d2';
const leafScriptAsm = `${signerPubkeys2} OP_CHECKSIG ${signerPubkeys1} OP_CHECKSIGADD OP_2 OP_NUMEQUAL`;
const leafScript = bitcoin.script.fromASM(leafScriptAsm);

const scriptTree = [{ output: leafScript },{ output: ownerScript }];

const { output, address, witness } = bitcoin.payments.p2tr({
 internalPubkey: toXOnly(internalKey.publicKey),
          scriptTree,
          network: testnet,
    });

console.log(address);
Code:
tb1p2dk7yuq5rqt5jt2dr2njjrsdv2g5d6lxszc8c8herd6k2gd00w5ql574z6


MembuatTransaksi dengan opsi spending MultiSig (Signer 1 dan Signer 2)

- Operator
Code:
const xpubKey = 'tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9';
const internalKey = bip32.fromBase58(xpubKey, bitcoin.networks.testnet);

const ownerPubkeys = '6d966f42e1672c8ebd5224f48bb67ae698ee2a11aa84bd8eeebae06457822bb8';
const ownerAsm = `${ownerPubkeys} OP_CHECKSIG`;
const ownerScript = bitcoin.script.fromASM(ownerAsm);

const signerPubkeys1 = '8a30b94ede9dcb8831339b8cd68856b52f745164c944f1b46cb2832b6c3d9468';
const signerPubkeys2 = '5b7955d831a41e5c4d4cf7dc07f4d8463c96f2492e0d2633df2d01d3074de2d2';
const leafScriptAsm = `${signerPubkeys2} OP_CHECKSIG ${signerPubkeys1} OP_CHECKSIGADD OP_2 OP_NUMEQUAL`;
const leafScript = bitcoin.script.fromASM(leafScriptAsm);

const scriptTree = [{ output: leafScript },{ output: ownerScript }];

const redeem = {output: leafScript, redeemVersion: LEAF_VERSION_TAPSCRIPT};
const { output, address, witness } = bitcoin.payments.p2tr({
 internalPubkey: toXOnly(internalKey.publicKey),
          scriptTree,
 redeem,
          network: testnet,
    });

    const psbt = new bitcoin.Psbt({ network: testnet });
      psbt.addInput({
      hash: '503eec63c75856eb07afe77d70d3e2dafbbbf4b79620aecad77bdbcbfe7c64f1',
      index: 0,
      sequence: 0xfffffffd,
      witnessUtxo: { value: 6000, script: output },
    });
    psbt.updateInput(0, {
      tapLeafScript: [
        {
          leafVersion: redeem.redeemVersion,
          script: redeem.output,
          controlBlock: witness[witness.length - 1],
        },
      ],
    });

    psbt.addOutput({ value: 5000, address: 'tb1p40hzwygkq4mmm6ma6e60003wj8ajx5rf2zqgj266zrcz4q573a2qj4uxa2' });

const psbtBaseText = psbt.toBase64();
console.log(psbtBaseText);
Code:
cHNidP8BAF4CAAAAAfFkfP7L23vXyq4glrf0u/va4tNwfeevB+tWWMdj7D5QAAAAAAD/////AYgTAAAAAAAAIlEgq+4nERYFd73rfdZ0974ukfsjUGlQgIkrWhDwKoKej1QAAAAAAAEBK3AXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6hCFcAzSQvwke9DYlTYXfRMck3bo29xvGYMdkl1qrANcfi2Cwy+HkXt24UDL8NETuPjZsq8jWkEXsRTYJIKq88z6B+QRyBbeVXYMaQeXE1M99wH9NhGPJbySS4NJjPfLQHTB03i0qwgijC5Tt6dy4gxM5uM1ohWtS90UWTJRPG0bLKDK2w9lGi6UpzAAAA=

- Signer 1
Code:
const xprivleafKey1 = 'tprv8ZgxMBicQKsPe9xxxxxxxxxxxxxxxxxx2nLLNwKkpfbPq91W';
const leafKey1 = bip32.fromBase58(xprivleafKey1, bitcoin.networks.testnet);
const leafPubkeys1 = toXOnly(leafKey1.publicKey).toString('hex');

const psbtBaseText = 'cHNidP8BAF4CAAAAAfFkfP7L23vXyq4glrf0u/va4tNwfeevB+tWWMdj7D5QAAAAAAD/////AYgTAAAAAAAAIlEgq+4nERYFd73rfdZ0974ukfsjUGlQgIkrWhDwKoKej1QAAAAAAAEBK3AXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6hCFcAzSQvwke9DYlTYXfRMck3bo29xvGYMdkl1qrANcfi2Cwy+HkXt24UDL8NETuPjZsq8jWkEXsRTYJIKq88z6B+QRyBbeVXYMaQeXE1M99wH9NhGPJbySS4NJjPfLQHTB03i0qwgijC5Tt6dy4gxM5uM1ohWtS90UWTJRPG0bLKDK2w9lGi6UpzAAAA=';
const signer1 = bitcoin.Psbt.fromBase64(psbtBaseText);
signer1.signInput(0, leafKey1);
const s1text = signer1.toBase64();
console.log(s1text);
Code:
cHNidP8BAF4CAAAAAfFkfP7L23vXyq4glrf0u/va4tNwfeevB+tWWMdj7D5QAAAAAAD/////AYgTAAAAAAAAIlEgq+4nERYFd73rfdZ0974ukfsjUGlQgIkrWhDwKoKej1QAAAAAAAEBK3AXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6hBFIowuU7encuIMTObjNaIVrUvdFFkyUTxtGyygytsPZRok7gNaaaDtCpJyM5GhvRzAcyKePQaVyILPVPtpGk/yh1AAAkxDsWe8OnaFRJij+PQE8kIgzulwzZp+YawGXz/N2zvWetSDHJNS2SDi/r3y7lGlShsyuA4j//6fjx3fi39mkIVwDNJC/CR70NiVNhd9ExyTdujb3G8Zgx2SXWqsA1x+LYLDL4eRe3bhQMvw0RO4+NmyryNaQRexFNgkgqrzzPoH5BHIFt5VdgxpB5cTUz33Af02EY8lvJJLg0mM98tAdMHTeLSrCCKMLlO3p3LiDEzm4zWiFa1L3RRZMlE8bRssoMrbD2UaLpSnMAAAA==

- Signer 2
Code:
const xprivleafKey2 = 'tprv8ZgxMBicQKsPeMxxxxxxxxxxxxxABFVfaGRRwz9vqDnwSK2';
const leafKey2 = bip32.fromBase58(xprivleafKey2, bitcoin.networks.testnet);
const leafPubkeys2 = toXOnly(leafKey2.publicKey).toString('hex');

const psbtBaseText = 'cHNidP8BAF4CAAAAAfFkfP7L23vXyq4glrf0u/va4tNwfeevB+tWWMdj7D5QAAAAAAD/////AYgTAAAAAAAAIlEgq+4nERYFd73rfdZ0974ukfsjUGlQgIkrWhDwKoKej1QAAAAAAAEBK3AXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6hCFcAzSQvwke9DYlTYXfRMck3bo29xvGYMdkl1qrANcfi2Cwy+HkXt24UDL8NETuPjZsq8jWkEXsRTYJIKq88z6B+QRyBbeVXYMaQeXE1M99wH9NhGPJbySS4NJjPfLQHTB03i0qwgijC5Tt6dy4gxM5uM1ohWtS90UWTJRPG0bLKDK2w9lGi6UpzAAAA=';
const signer2 = bitcoin.Psbt.fromBase64(psbtBaseText);
signer2.signInput(0, leafKey2);
const s2text = signer2.toBase64();
console.log(s2text);
Code:
cHNidP8BAF4CAAAAAfFkfP7L23vXyq4glrf0u/va4tNwfeevB+tWWMdj7D5QAAAAAAD/////AYgTAAAAAAAAIlEgq+4nERYFd73rfdZ0974ukfsjUGlQgIkrWhDwKoKej1QAAAAAAAEBK3AXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6hBFFt5VdgxpB5cTUz33Af02EY8lvJJLg0mM98tAdMHTeLSk7gNaaaDtCpJyM5GhvRzAcyKePQaVyILPVPtpGk/yh1AS3lC0idY+mWKk5QqyvpyLlNZDCFtAFzVGuzvA8VLsfvQO28bRiw+hjJa6m05sJH4KwQX8GiAX17sfiMjnvNJUEIVwDNJC/CR70NiVNhd9ExyTdujb3G8Zgx2SXWqsA1x+LYLDL4eRe3bhQMvw0RO4+NmyryNaQRexFNgkgqrzzPoH5BHIFt5VdgxpB5cTUz33Af02EY8lvJJLg0mM98tAdMHTeLSrCCKMLlO3p3LiDEzm4zWiFa1L3RRZMlE8bRssoMrbD2UaLpSnMAAAA==

- Kembali ke Operator (tuliskan perintah ini dibawah perintah-perintah lain yang sebelumnya sudah dituliskan di atas)
Code:
// const psbtBaseText = psbt.toBase64(); (tanda // bisa ditambahkan agar perintah tidak dieksekusi oleh Node JS)
// console.log(psbtBaseText);

const s1text = 'cHNidP8BAF4CAAAAAfFkfP7L23vXyq4glrf0u/va4tNwfeevB+tWWMdj7D5QAAAAAAD/////AYgTAAAAAAAAIlEgq+4nERYFd73rfdZ0974ukfsjUGlQgIkrWhDwKoKej1QAAAAAAAEBK3AXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6hBFIowuU7encuIMTObjNaIVrUvdFFkyUTxtGyygytsPZRok7gNaaaDtCpJyM5GhvRzAcyKePQaVyILPVPtpGk/yh1AAAkxDsWe8OnaFRJij+PQE8kIgzulwzZp+YawGXz/N2zvWetSDHJNS2SDi/r3y7lGlShsyuA4j//6fjx3fi39mkIVwDNJC/CR70NiVNhd9ExyTdujb3G8Zgx2SXWqsA1x+LYLDL4eRe3bhQMvw0RO4+NmyryNaQRexFNgkgqrzzPoH5BHIFt5VdgxpB5cTUz33Af02EY8lvJJLg0mM98tAdMHTeLSrCCKMLlO3p3LiDEzm4zWiFa1L3RRZMlE8bRssoMrbD2UaLpSnMAAAA==';
const s2text = 'cHNidP8BAF4CAAAAAfFkfP7L23vXyq4glrf0u/va4tNwfeevB+tWWMdj7D5QAAAAAAD/////AYgTAAAAAAAAIlEgq+4nERYFd73rfdZ0974ukfsjUGlQgIkrWhDwKoKej1QAAAAAAAEBK3AXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6hBFFt5VdgxpB5cTUz33Af02EY8lvJJLg0mM98tAdMHTeLSk7gNaaaDtCpJyM5GhvRzAcyKePQaVyILPVPtpGk/yh1AS3lC0idY+mWKk5QqyvpyLlNZDCFtAFzVGuzvA8VLsfvQO28bRiw+hjJa6m05sJH4KwQX8GiAX17sfiMjnvNJUEIVwDNJC/CR70NiVNhd9ExyTdujb3G8Zgx2SXWqsA1x+LYLDL4eRe3bhQMvw0RO4+NmyryNaQRexFNgkgqrzzPoH5BHIFt5VdgxpB5cTUz33Af02EY8lvJJLg0mM98tAdMHTeLSrCCKMLlO3p3LiDEzm4zWiFa1L3RRZMlE8bRssoMrbD2UaLpSnMAAAA==';

const sign1 = bitcoin.Psbt.fromBase64(s1text);
const sign2 = bitcoin.Psbt.fromBase64(s2text);
psbt.combine(sign1, sign2);
psbt.finalizeAllInputs();
const tx = psbt.extractTransaction();
const rawTx = tx.toBuffer();
const hex = rawTx.toString('hex');
console.log(hex);
Code:
02000000000101f1647cfecbdb7bd7caae2096b7f4bbfbdae2d3707de7af07eb5658c763ec3e500000000000ffffffff018813000000000000225120abee2711160577bdeb7dd674f7be2e91fb2350695080892b5a10f02a829e8f5404400009310ec59ef0e9da1512628fe3d013c908833ba5c33669f986b0197cff376cef59eb520c724d4b64838bfaf7cbb94695286ccae0388ffffa7e3c777e2dfd9a404b7942d22758fa658a93942acafa722e53590c216d005cd51aecef03c54bb1fbd03b6f1b462c3e86325aea6d39b091f82b0417f068805f5eec7e23239ef3495046205b7955d831a41e5c4d4cf7dc07f4d8463c96f2492e0d2633df2d01d3074de2d2ac208a30b94ede9dcb8831339b8cd68856b52f745164c944f1b46cb2832b6c3d9468ba529c41c033490bf091ef436254d85df44c724ddba36f71bc660c764975aab00d71f8b60b0cbe1e45eddb85032fc3444ee3e366cabc8d69045ec45360920aabcf33e81f9000000000

- Selanjutnya tinggal mengirimkan RAW Transaction diatas ke jaringan Bitcoin Testnet

- TXID b402e905a9c323868f8d69fbd3be9061e2fca6a7f0e5ed628cf1bbf8ed8dd1a7

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
March 09, 2024, 07:32:03 AM
 #26

MembuatTransaksi dengan opsi spending menggunakan Signature Owner Key

- Node Operator

Code:
import * as bitcoin from "bitcoinjs-lib";
import { BIP32Factory } from 'bip32';
import * as bip39 from 'bip39';
import * as ecc from "tiny-secp256k1";
const testnet = bitcoin.networks.testnet;
import pkg from 'bip174/src/lib/interfaces.js';
const { PsbtInput, TapLeaf, TapLeafScript } = pkg;
import { LEAF_VERSION_TAPSCRIPT } from 'bitcoinjs-lib/src/payments/bip341.js';
import { toXOnly, tapTreeToList, tapTreeFromList } from 'bitcoinjs-lib/src/psbt/bip371.js';
bitcoin.initEccLib(ecc);
const bip32 = BIP32Factory(ecc);

const xpubKey = 'tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9';
const internalKey = bip32.fromBase58(xpubKey, bitcoin.networks.testnet);

const ownerPubkeys = '6d966f42e1672c8ebd5224f48bb67ae698ee2a11aa84bd8eeebae06457822bb8';
const ownerAsm = `${ownerPubkeys} OP_CHECKSIG`;
const ownerScript = bitcoin.script.fromASM(ownerAsm);

const signerPubkeys1 = '8a30b94ede9dcb8831339b8cd68856b52f745164c944f1b46cb2832b6c3d9468';
const signerPubkeys2 = '5b7955d831a41e5c4d4cf7dc07f4d8463c96f2492e0d2633df2d01d3074de2d2';
const leafScriptAsm = `${signerPubkeys2} OP_CHECKSIG ${signerPubkeys1} OP_CHECKSIGADD OP_2 OP_NUMEQUAL`;
const leafScript = bitcoin.script.fromASM(leafScriptAsm);

const scriptTree = [{ output: leafScript },{ output: ownerScript }];

const redeem = {output: ownerScript, redeemVersion: LEAF_VERSION_TAPSCRIPT};
const { output, address, witness } = bitcoin.payments.p2tr({
  internalPubkey: toXOnly(internalKey.publicKey),
          scriptTree,
          redeem,
          network: testnet,
    });

// console.log(address);

    const psbt = new bitcoin.Psbt({ network: testnet });
    psbt.addInput({
      hash: '46d95f4c9f40a94f2225f8ec69931615ff673164060a0f1f5b41c112a720d7fb',
      index: 0,
      sequence: 0xfffffffd,
      witnessUtxo: { value: 7878, script: output },
    });
    psbt.updateInput(0, {
      tapLeafScript: [
        {
          leafVersion: redeem.redeemVersion,
          script: redeem.output,
          controlBlock: witness[witness.length - 1],
        },
      ],
    });

    psbt.addOutput({ value: 6000, address: 'tb1p2dk7yuq5rqt5jt2dr2njjrsdv2g5d6lxszc8c8herd6k2gd00w5ql574z6' });
    psbt.addOutput({ value: 1000, address: 'tb1p40hzwygkq4mmm6ma6e60003wj8ajx5rf2zqgj266zrcz4q573a2qj4uxa2' });

const psbtBaseText = psbt.toBase64();
console.log(psbtBaseText);

Hasil PSBT
Code:
cHNidP8BAIkCAAAAAfvXIKcSwUFbHw8KBmQxZ/8VFpNp7PglIk+pQJ9MX9lGAAAAAAD/////AnAXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6joAwAAAAAAACJRIKvuJxEWBXe9633WdPe+LpH7I1BpUICJK1oQ8CqCno9UAAAAAAABASvGHgAAAAAAACJRIFNt4nAUGBdJLU0apykODWKRRuvmgLB8HvkbdWUhr3uoQhXAM0kL8JHvQ2JU2F30THJN26NvcbxmDHZJdaqwDXH4tguTuA1ppoO0KknIzkaG9HMBzIp49BpXIgs9U+2kaT/KHSMgbZZvQuFnLI69UiT0i7Z65pjuKhGqhL2O7rrgZFeCK7iswAAAAA==



- Owner (proses Sign PSBT yang dibuat oleh node Operator)

Code:
import { BIP32Factory } from 'bip32';
import * as bip39 from 'bip39';
import * as ecc from "tiny-secp256k1";
import * as bitcoin from "bitcoinjs-lib";
const testnet = bitcoin.networks.testnet;
import pkg from 'bip174/src/lib/interfaces.js';
const { PsbtInput, TapLeaf, TapLeafScript } = pkg;
import { LEAF_VERSION_TAPSCRIPT } from 'bitcoinjs-lib/src/payments/bip341.js';
import { toXOnly, tapTreeToList, tapTreeFromList } from 'bitcoinjs-lib/src/psbt/bip371.js';
bitcoin.initEccLib(ecc);
const bip32 = BIP32Factory(ecc);

const xprivOwner = 'tprv8ZgxMBicQKsPduxxxxxxxxxxxxxxxxCueWfakJRjEbiJKTwgx';
const OwnerKey = bip32.fromBase58(xprivOwner, bitcoin.networks.testnet);
const ownerPubkeys = toXOnly(OwnerKey.publicKey).toString('hex');

// console.log("PubKey Owner: " + ownerPubkeys); 6d966f42e1672c8ebd5224f48bb67ae698ee2a11aa84bd8eeebae06457822bb8

const psbtBaseText = 'cHNidP8BAIkCAAAAAfvXIKcSwUFbHw8KBmQxZ/8VFpNp7PglIk+pQJ9MX9lGAAAAAAD/////AnAXAAAAAAAAIlEgU23icBQYF0ktTRqnKQ4NYpFG6+aAsHwe+Rt1ZSGve6joAwAAAAAAACJRIKvuJxEWBXe9633WdPe+LpH7I1BpUICJK1oQ8CqCno9UAAAAAAABASvGHgAAAAAAACJRIFNt4nAUGBdJLU0apykODWKRRuvmgLB8HvkbdWUhr3uoQhXAM0kL8JHvQ2JU2F30THJN26NvcbxmDHZJdaqwDXH4tguTuA1ppoO0KknIzkaG9HMBzIp49BpXIgs9U+2kaT/KHSMgbZZvQuFnLI69UiT0i7Z65pjuKhGqhL2O7rrgZFeCK7iswAAAAA==';

const owner = bitcoin.Psbt.fromBase64(psbtBaseText);
const psbt = owner.signInput(0, OwnerKey);

psbt.finalizeAllInputs();
const tx = psbt.extractTransaction();
const rawTx = tx.toBuffer();
const hex = rawTx.toString('hex');
console.log(hex);

Hasil RAW Transaction
Code:
02000000000101fbd720a712c1415b1f0f0a06643167ff15169369ecf825224fa9409f4c5fd9460000000000ffffffff027017000000000000225120536de270141817492d4d1aa7290e0d629146ebe680b07c1ef91b756521af7ba8e803000000000000225120abee2711160577bdeb7dd674f7be2e91fb2350695080892b5a10f02a829e8f5403406b2294c125045c986a207bf60526cd1c0cb9eddc21f0d0d6caefda57c0d6b566cfe4b72267502fa6b3afd57f73c34e494ff540434e6861279f6f5f66568f498622206d966f42e1672c8ebd5224f48bb67ae698ee2a11aa84bd8eeebae06457822bb8ac41c033490bf091ef436254d85df44c724ddba36f71bc660c764975aab00d71f8b60b93b80d69a683b42a49c8ce4686f47301cc8a78f41a57220b3d53eda4693fca1d00000000

TXID 503eec63c75856eb07afe77d70d3e2dafbbbf4b79620aecad77bdbcbfe7c64f1

Kesimpulan
Dengan sebuah Taproot Address tb1p2dk7yuq5rqt5jt2dr2njjrsdv2g5d6lxszc8c8herd6k2gd00w5ql574z6 bisa dilakukan transaksi dengan menggunakan 2 opsi spending output yang berbeda, yakni menggunakan Signature dari Owner Key atau menggunakan prosedur MultiSig 2-of-2.

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
March 10, 2024, 04:21:26 AM
Last edit: March 10, 2024, 06:43:45 AM by punk.zink
 #27

Pada konsepnya Output pada setiap transaksi Taproot adalah 32_byte_Output_Key, yang bisa saja merupakan kombinasi dari satu buah Public Key (Internal Key) dengan Key Path maupun Script Path, atau hanya berupa kombinasi dari Internal Key (X-Only PubKey) dengan Hash TapTweak dari bytes Internal Key itu sendiri pada base point G (tidak dikombinasikan dengan Key Path dan Script Path). Sehingga dalam hal ini jika 32_byte_Output_Key merupakan kombinasi Internal key dengan Key Path atau Script Path dan Internal Key tersebut merupakan spendable Key, maka untuk pemilik (Private) Key dari Internal Key tersebut bisa menggunakan (dan membelanjakan) UTXO yang terkorelasi dengan Taproot Address tersebut.

Dalam contoh kasus diatas, Internal Key di generate secara random, yang berarti untuk opsi penggunaan Output hanya bisa dilakukan oleh Owner dan proses MultiSig (signer 1 dan signer 2) karena Private Key dari Internal Key tersebut tidak diketahui. Jika Private Key dari Internal Key di ketahui (dan disimpan) maka bisa dibuat sebuah transaksi dengan opsi pembelanjaan output menggunakan Signature dari Internal Key.

Kesimpulannya, Taproot Address merupakan hal yang kompleks karena memang tergantung bagaimana Address tersebut dibuat. Taproot Address tidak hanya bisa merepresentasikan Pay to Key maupun Pay to Script saja, namun juga bisa merepresentasikan 2 opsi itu sekaligus.




Contoh kasus dan implementasi pembuatan Address Taproot beserta transaksinya, yang semua prosesnya dibuat menggunakan JavaScript, mungkin memang terlihat cukup rumit. Dan jika barangkali ada sebuah pertanyaan, "Apakah contoh kasus diatas bisa diproses menggunakan Bitcoin Core ?", maka jawabannya adalah bisa.

Next, jika memang === Tantangan Taproot === tidak mendapatkan peminat dan peserta, maka akan saya coba uraikan bagaimana caranya membuat address Taproot dan transaksi berdasarkan skenario contoh kasus diatas (Owner, Signer 1 + Signer 2 dan Sekretaris), menggunakan Bitcoin Core.

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
abhiseshakana
Legendary
*
Offline Offline

Activity: 2226
Merit: 2229


From Zero to 2 times Self-Made Legendary


View Profile WWW
March 13, 2024, 12:38:19 PM
 #28

Output dan address Taproot dibuat berdasarkan script expression yang digunakan. Dalam hal ini bisa berupa Key: tr(Key) atau berupa kombinasi Key dan Script Tree: tr(Key, Tree). Jika ingin membuat address dengan penggunaan output yang hanya didasarkan pada Key Spend maka expression yang digunakan adalah tr(Key). Namun jika penggunaan output didasarkan pada Script Spend expression yang digunakan adalah tr(Key, Tree).

Contoh Taproot Multisig 3-of-4 Expression:
tr(Key1,multi_a(3,Key2,Key3,Key4,Key5))

https://github.com/bitcoin/bips/blob/master/bip-0386.mediawiki

.
.Duelbits.
█▀▀▀▀▀











█▄▄▄▄▄
TRY OUR
  NEW  UNIQUE
GAMES!
.
..DICE...
███████████████████████████████
███▀▀                     ▀▀███
███    ▄▄▄▄         ▄▄▄▄    ███
███   ██████       ██████   ███
███   ▀████▀       ▀████▀   ███
███                         ███
███                         ███
███                         ███
███   ▄████▄       ▄████▄   ███
███   ██████       ██████   ███
███    ▀▀▀▀         ▀▀▀▀    ███
███▄▄                     ▄▄███
███████████████████████████████
.
.MINES.
███████████████████████████████
████████████████████████▄▀▄████
██████████████▀▄▄▄▀█████▄▀▄████
████████████▀ █████▄▀████ █████
██████████      █████▄▀▀▄██████
███████▀          ▀████████████
█████▀              ▀██████████
█████                ██████████
████▌                ▐█████████
█████                ██████████
██████▄            ▄███████████
████████▄▄      ▄▄█████████████
███████████████████████████████
.
.PLINKO.
███████████████████████████████
█████████▀▀▀       ▀▀▀█████████
██████▀  ▄▄███ ███      ▀██████
█████  ▄▀▀                █████
████  ▀                    ████
███                         ███
███                         ███
███                         ███
████                       ████
█████                     █████
██████▄                 ▄██████
█████████▄▄▄       ▄▄▄█████████
███████████████████████████████
10,000x
MULTIPLIER
NEARLY UP TO
.50%. REWARDS
▀▀▀▀▀█











▄▄▄▄▄█
punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
March 26, 2024, 03:33:16 AM
Merited by ABCbits (8), Husna QA (3)
 #29

Intro

Transaksi Bitcoin secara umum diasumsikan sebagai proses transfer (pemindahan) balance Bitcoin dari satu address ke address lainnya yang disiarkan dan disebarkan ke Jaringan Blockchain Bitcoin. Namun yang sebenarnya menjadi kunci dari prosedur pemindahan Bitcoin dan proses diimplementasikan ke dalam sebuah transaksi adalah penggunaan scripting language. Saat transaksi dibuat maka akan menciptakan pasangan Script yang disebut dengan ScriptSig dan ScriptPubKey.

Jenis transaksi didalam jaringan Bitcoin dibedakan dari model ScriptSig dan ScriptPubKey yang digunakan, dan perlu digaris bawahi untuk setiap pasangan ScriptSig-ScriptPubKey tidak terkandung dalam satu kesatuan transaksi, namun ScriptPubKey dideskripsikan dalam Output transaksi (UTXO) yang akan dijadikan rujukan, sementara ScriptSig pasangannya dideskripsikan dalam Input transaksi yang menggunakan UTXO rujukan tersebut. Dengan kata lain ScriptPubKey merupakan script pengunci UTXO dan ScriptSig pasangannya merupakan Script pembuka untuk mengeklaim UTXO terkait.




Tipe / Jenis Transaksi



P2PK [Pay-to-Public-Key] Transaction

Tipe transaksi yang memiliki locking script berupa public key, sementara untuk unlocking script yang dipergunakan untuk mengeklaim kepemilikan output pada transaksi sebelumnya hanya merupakan signature saja

scriptPubKey:<pubKey> OP_CHECKSIG
scriptSig:<sig>

Contoh Transaksi P2PK
Output dari TXID A (12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba) direferensikan ke Input TXID B (4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79)

TXID A Raw Transaction
010000000173805864da01f15093f7837607ab8be7c3705e29a9d4a12c9116d709f8911e5901000 00049483045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb 0221009984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb01fffffff f0200e1f50500000000434104baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db 18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1ac009ce4a60000000043410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a 6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac000000 00

TXID B Raw Transaction
0100000001ba91c1d5e55a9e2fab4e41f55b862a73b24719aad13a527d169c1fad3b63b51200000 00048473044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd585263402204 7fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b01ffffffff0100e1f50500000000434104fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f7 41eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40ba e4ac00000000

ScriptPubKey: OP_PUSHBYTES_65 Public_Key OP_CHECKSIG
ScriptPubKey: 41 04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18 fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1 ac

Scriptsig: OP_PUSHBYTES_71 Signature
Scriptsig: 47 3044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd5852634022047f d6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b01





P2PKH [Pay-to-Public-Key-Hash] Transaction

Tipe transaksi yang memiliki locking script berupa hash dari public key, sementara untuk unlocking script merupakan signature dan public key yang terkait dengan UTXO yang digunakan pada Input transaksi tersebut.

scriptPubKey:OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
scriptSig:<sig> <pubKey>

Contoh Transaksi P2PKH
Output dari TXID C (20ee9981691a2f2c5c92d80b9de271239f36ada3ce6274379c04cc0db13c6294) direferensikan ke Input TXID D (6014a32d1d5240c85f802a7acaca038f3cf1a9580e599c14b5ac6e0445bdf768)

TXID C Raw Transaction
010000000111815508187bfdd8231eb053d7385b3965308cec27db435beb22a8bdfcb7b46301000 0008b48304502200bedd579ec62d120adb144cbac23ae116270dcf077472720a20b88145389e51a 0221009ea2dc38028dfc8e97c612017de07c35b5226474460a9c77948b48dda7b62342014104d3d c9a919108ab1140d74755b7d9d976f9b41259853264f497700b6c9620fe6161809211a9731a431e 380736b48591be31b63ad1b42a9d57f9e4bb243dca8cdcffffffff0140420f00000000001976a914c4eb47ecfdcf609a1848ee79acc2fa49d3caad7088ac00000000

TXID D Raw Transaction
010000000194623cb10dcc049c377462cea3ad369f2371e29d0bd8925c2c2f1a698199ee2000000 0008b4830450221009e9a8d1078e42e826d86233c8afede2ee4083f5dab796b2b40256b8365ba29b4022 07ecf2df88a08bb8683ce28f4e20e97fc2033ea82a09d76892faeb9f4dd18b372014104a7135bfe 824c97ecc01ec7d7e336185c81e2aa2c41ab175407c09484ce9694b44953fcb751206564a9c24dd 094d42fdbfdd5aad3e063ce6af4cfaaea4ea14fbbffffffff0140420f00000000001976a9141a63b9abce33453ff15dc58070021d5ff978111a88ac0 0000000

ScriptPubKey: OP_DUP OP_HASH160 OP_PUSHBYTES_20 Public_Key_Hash OP_EQUALVERIFY OP_CHECKSIG
ScriptPubKey: 76 a9 14 c4eb47ecfdcf609a1848ee79acc2fa49d3caad70 88 ac

Scriptsig: OP_PUSHBYTES_72 Signature OP_PUSHBYTES_65 Public_Key
Scriptsig: 48 30450221009e9a8d1078e42e826d86233c8afede2ee4083f5dab796b2b40256b8365ba29b402207 ecf2df88a08bb8683ce28f4e20e97fc2033ea82a09d76892faeb9f4dd18b37201 41 04a7135bfe824c97ecc01ec7d7e336185c81e2aa2c41ab175407c09484ce9694b44953fcb751206 564a9c24dd094d42fdbfdd5aad3e063ce6af4cfaaea4ea14fbb





P2SH [Pay-to-Script-Hash] Transaction

Unlocking Script pada transaksi tipe ini berisikan redeem script yang merupakan kunci sekaligus akses untuk mempergunakan UTXO dan signature apa saja yang diperlukan agar UTXO tersebut bisa dipergunakan. Sementara pada Locking Script berisikan hash dari script yang diperlukan untuk memeriksa apakah redeem script cocok dengan script asli yang digunakan untuk menghasilkan address.

scriptPubKey:OP_HASH160 <scriptHash> OP_EQUAL
scriptSig:<signatures> <serialized redeem script>
scriptSig:OP_0 <sig1> ... <serialized redeem script>
serialized redeem script:OP_m <pubKey1> ... OP_n OP_CHECKMULTISIG

Contoh Transaksi P2SH (multi-signature 2-of-2)
Output dari TXID E (bd09121f0bb45a6d533836f727fb2eed52365d56739ee4e2a3216f51e9dc20f5) direferensikan ke Input TXID F (9dc562ba2a49a90a4b60c1861d14fb3538963b6d96e08354b8846b9998f7a7a2)

TXID E Raw Transaction
01000000010a25fcd7b0d0ff083e4e291c8bfaa86a33eed10619abd54c776e1012b3960f0c01000 0006a473044022006b6fb3508235b66f3b012cc67299e7b58f81ab7da1ec66e075af8b17b4860d9 02205a1590ad9335fd8c73d78c570f5d117e7263d46f6bb9fb629ad3ccb30fd720b8012103fcf3a defb84c7f3dbbd7d8e9c2c7ad34503126d7e2fe19de9f93207886397359ffffffff020e00040000 0000001976a9141e094c1316f3bb0ac534b78c408d1729de32abb588ac4eda16000000000017a914e65bdc8e84736c97d2319feeadf17da2491fa4638700000000

TXID F Raw Transaction
0100000001f520dce9516f21a3e2e49e73565d3652ed2efb27f73638536d5ab40b1f1209bd01000 000da00483045022100fd9fd3e378b0b8a4beb769ce3e5fcc610271d08ab53fe0edd1052e3d8f26c7b80 2200a19e342dfa746a42e1609e0a6e2ee042c566179e9820611c9ae2b75598ecb9c014730440220 7f9144215e97e772d9a04acfd7d0bf62c2d9e79845215985837d2ea5dffb1631022058959e739f3 797d274db7816e388c5d323e71ffb29606b2ef57d4ecf9cd5cc380147522103cdb3d4fdf47e0a8e 1a89005b613943211abdb9af6346900aa9ca605942e28f0521032074694c1138516bf6009968e39 87c087ab11b55aae343236aa95c6d5b25073452aeffffffff01cef214000000000017a9149a203c5557243a2f2197cd7e5e22bd837967e1da8700000 000

ScriptPubKey: OP_HASH160 OP_PUSHBYTES_20 Script_Hash OP_EQUAL
ScriptPubKey: a9 14 e65bdc8e84736c97d2319feeadf17da2491fa463 87

Scriptsig: OP_0 OP_PUSHBYTES_72 Signature_1 OP_PUSHBYTES_71 Signature_2 OP_PUSHBYTES_71 Serialized_Redeem_Script
Scriptsig: 00 48 3045022100fd9fd3e378b0b8a4beb769ce3e5fcc610271d08ab53fe0edd1052e3d8f26c7b802200 a19e342dfa746a42e1609e0a6e2ee042c566179e9820611c9ae2b75598ecb9c01 47 304402207f9144215e97e772d9a04acfd7d0bf62c2d9e79845215985837d2ea5dffb16310220589 59e739f3797d274db7816e388c5d323e71ffb29606b2ef57d4ecf9cd5cc3801 47 522103cdb3d4fdf47e0a8e1a89005b613943211abdb9af6346900aa9ca605942e28f05210320746 94c1138516bf6009968e3987c087ab11b55aae343236aa95c6d5b25073452ae

Serialized_Redeem_Script: OP_PUSHNUM_2 OP_PUSHBYTES_33 PubKey_1 OP_PUSHBYTES_33 PubKey_2 OP_PUSHNUM_2 OP_CHECKMULTISIG
Serialized_Redeem_Script: 52 21 03cdb3d4fdf47e0a8e1a89005b613943211abdb9af6346900aa9ca605942e28f05 21 032074694c1138516bf6009968e3987c087ab11b55aae343236aa95c6d5b250734 52 ae





P2WPKH [Pay-to-Witness-Public-Key-Hash] Transaction

Locking script berisi 22 bytes dari OP_0  dan diteruskan dengan KeyHash yang merupakan Hash160 dari compressed public key, sementara Unlocking script kosong dan karena hal tersebut maka untuk spending script dideskripsikan kedalam witness yang berisi Signature dan Public Key.

scriptPubKey:OP_0 <20-byte-KeyHash>
scriptSig:<empty>
witness:<signature> <pubkey>

Contoh Transaksi P2WPKH
Output dari TXID G (770f0ab030966a3b6182a9c62d398aa126cc69a66b7d18cb60d12a7650e90883) direferensikan ke Input TXID H (6a040daeadf0a8efc5e324adf4a25512ee1d22dc3e143d5c54c6d9cb5f49f918)

TXID G Raw Transaction
02000000000101f39ceb6561a1356b579fe8be7ba44a82643caf777f0b44f715d5a35171de6f9a0 100000000ffffffff0238810200000000001600141939da05d7f716b705c115d4f117525cc302224500e2040000000000220020f78c983af7bd8579dc7535c820bf96fcbee8afad834ff54e5691f4e74 3a32c3a0247304402205c531763b86e04275172918ebf59986aa02269ab34f25c06d1d6b195578e 118402202e4eadf7e84a4c32b1c1344cfc972800621d0946831d63d25c2fbd14911e7a040121033 1f22e4fb4623d74bae250d5cb49ae192fc989373a27d57627af2bff6b4e97ba00000000

TXID H Raw Transaction
020000000001018308e950762ad160cb187d6ba669cc26a18a392dc6a982613b6a9630b00a0f770 000000000ffffffff012b7c020000000000220020302ef06c6dee8339ba576db99bcc817edeed56 21b9c55abde47afce7066a8f620247304402203e513bb417f88586938a75425ee3b4a2b51ef177b18a8680df50514e63e3649e02207d8 ad26533af6492b4065cb7a3cee6e5462af8ea69a24719b71f4a3d75815a4a0121026277aa6126c212065bb06256fd4a8298d1ab608bff9c0b558fab42d259e2edfc00000000

ScriptPubKey: OP_0 OP_PUSHBYTES_20 Public_Key
ScriptPubKey: 00 14 1939da05d7f716b705c115d4f117525cc3022245

Witness: Signature Public_Key
Witness: 304402203e513bb417f88586938a75425ee3b4a2b51ef177b18a8680df50514e63e3649e02207d8 ad26533af6492b4065cb7a3cee6e5462af8ea69a24719b71f4a3d75815a4a01 026277aa6126c212065bb06256fd4a8298d1ab608bff9c0b558fab42d259e2edfc





P2WSH [Pay-to-Witness-Script-Hash] Transaction

Locking script merupakan 32 bytes dari OP_0  dan diteruskan oleh ScriptHash yang merupakan Hash SHA-256 dari witness script. Sama halnya dengan P2WPKH, Unlocking script juga kosong sehingga untuk spending script juga dideskripsikan ke witness dengan isi data Signature apa saja yang diperlukan dan witness script yang merupakan susunan public key apa saja yang menopangnya.

scriptPubKey:OP_0 <32-byte-ScriptHash>
scriptSig:<empty>
witness:<signature> <serialized witness script>
witness:OP_0 <sig1> ... <serialized witness script>
serialized witness script:OP_m <pubKey1> ... OP_n OP_CHECKMULTISIG

Contoh Transaksi P2WSH
Output dari TXID I (9842805a80de6ebe61caac0ed252120e307e7eab4ec75413fd403dabc3374bd1) direferensikan ke Input TXID J (2185a9e82eb5c5cafd3228c6a727960bc7f7508dea5150dba63ef987c39c57c0)

TXID I Raw Transaction
01000000000101c2d9ffa1c55908661f75a7845472c1596593474f4184d941aee41997684444980 100000000ffffffff02fbcc1d000000000017a914dac59872aa7e904e215ef71aaf400075c01ce5 a087ddc635030000000022002041e21222becb40dac9bcd3092960116f6ecd1ee19b841db254892b5830acc7a80400473044022064a5d596c37a085a87567273ba2f68a9b1ed63c20cb21ee3bcca1fee693557340 22058f8f0a92b95d20a91526cc702067a1b38c4042d3d078a9f408b3cab0f049f54014730440220 41b9eeaceaa35fa566d0c4ae13f87f4e69141dbb549114180cae88fdb841043e02205b6ce9b0fae 6591fc387e16c35d3de575bf768c0da4154e0f28a8a3178e618d00147522103e3ab4fee9dd471f6 6d75d68addcb75ce8e9ba9183c7fc334d8064ae7e87e3b8a2103a3af0f49a21d29106ebeef9b3c3 d69fc375c856a7153d97156a5b7a161ca6c2552ae00000000

TXID J Raw Transaction
01000000000101d14b37c3ab3d40fd1354c74eab7e7e300e1252d20eacca61be6ede805a8042980 100000000ffffffff028348100000000000160014abcfed53e211ab02d63b827a0fdd88904d2e61 16ac6225030000000022002041e21222becb40dac9bcd3092960116f6ecd1ee19b841db254892b5 830acc7a8040047304402202d669b8c894e3ec46119bfab51d9ddca4d793678ab0a3edbccad5e5a76e955710220564 596a448e1985538b8652343d462d04140c197398d5ae157c98ff07b8860dd014730440220454547538099b60b8c117861d714e1a7e84f8e1ea40eb613138174cf1c66e2ed0220267 34cdbbcb6b00281a49567861d1eaffb2d646e807a5bca26ad5381ae1831a10147522103e3ab4fee9dd471f66d75d68addcb75ce8e9ba9183c7fc334d8064ae7e87e3b8a2103a3af0 f49a21d29106ebeef9b3c3d69fc375c856a7153d97156a5b7a161ca6c2552ae00000000

ScriptPubKey: OP_0 OP_PUSHBYTES_32 Script_Hash
ScriptPubKey: 00 20 41e21222becb40dac9bcd3092960116f6ecd1ee19b841db254892b5830acc7a8

Witness: OP_0 Signature_1 Signature_2 Serialized_Witness_Script
Witness: [empty] 304402202d669b8c894e3ec46119bfab51d9ddca4d793678ab0a3edbccad5e5a76e955710220564 596a448e1985538b8652343d462d04140c197398d5ae157c 30440220454547538099b60b8c117861d714e1a7e84f8e1ea40eb613138174cf1c66e2ed0220267 34cdbbcb6b00281a49567861d1eaffb2d646e807a5bca26a 522103e3ab4fee9dd471f66d75d68addcb75ce8e9ba9183c7fc334d8064ae7e87e3b8a2103a3af0 f49a21d29106ebeef9b3c3d69fc375c856a7153d97156a5b7a161ca6c2552ae

Serialized_Witness_Script: OP_PUSHNUM_2 OP_PUSHBYTES_33 Public_Key_1 OP_PUSHBYTES_33 Public_Key_2 OP_PUSHNUM_2 OP_CHECKMULTISIG
Serialized_Witness_Script: 52 21 03e3ab4fee9dd471f66d75d68addcb75ce8e9ba9183c7fc334d8064ae7e87e3b8a 21 03a3af0f49a21d29106ebeef9b3c3d69fc375c856a7153d97156a5b7a161ca6c25 52 ae





P2SH-P2WPKH Nested Segwit [P2WPKH nested in P2SH] Transaction

Merupakan transaksi P2WPKH yang tertanam didalam script P2SH. Locking script berisikan 20 bytes Script Hash yang merupakan Hash160 dari redeem script, dan Unlocking script hanya berisikan redeem script yang didahului dengan push OpCode didepannya. Sementara untuk Signature dan Public Key dideskripsikan kedalam witness

scriptPubKey:OP_HASH160 <20-byte-ScriptHash> OP_EQUAL
scriptSig:OP_PUSHBYTES_22 <RedeemScript>
RedeemScript:OP_0 <20-byte-KeyHash>
witness:<signature> <pubkey>

Contoh Transaksi P2SH-P2WPKH (Nested Segwit)
Output dari TXID K (e5afe05bc2b520cf705bae1812ffbe9c9055fae69f18b8569a2879c5eccb47aa) direferensikan ke Input TXID L (b4dfc84812fee9712f775a9a0f6758308c17e6c46166e4ea2c39e905f0b25a2c)

TXID K Raw Transaction
01000000000101181acc4570bbedeec2603694d68baeb8a8e84395335f32f5a0c07e5959791d800 2000000171600146b78b5b0b4a048b4cec7bc6fc2c4bbaf71ddbe58000000000456800400000000 0017a914825002e5f55d73321efcee11d06314cf93db9cdc87fe6801000000000017a9147f3d538 37eb9be92c8a2eed51c477d2faf2811388770ff03000000000017a914d6914001b1c7de1c254b9a 5b08e83f01ab29fe6b8782d00b000000000017a914a4414f4a525bbf12374d5147e82a3a78fdf3b31d87024730440220236148389372e3f187b0a6a9fec36aa04c44e10f84624b59603e6c24fad09363022 0508379e500727c5ccdfd27c92a6770d263a47fd22ee8cd52a47f7cb1b75fa8a7012103cd0a2046 4b3d0d303c7b7ac2664a84f9bc05c77c8d6dbb465d58b3a26ebd7f9b00000000

TXID L Raw Transaction
01000000000101aa47cbecc579289a56b8189fe6fa55909cbeff1218ae5b70cf20b5c25be0afe50 30000001716001411f8b6a737b7bcfc4cc28a527ba02f743db66cb90000000002483405000000000017a914a45f53a86cd940fdab18ae7f3a461387b9560320872a750 6000000000017a914a4414f4a525bbf12374d5147e82a3a78fdf3b31d870247304402203650f274c88f78beb4a7f4a2dd301bad0484d5170107625d8c91b070f0b14a500220218 52bf82324d2422d1260ecb2575e4db1b0216f0865e07b80dfbdb9cfd25cdc012102955c36e9db30738d16c2f0ea443326dc7b9c3c443bed4c835b508972fb62709900000000

ScriptPubKey: OP_HASH160 OP_PUSHBYTES_20 Script_Hash OP_EQUAL
ScriptPubKey: a9 14 a4414f4a525bbf12374d5147e82a3a78fdf3b31d 87

Witness: Signature Public_Key
Witness: 304402203650f274c88f78beb4a7f4a2dd301bad0484d5170107625d8c91b070f0b14a500220218 52bf82324d2422d1260ecb2575e4db1b0216f0865e07b80dfbdb9cfd25cdc01 02955c36e9db30738d16c2f0ea443326dc7b9c3c443bed4c835b508972fb627099

ScriptSig: OP_PUSHBYTES_22 Redeem_Script
ScriptSig: 16 001411f8b6a737b7bcfc4cc28a527ba02f743db66cb9

Redeem_Script: OP_0 OP_PUSHBYTES_20 Public_Key_Hash
Redeem_Script: 00 14 11f8b6a737b7bcfc4cc28a527ba02f743db66cb9





P2TR [Pay-to-Taproot] Transaction

Input pada transaksi Taproot tidak memiliki ScriptSig, melainkan hanya berupa witness yang ditafsirkan sebagai spend method, yang berisi konten Signature (Schnorr signature). Sementara Locking script pada P2TR berisikan 32 byte Witness Program yang merupakan representasi dari Tweaked X-only Public Key dan selalu diawali dengan OP_1 yang merupakan representasi dari Version Number (SegWit Version 1).

scriptPubKey:OP_1 <32-byte-WitnessProgram>
scriptSig:<empty>
witness:<signature>

Contoh Transaksi P2TR (Taproot)
Output dari TXID O (a559cd58bb9bbd15f3603adf9e25034e9b26829e56ff68a54600479d57c6f9fa) direferensikan ke Input TXID P (1ff60ccd4fa0fb4436ba1ef3b01b2c8c7c6bb200aaf36b93dce52746d2ab71f8)

TXID O Raw Transaction
020000000001012be00531204175d5a3d075df9ebaa416ea0a32d254a9c9eb6e9813061ebed1890 400000000010000800220a1070000000000160014419a04f8f1f34d939ad766168c54a5b3af433b dd700a7b000000000022512058cca56ea9c201e15f3c3e8f6cd1f959d729496222755af152c57a39253e48dd01402f2a5e9d353c81d76ed94738d351c5528c0c1a9117edfb8474416576805fe2f746db3eda6b8 45dfd9a3505e8a84a548e7a0539b09685c2c1818d0ce5516d9b6900000000

TXID P Raw Transaction
02000000000101faf9c6579d470046a568ff569e82269b4e03259edf3a60f315bd9bbb58cd59a50 100000000010000800280841e0000000000160014419a04f8f1f34d939ad766168c54a5b3af433b dda4275c000000000022512058cca56ea9c201e15f3c3e8f6cd1f959d729496222755af152c57a3 9253e48dd01408b7f8fc3cd7648e07ee00c61c9923611c84bc7077f2a95f5e552a1d379e1cebc63ef611913be2eb f9fdd690ffe38a70e958d929c5f679cfe67ba51dd8eb435ed00000000

ScriptPubKey: OP_1 OP_PUSHBYTES_32 Witness_Program
ScriptPubKey: 51 20 58cca56ea9c201e15f3c3e8f6cd1f959d729496222755af152c57a39253e48dd

Witness: Signature
Witness: 8b7f8fc3cd7648e07ee00c61c9923611c84bc7077f2a95f5e552a1d379e1cebc63ef611913be2eb f9fdd690ffe38a70e958d929c5f679cfe67ba51dd8eb435ed

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
Chikito
Legendary
*
Offline Offline

Activity: 2380
Merit: 2054



View Profile WWW
March 27, 2024, 01:01:00 AM
 #30

Jenis transaksi didalam jaringan Bitcoin dibedakan dari model ScriptSig dan ScriptPubKey yang digunakan, dan perlu digaris bawahi untuk setiap pasangan ScriptSig-ScriptPubKey tidak terkandung dalam satu kesatuan transaksi, namun ScriptPubKey dideskripsikan dalam Output transaksi (UTXO) yang akan dijadikan rujukan, sementara ScriptSig pasangannya dideskripsikan dalam Input transaksi yang menggunakan UTXO rujukan tersebut. Dengan kata lain ScriptPubKey merupakan script pengunci UTXO dan ScriptSig pasangannya merupakan Script pembuka untuk mengeklaim UTXO terkait.
Nah jadi transaksi menggunakan apa yang cepat dan efisien?, maksud saya apakah transaksi segwit bisa lebih cepat dari legacy?, karena dalam segi ukuran, transaksi segwit bisa memuat banyak transaksi (pemisahan tanda tangan) dalam setiap blocknya jika dibanding legacy. Atau yang baru-baru ini softfork, Taproot, apakah lebih baik dari segwit berdasarkan kecepatan dan muatan transaksi?

Karena saya lihat dari kesemua jenis transaksi di atas (P2PK,P2PKH,... dsb), kesimpulannya tidak ada, cuma ada data raw yang siapa pun pasti mumet ngebacanya.  Smiley

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
March 27, 2024, 08:00:13 AM
 #31

Nah jadi transaksi menggunakan apa yang cepat dan efisien?, maksud saya apakah transaksi segwit bisa lebih cepat dari legacy?, karena dalam segi ukuran, transaksi segwit bisa memuat banyak transaksi (pemisahan tanda tangan) dalam setiap blocknya jika dibanding legacy. Atau yang baru-baru ini softfork, Taproot, apakah lebih baik dari segwit berdasarkan kecepatan dan muatan transaksi?

Kayaknya persepsi anda masih salah, dari sekian banyak jenis format transaksi tidak ada yang lebih cepat satu sama lain, karena kecepatan transaksi bukan tergantung pada jenis transaksi melainkan tergantung pada seberapa cepat block dibuat dan potensi dari sebuah transaksi untuk bisa masuk ke dalam block (terkait pemilihan fee transaksi).

Kalo efisiensi dari masing-masing transaksi mungkin bisa saja berbeda karena tiap-tiap jenis transaksi memang memiliki ciri dan kriteria script yang berbeda (dan inilah yang saya ingin bagikan informasinya melalui thread ini)


Quote
Karena saya lihat dari kesemua jenis transaksi di atas (P2PK,P2PKH,... dsb), kesimpulannya tidak ada, cuma ada data raw yang siapa pun pasti mumet ngebacanya.  Smiley

Kenapa harus Raw Data, karena hanya dengan cara itulah kita bisa melihat bagaimana scriptsig dan scriptpubkey pada sebuah transaksi dikodekan, dan bisa kita ketahui keduanya berada di posisi mana, karena secara umum Transaksi memiliki struktur yang sama.

Sekali lagi yang saya tekankan bukanlah kesimpulan atau apalah itu, namun hanyalah perbedaan dari script yang digunakan oleh masing-masing jenis transaksi.

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
April 05, 2024, 05:26:50 PM
 #32

=== Tantangan Taproot ===

- Jaringan : Bitcoin Testnet
- Membuat MultiSig Taproot Address (2-of-2)
- Import MultiSig Taproot Address (2-of-2) ke Bitcoin Core
- Membuat Transaksi MultiSig (2-of-2) menggunakan UTXO* dari MultiSig Taproot Address (2-of-2)
* Agar MultiSig Taproot Address (2-of-2) memiliki UTXO, maka harus dibuat transaksi (lain) dimana MultiSig Taproot Address (2-of-2) sebagai address penerima

Sedikit bocoran bagi siapa saja yang mungkin masih tertarik untuk mengikuti tantangan ini dan mendapatkan 5 merit

* 3 Descriptor wallet sebagai (Internal Key/XPUB_1, Cosigner 1/XPUB_2, Cosigner 2/XPUB_3)

Taproot Expression yang digunakan adalah :
Code:
tr(XPUB_1,sortedmulti_a(2,XPUB_2,XPUB_3))
atau
Code:
tr(XPUB_1,multi_a(2,XPUB_2,XPUB_3))

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
Husna QA
Legendary
*
Offline Offline

Activity: 2268
Merit: 2863


#SWGT CERTIK Audited


View Profile WWW
April 06, 2024, 07:00:31 PM
Merited by punk.zink (2)
 #33

Karena saya lihat dari kesemua jenis transaksi di atas (P2PK,P2PKH,... dsb), kesimpulannya tidak ada, cuma ada data raw yang siapa pun pasti mumet ngebacanya.  Smiley

Kenapa harus Raw Data, karena hanya dengan cara itulah kita bisa melihat bagaimana scriptsig dan scriptpubkey pada sebuah transaksi dikodekan, dan bisa kita ketahui keduanya berada di posisi mana, karena secara umum Transaksi memiliki struktur yang sama.

Sebagaimana di atas, saya lihat agan z@punk memberikan pada warna-warna tertentu dan juga abbreviation ketika mouseover pada bagian tertentu di TXID untuk menunjukkan mana ScriptPubKey (teks berwarna merah), Scriptsig (teks berwarna biru), Serialized_Redeem_Script (teks berwarna hijau).

Jika hanya melihat TXID seperti ini saja tentu tidak bisa dilihat detail dari scriptSig (hex) atau scriptPubKey (hex):
https://mempool.space/tx/12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba

Berbeda ketika melihat melalui Raw Transaction sebagaimana di contohkan di atas dan di tandai dengan warna tertentu oleh OP.
https://btc.bitaps.com/raw/transaction/12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba
atau https://mempool.space/api/tx/12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba/hex


Btw, untuk Contoh Transaksi P2PK (Pay-to-Public-Key), tadi saya coba melihat melalui Trezor Bitcoin Explorer (https://btc2.trezor.io/)
- Output dari TXID A: https://btc2.trezor.io/tx/12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba

Quote
{
  "txid": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
  "hash": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
  "version": 1,
  "size": 276,
  "vsize": 276,
  "weight": 1104,
  "locktime": 0,
  "vin": [
    {
      "txid": "591e91f809d716912ca1d4a9295e70c3e78bab077683f79350f101da64588073",
      "vout": 1,
      "scriptSig": {
        "asm": "3045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb0221009 984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb[ALL]",
        "hex": "483045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb02210 09984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb01"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 1,
      "n": 0,
      "scriptPubKey": {
        "asm": "04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18 fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1 OP_CHECKSIG",
        "desc": "pk(04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18 fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1)#h9nu6585",
        "hex": "4104baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db 18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1ac",
        "type": "pubkey"
      }
    },
    {
      "value": 28,
      "n": 1,
      "scriptPubKey": {
        "asm": "0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84c cf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3 OP_CHECKSIG",
        "desc": "pk(0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84c cf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3)#u7qfa49l",
        "hex": "410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb8 4ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac",
        "type": "pubkey"
      }
    }
  ],
  "hex": "010000000173805864da01f15093f7837607ab8be7c3705e29a9d4a12c9116d709f8911e5901000 00049483045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb 0221009984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb01fffffff f0200e1f50500000000434104baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db 18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1ac009ce4a60000000043410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a 6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac000000 00",
  "blockhash": "00000000f46e513f038baf6f2d9a95b2a28d8a6c985bcf24b9e07f0f63a29888",
  "confirmations": 837824,
  "time": 1231742062,
  "blocktime": 1231742062
}

Code:
{
  "txid": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
  "hash": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
  "version": 1,
  "size": 276,
  "vsize": 276,
  "weight": 1104,
  "locktime": 0,
  "vin": [
    {
      "txid": "591e91f809d716912ca1d4a9295e70c3e78bab077683f79350f101da64588073",
      "vout": 1,
      "scriptSig": {
        "asm": "3045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb0221009984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb[ALL]",
        "hex": "483045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb0221009984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb01"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 1,
      "n": 0,
      "scriptPubKey": {
        "asm": "04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1 OP_CHECKSIG",
        "desc": "pk(04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1)#h9nu6585",
        "hex": "4104baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1ac",
        "type": "pubkey"
      }
    },
    {
      "value": 28,
      "n": 1,
      "scriptPubKey": {
        "asm": "0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3 OP_CHECKSIG",
        "desc": "pk(0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3)#u7qfa49l",
        "hex": "410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac",
        "type": "pubkey"
      }
    }
  ],
  "hex": "010000000173805864da01f15093f7837607ab8be7c3705e29a9d4a12c9116d709f8911e590100000049483045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb0221009984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb01ffffffff0200e1f50500000000434104baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1ac009ce4a60000000043410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac00000000",
  "blockhash": "00000000f46e513f038baf6f2d9a95b2a28d8a6c985bcf24b9e07f0f63a29888",
  "confirmations": 837824,
  "time": 1231742062,
  "blocktime": 1231742062
}

- Input TXID B: https://btc2.trezor.io/tx/4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79

Quote
{
  "txid": "4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79",
  "hash": "4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79",
  "version": 1,
  "size": 199,
  "vsize": 199,
  "weight": 796,
  "locktime": 0,
  "vin": [
    {
      "txid": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
      "vout": 0,
      "scriptSig": {
        "asm": "3044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd5852634022047f d6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b[ALL]",
        "hex": "473044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd585263402204 7fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b01"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 1,
      "n": 0,
      "scriptPubKey": {
        "asm": "04fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a5 13bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4 OP_CHECKSIG",
        "desc": "pk(04fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a5 13bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4)#hr2tlzup",
        "hex": "4104fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6 a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4ac",
        "type": "pubkey"
      }
    }
  ],
  "hex": "0100000001ba91c1d5e55a9e2fab4e41f55b862a73b24719aad13a527d169c1fad3b63b51200000 00048473044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd585263402204 7fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b01ffffffff0100e1f50500000000434104fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f7 41eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40ba e4ac00000000",
  "blockhash": "00000000b2cde2159116889837ecf300bd77d229d49b138c55366b54626e495d",
  "confirmations": 837821,
  "time": 1231744600,
  "blocktime": 1231744600
}

Code:
{
  "txid": "4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79",
  "hash": "4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79",
  "version": 1,
  "size": 199,
  "vsize": 199,
  "weight": 796,
  "locktime": 0,
  "vin": [
    {
      "txid": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
      "vout": 0,
      "scriptSig": {
        "asm": "3044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd5852634022047fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b[ALL]",
        "hex": "473044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd5852634022047fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b01"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 1,
      "n": 0,
      "scriptPubKey": {
        "asm": "04fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4 OP_CHECKSIG",
        "desc": "pk(04fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4)#hr2tlzup",
        "hex": "4104fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4ac",
        "type": "pubkey"
      }
    }
  ],
  "hex": "0100000001ba91c1d5e55a9e2fab4e41f55b862a73b24719aad13a527d169c1fad3b63b5120000000048473044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd5852634022047fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b01ffffffff0100e1f50500000000434104fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4ac00000000",
  "blockhash": "00000000b2cde2159116889837ecf300bd77d229d49b138c55366b54626e495d",
  "confirmations": 837821,
  "time": 1231744600,
  "blocktime": 1231744600
}

Dengan menggunakan bantuan fitur search/find bisa lebih mudah mencari letak scriptSig (hex) atau scriptPubKey (hex) pada Transaction hex-nya.

punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
April 07, 2024, 04:42:28 AM
 #34

Sebagaimana di atas, saya lihat agan z@punk memberikan pada warna-warna tertentu dan juga abbreviation ketika mouseover pada bagian tertentu di TXID untuk menunjukkan mana ScriptPubKey (teks berwarna merah), Scriptsig (teks berwarna biru), Serialized_Redeem_Script (teks berwarna hijau).

Terima kasih sudah dibantu untuk menjelaskan Om Husna. Tujuan saya memberikan code warna berbeda untuk masing-masing scriptsig, scriptpubkey, reedemscript maupun witness, memang agar mudah diidentifikasi oleh orang awam sekalipun. Begitu juga dengan fungsi mouseover, selain untuk mendeskripsikan letak script, juga sebagai penunjuk informasi pada setiap variabel yang dituliskan pada sebuah script menggunakan OP Code apa saja.

Quote
Btw, untuk Contoh Transaksi P2PK (Pay-to-Public-Key), tadi saya coba melihat melalui Trezor Bitcoin Explorer (https://btc2.trezor.io/)
- Output dari TXID A: https://btc2.trezor.io/tx/12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba

Informasi RAW Transaction yang ditunjukan oleh Trezor Bitcoin Explorer, mirip-mirip dengan fungsi getrawtransaction pada client bitcoin core dengan verbosity 1
Code:
getrawtransaction "txid" ( verbosity "blockhash" )

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
Husna QA
Legendary
*
Offline Offline

Activity: 2268
Merit: 2863


#SWGT CERTIK Audited


View Profile WWW
April 07, 2024, 09:12:37 AM
 #35

Btw, untuk Contoh Transaksi P2PK (Pay-to-Public-Key), tadi saya coba melihat melalui Trezor Bitcoin Explorer (https://btc2.trezor.io/)
- Output dari TXID A: https://btc2.trezor.io/tx/12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba

Informasi RAW Transaction yang ditunjukan oleh Trezor Bitcoin Explorer, mirip-mirip dengan fungsi getrawtransaction pada client bitcoin core dengan verbosity 1
Code:
getrawtransaction "txid" ( verbosity "blockhash" )

Ya, saya lihat hasil informasinya sama dengan ketika menggunakan fungsi getrawtransaction tersebut di atas pada client Bitcoin Core dengan nilai verbosity-nya 1.
Berikut ini screenshot contoh kedua transaksi Output TXID A dan Input TXID B dilihat Bitcoin Core sebagaimana sebelumnya di atas dilihat menggunakan Trezor Bitcoin Explorer:

Code:
getrawtransaction "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba" 1



Code:
getrawtransaction "4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79" 1



Sementara itu jika verbosity-nya diinput 2 maka lebih detail lagi dengan tambahan informasi: prevout dan fee:

Code:
{
  "txid": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
  "hash": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
  "version": 1,
  "size": 276,
  "vsize": 276,
  "weight": 1104,
  "locktime": 0,
  "vin": [
    {
      "txid": "591e91f809d716912ca1d4a9295e70c3e78bab077683f79350f101da64588073",
      "vout": 1,
      "scriptSig": {
        "asm": "3045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb0221009984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb[ALL]",
        "hex": "483045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb0221009984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb01"
      },
      "prevout": {
        "generated": false,
        "height": 182,
        "value": 29.00000000,
        "scriptPubKey": {
          "asm": "0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3 OP_CHECKSIG",
          "desc": "pk(0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3)#u7qfa49l",
          "hex": "410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac",
          "type": "pubkey"
        }
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 1.00000000,
      "n": 0,
      "scriptPubKey": {
        "asm": "04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1 OP_CHECKSIG",
        "desc": "pk(04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1)#h9nu6585",
        "hex": "4104baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1ac",
        "type": "pubkey"
      }
    },
    {
      "value": 28.00000000,
      "n": 1,
      "scriptPubKey": {
        "asm": "0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3 OP_CHECKSIG",
        "desc": "pk(0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3)#u7qfa49l",
        "hex": "410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac",
        "type": "pubkey"
      }
    }
  ],
  "fee": 0.00000000,
  "hex": "010000000173805864da01f15093f7837607ab8be7c3705e29a9d4a12c9116d709f8911e590100000049483045022052ffc1929a2d8bd365c6a2a4e3421711b4b1e1b8781698ca9075807b4227abcb0221009984107ddb9e3813782b095d0d84361ed4c76e5edaf6561d252ae162c2341cfb01ffffffff0200e1f50500000000434104baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1ac009ce4a60000000043410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac00000000",
  "blockhash": "00000000f46e513f038baf6f2d9a95b2a28d8a6c985bcf24b9e07f0f63a29888",
  "confirmations": 836728,
  "time": 1231742062,
  "blocktime": 1231742062
}

Code:
{
  "txid": "4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79",
  "hash": "4385fcf8b14497d0659adccfe06ae7e38e0b5dc95ff8a13d7c62035994a0cd79",
  "version": 1,
  "size": 199,
  "vsize": 199,
  "weight": 796,
  "locktime": 0,
  "vin": [
    {
      "txid": "12b5633bad1f9c167d523ad1aa1947b2732a865bf5414eab2f9e5ae5d5c191ba",
      "vout": 0,
      "scriptSig": {
        "asm": "3044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd5852634022047fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b[ALL]",
        "hex": "473044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd5852634022047fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b01"
      },
      "prevout": {
        "generated": false,
        "height": 183,
        "value": 1.00000000,
        "scriptPubKey": {
          "asm": "04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1 OP_CHECKSIG",
          "desc": "pk(04baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1)#h9nu6585",
          "hex": "4104baa9d36653155627c740b3409a734d4eaf5dcca9fb4f736622ee18efcf0aec2b758b2ec40db18fbae708f691edb2d4a2a3775eb413d16e2e3c0f8d4c69119fd1ac",
          "type": "pubkey"
        }
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 1.00000000,
      "n": 0,
      "scriptPubKey": {
        "asm": "04fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4 OP_CHECKSIG",
        "desc": "pk(04fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4)#hr2tlzup",
        "hex": "4104fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4ac",
        "type": "pubkey"
      }
    }
  ],
  "fee": 0.00000000,
  "hex": "0100000001ba91c1d5e55a9e2fab4e41f55b862a73b24719aad13a527d169c1fad3b63b5120000000048473044022041d56d649e3ca8a06ffc10dbc6ba37cb958d1177cc8a155e83d0646cd5852634022047fd6a02e26b00de9f60fb61326856e66d7a0d5e2bc9d01fb95f689fc705c04b01ffffffff0100e1f50500000000434104fe1b9ccf732e1f6b760c5ed3152388eeeadd4a073e621f741eb157e6a62e3547c8e939abbd6a513bf3a1fbe28f9ea85a4e64c526702435d726f7ff14da40bae4ac00000000",
  "blockhash": "00000000b2cde2159116889837ecf300bd77d229d49b138c55366b54626e495d",
  "confirmations": 837109,
  "time": 1231744600,
  "blocktime": 1231744600
}

punk.zink (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 373


trustdice.win (The Top of Crypto Casinos)


View Profile
April 21, 2024, 04:55:26 AM
Merited by ABCbits (8)
 #36

Saya pernah membuat tutorial Transaksi Taproot dengan 2 opsi Script path spends yang semuanya diproses menggunakan Node.JS. Pada kali ini saya akan memberikan tutorial masih dengan seputaran "Transaksi Taproot dengan 2 opsi Script path spends", namun untuk semua prosesnya dilakukan menggunakan Client Bitcoin Core.

1 Transaksi taproot dengan 2 opsi script pembelanjaan
  • Sign Transaksi melalui proses Multisig 2-of-2
  • Sign Transaksi menggunakan Private Key terpisah

Bahan (harus merupakan Descriptor Wallet)
  • Descriptor Wallet sebagai Internal Key
  • Descriptor Wallet sebagai cosigner 1
  • Descriptor Wallet sebagai cosigner 2
  • Descriptor Wallet sebagai alternatif sign Key Path spend

Mendapatkan informasi mengenai external path dan internal path dari masing-masing Descriptor wallet
- Menggunakan perintah listdescriptors

Internal Key
Code: (External Path)
tpubDDZ5pBsWWhiMrucNG4m2HV2XkgXwzz3oYtsvnvPu8k82ovn516WGwMorrTZCesFMJrd5XCmCV6Ffo9tQbPM6JkHA7sBBAfhvmpRqHgvxd1M/0/*
Code: (Internal Path)
tpubDDZ5pBsWWhiMrucNG4m2HV2XkgXwzz3oYtsvnvPu8k82ovn516WGwMorrTZCesFMJrd5XCmCV6Ffo9tQbPM6JkHA7sBBAfhvmpRqHgvxd1M/1/*

Cosigner 1
Code: (External Path)
tpubDCxrQyKF3UYvGeq69sMFE42QHmPoDc5JEEkbdbY5RzwQcnW2X8e9aVeDcy2EhFq1jZFhnMo3w73hDXD44uZB28zDiJCKyHAn5aH6bdpnhCH/0/*
Code: (Internal Path)
tpubDCxrQyKF3UYvGeq69sMFE42QHmPoDc5JEEkbdbY5RzwQcnW2X8e9aVeDcy2EhFq1jZFhnMo3w73hDXD44uZB28zDiJCKyHAn5aH6bdpnhCH/1/*

Cosigner 2
Code: (External Path)
tpubDCmDHgRMG5Cet6zwCtAZutocNLpumsaWm4HdEQWJu34HTVYwzZqXWavgxkTkp1xF7JpRhsda8KSudN5fJTyN5nyRg49sUMH3HBPpUKVheFL/0/*
Code: (Internal Path)
tpubDCmDHgRMG5Cet6zwCtAZutocNLpumsaWm4HdEQWJu34HTVYwzZqXWavgxkTkp1xF7JpRhsda8KSudN5fJTyN5nyRg49sUMH3HBPpUKVheFL/1/*

Alternative Key
Code: (External Path)
tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9/0/*
Code: (Internal Path)
tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9/1/*

Taproot Expression yang digunakan adalah
Code:
tr(Internal_Key,{sortedmulti_a(2,Cosigner_1,Cosigner_2),pk(Alternative_Key)})

Mendapatkan informasi Checksum dari masing-masing External Path Descriptor dan Internal Path Descriptor
- Menggunakan perintah getdescriptorinfo

Code: (External Path)
getdescriptorinfo "tr(tpubDDZ5pBsWWhiMrucNG4m2HV2XkgXwzz3oYtsvnvPu8k82ovn516WGwMorrTZCesFMJrd5XCmCV6Ffo9tQbPM6JkHA7sBBAfhvmpRqHgvxd1M/0/*,{sortedmulti_a(2,tpubDCxrQyKF3UYvGeq69sMFE42QHmPoDc5JEEkbdbY5RzwQcnW2X8e9aVeDcy2EhFq1jZFhnMo3w73hDXD44uZB28zDiJCKyHAn5aH6bdpnhCH/0/*,tpubDCmDHgRMG5Cet6zwCtAZutocNLpumsaWm4HdEQWJu34HTVYwzZqXWavgxkTkp1xF7JpRhsda8KSudN5fJTyN5nyRg49sUMH3HBPpUKVheFL/0/*),pk(tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9/0/*)})"
Code: (Checksum)
"checksum": "f5ccjfm9"

Code: (Internal Path)
getdescriptorinfo "tr(tpubDDZ5pBsWWhiMrucNG4m2HV2XkgXwzz3oYtsvnvPu8k82ovn516WGwMorrTZCesFMJrd5XCmCV6Ffo9tQbPM6JkHA7sBBAfhvmpRqHgvxd1M/1/*,{sortedmulti_a(2,tpubDCxrQyKF3UYvGeq69sMFE42QHmPoDc5JEEkbdbY5RzwQcnW2X8e9aVeDcy2EhFq1jZFhnMo3w73hDXD44uZB28zDiJCKyHAn5aH6bdpnhCH/1/*,tpubDCmDHgRMG5Cet6zwCtAZutocNLpumsaWm4HdEQWJu34HTVYwzZqXWavgxkTkp1xF7JpRhsda8KSudN5fJTyN5nyRg49sUMH3HBPpUKVheFL/1/*),pk(tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9/1/*)})"
Code: (Checksum)
"checksum": "vnp4m97n"

Membuat Watch-Only Descriptor Wallet dan selanjutnya mengimport Descriptor diatas ke wallet tersebut
Code:
createwallet "wallet_name" disable_private_keys blank

Meng-Import kombinasi External Path Descriptor dan Internal Path
Code:
importdescriptor '[{ "desc": "External Path Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal Path Descriptor", "active": true, "timestamp": "now", "internal": true }]'
Code:
importdescriptor '[{ "desc": "tr(tpubDDZ5pBsWWhiMrucNG4m2HV2XkgXwzz3oYtsvnvPu8k82ovn516WGwMorrTZCesFMJrd5XCmCV6Ffo9tQbPM6JkHA7sBBAfhvmpRqHgvxd1M/0/*,{sortedmulti_a(2,tpubDCxrQyKF3UYvGeq69sMFE42QHmPoDc5JEEkbdbY5RzwQcnW2X8e9aVeDcy2EhFq1jZFhnMo3w73hDXD44uZB28zDiJCKyHAn5aH6bdpnhCH/0/*,tpubDCmDHgRMG5Cet6zwCtAZutocNLpumsaWm4HdEQWJu34HTVYwzZqXWavgxkTkp1xF7JpRhsda8KSudN5fJTyN5nyRg49sUMH3HBPpUKVheFL/0/*),pk(tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9/0/*)})#f5ccjfm9", "active": true, "timestamp": "now", "internal": false },{ "desc": "tr(tpubDDZ5pBsWWhiMrucNG4m2HV2XkgXwzz3oYtsvnvPu8k82ovn516WGwMorrTZCesFMJrd5XCmCV6Ffo9tQbPM6JkHA7sBBAfhvmpRqHgvxd1M/1/*,{sortedmulti_a(2,tpubDCxrQyKF3UYvGeq69sMFE42QHmPoDc5JEEkbdbY5RzwQcnW2X8e9aVeDcy2EhFq1jZFhnMo3w73hDXD44uZB28zDiJCKyHAn5aH6bdpnhCH/1/*,tpubDCmDHgRMG5Cet6zwCtAZutocNLpumsaWm4HdEQWJu34HTVYwzZqXWavgxkTkp1xF7JpRhsda8KSudN5fJTyN5nyRg49sUMH3HBPpUKVheFL/1/*),pk(tpubDDSaWvfLpFMfH119pbvNV9z5mXob2pJ4XiTLeXv3nSsBi2JSCrhc1hy7EoFFwGu4LYHSsgRzqZ5ho4MbtL53qQyKvw7ioVFKkYRVRXcE8L9/1/*)})#vnp4m97n", "active": true, "timestamp": "now", "internal": true }]'

Membuat Taproot Address dengan 2 opsi script pembelanjaan
Code:
getnewaddress "label" "bech32m"
Code:
tb1psys7t6cq60wgfqjr7lraq7r9n8np3vx37g9d75zu4sr9gqfgr03sjafefk



MembuatTransaksi dengan opsi spending MultiSig (Cosigner 1 dan Cosigner 2)

Membuat Unsigned Transaction melalui Watch-Only Wallet





Menyimpan file PSBT dari unsigned transaction yang dibuat



Membuka file PSBT dari Wallet Cosigner 1



Cosigner 1 melakukan sign transaction dan menyimpan file PSBT yang telah ditandangani tersebut



Wallet Cosigner 2 melakukan Sign PSBT yang sebelumnya telah ditandangani oleh Cosigner 1 dan selanjutnya tinggal mem-Broadcast transaksi ke Jaringan Bitcoin



TXID yang telah terkirimkan ke jaringan Bitcoin (testnet)
https://mempool.space/testnet/tx/59268f7b0b8480a6ccae7de1b4fa0ef5207cbaaaaafeffa46ecfc792be41b821



MembuatTransaksi dengan opsi spending Alternative Key

Membuat Unsigned Transaction melalui Watch-Only Wallet dan menyimpan file PSBT dari Unsigned TX tersebut





Wallet Alternative Key melakukan Sign PSBT dan mem-Broadcast transaksi ke jaringan Bitcoin



TXID yang telah terkirimkan ke jaringan Bitcoin (testnet)
https://mempool.space/testnet/tx/b3afb47a45c1059b340d93a7a15d00fa63597a59c6b0bb6aae7269b1f5af2165



Kesimpulan

Dengan adanya Taproot, fleksibilitas dalam membuat Address dan transaksi menjadi lebih beragam. Seperti halnya contoh tutorial diatas, dengan hanya menggunakan 1 Taproot address yang memiliki model Descriptor sedemikian rupa, bisa dilakukan transaksi dengan 2 opsi pembelanjaan, yakni menggunakan proses Multisig 2-of-2 (Cosigner 1 dan Cosigner 2), atau menggunakan otorisasi dari Wallet Alternative Key.

Selain itu untuk taproot address diatas, dalam pembuatannya juga melibatkan adanya Internal Key. Sehingga jika Internal Key yang digunakan merupakan Spendable Key, maka juga bisa dibuat sebuah transaksi dengan opsi pembelanjaan melalui proses Sign TX yang diotorisasi menggunakan Internal Key tersebut. Namun jika Internal Key merupakan Unspendable Key, maka opsi pembelanjaan hanya bisa dilakukan melalui Multisig 2-of-2, atau Sign TX dari Alternative Key.

███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!