• News
    • Bitcoin
    • Altcoin
    • Market
    • Teknologi
    • editorial
  • Bitcoin 101
    • Pengertian
    • Sejarah Bitcoin
    • Cara Kerja
  • MINING
    • Pengertian
    • CPU Mining
    • GPU Mining
    • Asic Mining
    • Cloud Mining
    • Cara Mining Altcoin
  • Jurnal
  • Tutorial
  • Komunitas
  • FIGUR
  • Coins
    • Marketcap Kripto
    • 50 Top Gainer
    • 50 Top Loosers
  • Exchanges
Facebook Twitter Instagram
Bitcoin Media Indonesia
  • News
    • Bitcoin
    • Altcoin
    • Market
    • Teknologi
    • editorial
  • Bitcoin 101
    • Pengertian
    • Sejarah Bitcoin
    • Cara Kerja
  • MINING
    • Pengertian
    • CPU Mining
    • GPU Mining
    • Asic Mining
    • Cloud Mining
    • Cara Mining Altcoin
  • Jurnal
  • Tutorial
  • Komunitas
  • FIGUR
  • Coins
    • Marketcap Kripto
    • 50 Top Gainer
    • 50 Top Loosers
  • Exchanges
Bitcoin Media Indonesia
BitcoinMedia » NEWS » 5 Standar Transaksi Bitcoin Yang Perlu Diketahui
Jurnal

5 Standar Transaksi Bitcoin Yang Perlu Diketahui

adiBy adiJune 23, 2021Updated:August 10, 202112 Mins Read
Facebook Twitter Telegram LinkedIn Pinterest Tumblr Reddit WhatsApp Email
5 Standar Transaksi Bitcoin Yang Perlu Diketahui
Share
Facebook Twitter Telegram WhatsApp

Sejak bitcoin pertama dirilis dan mengalami beberapa pengembangan, terdapat 5 standar transaksi bitcoin. Klasifikasi standar transaksi bitcoin tersebut menjadi batasan jenis script yang bisa dikenali oleh berbagai klien di dalam platformnya agar transaksi bisa berjalan, valid, tanpa ada kesalahan.

Selanjutnya, batasan berupa standar script transaksi itu dikodekan ke dalam sebuah fungsi yang disebut dengan isStandard(). Meskipun telah diklasifikasikan dalam 5 jenis, tidak menutup kemungkinan nantinya ada pengembangan melalui modifikasi lebih jauh di masa mendatang, atau mungkin juga beberapa dihilangkan untuk optimalisasi.

5 standar transaksi Bitcoin tersebut adalah:

  1. Pay to Public Key Hash – P2PKH
  2. Pay to Script Hash – P2SH
  3. Pay to Public Key – P2PK
  4. Multi Signature – Multisig
  5. Data Output – OP_RETURN

Agar lebih memahami, terlebih dahulu perlu diketahui bahwa bahasa pengkodean, scriptBitcoin dijalankan berdasarkan setiap baris instruksi atau perintah, secara linier. Oleh sebab itu, bahasa script bitcoin secara stack based. Singkat katanya, Stack adalah struktur data pengkode yang cukup sederhana.

Jika diibaratkan struktur data script berdasarkan Stack, tak ubahnya seperti sebuah tumpukan kartu. Dari tumpukan kartu paling bawah, sampai ke atas, dan akan diproses per baris perintah dari kiri ke kanan. Karena proses kerja script bitcoin tersebut diproses secara linier, hanya sekali, oleh sebab itu Bitcoin tidak mengenal proses “loop”.

stack base - standar script transaksi bitcoin
Proses eksekusi script bitcoin, dengan susunan data Stake stack (gambar: An_Analysis_of_Non-standard_Transactions)

Dalam memproses setiap baris instruksi dalam cara kerjanya, Stack dioperasikan dalam dua perintah, yakni “push”, dan “pop”. Instruksi ‘push’, digunakan untuk menambahkan sebuah item baru diatas stack. Sementara ‘pop’ berfungsi untuk menghapus item di bagian atas Stack.

