Memahami Bitcoin PoW (BTCW) Melalui Lensa Whitepapernya

Editor
Silahkan bagikan

VISI.NEWS | BANDUNG – BitcoinPoW adalah Bitcoin yang menggunakan bukti kerja (PoW) dan bukti transaksi (PoT) untuk memverifikasi blok. Menggabungkan PoW dan PoT menghasilkan sistem terdistribusi penambangan tinggi di mana setiap dompet dipaksa untuk melakukan penambangan sendiri.

Keaslian Bitcoin kini telah menjadi penambangan yang sangat tersentralisasi. Salah satu pengembang Bitcoin yang cukup lama aktif (Luke Dashjr) baru-baru ini memposting kekhawatirannya di situs kolam penambangan barunya www.ocean.xyz

Pesan dari Luke: “Bitcoin tidak lagi tahan sensor, dan sentralisasi penambangan juga membahayakan keamanannya. Sudah waktunya untuk memperbaikinya.

Tetapi pada kenyataannya situs kolam penambangan miliknya tidak mampu menyelesaikan permasalahan tersebut. Solusi untuk menyelesaikan masalah ini yaitu mengembalikan penambangan ke dompet dan bukan ke peternakan ASIC (ASIC farms) yang terpusat. Sehingga bisa menghasilkan satu simpul banding satu suara (one node one vote).

Menggabungkan PoW dan PoT merupakan pendekatan inovatif yang belum pernah dilakukan sebelumnya.

Berikut adalah persamaan PoS yang menentukan apakah suatu blok memenuhi ambang batas kerjanya untuk diterima:

hash(nStakeModifier + blockFrom.nTime + txPrev.vout.hash + txPrev.vout.n + nTime) < bnTarget * nWeight

Persamaan ini ada di beberapa koin PoS. Tujuan dari persamaan ini adalah untuk menghilangkan segala cara di sistem PoW yang dapat memodifikasi variabel mana pun dengan cepat.

1 – nStakeModifier: This is block[n-1] and block[n-2] transaction hashes added together. These are the transactions that won the PoS in the past.
This is defined and can’t be manipulated.
2 – blockFrom.nTime: Time from block[n-1]. This is defined and can’t be manipulated.
3 – nTime: Time for current block. This can be updated to help solve the equation, however there isn’t much of a range as blocks are
on average 10 minutes apart.
4 – txPrev.vout.hash: This is the previous hash of the current transaction candidate.
5 – txPrev.vout.n: This is the vout number of the previous hash of the current transaction candidate.

Yang membiaskan persamaan di atas adalah istilah ‘nWeight’. Semakin banyak nilai koin yang dipertaruhkan (stake), semakin mudah menyelesaikan persamaan tersebut.

BitcoinPoW menggunakan metode PoW/PoT menghilangkan istilah ‘nWeight’ yang bias ini. Hal ini memungkinkan semua transaksi yang dipertaruhkan memiliki peluang yang sama dalam menyelesaikan persamaan di atas. Beginilah istilah PoS berubah menjadi PoT. Ketika semua jumlah yang dipertaruhkan diabaikan, semuanya diperlakukan sama, begitulah cara kerja PoT (Proof of Transaction).

Melihat poin #4 di atas, txPrev.vout.hash, sistem PoS tidak mendapatkan manfaat dari penyelesaian persamaan berapa pun jumlah transaksinya karena jika hanya ada satu transaksi, maka akan sangat dipengaruhi oleh jumlah transaksi tersebut. Jika terdapat banyak transaksi, terdapat variasi hash yang lebih besar untuk membantu menyelesaikan persamaan, namun setiap transaksi dikurangi karena bobotnya lebih kecil.

Dengan menghilangkan istilah ‘nWeight’, metode PoW/PoT memaksa persamaan di atas berubah menjadi PoW. Seorang penambang dapat meningkatkan jumlah transaksi untuk menghasilkan sejumlah besar hash yang dapat digunakan untuk melakukan iterasi guna membantu mempercepat pencarian solusi. Semakin banyak jumlah transaksi yang dibuat maka semakin cepat komputer dapat melakukan iterasi, karena semakin tinggi kekuatan hashnya. Beginilah cara BitcoinPoW beroperasi menggunakan PoW. Setiap transaksi yang ada di set, merupakan taruhan yang valid pada suatu waktu di masa lalu, begitulah cara ia juga menggunakan PoT.

