Show Posts
|
|
Pages: [1]
|
Kuis SFI Jilid 2 [ended] Reward : Up to 8 Merits Peserta : Seluruh member SFI yang terdaftar sebelum 1 Mei 2024 (tidak ada batasan Rank) Rules : - No Alt-Account (calon peserta hanya diijinkan membuat jawaban menggunakan 1 akun saja)
- Dilarang memposting jawaban secara langsung pada thread ini
- Jawaban yang telah dikirimkan tidak bisa di revisi ulang
- 1 Peserta hanya diperkenankan mengirimkan 1 form jawaban saja
- Jumlah peserta hanya terbatas pada 20 orang saja (karena keterbatasan sMerit yang dimiliki oleh OP)
- Masing-masing pertanyaan memiliki reward merit berdasarkan porsinya
- Tidak ada keharusan untuk menjawab kelima pertanyaan Kuis (silahkan diisi yang memang dirasa bisa)
- Batas waktu Kuis : 1 Minggu atau Kuota calon peserta mencapai limit (mana yang tercapai lebih dulu)
Kuis :1. Siapakah Member Bitcointalk yang menjadi pemilik domain bitcointalk.org ? (Jawaban harus disertai dengan link url dari profil member yang ditanyakan), Reward : 1 Merit2. Sesuai dengan protokol yang ada di jaringan Bitcoin, berapakah batas ukuran maksimal dari ScriptSig, pada sebuah transaksi Coinbase (Generation Transaction) ? (Satuan ukuran ScriptSig adalah Byte), Reward : 1 Merit3. Diantara Cryptocurrency dibawah ini, altcoin manakah yang bukan merupakan fork dari repository Bitcoin ? - Bitcoin SV (BSV)
- Bitcoin XT (BTCXT)
- BitcoinZ (BTCZ)
- Litecoin (LTC)
- BitcoinX (BCX)
(Pilih salah satu dari Jawaban yang tersedia), Reward : 1 Merit4. Sebuah kandidat Block (Bitcoin) dengan versi 00000002 berhasil dibuat pada tanggal 11 Mei 2024, jam 10:05:05 (WIB). Kandidat Block tersebut memiliki merkle root 00fd81bf15fbee08555c189c8f09eba3d257acaa72c68e07313d5d0d93c87d74, dan nonce yang digunakan adalah f860c700. Jika hash dari Block sebelumnya adalah 00000000000000000017ed39e6265758c730ebc37e207010d214225f3f84f81d dan Bits (target) adalah 1715a35c, maka.... - Tentukanlah Hash (Block Header) dari kandidat Block tersebut ?
- Apakah Hash tersebut memenuhi kriteria untuk menjadikan kandidat block menjadi sebuah Block yang Valid ?
(Jawaban harus disertai uraian dan langkah-langkah yang jelas), Reward : 5 MeritsLink Submit Jawaban :Untuk menghindari copas dan duplikasi jawaban dari peserta lainnya, maka untuk pelaksanaan Kuis di proses melalui Google Form Form Kuis SFI Jilid 2Format Post tanda keikutsertaan di Kuis SFI Jilid 2 ini* Username : * Link Username : * Sudah mengisi Form Kuis SFI : Ya
|
|
|
|
Kuis SFI (ended)Reward : Up to 7 Merits Peserta : Seluruh member SFI yang terdaftar sebelum 1 Mei 2024 (tidak ada batasan Rank) Rules : - No Alt-Account (calon peserta hanya diijinkan membuat jawaban menggunakan 1 akun saja)
- Dilarang memposting jawaban secara langsung pada thread ini
- Jawaban yang telah dikirimkan tidak bisa di revisi ulang
- 1 Peserta hanya diperkenankan mengirimkan 1 form jawaban saja
- Jumlah peserta hanya terbatas pada 25 orang saja (karena keterbatasan sMerit yang dimiliki oleh OP)
- Detail dari pertanyaan Kuis ada di Form Kuis SFI
- Masing-masing pertanyaan memiliki reward merit berdasarkan porsinya
- Tidak ada keharusan untuk menjawab kelima pertanyaan Kuis (silahkan diisi yang memang dirasa bisa)
Kuis :1. Kapan pertama kali Satoshi Nakamoto membuat posting di forum ini ? (reward : 1 merit)2. Kapan Local Board Bahasa Indonesia (Indonesian) atau yang lebih kita kenal dengan sebutan SFI pertama kali lahir, dan siapa member yang membuat post pertama kali di SFI ? (reward : 1 merit)3. Kapankah transaksi Bitcoin terhadap Fiat pertama kali dibuat (transaksi yang memberikan nilai moneter terhadap Bitcoin) ? (reward : 1 merit)4. Tiga Algoritma Mining Pertama pada mekanisme Proof of Work ? (reward : 1 merit)5. Sebuah Cryptocurrency memiliki protokol dan mekanisme konsensus yang sangat identik dengan Bitcoin, diketahui memiliki tingkat difficulty mining 777888999. Jika Block ke 6047 ditemukan pada 11-04-2024 04:17:00 dan Block 8062 dibuat pada 24-04-2024 13:45:05, maka berapakah tingkat Difficulty mining pada Block ke 8063 ? (reward : 3 merit)Link Submit Jawaban :Untuk menghindari copas dan duplikasi jawaban dari peserta lainnya, maka untuk pelaksanaan Kuis di proses melalui Google Form Form Kuis SFIFormat Post tanda keikutsertaan di Kuis SFI ini* Username : * Link Username : * Sudah mengisi Form Kuis SFI : Ya
|
|
|
|
Apa yang membuat kalian enggan berdiskusi di thread teknikal Bitcoin dan Blockchain ??Apakah karena kalian takut ? Apakah karena tidak menguasai pembahasan ? Apakah karena tidak bisa buat kejar setoran posting ? Rata-rata postingan di SFI dalam sehari ada di sekitaran 50-100 Post, namun anehnya hanya topik-topik receh yang setiap hari rame, sementara topik-topik yang memiliki pembahasan berat (membahas perihal tekhnikal Bitcoin, dan teknologi Blockchain) hanya member-member tertentu yang mau ikut berdiskusi didalamnya. Sangat jauh berbeda dengan era tahun 2017-2019 dimana cukup banyak member SFI yang sangat tertarik berdiskusi, berkontribusi atau sekedar mencari informasi di Thread-thread teknikal Bitcoin dan Blockchain. Sudah bukan rahasia jika mayoritas member pasti menginginkan Rank Tinggi dan mendapatkan banyak merit dan rata-rata kalo ditanya pasti menjawab, bahwa mereka ingin lebih maju dan berkeinginan berupaya membuat postingan yang berkualitas. Namun nyatanya hanya sedikit yang berani menyebrang dari zona nyaman mereka, sementara lainnya hanya tetap berkutat di thread-thread receh yang notabene menjadi ladang spam, perulangan opini dan wadah yang cocok buat kejar target postingan Sigcamp dan Bounty. Kalo memang benar-benar ingin maju, naik rank cepet dan mendapatkan banyak merit, jangan hanya niatan itu cuman menjadi sebatas ucapan saja. Minimal luangkan waktu 30-60 menit sehari untuk mencoba berdiskusi di thread-thread yang bukan merupakan zona nyaman kalian. Tidak harus membuat postingan yang panjang lebar atau repot-repot main ke Technical Global Board, bahkan jika anda cuma sekedar bertanya (on-Topic) itu sudah merupakan awal yang bagus, asal itu bukan merupakan postingan yang hanya bersifat hit and run (1 postingan lalu menghilang tanpa jejak).
Beberapa contoh Thread yang membahas perihal teknikal Bitcoin dan Blockchain : [Edukasi] Privasi dan Anonimitas BitcoinBITCOIN COREELECTRUM - BITCOIN WALLET[Edukasi] Dari Private Key Sampai Ke Bitcoin Address (Untuk Pemula)[INFO] Algoritma Konsensus pada Teknologi Blockchain[GUIDE] Bitcoin-CLI via Command Prompt (Windows)[GUIDE] Cara Membuat Alamat Bitcoin Unikmu Sendiri (Custom Address)◉ Bitcoin Protocol Rules ◉[Edukasi] Proses Transaksi & Block di Jaringan Blockchain Bitcoin
|
|
|
|
As far as I know, to describe Script Tree with Script Path 1: <Key1> OP_CHECKSIG <Key2> OP_CHECKSIGADD OP_2 OP_NUMEQUAL and Script Path 2: <Key3> OP_CHECKSIG I have to use Taproot expression: tr(InternalKey,{multi_a(2,Key1,Key2),pk(Key3)}), so that the descriptor can be imported into Bitcoin core with private key disabled. However, for example, if I want to change script path 2 as OP_10 OP_CHECKSEQUENCEVERIFY OP_DROP <Key3> OP_CHECKSIG I don't know what kind of expression to use? tr(InternalKey,{sortedmulti_a(2,Key1,Key2),???)})
|
|
|
|
Index
[Edukasi] Proses Transaksi & Block di Jaringan Blockchain Bitcoin
Secara umum pada saat seseorang mengirimkan BTC dari wallet yang dimilikinya ke Wallet milik orang lain, maka pada saat transaksi tersebut mendapatkan konfirmasi Block, secara otomatis Balance pada kedua Wallet akan mengalami perubahan. Sederhananya Balance dari pengirim akan berkurang dan Balance milik penerima akan bertambah sebesar jumlah nilai transaksi yang dilakukan. Pada prakteknya, proses transaksi dari satu address ke address lainnya di dalam jaringan Bitcoin harus melalui proses komputasi dan prosedur yang cukup kompleks yang melibatkan keseluruhan Node yang ada di Jaringan Bitcoin. Disini, akan saya jelaskan mengenai flow sebuah transaksi dan bagaimana transaksi tersebut mendapatkan konfirmasi block, sehingga output dari transaksi tersebut bisa digunakan sebagai referensi (UTXO) buat transaksi-transaksi selanjutnya. ● Proses Transaksi ◉ Pada saat sebuah transaksi baru dibuat, secara umum transaksi tersebut akan berisikan address pengirim, address penerima, besaran BTC yang dikirimkan dan besaran fee transaksi. Sebenarnya yang menjadi nilai besaran BTC yang akan dikirimkan adalah UTXO yang merupakan Output dari transaksi yang belum digunakan. UTXO tersebut digunakan sebagai Input yang merupakan referensi dari transaksi yang dipilih, sehingga pada Input akan berisikan hash dan indeks dari TXID yang mewakili UTXO. Sementara pada Output berisikan intruksi untuk mengirimkan BTC (berapa besar jumlah BTC yang dikirimkan, dan address penerima transaksi). ◉ Transaksi yang dibuat harus ditandatangani terlebih dahulu menggunakan private key melalui proses kriptografi. Selain sebagai tanda persetujuan, hal ini juga menjadi bukti bahwa UTXO yang digunakan dalam Input adalah milik si pengirim, sekaligus akan menciptakan UTXO baru bagi pemilik address penerima. ◉ Setelah transaksi dibuat dan ditandatangani, maka transaksi tersebut akan memiliki struktur dengan Version, Flag, Input Count, Input, Output Count, Output, Witness data dan Locktime didalamnya. Sebagai contoh saya menggunakan transaksi 55fc28c1ca463fc27c7092d5776d6d78a2607741bb622bd888d0da5cedbd2903, yang jika diuraikan RAW data dari transaksi tersebut adalah sebagai berikut : RAW Transaction0200000000010151ab9ecdaeb374eacdd52ea3c56ef65ab3c1a5017b851e54a55872cf604a144d0 100000000fdffffff02357b140000000000160014cf63468044aedeb9e83d594bf958970951d953 ca1147d300000000001600144a15270d0f29348f4733b3e8306ed612eadc1c6f024730440220186 a25919f4c5c9b24db4296336763ed2a1d6267c97ff13104a42e3bac564723022078fa2ad2db73a9 6023df6b482c5c5c7b0599378f224d1e609af7f024d277c2f7012102f264b13d35294c6bcdea229 f229645ad990989816be46605599579a5f947f337dd3b0b00 Transaction Structure 02000000 0001 01 51ab9ecdaeb374eacdd52ea3c56ef65ab3c1a5017b851e54a55872cf604a144d 01000000 00 fdffffff 02 357b140000000000 16 0014cf63468044aedeb9e83d594bf958970951d953ca 1147d30000000000 16 00144a15270d0f29348f4733b3e8306ed612eadc1c6f 02 47 30440220186a25919f4c5c9b24db4296336763ed2a1d6267c97ff13104a42e3bac564723022078f a2ad2db73a96023df6b482c5c5c7b0599378f224d1e609af7f024d277c2f701 21 02f264b13d35294c6bcdea229f229645ad990989816be46605599579a5f947f337 dd3b0b00 | Version | | 02000000 | | | Menyatakan Versi 2 | | Witness Flag* | | 0001 | | | Marker 0x00 , Flag 0x01 | | Input Count | | 01 | | | Jumlah Input 1 | | Hash of referenced Tx | | 51ab9ecdaeb374eacdd52ea3c56ef65ab3c1a5017b851e54a55872cf604a144d | | | Hash dari transaksi yang digunakan sebagai input | | Index of transaction output | | 01000000 | | | Index dari UTXO, Vout = 1 | | ScriptSig Size | | 00 | | | 1 byte yang menyatakan Ukuran dari Unlocking-Script | | Sequence Number | | fdffffff | | | diasumsikan sebagai RBF karena fdffffff < ffffffff | | Output Count | | 02 | | | Jumlah Output 2 | | Amount Output 1 | | 357b140000000000 | | | 1342261 satoshis = 0.01342261 BTC | | ScriptPubKey Size Output 1 | | 16 | | | Menyatakan ukuran 22 bytes | | ScriptPubKey Output 1 | | 0014cf63468044aedeb9e83d594bf958970951d953ca | | | OP_0 OP_PUSHBYTES_20 <20-byte hash> | | Amount Output 2 | | 1147d30000000000 | | | 13846289 satoshis = 0.13846289 BTC | | ScriptPubKey Size Output 2 | | 16 | | | Menyatakan ukuran 22 bytes | | ScriptPubKey Output 2 | | 00144a15270d0f29348f4733b3e8306ed612eadc1c6f | | | OP_0 OP_PUSHBYTES_20 <20-byte hash> | | Count of witness components* | | 02 | | | Jumlah Witness Component 2 | | Witness size component 1* | | 47 | | | Menyatakan ukuran 71 bytes | | Witness data component 1* | | 3044022018.........................................024d277c2f701 | | | Data yang merupakan script signature | | Witness size component 2* | | 21 | | | Menyatakan ukuran 33 bytes | | Witness data component 2* | | 02f264b13d35294c6bcdea229f229645ad990989816be46605599579a5f947f337 | | | Data yang merupakan script signature | | Locktime | | dd3b0b00 | | | Block Height 736221 | * Merupakan part dari Witness (Segwit) Transaction, untuk Non - Witness Transaction akan memiliki witness field kosong◉ Transaksi diatas merupakan Segwit Transaction yang ketika dikirimkan ke Jaringan Blockchain Bitcoin, transaksi tersebut akan memiliki 2 IDs (identifiers) yakni TXID dan WTXID. WTXID merupakan hash (double-sha256) dari keseluruhan struktur transaksi yang dibuat termasuk witness data, sehingga jika diimplementasikan pada RAW Transaction diatas akan didapatkan hash sebagai berikut c727e500a9565be2630fa540fbd26de3dd5a0763deda09d1d4a6cbd42ebfcc77 TXID merupakan hash (double-sha256) dari sebuah transaksi yang pada strukturnya semua part dari witness tidak diikutsertakan. Pada transaksi diatas jika part dari witness data dihilangkan akan didapatkan RAW Transaction sebagai berikut 020000000151ab9ecdaeb374eacdd52ea3c56ef65ab3c1a5017b851e54a55872cf604a144d0100000000fdffffff02357b140000000000160014cf63468044aedeb9e83d594bf958970951d953ca1147d300000000001600144a15270d0f29348f4733b3e8306ed612eadc1c6fdd3b0b00 Jika dilakukan Double-Sha256 pada raw transaction (no-witness data) tersebut maka akan didapatkan TXID 55fc28c1ca463fc27c7092d5776d6d78a2607741bb622bd888d0da5cedbd2903 ◉ Setelah transaksi di broadcast ke Jaringan Blockchain Bitcoin, maka transaksi tersebut akan divalidasi dan dimasukan kedalam Memory (Transaction) Pool dari masing-masing Node yang ada di Jaringan Bitcoin dengan status "Unconfirmed". ◉ Semua transaksi yang berada di dalam Mempool, memiliki chance untuk bisa masuk ke dalam kandidat Block berdasarkan dengan nilai fee transaksi yang digunakan, dimana pada umumnya kandidat Block akan memprioritaskan transaksi yang memiliki nilai fee lebih tinggi. Untuk pembahasan mengenai bagaimana transaksi masuk ke dalam kandidat Block dan bagaimana kandidat Block itu dibuat sehingga bisa menjadi sebuah Block yang valid, akan diulas di post #2
|
|
|
|
Bitcoin Protocol Rules
"Rules" yang digunakan oleh Bitcoin Client dalam memproses "message" dan mencegah dari adanya potensi "Unauthorized spending" [1] dan "Double spending" [2]● Data structures - Transactions
- Transaction Pool (Unconfirmed Transactions yang berada di Mempool)
- Orphan transactions (Transaksi yang dianggap orphan oleh node dan dimasukkan kedalam orphan pool karena parent transaction tidak eksis)
- Blocks
- Blocks di rantai utama (Deretan Blocks terpanjang)
- Blocks di rantai cabang (Deretan blocks disamping rantai utama dengan deretan yang lebih pendek)
- Orphan blocks
● Difficulty adjustment Difficulty mengalami perubahan setiap 2016 Bloks baru ditemukan, dimana waktu yang diperkirakan untuk menemukan 2016 Bloks adalah 2 Minggu. Sementara untuk rumus perubahan Difficulty adalah seperti ini : D+ = D0 * MT / SM D+ = New Difficulty (Difficulty baru) D0 = Initial difficulty (Difficulty sebelum mengalami perubahan) M = 2016 Blocks T = 10 minutes SM = Actual time 2016 Blocks (Waktu yang dibutuhkan untuk membuat 2016 Blocks pada saat Initial difficulty diterapkan) Jadi pada dasarnya Difficulty baru akan mengalami penurunan jika SM > MT, dan sebaliknya Difficulty baru akan mengalami kenaikan jika SM < MT * https://www.domob.eu/research/DifficultyControl.pdf● Block creation fee (Block Subsidy) Block creation fee atau dikenal juga sebagai Block Subsidy merupakan sebuah insentif yang didapatkan oleh node mining pada saat mereka berhasil membuat sebuah block yang valid. Insentif ini diterima sebagai Coinbase transaction (+ fee transaksi) yang ikut menjadi bagian dari Block yang mereka temukan. Pada awalnya nilai dari Block Subsidy adalah sebesar 50 BTC yang dimulai dari Genesis Block, dan akan mengalami penurunan sebesar 50% untuk setiap kelipatan 210000 Block baru ditemukan. Pemangkasan nilai Block Subsidy ini dikenal juga dengan istilah Bitcoin HalvingtxNew.vout[0].nValue = genesisReward CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B) CAmount nSubsidy = 50 * COIN; // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years. nSubsidy >>= halvings; return nSubsidy; ● "TX" Messages Seluruh node di jaringan Bitcoin melakukan verifikasi untuk setiap transasi berdasarkan kriteria sebagai berikut : - Sintaks transaksi dan struktur datanya harus benar
- Memastikan tidak ada Inputs maupun Outputs yang kosong
- Ukuran transaksi (dalam satuan "byte") harus kurang dari batas atau sama dengan maksimal ukuran block yang sudah ditentukan (SIZE <= MAX_BLOCK_SIZE)
- Untuk setiap nilai Output beserta nilai totalnya harus berada dalam rentang nilai yang sudah ditentukan (lebih dari 0 dan kurang dari 21 Juta koin)
- Memastikan tidak ada inputs yang memiliki hash=0, N=–1
- nLockTime kurang atau sama dengan INT_MAX[3] , Ukuran transaksi lebih besar atau sama dengan 100 bytes[4] dan sig opcount <= 2[5]
- Untuk setiap transaksi "nonstandard" akan di reject
- Untuk setiap transaksi baru yang identik dengan yang sudah ada di Mempool atau block valid akan di reject
- Jika input menggunakan referenced output yang sudah terpakai di transaksi lain yang berada di Mempool, maka akan di reject[6]
- Jika input menggunakan referenced output dari transaksi yang tidak dapat ditemukan di rantai block utama maupun Mempool, maka akan dianggap sebagai orphan transactions (ditaruh di orphan Pool)
- Untuk setiap Input yang menggunakan referenced output dari coinbase transaction, maka harus mendapatkan konfirmasi konfirmasi COINBASE_MATURITY (100) (jika tidak transaksi akan di reject)
- Untuk setiap transaksi yang memiliki Input menggunakan referenced Output yang tidak eksis (atau sudah digunakan) akan di reject[6]
- Untuk setiap nilai Input beserta nilai totalnya harus berada dalam rentang nilai yang sudah ditentukan (lebih dari 0 dan kurang dari 21 Juta koin)
- Jika jumlah nilai input lebih kecil dari jumlah nilai output maka transaksi akan di reject
- Jika fee transaksi terlalu rendah untuk dimasukan ke empty block, maka transaksi akan di reject
- scriptPubKey untuk setiap input harus diverifikasi, jika tidak sesuai akan di reject
- Untuk setiap transaksi yang memenuhi kriteria diatas akan dimasukan ke Memory Pool (MemPool)[7]
- Transaksi akan ditambahkan ke wallet jika berhasil masuk kedalam block valid
- Transaksi akan disebarkan ke node-node lain
- Untuk setiap orphan transaction, terapkan semua prosedur (termasuk poin 20 ini) secara rekursif pada orphan transaction tersebut
● "BLOCK" Messages Seluruh node di jaringan Bitcoin melakukan verifikasi dan validasi untuk setiap block berdasarkan kriteria sebagai berikut : - Sintaks block dan struktur datanya harus benar
- Duplikat Block yang ditemukan di salah satu dari 3 kategori Block yang ada akan di reject
- List transaksi tidak boleh kosong
- Block Hash harus memenuhi persyaratan proof of work (hash <= nBits)
- Block timestamp tidak boleh lebih dari 2 jam kedepannya
- Transaksi pertama harus merupakan Coinbase transaction
- Untuk setiap transaksi akan dilakukan pengecekan sesuai prosedur "TX" poin 2 s/d 4
- Untuk Coinbase transaction, panjang scriptSig harus 2-100
- Jika sig opcounts > MAX_BLOCK_SIGOPS, maka block akan di reject
- Melakukan verifikasi terhadap Merkle hash
- Jika hash previous Block tidak sesuai dengan yang ada di rantai block utama atau rantai block cabang, maka block akan dianggap sebagai orphan block
- Nilai nBits harus sesuai dengan Difficulty rules
- Jika timestamp lebih kecil atau sama dengan median time dari 11 Blocks sebelumnya, maka akan di reject
- Memeriksa block-block lama tertentu, dan memastikan memiliki hash yang sesuai dengan nilai yang diketahui (contoh : Initial Block Download)
- Memasukan Block kedalam rantai, dimana ada 3 kondisi: (1)Block dengan deretan terpanjang sebagai rantai utama, (2)rantai cabang dengan deretan block lebih pendek disamping rantai utama dan gagal menjadi rantai utama, (3)rantai cabang yang akhirnya menjadi rantai utama karena memiliki deretan block yang lebih panjang dari rantai utama sebelumnya.
- Jika kondisi (1) menjadi rantai utama
- Untuk semua transaksi kecuali coinbase, diterapkan :
- Jika input menggunakan referenced output dari transaksi yang tidak dapat ditemukan di rantai block utama, maka akan di reject
- Untuk setiap Input yang menggunakan "n" output dari transaksi sebelumnya, namun nilainya kurang dari "n+1" output, maka akan di reject
- Untuk setiap Input yang menggunakan referenced output dari coinbase transaction, maka harus mendapatkan konfirmasi konfirmasi COINBASE_MATURITY (100) (jika tidak akan di reject)
- Melakukan verifikasi crypto signatures untuk setiap input, jika tidak sesuai akan di reject
- Untuk setiap input yang menggunakan referenced output yang sudah digunakan oleh transaksi lain yang berada di rantai block utama, maka akan di reject
- Untuk setiap nilai Input beserta nilai totalnya harus berada dalam rentang nilai yang sudah ditentukan (lebih dari 0 dan kurang dari 21 Juta koin)
- Jika jumlah nilai input lebih kecil dari jumlah nilai output, maka akan di reject
- Jika nilai coinbase > nilai Block subsidy + transaction fee, maka akan di reject
- (jika tidak di reject), maka :
- Untuk setiap transaksi akan ditambahkan ke wallet jika berhasil dimining
- Untuk setiap transaksi di Mempool yang identik dengan transaksi yang sudah berada di Block valid akan di hapus
- Block akan disebarkan ke node-node lain
- Jika Block di reject, maka block tersebut tidak dianggap sebagai bagian dari rantai block utama
- Untuk kondisi (2) yang menjadi rantai block cabang, tidak akan dilakukan tindakan
- Untuk kondisi (3), dimana rantai block cabang menjadi rantai block utama
- Mencari fork block di rantai block utama, dimana terjadinya percabangan
- Mendefinisikan ulang rantai block utama untuk diperluas hanya ke fork block ini
- Untuk setiap block di rantai cabang, dari child of the fork block sampai ke ujungnya, ditambahkan ke rantai block utama
- Lakukan pemeriksaan "cabang" sesuai prosedur "BLOCK" poin 3 s/d 11
- Untuk semua transaksi kecuali coinbase, diterapkan :
- Jika input menggunakan referenced output dari transaksi yang tidak dapat ditemukan di rantai block utama, maka akan di reject
- Untuk setiap Input yang menggunakan "n" output dari transaksi sebelumnya, namun nilainya kurang dari "n+1" output, maka akan di reject
- Untuk setiap Input yang menggunakan referenced output dari coinbase transaction, maka harus mendapatkan konfirmasi konfirmasi COINBASE_MATURITY (100) (jika tidak akan di reject)
- Melakukan verifikasi crypto signatures untuk setiap input, jika tidak sesuai akan di reject
- Untuk setiap input yang menggunakan referenced output yang sudah digunakan oleh transaksi lain yang berada di rantai block utama, maka akan di reject
- Untuk setiap nilai Input beserta nilai totalnya harus berada dalam rentang nilai yang sudah ditentukan (lebih dari 0 dan kurang dari 21 Juta koin)
- Jika jumlah nilai input lebih kecil dari jumlah nilai output, maka akan di reject
- Jika nilai coinbase > nilai Block subsidy + transaction fee, maka akan di reject
- (jika tidak di reject), maka :
- Untuk setiap transaksi akan ditambahkan ke wallet jika berhasil dimining
- Jika di reject, maka rantai block utama harus dibiarkan seperti semula
- Untuk setiap block di rantai block utama (lama), dari child of the fork block sampai ke ujungnya, diterapkan :
- Untuk setiap transaksi yang bukan merupakan coinbase transaction di Block, diterapkan :
- Terapkan pemeriksaan sesuai prosedur "TX" poin 2 s/d 9 (Untuk poin ke-8 hanya dicari duplikat transaksi pada Mempool saja)
- Jika diterima, ditambahkan ke transaction pool, jika tidak lanjutkan ke transaksi berikutnya
- Untuk setiap block di rantai block utama (baru), dari child of the fork block sampai ke ujungnya, diterapkan :
- Untuk setiap transaksi di Mempool yang identik dengan transaksi yang sudah berada di Block valid akan di hapus
- Block akan disebarkan ke node-node lain
- Untuk setiap orphan block yang merupakan prev block, terapkan semua prosedur (termasuk poin 19 ini) secara rekursif pada orphan block tersebut
Note [1] Penggunaan Bitcoin (sebagai transaksi) yang dilakukan oleh orang lain tanpa ijin dan otorisasi dari pemilik. Dengan penerapan public-private key cryptography hal ini dapat dicegah [2] Penggunaan reference output yang sama pada sebuah Input transaksi, namun digunakan pada 2 output (address penerima) yang berbeda [3] nLockTime tidak boleh melebihi 31 bits [4] Transaksi yang valid harus memiliki ukuran lebih dari atau sama dengan 100 bytes. Jika kurang transaksi dianggap tidak valid [5] Jumlah signature operands didalam sebuah Signature pada transaksi standar tidak boleh lebih dari 2 [6] Rules ini mencegah potensi double-spending [7] Ketika transaksi diterima (masuk) ke Mempool, akan dipastikan bahwa nilai coinbase > Block Subsidy + fee transaksi *Reference Source https://en.bitcoin.it/wiki/Protocol_rules
|
|
|
|
● Siapa pencipta BitcoinBitcoin diciptakan oleh Satoshi Nakamoto dalam bentuk software (open source) yang dirilis pada January 2009 ● Bitcoin itu apaBitcoin adalah Cryptocurrency (aset Digital) terdesentralisasi yang beroperasi pada sebuah jaringan blockchain yang bersifat publik ● Apa itu CryptocurrencyAset Digital yang bisa berfungsi sebagai medium of exchange dan menggunakan enkripsi cryptography sebagai faktor pengamanannya. ● Jaringan BlockchainBlockchain disebut juga sebagai distributed ledger yang beroperasi pada sebuah jaringan Peer to Peer (P2P), yang menyimpan rangkaian block yang berisi berbagai catatan transaksi dan informasi dari block sebelumnya. ● Wujud BitcoinBitcoin berbentuk digital dan tidak memiliki wujud fisik. Untuk itu dibutuhkan sebuah Bitcoin Client sebagai tempat penyimpanan Bitcoin. ● Bitcoin ClientSebuah program/software yang dipergunakan untuk mengakses serta memproses transaksi, sekaligus berinteraksi dengan jaringan Blockchain Bitcoin. Sederhananya Bitcoin Client adalah sebuah wallet yang bisa dipergunakan untuk menyimpan dan bertransaksi Bitcoin. ● Bitcoin v0.1Merupakan Bitcoin Client pertama dan diciptakan oleh Satoshi Nakamoto https://www.metzdowd.com/pipermail/cryptography/2009-January/014994.html● Apakah suplai Bitcoin tak terbatasSuplai Bitcoin terbatas dan hanya memiliki limit sebesar 21 Juta BTC static constexpr CAmount COIN = 100000000; /** The amount of satoshis in one BTC. */ static constexpr CAmount MAX_MONEY = 21000000 * COIN; ● Bagaimana suplai Bitcoin disebarkanCoin baru dibuat dan disebarkan melalui Block Subsidy didalam mekanisme PoW ● Bitcoin HalvingMerupakan penerapan protokol terkait dengan bagaimana suplai Bitcoin disebarkan. Pada intinya Halving terjadi setiap 210.000 Block baru ditemukan, dan akan memotong nilai Block Subsidy sebesar 50% CAmount nSubsidy = 50 * COIN; // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years. nSubsidy >>= halvings; return nSubsidy; ● Siapa yang mengontrol BitcoinBitcoin tidak dikontrol oleh satu orang atau sebuah grup, namun Bitcoin bisa terus berkembang karena mendapat pengembangan dari developer dan dukungan dari komunitasnya. ● Apakah protokol Bitcoin bisa dirubahSiapapun bisa mengajukan perubahan namun harus melalui prosuder BIP dan tentunya mendapatkan konsensus. https://github.com/bitcoin/bips● Bagaimana cara mendapatkan BitcoinBitcoin dapat dengan mudah diperoleh dengan cara membelinya dari exchange atau melalui transaksi lainnya. Namun untuk benar-benar mendapatkan "fresh" Bitcoin hanya bisa diperoleh dari proses mining. ● Mining BitcoinSebuah aktifitas yang terjadi pada jaringan Blockchain dalam merumuskan sebuah block yang valid dan sesuai dengan mekanisme Proof of Work (PoW). Untuk upayanya bagi miners yang sukses membuat sebuah block akan mendapatan reward. ● Reward MiningInsentif yang diterima oleh Miner yang merupakan gabungan dari Block subsidy dan Fee transaksi ● Proof of Work (PoW)Mekanisme konsensus pada jaringan Bitcoin dalam memvalidasi berbagai transaksi dan menyusunnya dalam sebuah block valid yang selanjutnya didistribusikan ke jaringan Blockchain. ● BlockStruktur data berbentuk hash yang berisi list dari beberapa transaksi dan juga memuat informasi dari Block sebelumnya. https://en.bitcoin.it/wiki/Block_hashing_algorithm● Genesis BlockBlock pertama yang ada di Jaringan Blockchain Bitcoin https://www.blockchain.com/explorer/blocks/btc/0● TransactionProses transfer Bitcoin dari satu address ke address lainnnya didalam jaringan Blockchain dan ditandatangani secara digital menggunakan Elliptic Curve Digital Signature Algorithm. https://en.bitcoin.it/wiki/Transaction● AddressSecara umum diartikan sebagai alamat yang digunakan bagi seseorang untuk menerima Bitcoin. Dalam bahasa teknisnya, Bitcoin Address merupakan identitas unik yang terdiri dari 26-62 characters dan diturunkan dari ECDSA keypair (Private Key dan Public Key). ● Public KeyBagian Public dari ECDSA keypair yang digunakan untuk memverifikasi tanda tangan pada sebuah data dan Public Key diturunkan dari Private Key. Compressed Public Key memiliki ukuran 33 bytes, sementara untuk Uncompressed Public Key memiliki ukuran 65 bytes. ● Private KeySebuah kunci rahasia yang dihasilkan secara acak dari 256 bit integer (32 bytes) dan merupakan bagian dari ECDSA keypair yang berfungsi untuk menandatangani sebuah data. ● Fee TransaksiBiaya yang dibayarkan oleh pemilik transaksi pada saat mereka membuat dan mengirimkan transaksi tersebut ke Jaringan Bitcoin ● Cara Mining BitcoinUntuk mining Bitcoin yang harus disiapkan adalah : Bitcoin Client, Sotfware mining, Perangkat mining (ASIC). ● Kenapa Bitcoin memiliki nilaiPada dasarnya Bitcoin tidak dijamin oleh aset apapun. Bitcoin memiliki nilai karena dipercaya bisa berfungsi sebagai aset, media pertukaran dan bisa diperdagangkan secara global, sementara yang mendasari besar kecil nilai Bitcoin adalah perbandingan demand dan supply. ● Trading BitcoinAktifitas Jual-Beli Bitcoin yang pada umumnya dilakukan pada sebuah platform pertukaran mata uang kripto ● Potensi dan Resiko Trading BitcoinSeseorang yang tertarik melakukan trading Bitcoin pada biasanya ingin mendapatkan keuntungan dari perubahan harga yang terjadi di market, namun dibalik potensi profit yang bisa didapat juga ada kemungkinan resiko jika harga bergerak tidak sesuai dengan keputusan entry yang sudah dipilih. ● Bitcoin terkait dengan hukum di IndonesiaBitcoin tidak diakui sebagai alat pembayaran yang sah, namun bisa diperdagangkan sebagai aset komoditas. - Thread ini akan terus saya update guna melengkapi informasi-informasi lain yang sekiranya bisa berguna buat para pemula. - Thread saya moderasi untuk menghindari munculnya potensi spam dan pembahasan diluar topik - Thread terbuka bagi siapa saja yang ingin bertanya atau ingin mendapatkan informasi terkait dengan seluk beluk Bitcoin dan juga terbuka buat yang mau memberikan masukan ataupun jawaban.
|
|
|
|
|