Bagian penting yang perlu dipahami, setiap proses eksekusi Script dilakukan setiap item per item dari kiri ke kanan. Perintah untuk mengatur ‘pop’ dan ‘push’, adalah dengan fungsi “OP_ADD”. Dengan fungsi OP_ADD, mengatur parametar baris script mana yang ditambahkan ke Stack, dan juga menghapus item, dan memasukkan hasilnya kembali ke dalam stack.

Kedua, perlu pula untuk mengetahui bahwa “Address Bitcoin”, adalah berupa hash dari public Key. Sementara setiap transaksi, akan terdiri pula dari Input, dan Output, beserta Digital Signature. Istilah-istilah penting itu yang nantinya akan banyak bermunculan dalam memahami standar transaksi bitcoin, beserta turunannya.

Pay to Public Key Hash – P2PKH

Pay-to-Public-Key-Hash, atau yang disingkat dengan P2PKH, adalah jenis script standar transaksi bitcoin yang paling banyak digunakan. Gambaran singkatnya, script transaksi itu dibuat seolah-olah “pengirim transaksi membayar kepada address penerima”. 

Bukankah P2PKH adalah Pay to Public Key Hash? Betul, namun perlu diingat kembali, bahwa Address Bitcoin tersebut sebenarnya adalah hasil dari hashing public key. Sedangkan Public Key di dalam Bitcoin, merepresentasikan “identitas pemilik”.

Tentu saja akan cukup berbeda dengan sebuah akun dalam perbankan. Identitas pemilik rekening harus tertera dengan detil, alamat, nama asli, no telp, dan sejumlah informasi asli pemilik lainnya. Hal itu bisa berakibat fatal, jika data penting pengguna berhasil diketahui orang lain. Menjadi pintu masuk untuk bisa diekspoitasi oleh penyerang.

Perbankan, dan banyak sistem pembayaran elektronik secara umum, berbentuk ”account based“. Artinya, pengguna harus memiliki akun berdasarkan detil informasi pengguna agar bisa menggunakan layanan tersebut.

Sistem yang berbasis ‘akun’ tersebut, tidak digunakan Bitcoin, atas alasan keamanan pengguna sebagai poin paling mendasar. Identitas pengguna, selanjutnya diganti menggunakan sepasang key, yakni Public Key dan Private Key. Sepasang key tersebut terbukti jauh lebih tangguh, ketimbang berbasis akun.

Oleh sebab itu, jenis script transaksi P2PKH bisa dilakukan hanya dengan seolah-oleh membayar kepada hash public key milik penerima transaksi saja.

OP_DUP OP_HASH160 <Hash Public Key Penerima> OP_EQUAL OP_CHECKSIG

Baca Juga: Script Bitcoin dalam Cara Kerja Bitcoin

Dapat dilihat disana, Hash public key penerima sebagai tujuan transaksi pada jenis script P2PKH. Sehingga yang masuk pada script di atas, adalah address bitcoin milik penerima. Hash public key, sudah diformat menjadi Base58.

Pengkodean dalam format Base58 bertujuan untuk menyingkat string menjadi lebih pendek. Karena, jika public key tersebut belum diformat ke dalam base58, tidak akan mudah untuk dibaca manusia. Sehingga address Bitcoin yang umum diketahui banyak orang, biasanya diawali dengan angka satu “1”.

Baris script ditas, bisa diproses dengan mengunci output transaksi. Output transaksi itu kemudian baru akan bisa ditransaksikan kembali oleh penerima, jika memiliki public key dan private key yang berelasi. Proses “Lock” dan “Unlock” transaksi di dalam Bitcoin ini disebut dengan UTXO (Unspend Transaction Output).

Jika kita coba untuk merinci lebih detil script tadi, sebenarnya output transaksi akan dikunci sementara, sampai penerima bisa menunjukkan digital signature yang sesuai dengan address tersebut, menggunakan private key yang sesuai agar output unspend transaction itu bisa ditransaksikan kembali.

lock dan unlock output transaksi
Script Lock dan Unlock transaksi (gambar: Andreas Antonopoulos – Mastering Bitcoin)