Manfaat menggabungkan PoW/PoT

Menggabungkan PoW/PoT belum pernah dilakukan sebelumnya dan menawarkan beberapa hasil yang menarik.

Baca Juga :  DATA BOLA LIGA 1 | Hasil, Klasemen, Top Skor, dan Siaran Langsung Hari Ini

Berikut adalah dua persyaratan utama BitcoinPoW:

1 – Membutuhkan PoW – Pengguna harus membakar energi (CPU atau ASIC) untuk menyelesaikan persamaan PoW.
2 – Memerlukan PoT – Pengguna harus mempertaruhkan setidaknya 1 satoshi agar transaksi valid dalam persamaan PoW. Jumlah koin tidak menjadi masalah, itu bijaksana untuk menghabiskan sesedikit mungkin saat membuat transaksi.

Berikut manfaatnya:

1 – Mencegah terbentuknya kolam. Penambangan yang sangat terdesentralisasi terjadi secara alami.
2 – Semua pengguna secara alami akan melakukan penambangan mandiri (solo mining)
3 – Jumlah koin yang lebih besar dapat dikirim ke cold storage karena kontribusi penambangannya dapat diabaikan dalam satu blok.

Mencegah terbentuknya kolam secara alami

Memiliki sistem satu simpul satu suara adalah hal yang ideal. BitcoinPoW telah menemukan solusi untuk mengubah Bitcoin menjadi sistem penambangan yang sepenuhnya terdesentralisasi. Mari kita lihat bagaimana caranya.

Kolam-kolam (pools) selalu dibuat untuk memudahkan pengguna mendapatkan setidaknya sebagian dari hadiah blok. Penambangan mandiri sangat sulit dilakukan di Bitcoin sehingga sebagian besar tidak mencobanya karena mereka tidak akan pernah menemukan blok seumur hidupnya, jadi mereka malah bergabung dengan suatu kolam penambangan. Metode PoW dalam Bitcoin memungkinkan hal ini terjadi. Templat dibuat dan semua penambang mendapatkan templat tersebut yang secara berkala mengirimkan pekerjaan kembali ke kolam untuk membuktikan bahwa mereka mencoba memecahkan persamaan yang sulit. Ketika simpul kolam mendapatkan kembali blok yang memenuhi kesulitan tersebut, simpul tersebut akan dikirimkan ke jaringan Bitcoin.

Mari kita lihat persamaan PoW menjadi hal yang benar-benar penting:

hash(previous_stake_hash + others) < bnTarget

Pada dasarnya, penambang harus mengulangi semua hash yang dipertaruhkan sebelumnya untuk mencoba dan menyelesaikan persamaan.

Jika koin tersebut adalah bukti kepemilikan, pengguna dapat dengan mudah mengirimkan koin mereka ke suatu kolam dan kolam tersebut akan membayar mereka kembali sejumlah persentase dari apa yang mereka berikan. BitcoinPoW bukanlah koin PoS. Memiliki lebih banyak koin tidak membuat penambang menemukan solusi lebih cepat. Memegang 1 Juta BitcoinPoW (BTCW) tidak akan menemukan blok lebih cepat daripada memegang 0,00000001 BTCW, sehingga kumpulan PoS tidak akan berfungsi.

Jika koin tersebut merupakan bukti kerja, pengguna dapat mengirimkan semua transaksi yang dipertaruhkan sebelumnya ke kolam, kolam dapat mengambilnya dan mengirimkannya ke penambang dengan kekuatan lebih besar untuk melakukan hashing dengan lebih cepat. Namun, masalahnya muncul ketika tiba waktunya untuk menerapkan BlockSignature ke blok BitcoinPoW. Kolam harus mengirimkan blok kepada pengguna yang mengirimkan pemenang transaksi karena hanya dialah satu-satunya yang dapat menandatanganinya dengan kunci untuk hadiah blok. Jika kumpulan mengirimkan blok kepada pengguna untuk ditandatangani, siapa pun yang mengirimkan pada saat itu akan mengirimkan blok yang pembayarannya langsung ke pengguna. Apakah pengguna ingin jujur dan mengembalikan koin kumpulan setelah pengguna menerima hadiahnya???