Lalu bagaimana script selanjutnya agar penerima bisa unlock output, dan dapat ditransaksikan kembali? Yang dibutuhkan untuk unlock output transaksi adalah sepasang key, yakni Public Key dan Private Key. Sepasang key tersebut digunakan secara bersamaan, terutama dalam membubuhkan digital signature.

Sehingga yang dibutuhkan untuk membuka kunci output transaksi itu, adalah digital signature dan public key:

<Digital Signature> < Public Key>

Jika kedua script tersebut digabungkan, maka akan menjadi:

<Digital Signature> <Public Key> OP_DUP OP_HASH160
<Public Key Hash> OP_EQUAL OP_CHECKSIG

Jika kedua baris tersebut dieksekusi, perintah OP_EQUAL (EQUALVERIFY) selanjutnya akan berperan memeriksa script tersebut berhasil atau tidak. Perintah tersebut secara otomatis akan menjadi “True”, jika input yang disertakan benar-benar sesuai. Sebaliknya “False” jika inputnya tidak sesuai. Sederhananya, perintah Equalverify memeriksa valid tidaknya script transaksi tersebut. Sekaligus, merepresantikan validitas digital signature penerima, jika output transaksi itu hendak ditransaksikan kembali.

Sekilas, dari penjelasan P2PKH, kita akan melihat bagaimana dasar-dasar sebuah smart contract. Orang awam, kebanyakan tidak melihat bahwa detil standar transaksi bitcoin, sebenarnya juga sebuah smart contract.

Pay to Script Hash – P2SH

Standar script transaksi ke dua adalah Pay to Script Hash – P2SH. Script ini awalnya diperkenalkan di tahun 2021 silam. P2SH menjadi salah satu script transaksi bitcoin yang cukup bagus, lebih singkat, dan mudah digunakan dalam berbagai modifikasi script lainnya.

Mengapa disebut memudahkan untuk berbagai modifikasi script lainnya? Karena P2SH juga punya potensi untuk mempermudah script transaksi bitcoin dalam script yang lebih kompleks. Misalnya saja untuk proses pembayaran yang membutuhkan bahasa script yang lebih rumit, dengan kondisi yang berbeda-beda.

Singkat katanya, script P2SH seolah-olah “pengirim transaksi membayar kepada script yang sesuai dengan hash dari script ini”. Di sisi penerima, dengan kondisi yang berbeda, bisa membuka kunci output transaksi, asalkan script yang digunakan masih sesuai. Sehingga penerima bisa mentransaksikan kembali.

Oleh sebab itu, P2SH kemudian disebut juga sebagai “redeem script”. Pasalnya, titik fokus utama script transaksi P2SH untuk bisa membuat lebih sederhana persyaratan yang rumit untuk bisa membelanjakan output transaksi tersebut. Tentu saja, dengan kompleksitas dan situasi yang berbeda, untuk bisa mentransaksikan kembali.

Misalnya saja, pada sebuah kondisi bahwa transaksi itu melibatkan beberapa pihak. Dalam hal ini, beberapa pihak tersebut hanya cukup dilibatkan melalui digital signature yang berbeda. P2SH, menggunakan pula pola ”Multi Digital Signature“.

Berikut contoh skema script multisignature yang dimaksud:

<Public Key Pengirim> <Pihak 1 Public Key> <Pihak 2 Public Key> <Partner 3 Public Key> <Public Key Penerima> OP_CHECKMULTISIG

Pada script multi signature di atas, diketahui ada 5 pihak dalam transaksi tersebut. Pengirim transaksi, Pihak 1, Pihak 2, Pihak 3, dan Penerima. Anda tentu bisa membayangkan sendiri bagaimana potensi jenis script transaksi ini bisa digunakan untuk transaksi yang lebih kompleks bukan?

Script diatas, jika dilihat dalam kode aslinya, tentu cukup panjang. Terutama public key tersebut masih belum disederhanakan. Sementara, P2SH sudah berbentuk hash signature dari kelima pihak tersebut. Maka akan menjadi lebih singkat:

OP_HASH160 54c557e07dde5bb6cb791c7a540e0a4796f5e97e OP_EQUAL

Selanjutnya, sebagai reedem script, agar bisa ditransaksikan kembali:

<Sig1> <Sig2> <2 PK1 PK2 PK3 PK4 PK5 5 OP_CHECKMULTISIG>

Di sisi penerima, pada script di atas, dapat dilihat bahwa penerima harus memasukkan script asli untuk bisa mentransaksikan kembali. Script tersebut, pada contoh awal, terdapat 5 pihak, sehingga membutuhkan public key dari kelima pihak tersebut.

Jika digabungkan dalam bentuk hash, maka pemeriksaan pertama untuk redem script tersebut menjadi:

<2 PK1 PK2 PK3 PK4 PK5 5 OP_CHECKMULTISIG> OP_HASH160 <redeem scriptHash> OP_EQUAL

Setelah pemeriksaan berhasil, sesuai, maka unlock scriptnya menjadi:

<Sig1> <Sig2> 2 PK1 PK2 PK3 PK4 PK5 5 OP_CHECKMULTISIG

Secara keseluruhan, P2SH memberikan banyak keuntungan, terutama dalam modifikasi script transaksi di situasi yang lebih kompleks, melibatkan banyak pihak. Hal ini tentu saja membuka peluang lebih besar di masa depan.

Hanya saja, penggunaan P2SH memang lebih rumit. Terlebih lagi, P2SH adalah script transaksi bitcoin yang merinci persyaratan apa yang harus terpenuhi agar output transaksi itu bisa ditransaksikan kembali. Implementasi script yang salah, bisa berakibat sejumlah dana yang telah terkunci, menjadi tidak bisa ditransaksikan kembali, atau tidak bisa dipergunakan.

 Pay to Public Key – P2PK

Pay to Public Key adalah script standar transaksi bitcoin yang paling sederhana. Artinya, pengirim membayar kepada publik key miliknya sendiri. Sehingga lock output juga kepada address itu sendiri. Sehingga script transaksi juga menjadi lebih singkat, jika dibandingkan dengan P2PKH.

Hampir sebagian besarnya, P2PK digunakan sebagai script transaksi Coinbase, untuk transaksi penerimaan reward block dalam pertambangan Bitcoin. Script transaksi P2PK ini diperkenalkan sendiri oleh Satoshi Nakamoto.

<Signature from Private Key> <Public Key> OP_CHECKSIG

Multi Signature – Multisig

Sudah sempat disinggung tentang multi digital signature pada jenis transaksi P2SH. Jenis script transaksi Multi Signature, juga menggunakan skema banyak digital signature. Sehingga standar script transaksi Multi Signature ini biasa disebut dengan skema M-of-N. Huruf N adalah total key yang terlibat dalam transaksi, sedangkan M adalah batas jumlah digital yang diperlukan dalam proses validasi transaksinya.

Misalnya saja, dalam sebuah transaksi, hanya membutuhkan dua digital signature dari 2 pihak untuk bisa diproses. Maka, transaksi itu harus menyertakan digital signature dari kedua belah pihak. Berikut script untuk public key dan digital signaturenya:

Pubkey script: <m> <A pubkey> [B pubkey] [C pubkey...] <n> OP_CHECKMULTISIG
Signature script: OP_0 <A sig> [B sig] [C sig...]

Agar lebih singkat, multisig tersebut bisa dirubah dalam bentuk hash agar lebih singkat. Jika digabung dalam redeem script untuk penerima, maka akan menjadi:

Pubkey script: OP_HASH160 <Hash160(redeemScript)> OP_EQUAL
Redeem script: <OP_2> <A pubkey> <B pubkey> <C pubkey> <OP_3> OP_CHECKMULTISIG
Signature script: OP_0 <A sig> <C sig> <redeemScript>

Data Output – OP_RETURN