Kolam tidak dapat terbentuk secara logis menggunakan PoW/PoT, sehingga BitcoinPoW secara alami akan membuat semua penambang melakukan penambangan mandiri (solo). Ini akan menciptakan jaringan penambangan terdesentralisasi yang sangat besar.

Penambang kolam Bitcoin tidak perlu menandatangani informasi, sehingga BTC dapat membentuk kumpulan penambangan terpusat yang besar. Semua penandatanganan dilakukan menggunakan dompet operator kolam. BitcoinPoW adalah solusi untuk masalah tersebut.

Apakah ada keuntungan memiliki lebih banyak koin?

Tentunya dalam koin PoS, semakin banyak koin yang Anda miliki, semakin banyak hadiah blok yang akan Anda dapatkan. Dengan BitcoinPoW, PoW/PoT bergantung pada sejumlah besar transaksi dan kecepatan CPU atau ASIC dalam memprosesnya. Dibutuhkan lebih banyak transaksi untuk menambang lebih banyak blok, namun pada titik tertentu, akan ada terlalu banyak transaksi dan daya PoW tidak mencukupi. Setelah Anda melampaui kekuatan mesin penambangan Anda, melakukan lebih banyak transaksi tidak akan membantu Anda. Ada variabel waktu yang bertambah setiap detik dan menambah variasi lanjutan pada hash transaksi. Memiliki perangkat keras penambangan yang nyata seperti CPU sangat penting untuk menambang lebih banyak blok. Faktanya, ketika seorang penambang sudah mencapai batas maksimalnya, inilah saatnya untuk menjalankan dompet paralel untuk mendistribusikan daya ke seluruh inti dan thread CPU.

Baca Juga :  Gerakan Sejuta Vaksin, Serentak Dilaksanakan di Jawa Barat

Biaya minimum transaksi adalah 1 satoshi. Bahkan jika kita memutuskan untuk membayar 0,00001 per transaksi dan kita memiliki 1 BTCW, berapa banyak transaksi yang dapat kita buat? 1/0,00001 = 100.000 transaksi. Pada saat menulis ini, saya mengamati sekitar 30% pemuatan single core dengan sekitar 10.000 transaksi per dompet. Ini berarti saya dapat menambang dengan sekitar 10 dompet dengan nyaman di komputer saya menggunakan 1 BTCW. Dengan menggunakan biaya 0,00001, 1 BTCW menghasilkan PoW senilai 1 komputer. Ada keuntungan memiliki lebih banyak BTCW jika Anda membeli perangkat keras yang diperlukan untuk menambang transaksi.

Perlu dicatat bahwa suatu saat di masa depan, biaya transaksi akan meningkat. Bayangkan pengguna mencoba mengalokasikan ruang blok untuk transaksi pada saat yang sama pengguna mencoba mengirim BTCW ke orang lain. Hal ini akan menciptakan persaingan untuk menggunakan ruang blok. Biaya untuk menambang lebih banyak blok akan meningkat. Hal ini mirip dengan biaya untuk menambang lebih banyak di BTC yang juga selalu lebih mahal.

Padahal jumlah transaksinya dibatasi pada:

21 Juta / 0,00000001 = 2,1 8 10^15 hash transaksi

Total hashpower tidak dibatasi karena CPU, pada akhirnya kecepatan ASIC akan terus meningkat. Setelah kecepatan perangkat keras mengatasi semua kemungkinan hash yang dapat dibuat, maka BitcoinPoW akan mencapai kekuatan hash puncaknya. Ini bukan masalah karena tidak ada yang bisa menambang lebih cepat untuk menyerangnya setelah batas maksimal tercapai. Pada saat batas maksimum tercapai, jaringan BitcoinPoW akan menjadi sangat besar dalam jumlah simpul dan besar dalam desentralisasi penambangan.

Bagaimana cara menambang