Data output ini adalah bahwa bitcoin memungkinkan untuk menambahkan arbitrary data (sembarang data berupa text atau angka) ke dalam transaksi. Null Data atau OP_RETURN ini mulai dipergunakan sejak versi Bitcoin Core 0.9 dan 0.10.

Demi menjaga agar kapasitas data yang tersimpan di blockchain bitcoin tidak membengkak, standar ukuran arbitrary data ini kemudian dibatasi hanya 40 byte. Awalnya di versi bitcoin Core sebelumnya masih bisa hingga 80 byte.

Pubkey Script: OP_RETURN <0 to 40 bytes of data>
(Null data scripts cannot be spent, so there's no signature script.)

OP_RETURN adalah salah satu jenis script transaksi yang cukup unik. Karena pada dasarnya, opcode OP_RETURN digunakan untuk menandai output transaksi yang tidak valid. Sekaligus, memberikan penanda pula bahwa output transaksi itu menjadi output transaksi yang unspendable. Sehingga, output itu tidak dapat ditransaksikan kembali.

Oleh sebab itu, mekanisme penggunaan opcode OP_RETURN, memang dibutuhkan juga dalam proof of burn.

Pubkey Script: OP_RETURN <0 to 40 bytes of data>

Jika melihat script OP_RETURN di atas, dapat diketahui bahwa tidak ada script untuk digital signature. Sehingga OP_RETURN, akan menghasilkan output transaksi yang tidak dapat ditransaksikan kembali. Baca lebih jauh kegunaan OP_RETURN.

Diluar 5 standar transaksi tersebut, ada pula jenis-jenis transaksi bitcoin lain. Secara umum, sebagian besar jenis transaksi lainnya ini masih belum menjadi standar. Atau bisa juga sebagai hasil pengembangan bitcoin lanjutan.

Istilah ini kemudian disebut dengan Non Standard Transaction.

Non Standard Transaction

Secara umum, jaringan bitcoin masih memungkinkan untuk membaca jenis-jenis transaksi Non-Standard, selama masih menggunakan redeem script dalam output hash berupa P2SH. Hal ini karena penambang di jaringan hanya cukup dengan melihat hash saja. Sehingga, output transaksi kemudian bisa dianggap valid.

Oleh sebab itu, sebagian besar referensi tentang dokumentasi pengembang, tetap memasukkan jenis transaksi  Non-Standar sebagai salah satu referensinya.

Pada pengambangan Bitcoin lebih jauh, terutama setelah Implementasi SEGWIT yang telah aktif, beberapa standar transaksi Bitcoin juga menyesuaikan berdasarkan Segwit. Dua jenis standat transaksi yang paling berpengaruh dan banyak digunakan untuk menyesuaikan Segwit adalah P2SH dan P2PKH. Berikut adaptasinya.

Native Segwit P2PKH – P2WPKH

Implementasi Segwit pada Bitcoin, berupaya untuk meringkas ukuran script transaksi menjadi lebih kecil, lebih padat, sehingga biaya transaksi yang diukur per byte juga menjadi lebih murah. Caranya adalah dengan tidak menyertakan digital signature, dan diganti dengan pola Witness. Secara lebih sederhana, digital signature pada dasarnya bukan berarti dihapus dan tidak dipergunakan, ada di tempat lain, namun tidak disertakan dalam script transaksi.

Sehingga jenis script P2PKH untuk Segwit (P2WPKH) menjadi:

ScriptPubKey: 0 <20-byte-PublicKeyHash>
ScriptSig: (empty)
Witness:<Signature> <Public Key>

Jika dibandingkan dengan standar P2PKH, ukuran script P2WPKH lebih kecil. Script Witness di atas, pada dasarnya tetap berisi informasi tentang digital signature, dan juga public key. Hanya saja, yang disertakan hanya berupa witness, saksi berisi informasi lebih singkat. Sementara, digital signature dan public key aslinya, hanya dipindah di stack witness data.

Perlu menjadi catatan penting, bahwa public key hash untuk Segwit, adalah menggunakan Bech32 (format base32), tak lagi berupa Base58. Umumnya, address Segwit juga ditandai dengan awalan “bc1 …”

Segwit P2WSH

Adaptasi jenis transaksi P2WSH ini lebih fokus untuk adaptasi P2SH, dengan script yang lebih kompleks. Bisa dikatakan, implementasi P2WSH untuk jenis script P2SH berbasis Segwit.

ScriptPubKey: 0 <32-byte-redeemScriptHash>
ScriptSig: (empty)
Witness: <witness items> <redeemScript>

RedeemScript: (any)

Jika dilihat script P2WSH di atas, kita bisa mengetahui bahwa redeem script sama seperti konsep redeem script di P2SH. Secara umum, redeem script bisa melalui modifikasi apa saja, asalkan tetap dikenali. Yang cukup penting untuk adaptasi P2SH di Segwit, adalah hash redeem script sesuai, dengan standar 32 byte.

P2WPKH Pada P2SH

Sama seperti standar P2PKH untuk P2SH, untuk adaptasi Segwit, script P2SH  sama menggunakan 0 <20-byte-PublicKeyHash>.

ScriptPubKey: OP_HASH160 <20-byte-redeemScriptHash> OP_EQUAL
ScriptSig: <0 <20-byte-PublicKeyHash>>
Witness: <Signature> <PublicKey>

RedeemScript: 0 <20-byte-PublicKeyHash>

Bitcoin Script Bitcoin segwit
Previous ArticleRobert Kiyosaki: China Banned Bitcoin Tiap Tahun
Next Article USD 75 Juta Dalam Bentuk Ethereum Ludes Karena Private Key Hilang
adi
  • Website
  • Facebook
  • Twitter

Adi S, pemerhati Bitcoin dan cryptocurrency. Telah mengikuti dunia bitcoin sejak lama, dan akhirnya memutuskan untuk membuat dokumentasi yang lebih detail tentang penjelasan dunia cryptocurrency di Indonesia.

Related Posts

Rand Paul: Bitcoin Jadi Cadangan Devisa Dunia

October 27, 2021By adi

Bitcoin Menuju 1 Milyar, Bisa Dicapai Tahun Ini?

October 25, 2021By adi

Poster Beli Bitcoin Di Belakang Janet Yellen, 3 Detik Christian Langalis Menjadi Tenar

July 13, 2021By adi

Pembangkit Listrik Hidro Power AS, Lebih Baik Menambang Sendiri Ketimbang Jual Listrik

July 9, 2021By Fajar Ari

Awas, Modus Kencan Melalui Aplikasi Tinder Berpotensi Curi Bitcoin

July 9, 2021By adi

Situs Bitcoin.org Kena DDoS Attack, Minta Tebusan Bitcoin

July 6, 2021By Fara Yuniar
Add A Comment

Leave A Reply

You must be logged in to post a comment.

Recent Posts
  • Kodo Assets: Token Properti untuk Memudahkan Akses Investasi
  • Bybit Bagikan Airdrop Hingga 23.500 USDT! Ini Caranya
  • 500 E-NFT Ludes Terjual, Herosnake Dorong Pertumbuhan Arcade GameFi
  • Token Properti Kodo Assets, Alternatif Baru Raih Passive Income
  • Dukung Energi Terbarukan, Cudos Bekerja Sama dengan EnergyNetiQ
Bitcoin Media Indonesia
Berdiri sejak 2016, Bitcoin Media Indonesia menjadi media komunitas kripto pertama di Indonesia

Subscribe to Updates

Get the latest creative news from FooBar about art, design and business.

Recent Comments
  • Satria on WXCoins Kripto Abal-abal, Masuk Daftar Hitam Satgas Waspada Investasi
  • DAULAYBRO on WXCoins Kripto Abal-abal, Masuk Daftar Hitam Satgas Waspada Investasi
  • Edukasi Bitcoin on 6 GPU Terbaik Untuk Mining Tahun 2018
© 2023 Bitcoin Media Indonesia.
  • Perihal Situs BitcoinMedia.id
  • Privacy Policy
  • Syarat Layanan
  • Disclaimer
  • Contact

Type above and press Enter to search. Press Esc to cancel.