Tujuan penambangan itu sederhana. Buat transaksi sebanyak-banyaknya untuk kebutuhan penambangan Anda. Anda juga dapat membuat lebih banyak transaksi sebagai cadangan untuk masa depan.

Di bawah ini adalah skrip Python yang dapat digunakan untuk membantu menghasilkan transaksi. Saya biasanya ingin mengisi sekitar 10.000 transaksi per alamat BTC.

main.py

from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
from pprint import pprint
import time
import re

if __name__ == ‘__main__’:

# rpc_user and rpc_password are set in the bitcoin-pow.conf file
rpc_user = “PUT_YOUR_USER_HERE”
rpc_pass = “PUT_YOUR_PASS_HERE”
rpc_host = “127.0.0.1”

prevHeight = 0
block_count = 0
while 1:

rpc_connection = AuthServiceProxy(f”http://{rpc_user}:{rpc_pass}@{rpc_host}:9332″, timeout=240)

commands = [[“getblockcount”]]
height = rpc_connection.batch_(commands)
if prevHeight != height[0]:
prevHeight = height[0]
print(height[0])

block_count = block_count + 1

if block_count > 25:
break

while 1:
txid = rpc_connection.sendtoaddress(‘PUT YOUR LEGACY BTC ADDRESS STARTING WITH A 1 HERE’, 0.00001)
print(txid)

try:
# At some point, we will send and tx will not hit mem pool and we need to abandon tx to get balance back.
# keep doing this to keep it simple. It only abandons if it needs to.
commands = [[“abandontransaction”, txid]]
resp = rpc_connection.batch_(commands)
except Exception as err:
# this is good, keep sending txs
continue

print(“abandontransaction was successful”)
break # abandontransaction happened, we are done till next block

time.sleep(60)

setup.py

#!/usr/bin/env python

from distutils.core import setup

setup(
name=’python-bitcoinrpc’,
version=’1.0′,
description=’Enhanced version of python-jsonrpc for use with Bitcoin’,
long_description=open(‘README.rst’).read(),
author=’Jeff Garzik’,
author_email='<jgarzik@pobox.com>’,
maintainer=’Jeff Garzik’,
maintainer_email='<jgarzik@pobox.com>’,
url=’http://www.github.com/jgarzik/python-bitcoinrpc’,
packages=[‘bitcoinrpc’],
classifiers=[
‘License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)’, ‘Operating System :: OS Independent’
]
)

start_btcw.sh

Baca Juga :  Bentuk Keluarga yang Kuat, Suami dan Istri Harus Mampu Didik Anak dengan Baik.

./bitcoin-pow-qt &
./bitcoin-pow-qt –listen=0 –datadir=/home/software/.btcw1 &

bitcoin-pow.conf

rpcuser=PUT_YOUR_USER_HERE
rpcpassword=PUT_YOUR_PASS_HERE
rpcallowip=127.0.0.1
rpcport=9332
server=1
listen=1
addresstype=legacy
walletrbf=1

Langkahnya

0 – Salin main.py dan setup.py dari atas dan jalankan: python setup.py install
1 – Unduh dompet QT dari www.bitcoin-pow.org Linux atau Windows
2 – Buat direktori /home/software/.btcw1 atau apa pun yang Anda inginkan untuk menyimpan direktori data untuk dompet SINK
3 – Jalankan skrip start_btcw.sh
4 – Buat dompet SOURCE untuk skrip Python di atas untuk terhubung ke rpc dan mengeluarkan perintah untuk membuat transaksi.
Ini akan menggunakan direktori .bitcoin-pow default
5 – Buat dompet SINK baru (jangan salin dompet SUMBER). Ini akan menggunakan lokasi data lain seperti
/home/perangkat lunak/.btcw1
6 – Menggunakan dompet SOURCE, buka pengaturan->Opsi->”Buka File Konfigurasi” Letakkan konten file bitcoin.conf di sana dan simpan.
7 – Tutup kedua dompet.
8 – Jalankan kembali skrip start_btcw.sh
9 – Ubah main.py dengan nama pengguna/pass Anda dan alamat BTC lama untuk mengirim transaksi. Alamat harus dimulai dengan ‘1’.
10 – Jalankan skrip python untuk menghasilkan transaksi: python main.py

Ketika dompet Anda mulai terisi sekitar 40%, Anda mungkin ingin membuat dompet baru dengan wallet.dat baru dan membuat alamat BTC baru dalam skrip python dan membuat transaksi lagi.

Metode alternatif untuk membuat banyak transaksi

Pembuatan transaksi dapat dilakukan menggunakan konsol BitcoinPoW. Menggunakan dompet SOURCE Anda, kemudian buka

Window->Console

Di bagian bawah GUI Anda dapat menempelkan 100 perintah transaksi sekaligus:

tx “1F5p7KsHSeU2LjAboH5NCg5FTHvQHfxbTt” 0,00001
tx “1F5p7KsHSeU2LjAboH5NCg5FTHvQHfxbTt” 0,00001
tx “1F5p7KsHSeU2LjAboH5NCg5FTHvQHfxbTt” 0,00001
tx “1F5p7KsHSeU2LjAboH5NCg5FTHvQHfxbTt” 0,00001
tx “1F5p7KsHSeU2LjAboH5NCg5FTHvQHfxbTt” 0,00001
tx “1F5p7KsHSeU2LjAboH5NCg5FTHvQHfxbTt” 0,00001

Pastikan untuk menggunakan alamat dompet SINK Anda di atas. Buat daftar 100 perintah sendtoaddress (mirip dengan di atas) dan tempelkan ke konsol.

Catatan:

Setelah mengirimkan banyak transaksi, ada kemungkinan beberapa transaksi yang dihasilkan tidak pernah masuk ke dalam mem pool
dan akan mengakibatkan saldo Anda tidak tepat. Untuk memperbaikinya (TUNGGU konfirmasi blok berikutnya) lalu buka halaman Transaksi dan cari baris mana pun yang dimulai dengan ? (Tanda tanya). Klik kanan pada baris dan pilih ‘Abandon transaction'. Jika ‘Abandon transaction'tidak bisa dipilih, transaksi itu sudah terjadi dan Anda dapat memeriksa yang lain. Jika sudah tidak ada tanda ? (Tanda tanya), saldo dompet Anda berarti sudah benar.

Skrip Python di atas untuk melakukan semua pekerjaan kita. Dan ini masih merupakan cara yang valid untuk melakukan transaksi.

CPU atau ASIC?

Semuanya bisa diubah menjadi ASIC. ASIC hanyalah cara untuk mempercepat operasi. Bagian dari algoritma BitcoinPoW dapat ditempatkan di dalam ASIC di masa depan, namun tujuan BitcoinPoW adalah untuk membuat versi Bitcoin yang tidak dapat membentuk kolam. Baca di atas tentang bagaimana BitcoinPoW mencegah kolam. Untuk sekarang, semua penambangan menggunakan CPU di BitcoinPoW. Diperlukan waktu bertahun-tahun bagi seseorang yang siap berinvestasi dan merancang ASIC untuk melakukan hal tersebut. Bahkan jika ASICS hadir, manfaat sebenarnya dari BitcoinPoW adalah PoW/PoT yang memaksa desentralisasi penambangan tunggal.

Untuk informasi lebih lanjut lihat https://www.bitcoin-pow.org

Lisensi

Bitcoin PoW Core dirilis berdasarkan ketentuan lisensi MIT. Lihat MENYALIN untuk informasi lebih lanjut atau lihat https://opensource.org/licenses/MIT.

@asep m nurdin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Next Post

Meresahkan, Polsek Baleendah Amankan 9 Pemuda Sedang Pesta Miras

Sen Apr 15 , 2024
Silahkan bagikanVISI.NEWS | BALEENDAH – Berawal adanya laporan dari masyarakat perihal 9 orang pemuda meresahkan sedang melakukan pesta miras. Respon cepat yang dilakukan Polsek Baleendah dengan melakukan pengecekan terhadap informasi dari masyarakat tersebut. Polsek Baleendah melakukan pengecekan informasi dari masyarakat di dekat pertigaan sosro Jalan Kiastra Manggala Kelurahan Baleendah Kecamatan […]