Blockchain & Cryptocurrency
Paper yang berjudul "Bitcoin: A Peer to Peer Electronic Cash System," pertama kali dibuat oleh Satoshi Nakamoto. Software pertama Bitcoin pun direlease oleh Satoshi Nakamoto. Namun meski demikian sampai sekarang tidak banyak yang tahu siapa dia. Sejak pertama Bitcoin beroperasi, transaksi pertamanya tercatat bertempat di JacksonVille, Florida. Setelahnya semakin banyak transaksi yang melibatkan Bitcoin . Setelah Bitcoin tumbuh subur banyak cryptocurrency baru .
Blockchain adalah sebuah database atau teknologi yang dipakai Bitcoin untuk menyimpan dan mengamankan data transaksi. Bitcoin Blockchain dibangun dalam jaringan yang terdesentralisasi yang berarti semua orang dalam node mempunyai copy dari node lain. Blockchain mencegah data untuk dirubah.
Blockchain menggunakan fungsi hash dalam prosesnya. Hash algoritma adalah sebuah algoritma fungsi hash untuk merubah data berukuran apa saja kedalam bentuk string yang berukuran tetap.
Blockchain menggunakan metode kriptografi enkripsi dan dekripsi untuk memvalidasi datanya dan memastikan data tersebut asli dan tidak dapat dirubah. Dalam Bitcoin kriptografi ECDSA digunakan untuk membuat Public Key dan membuat Signature transaksi.
Cryptocurrency adalah sebuah aset digital yang menggunakan kriptografi untuk mengamankan transaksinya. Bitcoin adalah cryptocurrency pertama yang sejauh ini paling populer. Ada banyak cryptocurrency lainnya seperti Ether, XRP, ADA, dll.
Sejarah cryptocurrency dan blockchain ?
Krisis finansial 2007–2008 dimulai di Amerika Serikat dan meluas beberapa bagian dunia. Karenanya banyak orang yang hilangan kepercayaan dengan sistem finansial saat ini.
- 2008
Oktober
2008 Satoshi Nakamoto memposting sebuah paper berjudul "Bitcoin: A
Peer-to-Peer Electronic Cash System" yang tersedia di tautan berikut https://bitcoin.org/bitcoin.pdf.
Tulisan tersebut menjelaskan tentang sebuah sistem pembayaran online
dari satu pihak ke lainnya tanpa melalui institusi finansial. Sistem ini
bertujuan untuk memecahkan masalah dalam double-spending menggunakan jaringan peer-to-peer.
- 2009
Pada
Januari 2009 software pertama Bitcoin dirilis, yakni Bitcoin 0.1 oleh
Satoshi Nakamoto. Pada saat itu software ini hanyalah support untuk Windows.
Pada Desember 2009 giliran Bitcoin 0.2 hadir dan mendukung versi linux.
Tersedia pula multi core processors untuk mining. Sejak saat itulah
komunitas terkait Blockchain semakin menjamur.
- 2010
Pada
Maret 2010 Bitcoin mulai beroperasi. Menyusul Mei 2010 transaksi
pertama Bitcoin dilakukan. Transaksi ini merupakan transaksi pertama di
dunia yang menggunakan cryptocurrency. Seorang pria bernama Lazlo
Hanyecz yang membeli 2 Pizza di Jacksonville, Florida seharga 10.000
BTC. Pada saat itu harga 1.0 BTC hanyalah 0.01 USD. Oktober 2010 harga
Bitcoin naik menjadi 0.125 USD, dan masih naik turun hingga sekarang.
- 2015 - Sekarang
Sejak
pertama kali beroperasi sampai sekarang, harga Bitcoin selalu naik
turun. Pada 5 Februari 2018 harga 1.0 BTC mencapai 6.200 USD pada
Market. Tahun 2015 Ethereum pun ditilis dengan menyuguhkan fitur baru
"Smart Contract." Ethereum diklaim sebagai Blockchain 2.0 atau generasi
kedua Blockchain karena fitur tersebut. Setelah Ethereum, muncul semakin
banyak Cryptocurrency lain yang memiliki fitur baru. Mereka mengklaim
diri mereka sebagai Blockchain 3.0 atau generasi ketiga Blockchain.
Apa Itu Blockchain ?
Kita mungkin telah mendengar banyak tentang bitcoin. Bitcoin adalah cryptocurrency pertama dan paling populer sejauh ini. Cryptocurrency sendiri adalah sebuah aplikasi yang dibuat dalam blockchain.
Di Bitcoin transaksi yang dikonfirmasi akan disimpan di dalam block. Block disatukan/dirantai bersama untuk membentuk sebuah rantai/chain. Miners mempunyai tugas untuk mengumpulkan transaksi, memvalidasi dan menempatkannya kedalam block baru, yang juga termasuk hash dari block terakhir pada chain/rantai.
Miners menyebarkan block baru tersebut ke jaringan blockchain. Block baru tersebut akan menjadi block terakhir pada chain/rantai, dan miners akan mengulang lagi tugas mereka untuk membuat block baru. Berikut adalah contoh pada bitcoin sistem.
Blockchain adalah database yang mengamankan penyimpanan berbagai jenis data dalam jaringan terdesentralisasi. Data pada blockchain disimpan di dalam block. Setiap block mempunyai hash dari block sebelumnya. Dengan hash tersebut akan mudah untuk mendeteksi jika ada perubahan.
Dalam blockchain miners/minters adalah orang yang membuat block baru dengan data yang disimpan di dalamnya. Dalam cryptocurrency bitcoin, data adalah transaksi. Block baru akan ditempatkan di atas block terakhir pada blockchain. Setiap block dalam blockchain (tidak termasuk block pertama, yang disebut genesis block), mempunyai hash block header dari block sebelumnya. Seperti sinkronisasi, semua orang dalam network akan memverifikasi block baru dan memutuskan apakah akan menerima atau menolak block baru tersebut.
Apa Itu Algoritma Hash ?
Blockchain menggunakan banyak sekali fungsi hash dalam prosesnya. Hash tersebut membantu Blockchain untuk mendeteksi apakah ada data yang diubah oleh seseorang atau ada data yag berubah karena kesalahan jaringan.
Algoritma hash adalah algoritma fungsi hash yang memetakan string ukuran apapun ke dalam urutan bit yang berukuran tetap, yang biasanya berupa string heksadesimal. Mapping tersebut sangat sulit untuk dibalikkan kembali.
Contoh sifat Hash :
- Hasil dari hash selalu mempunyai ukuran yang sama.
- Dua string yang identik akan menghasilkan hash yang sama.
- Dua string yang berbeda akan menghasilkan hash yang berbeda.
- Membuat string yang cocok dengan hash yang diberikan itu sangatlah sulit.
Blockchain saat ini menggunakan metode hash SHA-256. Berikut contohnya :
- MD5
Message digest berukuran 128 Bits, dan mempunyai 32 karakter.
- RIPEMD160
Race Integrity Primitives Evaluation Message Digest berukuran 160 bits dan mempunyai 40 karakter.
- SHA1
Digunakan oleh Torrent system yang berukuran 160 bits.
- SHA256
Yang digunakan Bitcoin. National Security Agency Standard. Berukuran 256 bits dan mempunyai 64 karakter.
- SHA3 / Keccak256
Digunakan oleh Ethereum. NSA Standard. Berukuran 256 bits dan mempunyai 64 karakter.
Kriptografi (atau kriptologi) adalah sebuah studi tentang metode dan teknologi yang menyediakan komunikasi yang aman antar partisipan tanpa membocorkan informasi ke pihak luar. Singkatnya, orang luar yang mungkin saja mendengar komunikasi, tetapi orang itu tidak akan bisa mengekstrak informasi tersebut. Hanya partisipan yang mempunyai otoritas dalam komunikasi tersebut yang dapat mengerti. Itu adalah tujuan dari kriptografi. Kriptografi modern seperti sekarang melibatkan metode enkripsi dan dekripsi.
Blockchain menggunakan kriptografi enkripsi dan dekripsi untuk memvalidasi data dan memastikan data tersebut terbukti asli dan tidak dirubah.
Dalam blockchain public key dan private key memiliki peran sebagai ID dan password untuk menunjukkan kepemilikan akun. Private key adalah sebuah string yang dibuat secara acak dan berfungsi seperti password. Public key adalah string yang dibuat dari private key dengan menerapkan metode kriptografi Elliptic Curve Digital Signature Algorithm (ECDSA).
Tidak mungkin bisa menemukan private key dari public key. Semua yang dienkripsi menggunakan private key akan bisa didekripsi menggunakan public key terkait.
Transaksi dan signature kemudian akan dimasukkan dan disebarkan ke jaringan blockchain. Semua orang di dalam jaringan blockchain bisa memvalidasi transaksi dengan mendekripsi signature menggunakan public key. Validator juga meng-hash transaksi, yang menghasilkan hash value yang baru. Hash value ini seharusnya cocok dengan hash value yang didekripsi jika tidak ada data yang dirubah. Namun jika ada bagian data yang dirubah, maka hasil hash value akan berbeda dan tidak cocok dengan hash value yang didekripsi. Perubahan akan terdeteksi. Hasil yang ditolak akan menjadi transaksi yang invalid. Inilah caranya ap node di blockchain memvalidasi data.
Jadi demi keamanan Anda, simpanlah private key dengan baik dan teliti. Siapapun dapat dengan mudahnya mengambil alih Akun anda jika ia mengetahui private key Anda. Ingat, tidak ada customer service dalam blockchain yang dapat memulihkan akun Anda.
Apa Itu Cryptocurrency ?
Cryptocurrency adalah sebuah aset digital yang menggunakan kriptografi untuk meng-autentikasi dan mengamankan transaksi. Cryptocurrency - Bitcoin adalah produk pertama dalam blockchain. Cryptocurrency menggunakan fungsi hash kriptografi untuk mencegah transaksi dirubah. Sekali transaksi cryptocurency dibuat akan tersimpan secara permanen di dalam blockchain. Tiada seorangpun yang bisa mengubahnya. Fungsi transaksi cryptocurrency seperti Bank, tetapi lebih baik dalam hal keamanan. Bank tetap memerlukan manusia untuk mengontrol dan terkadang kesalahan manusia masih terjadi. Beda dengan cryptocurrency dalam blockchain yang aman aman secara sistem.,
Banyak orang mungkin salah mengira bahwa blockchain dan cryptocurrency adalah sama, tetapi sebenarnya tidak. Cryptocurrency adalah produk pertama blockchain. Baru-baru ini blockchain memperluas aplikasinya ke beberapa bidang dan industri untuk menyimpan data secara aman. Blockchain hanyalah sebuah teknologi untuk menyimpan data dengan aman. Umumnya, Anda dapat menggunakan blockchain untuk menyimpan semua jenis data. Cryptocurrency menggunakan blockchain untuk menyimpan dan mengamankan jenis data transaksi.
Cryptocurrency juga merupakan sumber daya untuk blockchain. Tidak ada orang yang ingin berpartisipasi dalam blockchain untuk membantu memverifikasi block, termasuk transaksi dari orang asing ke orang asing lainnya di seluruh dunia tanpa mendapatkan apa-apa. Saat partisipan berhasil memverifikasi block baru, ia akan mendapatkan penghargaan berupa cryptocurrency. Semacam gaji untuk mereka yang melakukan pekerjaannya dengan baik, bukan? Hal ini akan mendorong partisipan untuk terus terlibat dengan blockchain.
Mekanisme Blockchain
Blockchain dibangun dalam sistem yang terdistribusi dan jaringan P2P yang berarti semua node dalam blockhain terhubung satu sama lain dalam jaringan yang terdesentralisasi. Semua node dalam full node mempunyai copy database yang sama.
Dalam Bitcoin terdapat sebuah merkle tree yang berisi hash dari semua transaksi dalam block. Setiap transaksi dalam block akan dihash menggunakan function SHA256D dan disatukan dengan hash transaksi lain sampai menghasilkan 1 hash yang yang tidak dapat dirubah.
Konsesnsus
mekanisme pada Bitcoin adalah dengan menerapkan konsensus Proof of
Work. Proof of Work dalam Bitcoin sangat mengandalkan Computing power
dan resource yang cukup mahal. Karena setiap miners menggunakan Proof of
Work untuk memcahkan teka-teki pada block untuk menempatkan block baru
ke dalam Blockchain. Setiap miners yang berhasil memecahkan block
tersebut akan mendapatkan reward berupa Bitcoin baru.
Konsensus lainnya adalah Proof of Stake yang digunakan oleh Ethereum. {roof of stake sangat berbeda dengan proof of work karena proof of stake tidak mengandalkan computing power dan resource yang besar untuk menempatkan block baru ke dalam blockchain. Proof of Stake mengandalkan pemegang stake tertinggi untuk menempatkan block baru ke dalam blockchain.
Public
Blockchain adalah jaringan blockchain yang sepenuhnya terbuka untuk
siapapun yang ingin bergabung. Contoh Public Blockchain adalah seperti
Bitcoin, Ethereum, dan lain-lain.
Private Blockchain berbeda dengan public blockchain. Dari namanya pun sudah terdengar jelas bahwa Private Blockchain merupakan jaringan blockchain yang bersifat pribadi / private. Tidak sembarangan orang dapat bergabung dalam jaringan ini, melainkan hanya individivu yang di-invite saja.
Blockchain dibangun dalam sistem yang terdistribusi dan jaringan P2P yang berarti semua node dalam blockhain terhubung satu sama lain dalam jaringan yang terdesentralisasi. Semua node dalam full node mempunyai copy database yang sama.
Dalam Bitcoin terdapat sebuah merkle tree yang berisi hash dari semua transaksi dalam block. Setiap transaksi dalam block akan dihash menggunakan function SHA256D dan disatukan dengan hash transaksi lain sampai menghasilkan 1 hash yang yang tidak dapat dirubah.
Konsensus lainnya adalah Proof of Stake yang digunakan oleh Ethereum. {roof of stake sangat berbeda dengan proof of work karena proof of stake tidak mengandalkan computing power dan resource yang besar untuk menempatkan block baru ke dalam blockchain. Proof of Stake mengandalkan pemegang stake tertinggi untuk menempatkan block baru ke dalam blockchain.
Private Blockchain berbeda dengan public blockchain. Dari namanya pun sudah terdengar jelas bahwa Private Blockchain merupakan jaringan blockchain yang bersifat pribadi / private. Tidak sembarangan orang dapat bergabung dalam jaringan ini, melainkan hanya individivu yang di-invite saja.
Blockchain dibangun dalam jaringan P2P, dan jaringan P2P adalah model sistem terdistribusi. Sistem terdistribusi didefinisikan sebagai suatu kumpulan komputer independen, yang tampak bagi penggunanya sebagai sistem yang saling bersangkutan atau terhubung. Internet, Intranets, jaringan ad-hoc,... adalah bentuk dari sistem terdistribusi.
Jaringan P2P (atau peer-to-peer) adalah sebuah model arsitektur jaringan, yakni jaringan sistem terdistribusi seperti ini :
- Setiap peer (bisa berupa komputer, tablet, atau smartphone,...) terhubung langsung ke peer lainnya. Koneksi ini adalah koneksi 2 arah.
- Setiap peer membagikan hak yang sama.
- Tidak memerlukan server pusat.
Merkle Tree
Merkle tree diciptakan oleh Ralph Merkle di Tahun 1979. Merkle tree adalah sebuah pohon binary hash, di mana setiap cabang merkle adalah hash dari dua cabang merkle sebelumnya. Setiap cabangnya (cabang yang berada paling bawah, tidak mempunyai cabang lain) berisi hash dari raw data dan bagian-bagiannya.
Bitcoin menggunakan fungsi hash yang spesifik untuk Merkle tree ini, didefinisikan dengan fungsi "double SHA256": Hash(x) = SHA256(SHA256(x)).
Kedua, Merkle tree mempunyai fungsi lain dalam memproduksi Merkle path. Ada metode SPV (Simplified Payment Verification) di Bitcoin untuk mengecek apakah transaksi tertentu masuk dalam block, tanpa mengunduh ull block. Merkle path akan dimasukkan dalam respons SVP sebagai bukti bahwa transaksi tersebut termasuk dalam block. Untuk info lebih lanjut, Anda mungkin ingin merujuk pada referensi berikut untuk mendalami merkle tree ini.
https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki
https://bitcoin.org/en/developer-reference#merkleblock
Mekanisme Konsensus (PoW, PoS)
Blockchain dibangun dalam jaringan P2P yang terbuka untuk semua orang yang ingin bergabung. Selama semua orang memiliki hak yang sama, blockchain memerlukan cara untuk meyakinkan setiap node untuk melakukan hal yang benar demi mencapai tujuan utama sistem. Hal ini membutuhkan Mekanisme Konsensus untuk meyakinkan setiap node yang seharusnya tidak tahu dan tidak percaya satu sama lain, untuk dapat bekerja sendiri demi mencapai tujuan utama sistem.
Mekanisme Konsensus didefinisikan sebagai cara agar semua node di blockchain bekerja sendiri dan saling setuju satu sama lain.
Proof-of-work (PoW) Mekanisme konsensus pertama yang digunakan bitcoin dan ethereum. Setiap node dalam jaringan P2P akan bersaing satu sama lain dalam memecahkan teka-teki kriptografi. Node yang pertama memecahkan teka-teki, akan mendapatkan penghargaan dalam bentuk bitcoin baru dan mempunyai hak untuk menempatkan block baru kedalam blockchain. Teka-teki ini membutuhkan banyak sekali computing power dan resource untuk memecahkannya, tapi mudah untuk memverifikasi dan memvalidasinya.
Ada banyak juga konsensus lain yang tidak populer yang masih dikembangkan seperti Proof-of-authority, Proof-of-space, Proof-of-importance, Byzantine Fault Tolerance, directed acyclic graph, dan lain-lain.
Saat ini, 2 (dua) konsensus yang umum adalah PoW and PoS. Yuk kita bandingkan.
Public blockchain adalah jaringan blockchain yang sepenuhnya terbuka sehingga mendorong semua orang untuk bergabung. Ini dirancang untuk semua partisipan memiliki hak yang sama dan melakukan pekerjaan yang sama. Contohnya adalah jaringan Bitcoin.
Private blockchain bertentangan dengan public blockchain. Di dalamnya ada network designer atau administrator yang dapat menetapkan izin dan peran dalam jaringan. Orang baru yang ingin bergabung harus mendapatkan undangan. Ada juga batasan berbeda yang ditetapkan untuk semua orang didalam jaringan. Private blockchain membagi node ke dalam kelompok dengan peran dan izin yang berbeda untuk mendapatkan manajemen yang efisien. Ini mungkin untuk tujuan bisnis internal yang efisien.
Private blockchain dan public blockchain berbeda, namun tetap memiliki beberapa kesamaan. Keduanya berdasarkan jaringan peer-to-peer desentralisasi. Setiap peer harus tetap menjaga data yang dibagikan nya secara sinkron. Keduanya memiliki konsensus sendiri untuk bekerja. Juga, keduanya dapat memastikan kekekalan sistemnya.
Manfaat dan Kekurangan Blockchain
Blockchain memberikan kita cara baru untuk memproses transaksi atau hanya untuk menyimpan data. Yang pertama, blockchain bekerja tanpa kontrol pusat, tetapi tetap aman. Anda tidak perlu mengandalkan siapapun ataupun organisasi besar. Tidak mungkin untuk memanipulasi data dan transaksi yang disimpan dalam blockchain. Ini yang dinamakan kekekalan dalam blockchain. Anda mungkin akan berkata "hal baik nya adalah tidak ada yang dapat mengubah data saya. Hal buruk ya adalah semua orang termasuk saya".
Bitcoin pada blockchain juga menghabiskan banyak resource dalam prosesnya untuk menghasilkan block baru, meskipun hanya untuk menyimpan sebagian data kecil. Kemudian setiap node harus menyimpan seluruh block dengan sendirinya. Jadi, bisa dikatakan itu bukan cara yang efisien untuk menggunakan disk space.
Juga data pada blockchain disimpan di setiap node dalam jaringan P2P. Jadi, semua orang dapat mengakses dan membaca data dalam blockchain. Istilah "secure" dalam blockchain untuk memastikan bahwa tidak ada yang dapat mengubah atau memalsukan data Anda. Namun ini tidak mencegah siapapun untuk dapat membaca data Anda dalam blockchain. Jadi, selama menggunakan public key yang berbeda untuk setiap transaksi, Anda akan tetap aman. Ini yang dinamakan transparansi pada blockchain.
Memahami Bitcoin Blockchain
Bitcoin adalah sebuah cryptocurrency yang menggunakan blockchain untuk menyimpan dan mengamankan transaksinya. Bitcoin terbuat dari teknologi blockchain yang setiap blocknya terhubung satu sama lain menyerupai sebuah rantai yang disebut Blockchain.
Dalam Bitcoin terdiri dari:
Bitcoin explorer adalah sebuah tool untuk mengeksplor Blockchain Bitcoin. Anda dapat melihat semua block dalam explorer tersebut termasuk semua info transaksi yang ada dalam block.
Wallet pada Bitcoin berfungsi untuk menyimpan key Anda seperti Private Key dan Public Key. Private & Public Key pada wallet adalah seperti "username" dan "password" Anda.
Dalam Bitcoin transaksi adalah sebuah objek yang di dalamnya berisi data yang menyebutkan nilai atau jumlah Bitcoin yang anda kirim ke orang lain maupun jumlah Bitcoin yang dikirimkan ke Anda.
Mining adalah proses validasi transaksi yang ada pada memory pool dan dilakukan oleh miners. Semua miners bersaing satu sama lain untuk menempatkan block baru kedalam Blockchain.
Bitcoin adalah sebuah cryptocurrency yang menggunakan blockchain untuk menyimpan dan mengamankan transaksinya. Bitcoin terbuat dari teknologi blockchain yang setiap blocknya terhubung satu sama lain menyerupai sebuah rantai yang disebut Blockchain.
Dalam Bitcoin terdiri dari:
- Public Key
- Private Key
- Signature
- Address
- Transaksi
- Hash Transaksi
- Merkle Tree
- Block
- Block Header
- Nonce
- Previous Hash
- Timestamp
- Merkle Tree Root
- Version
- Bits
- Block Hash
- Block Data
- Node
- Blockchain Tree
Bitcoin explorer adalah sebuah tool untuk mengeksplor Blockchain Bitcoin. Anda dapat melihat semua block dalam explorer tersebut termasuk semua info transaksi yang ada dalam block.
Wallet pada Bitcoin berfungsi untuk menyimpan key Anda seperti Private Key dan Public Key. Private & Public Key pada wallet adalah seperti "username" dan "password" Anda.
Dalam Bitcoin transaksi adalah sebuah objek yang di dalamnya berisi data yang menyebutkan nilai atau jumlah Bitcoin yang anda kirim ke orang lain maupun jumlah Bitcoin yang dikirimkan ke Anda.
Mining adalah proses validasi transaksi yang ada pada memory pool dan dilakukan oleh miners. Semua miners bersaing satu sama lain untuk menempatkan block baru kedalam Blockchain.
Cara Kerja Bitcoin dan Sejarah Singkat
Bitcoin adalah implementasi pada blockchain yang cara kerjanya akan kita analisa di sini. Bitcoin terbentuk dari teknologi Blockchain yang terbuat dari block yang terhubung satu sama lain. Jadi pada dasarnya akan terbentuk sebuah blockchain. Kita dapat melihat infrastruktur Bitcoin yang terdiri dari 2 bagian yang terhubung:
Design Bitcoin terdiri dari :
Bitcoin Blockchain – Adalah struktur yang terdiri dari semua elemen yang dijelaskan di atas, yang memungkinkan kita melakukan transaksi crypto.
Yang berhubungan dengan pengguna bitcoin adalah :
Saat ini, jaringan tersebut memiliki antara 2.9 dan 5.8 juta user dengan nilai USD 147.8 miliar. Sejauh ini itulah nilai cryptocurrency paling tinggi di pasaran.
Berikut adalah sejarah singkat dari Bitcoin :
1998 – 2009 Pengenalan Bitcoin
Pertama kalinya bitcoin berfungsi penuh sebagai cryptocurrency, tapi sebelum itu, sudah ada banyak upaya untuk menciptakan mata uang online dengan beberapa pilihan database yang aman. Contohnya adalah B-Money dan Bit Gold yang diciptakan tapi tidak pernah diterapkan.
2008 – Siapa Nakamoto
Paper pertama dipublikasi oleh Satoshi Nakamoto yang berjudul “Bitcoin – A Peer to Peer Electronic Cash System” dan diposting ke dalam diskusi kriptografi. Satoshi Nakamoto, entah dia adalah suatu kelompok atau individu yang identitasnya masih tidak diketahui sampai sekarang.
2009 – Bitcoin mulai beroperasi
Pada tahun ini Bitcoin dibuat untuk publik dan terdiri dari sistem yang lengkap di mana mining adalah suatu proses yang akan menghasilkan bitcoin baru dan transaksi diverifikasi ke dalam blockchain.
2010 – Transaksi pertama Bitcoin
Bitcoin pada awalnya bukan untuk trade (perdagangan/pertukaran), hanya untuk mining sehingga sulit untuk menetapkan nilai uang cryptocurrency pertama. Trading pertama dilakukan pada 2010 ketika ada sebuah toko pizza yang menjual seharga 5.000 Bitcoin untuk 1 pizza. Jadi pada penjualan pertama itu si pembeli membayar 10.000 Bitcoin untuk 2 buah pizza. Jika si pembeli masih mempunyai Bitcoin sebanyak itu pada saat ini, harganya sama dengan USD 70 juta.
2011 – Alternatif cryptocurrency
Karena Bitcoin semakin dikenal, semakin populer dan ide tentang desentralisasi dan enkripsi mata uang menjadi lebih populer, muncullah alternatif pertama cryptocurrency yang dinamakan altcoins. Pada umumnya altcoins bertujuan untuk memperbaiki desain pada Bitcoin dengan menawarkan kecepatan yang lebih baik, atau beberapa keuntungan lainnya. Salah satu yang pertama muncul adalah Namecoin dan Litecoin. Saat ini ada lebih dari 1,000 cryptocurrency yang beredar.
2013 – Harga Bitcoin jatuh
Pada 2013,pertama kalinya harga untuk 1 Bitcoin mencapai USD 1,00. Setelah itu harga mulai cepat menurun kemudian anjlok hingga USD 300. Setidaknya dibutuhkan 2 tahun untuk kembali pada harga USD 1,000 lagi.
2014 – Semua jenis penipuan dan pencurian
Bitcoin sebagai mata uang yang didesain dengan anonimitas dan ketiadaan kontrol, ini tentu saja menjadi target yang menarik dan menguntungkan bagi para kriminal. Pada Januari 2014 Bitcoin exchange Mt.Gox (hot wallet) berubah menjadi offline dan pemilik 850,000 bitcoi tidak pernah melihat mereka lagi.
Para investigator masih mencoba mencari tahu apa yang terjadi. Tetapi apapun yang terjadi, seseorang yang tidak jujur mendapatkan hasil penipuannya senilai USD 450 juta. Pada hari ini koin yang hilang itu bernilai USD 4.4 miliar.
2016 – Ethereum dan ICOs
Satu-satunya cryptocurrency yang paling dekat untuk merebut posisi Bitcoin adalah Platform Ethereum. Platform ini menggunakan cryptocurrency yang dikenal dengan Ether sehingga dapat memfasilitasi blockchain dengan smart contract dan aplikasi. Ethereum adalah koin pertama yang ditandai dengan kemunculannya Initial Coin Offerings (ICOs). Ide ini adalah menawarkan kesempatan kepada para investor untuk memperdagangkan saham pada start up dengan cara yang sama bahwa mereka dapat berinvestasi dan melakukan trading crypto. Di Amerika, pemerintah memperingatkan semua investor bahwa karena kurangnya pengawasan ICO bisa saja berdampak pada penipuan yang menyamar sebagai investasi yang sah. Di Cina pemerintahnya melarang Bitcoin dan semua Altcoin.
2017 – Bitcoin mencapai USD 10,000 dan jatuh lagi
Dari awal sampai sekarang semua crypto koin naik dari nol sampai ke level yang saat ini mencapai lebih dari USD 300bn. Bank termasuk Barclays, Citi Bank, Deutsche Bank dan BNP Paribas sedang menginvestigasi cara mereka agar dapat bekerja dengan Bitcoin. Selama ini sentralisasi mata uang selalu dikendalikan oleh pemerintah. Berbeda dengan Bitcoin yang memiliki karakter distributed dan alternative decentralization. Ia tidak dapat dikontrol selain dengan kekuatan pasar. Apakah Bitcoin bisa dikendalikan oleh pemerintah? Kami mungkin tidak tahu jawaban pastinya dalam waktu dekat.
Bitcoin adalah implementasi pada blockchain yang cara kerjanya akan kita analisa di sini. Bitcoin terbentuk dari teknologi Blockchain yang terbuat dari block yang terhubung satu sama lain. Jadi pada dasarnya akan terbentuk sebuah blockchain. Kita dapat melihat infrastruktur Bitcoin yang terdiri dari 2 bagian yang terhubung:
- Blockchain sebagai dasar/base nya.
- Crypto value yang berada diatas base itu untuk mengirim uang serta memberi insentif bagi para miners.
Design Bitcoin terdiri dari :
- Public key – Digunakan untuk mengecek signature transaksi.
- Private key – Digunakan untuk membuat signature transaksi.
- Address – Hash dari Public Key.
- Signature – Adalah sebuah mekanisme yang memungkinkan kita hanya dengan menggunakan public key (tanpa mengetahui private key) untuk mengecek apakah transaksi valid.
- Transaksi
– Adalah sebuah objek yang mendefinisikan berapa banyak dan kepada
siapa Anda mengirim uang dan berapa banyak uang yang dikirimkan kepa
anda.
a) Jumlah : (100 bitcoin) Ke : Address penerima
b) Jumlah : (Total -100 bitcoin) ke : Address Anda - Hash transaksi – Adalah hash dari setiap transaksi yang digunakan untuk membuat Merkle Tree.
- Merkle tree – Adalah struktur data yang terbuat dari semua hash dari semua transaksi.
- Blocks - Adalah tempat untuk semua transaksi yang sudah dikonfirmasi dengan semua struktur tambahannya.
1) Block Header
a. Nonce – adalah sebuah nomor yang digunakan untuk mining dan konfirmasi.
b. Previous hash – adalah hash dari block header sebelumnya.
c. TimeStamp – Menunjukkan waktu saat block dibuat menggunakan waktu UNIX.
d. Merkle tree root – Hash dari merkle tree untuk mengecek transaksi
e. Version – Menunjukkan versi dari block yang sudah di-mining.
f. Bits – Sebuah Compressed Target.
2) Block Hash – Hash block saat ini.
3) Block data – Semua data transaksi yang disimpan dalam block. - Node – Adalah user yang memegang seluruh copy database, bisa jadi miner atau user lain.
- Blockchain tree – Di Bitcoin kemungkinan adanya fork sementara sebelum block terpanjang; ini mungkin bisa terjadi karena jaringan.
Bitcoin Blockchain – Adalah struktur yang terdiri dari semua elemen yang dijelaskan di atas, yang memungkinkan kita melakukan transaksi crypto.
Yang berhubungan dengan pengguna bitcoin adalah :
- Wallet (menyimpan public dan private key). Wallet adalah sebagai client.
- Explorer untuk melihat blockchain (Block, Transaksi dan melihat jumlah uang). Explore sebagai client.
- Miner untuk membuat block baru. Bisa dikatakan sebagai server.
Saat ini, jaringan tersebut memiliki antara 2.9 dan 5.8 juta user dengan nilai USD 147.8 miliar. Sejauh ini itulah nilai cryptocurrency paling tinggi di pasaran.
Berikut adalah sejarah singkat dari Bitcoin :
1998 – 2009 Pengenalan Bitcoin
Pertama kalinya bitcoin berfungsi penuh sebagai cryptocurrency, tapi sebelum itu, sudah ada banyak upaya untuk menciptakan mata uang online dengan beberapa pilihan database yang aman. Contohnya adalah B-Money dan Bit Gold yang diciptakan tapi tidak pernah diterapkan.
2008 – Siapa Nakamoto
Paper pertama dipublikasi oleh Satoshi Nakamoto yang berjudul “Bitcoin – A Peer to Peer Electronic Cash System” dan diposting ke dalam diskusi kriptografi. Satoshi Nakamoto, entah dia adalah suatu kelompok atau individu yang identitasnya masih tidak diketahui sampai sekarang.
2009 – Bitcoin mulai beroperasi
Pada tahun ini Bitcoin dibuat untuk publik dan terdiri dari sistem yang lengkap di mana mining adalah suatu proses yang akan menghasilkan bitcoin baru dan transaksi diverifikasi ke dalam blockchain.
2010 – Transaksi pertama Bitcoin
Bitcoin pada awalnya bukan untuk trade (perdagangan/pertukaran), hanya untuk mining sehingga sulit untuk menetapkan nilai uang cryptocurrency pertama. Trading pertama dilakukan pada 2010 ketika ada sebuah toko pizza yang menjual seharga 5.000 Bitcoin untuk 1 pizza. Jadi pada penjualan pertama itu si pembeli membayar 10.000 Bitcoin untuk 2 buah pizza. Jika si pembeli masih mempunyai Bitcoin sebanyak itu pada saat ini, harganya sama dengan USD 70 juta.
2011 – Alternatif cryptocurrency
Karena Bitcoin semakin dikenal, semakin populer dan ide tentang desentralisasi dan enkripsi mata uang menjadi lebih populer, muncullah alternatif pertama cryptocurrency yang dinamakan altcoins. Pada umumnya altcoins bertujuan untuk memperbaiki desain pada Bitcoin dengan menawarkan kecepatan yang lebih baik, atau beberapa keuntungan lainnya. Salah satu yang pertama muncul adalah Namecoin dan Litecoin. Saat ini ada lebih dari 1,000 cryptocurrency yang beredar.
2013 – Harga Bitcoin jatuh
Pada 2013,pertama kalinya harga untuk 1 Bitcoin mencapai USD 1,00. Setelah itu harga mulai cepat menurun kemudian anjlok hingga USD 300. Setidaknya dibutuhkan 2 tahun untuk kembali pada harga USD 1,000 lagi.
2014 – Semua jenis penipuan dan pencurian
Bitcoin sebagai mata uang yang didesain dengan anonimitas dan ketiadaan kontrol, ini tentu saja menjadi target yang menarik dan menguntungkan bagi para kriminal. Pada Januari 2014 Bitcoin exchange Mt.Gox (hot wallet) berubah menjadi offline dan pemilik 850,000 bitcoi tidak pernah melihat mereka lagi.
Para investigator masih mencoba mencari tahu apa yang terjadi. Tetapi apapun yang terjadi, seseorang yang tidak jujur mendapatkan hasil penipuannya senilai USD 450 juta. Pada hari ini koin yang hilang itu bernilai USD 4.4 miliar.
2016 – Ethereum dan ICOs
Satu-satunya cryptocurrency yang paling dekat untuk merebut posisi Bitcoin adalah Platform Ethereum. Platform ini menggunakan cryptocurrency yang dikenal dengan Ether sehingga dapat memfasilitasi blockchain dengan smart contract dan aplikasi. Ethereum adalah koin pertama yang ditandai dengan kemunculannya Initial Coin Offerings (ICOs). Ide ini adalah menawarkan kesempatan kepada para investor untuk memperdagangkan saham pada start up dengan cara yang sama bahwa mereka dapat berinvestasi dan melakukan trading crypto. Di Amerika, pemerintah memperingatkan semua investor bahwa karena kurangnya pengawasan ICO bisa saja berdampak pada penipuan yang menyamar sebagai investasi yang sah. Di Cina pemerintahnya melarang Bitcoin dan semua Altcoin.
2017 – Bitcoin mencapai USD 10,000 dan jatuh lagi
Dari awal sampai sekarang semua crypto koin naik dari nol sampai ke level yang saat ini mencapai lebih dari USD 300bn. Bank termasuk Barclays, Citi Bank, Deutsche Bank dan BNP Paribas sedang menginvestigasi cara mereka agar dapat bekerja dengan Bitcoin. Selama ini sentralisasi mata uang selalu dikendalikan oleh pemerintah. Berbeda dengan Bitcoin yang memiliki karakter distributed dan alternative decentralization. Ia tidak dapat dikontrol selain dengan kekuatan pasar. Apakah Bitcoin bisa dikendalikan oleh pemerintah? Kami mungkin tidak tahu jawaban pastinya dalam waktu dekat.
Bitcoin EXPLORER adalah sebuah tools untuk mengeksplor Bitcoin blockchain. Tepatnya untuk melihat semua block dan info transaksi, ada 3 tipe explorer :
- Net explorer
- Terminal explorer
- CLI explorer
Net explorer (paling populer):
- Blockchain.info Explorer
- Bitcoin Block Explorer
- Insight Explorer
Terminal explorer dan CLI explorer (paling populer):
- Ncusers2 Bitcoin Explorer
- Libbitcoin Explorer
Di sini kita akan mengajarkan bagaimana menggunakan explorer.
- Kirim koin ke diri anda
Transfer koin ke diri Anda sendiri dari address faucet. Masuk ke tautan berikut http://13.228.200.242:3000/transfer.
Lalu masukkan public address Anda dalam textbox “Public address” lalu klik “Get Coins”.
2. Mengeksplor blockchain
Langkah 1 : Buka tautan berikut : https://insight.bitpay.com/
Langkah
2 : Kita bisa mencari block atau transaksi dengan hash atau hash dari
block. Sekarang kita akan mencari dengan nomor urut block atau block
height.
Langkah
3 : Pada block 730 kita bisa lihat dalam block tersebut terdiri dari
info block dan transaksi. Kita bisa lihat isi dari block tersebut sangat
menarik.
Langkah 4 : Di sini kita akan melihat info transaksi demi transaksi, atau bisa mecarinya via hash.
Langkah
5 : Kita juga bisa melihat semua address dengan saldonya (transaksi
yang sudah terpakai dan transaksi yang belum terpakai).
Langkah
6 : Kita bisa melihat semua transaksi yang belum dikonfirmasi (salah
satunya transaksi yang tidak termasuk kedalam block) dan yang masih
dalam memory pool (mining/unconfirmed poll).
Apa Itu Bitcoin Wallet
Wallet/dompet di Bitcoin berbeda dengan wallet/dompet dalam pengertian yang sebenarnya, Bitcoin Wallet tidak menyimpan uang! Ia hanyalah tempat untuk menyimpan key Anda. Dalam jaringan, wallet ini disebut sebagai client. Wallet serupa tempat menaruh username dan password.
Di Bitcoin public key adalah “username” dan private (secret) key adalah “password”. Jadi yang berarti wallet adalah tempat untuk menyimpan private and public key jadi kita bisa men-sign transaksi.
Wallet terbagi menjadi 2 kategori, yaitu hot wallet dan cold wallet:
Hot wallet (yang paling populer adalah):
Android:
iOS:
Desktop Wallets:
Browser wallet:
Cold wallet (yang paling populer adalah):
Paper wallet – sesuai dengan namanya, Anda menyimpan passphrase atau private key Anda pada paper.
Kita ambil contoh menggunakan aplikasi wallet Copay untuk melanjutkan tugas berikutnya. Copay dapat digunakan pada Bitcoin main net dan test net.
Wallet/dompet di Bitcoin berbeda dengan wallet/dompet dalam pengertian yang sebenarnya, Bitcoin Wallet tidak menyimpan uang! Ia hanyalah tempat untuk menyimpan key Anda. Dalam jaringan, wallet ini disebut sebagai client. Wallet serupa tempat menaruh username dan password.
Di Bitcoin public key adalah “username” dan private (secret) key adalah “password”. Jadi yang berarti wallet adalah tempat untuk menyimpan private and public key jadi kita bisa men-sign transaksi.
Wallet terbagi menjadi 2 kategori, yaitu hot wallet dan cold wallet:
- Hot wallet menyimpan private dan public key secara online.
- Cold wallet menyimpan private key secara offline dan perangkat itu akan melakukan semua persiapan untuk mentransmisikan transaksi offline. Transaksi yang sudah di Sign (sudah sah) akan ditransfer pada flash drive ke komputer dan disebarkan ke jaringan.
Hot wallet (yang paling populer adalah):
Android:
- Samourai Wallet
- Mycelium
- breadwallet
- Edge
- GreenBits
- Bitcoin Wallet
iOS:
- breadwallet
- Edge
Desktop Wallets:
- Bitcoin QT
- Electrum
Browser wallet:
- Jaxx
- GreenAddress
Cold wallet (yang paling populer adalah):
- Ledger Nano S
- TREZOR
- KeepKey
Paper wallet – sesuai dengan namanya, Anda menyimpan passphrase atau private key Anda pada paper.
Kita ambil contoh menggunakan aplikasi wallet Copay untuk melanjutkan tugas berikutnya. Copay dapat digunakan pada Bitcoin main net dan test net.
Membuat Akun Wallet Menggunakan Copay
Langkah 1 : Instal extension pada Google chrome 65.0.3325 versi.146 (Official Build) (64-bit). Google Chrome adalah sebuah aplikasi yang digunakan untuk menjelajah dunia maya seperti halnya Mozilla Firefox, Opera ataupun Microsoft Edge. Jika Firefox dikembangkan oleh Mozilla, Google Chrome dibuat dan dirancang oleh Google, perusahaan internet terbesar di dunia. Pengertian extension pada Google Chrome adalah sebuah aplikasi kecil yang dapat memberikan fitur tambahan, memodifikasi, dan meningkatkan fungsionalitas dari Google Chrome itu sendiri. Oke jadi sekarang Instal Copay pada Google Chrome extension. Setelah itu klik “Get started”.
Langkah 2 : Klik “Got it” 2 kali atau klik skip untuk melewati.
Langkah 3 : Klik “Create bitcoin wallet”.
Langkah 4 : Masukkan email Anda.
Langkah 5 : Sebaiknya backup wallet Anda jika baru membuat akun wallet.
Langkah 6 : Simpan dan rahasiakan passphrase Anda!!!
Langkah 7 : Sekarang kita menggunakan protokol BIP32 untuk membuat passphrase.
Langkah 8 : Setelah mendapatkan passphrase lanjut ke langkah selanjutnya.
Langkah 9 : Lakukan konfirmasi passphrase.
Langkah 10 : Sekarang kita backup wallet kita.
Langkah 11 : Setujui semua 3 pilihan dan klik “Confirm & Finish."
Langkah 12 : Sekarang kita sudah punya wallet dalam main net.
Langkah 1 : Instal extension pada Google chrome 65.0.3325 versi.146 (Official Build) (64-bit). Google Chrome adalah sebuah aplikasi yang digunakan untuk menjelajah dunia maya seperti halnya Mozilla Firefox, Opera ataupun Microsoft Edge. Jika Firefox dikembangkan oleh Mozilla, Google Chrome dibuat dan dirancang oleh Google, perusahaan internet terbesar di dunia. Pengertian extension pada Google Chrome adalah sebuah aplikasi kecil yang dapat memberikan fitur tambahan, memodifikasi, dan meningkatkan fungsionalitas dari Google Chrome itu sendiri. Oke jadi sekarang Instal Copay pada Google Chrome extension. Setelah itu klik “Get started”.
Langkah 2 : Klik “Got it” 2 kali atau klik skip untuk melewati.
Langkah 3 : Klik “Create bitcoin wallet”.
Langkah 4 : Masukkan email Anda.
Langkah 5 : Sebaiknya backup wallet Anda jika baru membuat akun wallet.
Langkah 6 : Simpan dan rahasiakan passphrase Anda!!!
Langkah 7 : Sekarang kita menggunakan protokol BIP32 untuk membuat passphrase.
Langkah 8 : Setelah mendapatkan passphrase lanjut ke langkah selanjutnya.
Langkah 9 : Lakukan konfirmasi passphrase.
Langkah 10 : Sekarang kita backup wallet kita.
Langkah 11 : Setujui semua 3 pilihan dan klik “Confirm & Finish."
Langkah 12 : Sekarang kita sudah punya wallet dalam main net.
Setup Testnet Pada Copay
Langkah 1 : Jalankan wallet dan klik “+” pada “Bitcoin Wallets."
Langkah 2 : Sekarang klik “New personal wallet.”
Langkah 3 : Pilih nama wallet Anda dan koin yang Anda gunakan.
Langkah 4 : Ubah WALLET SERVICE URL: http://54.169.4.106:3232/bws/api dan “Testnet”.
Langkah 5 : Cek pada testnet dan klik : “Create new wallet."
Langkah 6 : Sekarang kita sudah set up testnet wallet dan main net untuk wallet. Sekarang kita akan mengirim dan menerima beberapa uang.
Langkah 1 : Jalankan wallet dan klik “+” pada “Bitcoin Wallets."
Langkah 2 : Sekarang klik “New personal wallet.”
Langkah 3 : Pilih nama wallet Anda dan koin yang Anda gunakan.
Langkah 4 : Ubah WALLET SERVICE URL: http://54.169.4.106:3232/bws/api dan “Testnet”.
Langkah 5 : Cek pada testnet dan klik : “Create new wallet."
Langkah 6 : Sekarang kita sudah set up testnet wallet dan main net untuk wallet. Sekarang kita akan mengirim dan menerima beberapa uang.
Mengirim Bitcoin dan Share Public Key
Langkah 1 : Klik “receive” button.
Langkah 2 : Pilih pada TestNet.
Langkah 3 : Bagikan public key.
Langkah 4 : Klik Home untuk melihat koin yang diterima.
Langkah 5 : Buka Copay dan klik “Send."
Langkah 6 : Masukkan address yang akan Anda kirimkan uang.
Langkah 7 : Masukkan jumlah uang yang akan Anda kirim dan klik tanda panah hijau.
Langkah 8 : Klik “Click to send”.
Langkah 9 : Lalu klik “Confirm” untuk mengirim koin.
Langkah 10 : Klik “OK” dan tunggu proses transaksi.
Langkah 1 : Klik “receive” button.
Langkah 2 : Pilih pada TestNet.
Langkah 3 : Bagikan public key.
Langkah 4 : Klik Home untuk melihat koin yang diterima.
Langkah 5 : Buka Copay dan klik “Send."
Langkah 6 : Masukkan address yang akan Anda kirimkan uang.
Langkah 7 : Masukkan jumlah uang yang akan Anda kirim dan klik tanda panah hijau.
Langkah 8 : Klik “Click to send”.
Langkah 9 : Lalu klik “Confirm” untuk mengirim koin.
Langkah 10 : Klik “OK” dan tunggu proses transaksi.
Apa Itu Transaksi & Mining
Transaksi adalah sebuah objek di mana kita menentukan/menuliskan berapa banyak uang yang akan kita kirim ke address seseorang dan berapa banyak (“uang kembalian”) yang akan kita kembalikan kepada address kita sendiri. Dalam Bitcoin, transaksi terlihat sedikit aneh karena ia dioptimalkan sesuai dengan fakta bahwa wallet tidak dapat menampung saldo. Artinya setiap kali kita ingin melihat saldo, kita perlu menggunakan blockchain explorer untuk mengurutkan dan kemudian menjumlahkan seluruh bagian blockchain yang di dalam blocks-nya mengandung transaksi-transaksi kita. Jadi dari transaksi-transaksi tersebut, kecuali untuk transaksi pertama di mana semua block harus diperiksa untuk menentukan total saldo, transaksi-transaksi lainnya hanya perlu dijumlahkan hanya sampai dengan transaksi terakhir yang berisi seluruh info transaksi-transaksi sebelumnya. Sebabnya, pada waktu kita mengirimkan uang kepada seseorang, uang kembalian yang akan diberikan kembali kepada kita adalah total saldo kita minus transaksi terakhir.
Mining
adalah proses mengambil transaksi dari memory pool dan membuat block
pada blockchain. Miner memecahkan PoW, yang akan mendapatkan hash sesuai
dengan level kesulitan target. Kita bisa melihat yang dilakukan oleh
miners dengan network view seperti berikut.
Miner yang paling populer adalah:
Windows
Linux
Mac OS X
Ada 2 pilihan untuk mining secara profesional.
Pertama, Anda harus menggunakan tools profesional untuk mining dengan ASIC. Selengkapnya cek tautan berikut ini. https://github.com/ckolivas/cgminer
Kedua, cara tercepat untuk mining adalah dengan menginstal bitcoin-qt 0.12.0 yang akan mengunduh full node sekitar 150GB untuk main net dan untuk test net 15GB.
Langkah 1 : Instal bitcoin-qt 0.12.0 dan jalankan bitcoin qt.
Langkah 2 : Help > Debug Window > Console ketik "setgenerate true" untuk memulai. Ketik "setgenerate false" untuk berhenti.
Transaksi adalah sebuah objek di mana kita menentukan/menuliskan berapa banyak uang yang akan kita kirim ke address seseorang dan berapa banyak (“uang kembalian”) yang akan kita kembalikan kepada address kita sendiri. Dalam Bitcoin, transaksi terlihat sedikit aneh karena ia dioptimalkan sesuai dengan fakta bahwa wallet tidak dapat menampung saldo. Artinya setiap kali kita ingin melihat saldo, kita perlu menggunakan blockchain explorer untuk mengurutkan dan kemudian menjumlahkan seluruh bagian blockchain yang di dalam blocks-nya mengandung transaksi-transaksi kita. Jadi dari transaksi-transaksi tersebut, kecuali untuk transaksi pertama di mana semua block harus diperiksa untuk menentukan total saldo, transaksi-transaksi lainnya hanya perlu dijumlahkan hanya sampai dengan transaksi terakhir yang berisi seluruh info transaksi-transaksi sebelumnya. Sebabnya, pada waktu kita mengirimkan uang kepada seseorang, uang kembalian yang akan diberikan kembali kepada kita adalah total saldo kita minus transaksi terakhir.
a) Jumlah : (100 bitcoin) ke : Address penerima
b) Jumlah : (Total 100 bitcoin) ke : Address kita sendiri
b) Jumlah : (Total 100 bitcoin) ke : Address kita sendiri
Miner yang paling populer adalah:
Windows
- CGMiner
- BTCMiner
- BFGMiner
- EasyMiner
Linux
- CGMiner
- BFGMiner
- EasyMiner
- CPU miner
Mac OS X
- RPC Miner
Ada 2 pilihan untuk mining secara profesional.
Pertama, Anda harus menggunakan tools profesional untuk mining dengan ASIC. Selengkapnya cek tautan berikut ini. https://github.com/ckolivas/cgminer
Kedua, cara tercepat untuk mining adalah dengan menginstal bitcoin-qt 0.12.0 yang akan mengunduh full node sekitar 150GB untuk main net dan untuk test net 15GB.
Langkah 1 : Instal bitcoin-qt 0.12.0 dan jalankan bitcoin qt.
Langkah 2 : Help > Debug Window > Console ketik "setgenerate true" untuk memulai. Ketik "setgenerate false" untuk berhenti.
Dasar Pemrograman Bitcoin
Untuk memahami dasar pemrograman Bitcoin ada beberapa software dan tools yang dapat digunakan contohnya seperti Bitcore, Bitcoind, Bitcoin RPC, Bitcoin Qt. Semua itu tersedia dan bersifat open source.
Bitcore adalah sebuah node yang dikemas dengan javascript dan sekarang ini mulai dari bitcoind v. 0.12.1(2016-Apr-15) sampai bitcoind v.0.16.0(2018-Feb-26), bitcoind adalah versi asli official code dari Nakamoto code.
Anda dapat mengeksplorasi Blochcain Bitcoin dengan menggunakan Bitcoin Qt. Terdapat sebuah terminal pada software tersebut yang membuat anda dapat mengeksplorasi blockchain dengan berbagai macam command yang disediakan.
Anda dapat menjalankan full node bitcoin dari menggunakan Bitcoin Qt. Anda juga dapat menjalankan Bitcoin Qt untuk running di test net.
Untuk memahami dasar pemrograman Bitcoin ada beberapa software dan tools yang dapat digunakan contohnya seperti Bitcore, Bitcoind, Bitcoin RPC, Bitcoin Qt. Semua itu tersedia dan bersifat open source.
Bitcore adalah sebuah node yang dikemas dengan javascript dan sekarang ini mulai dari bitcoind v. 0.12.1(2016-Apr-15) sampai bitcoind v.0.16.0(2018-Feb-26), bitcoind adalah versi asli official code dari Nakamoto code.
Anda dapat mengeksplorasi Blochcain Bitcoin dengan menggunakan Bitcoin Qt. Terdapat sebuah terminal pada software tersebut yang membuat anda dapat mengeksplorasi blockchain dengan berbagai macam command yang disediakan.
Anda dapat menjalankan full node bitcoin dari menggunakan Bitcoin Qt. Anda juga dapat menjalankan Bitcoin Qt untuk running di test net.
Pengenalan Bitcore
Anda dapat menemukan bitcore pada website berikut https://bitcore.io. Di sini kita perlu menjelaskan perbedaan antara bitcore dan bitcoind yang bisa anda unduh disini https://bitcoin.org/. Anda mungkin akan mendengar banyak dari programmer bahwa jika ingin membuat app berdasarkan bitcoin, perlu menggunakan bitcore.
Bitcore adalah sebuah node yang dikemas dengan javascript dan sekarang ini mulai dari bitcoind v. 0.12.1(2016-Apr-15) sampai bitcoind v.0.16.0(2018-Feb-26). Bitcoind adalah versi asli official code dari Nakamoto code. Artinya bitcoind yang dikemas dalam bitcore dengan beberapa hal yang sudah ketinggalan jaman.
Dari bitcoind v.0.13.0, semua opsi untuk mining sudah dihapus karena suatu alasan, yakni saat ini mining menggunakan komputer sangat tidak menguntungkan, jadi semua miners menggunakan ASIC.
Singkatnya :
Ketika selesai kita dapat melihat bahwa lebih aman untuk mengembangkan dengan bitcoind. Namun jika memilih bitcore, alasannya adalah karena lebih mudah digunakan.
Saat memprogram dengan bitcore, Anda hanya menggunakan JavaScript. Saat menggunakan bitcoind, Anda bisa menggunakan JSON RPC atau juga C++. Untuk alasan itu, Bitpay mengambil versi 0.12.1 dan mengemasnya dengan JavaScript untuk mempermudah penggunaannya.
Dengan bitcoind Anda mempunyai opsi untuk menjalankan multithreading sedangkan dengan bitcore Anda hanya dapat menggunakan single thread karena bitcore membutuhkan Node.js untuk menjalankannya. Seperti Anda dapat lihat di sini ada banyak ketidaksamaan. Hal inilah yang akan menentukan jalur yang diambil oleh proyek yang akan Anda kerjakan.
Catatan: Semua Satoshi Nakamoto code sudah diganti dengan code lain di bitcoind versi 0.3.2.
Sekarang dari sisi baiknya bitcore, Anda mempunyai banyak contoh pembuat aplikasi yang menggunakan platform ini. Anda bisa menemukan contoh dan dokumentasi pada websitenya. Jadi jika mau membuat sebuah program, Anda harus melihat script (smart contract) untuk Bitcoin. Bitcoin mempunyai virtual machine nya sendiri tapi tidak sepenuhnya “turing” dan tidak menyimpan “state” nya. Ia hanya menyimpan data ke Bitocin Blockchain. Info lebih lanjut silakan lihat website https://en.bitcoin.it/wiki/Script. Anda bisa menemukan bahwa bitcoin menggunakan script sistem untuk transaksi nya pada virtual machine. Bahasa ini dinamakan Script dan cukup sederhana. Prosesnya dari kiri ke kanan dan tidak ada looping.
Anda dapat menemukan bitcore pada website berikut https://bitcore.io. Di sini kita perlu menjelaskan perbedaan antara bitcore dan bitcoind yang bisa anda unduh disini https://bitcoin.org/. Anda mungkin akan mendengar banyak dari programmer bahwa jika ingin membuat app berdasarkan bitcoin, perlu menggunakan bitcore.
Bitcore adalah sebuah node yang dikemas dengan javascript dan sekarang ini mulai dari bitcoind v. 0.12.1(2016-Apr-15) sampai bitcoind v.0.16.0(2018-Feb-26). Bitcoind adalah versi asli official code dari Nakamoto code. Artinya bitcoind yang dikemas dalam bitcore dengan beberapa hal yang sudah ketinggalan jaman.
- Nama function RPC sudah dirubah
- Tidak support BIP32 ataupun BIP37
- Di versi 0.12.1 CPU mining tetap support
Dari bitcoind v.0.13.0, semua opsi untuk mining sudah dihapus karena suatu alasan, yakni saat ini mining menggunakan komputer sangat tidak menguntungkan, jadi semua miners menggunakan ASIC.
Singkatnya :
- Bitcore adalah kemasan yang dibuat untuk bitcoind v.0.12.1 yang ditulis dengan JavaScript.
- Bitcoind adalah aplikasi yang dibuat sebagai aplikasi utama Bitcoin dengan versi pertamanya yang diterbitkan oleh Nakamoto.
Ketika selesai kita dapat melihat bahwa lebih aman untuk mengembangkan dengan bitcoind. Namun jika memilih bitcore, alasannya adalah karena lebih mudah digunakan.
Saat memprogram dengan bitcore, Anda hanya menggunakan JavaScript. Saat menggunakan bitcoind, Anda bisa menggunakan JSON RPC atau juga C++. Untuk alasan itu, Bitpay mengambil versi 0.12.1 dan mengemasnya dengan JavaScript untuk mempermudah penggunaannya.
Dengan bitcoind Anda mempunyai opsi untuk menjalankan multithreading sedangkan dengan bitcore Anda hanya dapat menggunakan single thread karena bitcore membutuhkan Node.js untuk menjalankannya. Seperti Anda dapat lihat di sini ada banyak ketidaksamaan. Hal inilah yang akan menentukan jalur yang diambil oleh proyek yang akan Anda kerjakan.
Catatan: Semua Satoshi Nakamoto code sudah diganti dengan code lain di bitcoind versi 0.3.2.
Sekarang dari sisi baiknya bitcore, Anda mempunyai banyak contoh pembuat aplikasi yang menggunakan platform ini. Anda bisa menemukan contoh dan dokumentasi pada websitenya. Jadi jika mau membuat sebuah program, Anda harus melihat script (smart contract) untuk Bitcoin. Bitcoin mempunyai virtual machine nya sendiri tapi tidak sepenuhnya “turing” dan tidak menyimpan “state” nya. Ia hanya menyimpan data ke Bitocin Blockchain. Info lebih lanjut silakan lihat website https://en.bitcoin.it/wiki/Script. Anda bisa menemukan bahwa bitcoin menggunakan script sistem untuk transaksi nya pada virtual machine. Bahasa ini dinamakan Script dan cukup sederhana. Prosesnya dari kiri ke kanan dan tidak ada looping.
Bitcoin API
Di Bitcoin API kita bisa menggunakan fungsi selanjutnya untuk menggunakan Console dan RPC JSON.
Langkah 1 : Masuk ke console Bitcoind anda (seperti di 3.4 Apa itu transaksi dan mining, langkah 2 pada link berikut https://www.dicoding.com/academies/92/tutorials/2321/).
Langkah 2 : Untuk melihat semua command pada console, ketik “Help.” Sebuah list panjang berikut ini akan muncul:
== Blockchain ==
== Rawtransactions ==
== Wallet ==
Di Bitcoin API kita bisa menggunakan fungsi selanjutnya untuk menggunakan Console dan RPC JSON.
Langkah 1 : Masuk ke console Bitcoind anda (seperti di 3.4 Apa itu transaksi dan mining, langkah 2 pada link berikut https://www.dicoding.com/academies/92/tutorials/2321/).
Langkah 2 : Untuk melihat semua command pada console, ketik “Help.” Sebuah list panjang berikut ini akan muncul:
== Blockchain ==
- getbestblockhash
- getblock "blockhash" ( verbosity )
- getblockchaininfo
- getblockcount
- getblockhash height
- getdifficulty
- getmempoolinfo
- verifychain ( checklevel nblocks )
- verifytxoutproof "proof"
== Rawtransactions ==
- createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,"data":"hex",...} ( locktime ) ( replaceable )
- decoderawtransaction "hexstring" ( iswitness )
- decodescript "hexstring"
- fundrawtransaction "hexstring" ( options iswitness )
- getrawtransaction "txid" ( verbose "blockhash" )
- sendrawtransaction "hexstring" ( allowhighfees )
- signrawtransaction "hexstring" ( [{"txid":"id","vout":n,"scriptPubKey":"hex","redeemScript":"hex"},...] ["privatekey1",...] sighashtype )
== Wallet ==
- backupwallet "destination"
- bumpfee "txid" ( options )
- dumpprivkey "address"
- dumpwallet "filename"
- encryptwallet "passphrase"
- getaccount "address"
- getaccountaddress "account"
- getaddressesbyaccount "account"
- getunconfirmedbalance
- getwalletinfo
- importprunedfunds
- importwallet "filename"
- importaddress "address" ( "label" rescan p2sh )
- importmulti "requests" ( "options" )
- importprivkey "privkey" ( "label" ) ( rescan )
- getbalance ( "account" minconf include_watchonly )
- gettransaction "txid" ( include_watchonly )
- importpubkey "pubkey" ( "label" rescan )
Instalasi Bitcoin-qt dan Setup Testnet
Untuk instal bitcoin-qt, buka website berikut : https://bitcoin.org/en/download.
Di sini Anda bisa memilih salah satu yang sesuai dengan sistem konfigurasi Anda.
Untuk set up bitcoin-qt yang baru diinstal , pastikan ia dapat berjalan di testnet. Caranya, edit dit berkaspada direktori “~/.bitcoin” yang bernama “bitcoin.conf”
Edit file via Terminal (linux):
Alternatif 1 (linux): cara sederhana untuk melakukan ini : buka berkas “~/.bitcoin/bitcoin.conf” dengan text editor apa saja :
Untuk instal bitcoin-qt, buka website berikut : https://bitcoin.org/en/download.
Di sini Anda bisa memilih salah satu yang sesuai dengan sistem konfigurasi Anda.
Untuk set up bitcoin-qt yang baru diinstal , pastikan ia dapat berjalan di testnet. Caranya, edit dit berkaspada direktori “~/.bitcoin” yang bernama “bitcoin.conf”
Edit file via Terminal (linux):
- Buka terminal dan ketik : “vi ~/.bitcoin/bitcoin.conf”
- Paste “CODE-1” inside it on top of the file (be careful with everything under should be commented out using comment sign “#” on the start of line):
#----------CODE-1----------
# testnet-box functionality
regtest=1
dnsseed=0
upnp=0
# listen on different ports than default testnet
port=19000
rpcport=19001
# always run a server, even with bitcoin-qt
server=1
rpcallowip=0.0.0.0/0
rpcuser=admin1
rpcpassword=123
connect=54.255.190.148:19000
- Sekarang simpan berkas dengan menekan tombol “Esc” dan ketik “:wq”; untuk menyimpan dan keluar.
- Lalu jalankan bitcoin-qt kembali.
Alternatif 1 (linux): cara sederhana untuk melakukan ini : buka berkas “~/.bitcoin/bitcoin.conf” dengan text editor apa saja :
- Buka text editor.
- Buka berkas“~/.bitcoin/bitcoin.conf”.
- Paste code dari “CODE-1”.
- Simpan dan run bitcoin-qt kembali.
Alternatif 2 (linux):
Menggunakan bitcoin-qt:
- Buka bitcoin-qt: “Settings” -> “Options”.
- Klik “Open Configuration File”, lalu lanjutkan ke langkah B pada Alternatif 1.
- Lanjutkan dan selesaikan langkah lainnya.
Lokasi bitcoin.config tergantung pada sistem yang Anda gunakan, berikut pada tabel 1.
Tabel 1:
CLI Bitcoin Explorer
Via Bitcoind
Contoh I : Lihat transaksi pada block paling atas.
Langkah 1 : Di sini kita akan melihat block terakhir yang dibuat : getbestblockhash
Langkah 2: Sekarang kita akan melihat detail dari block terakhir dan kita akan melihat isi block dengan command getblock (diikuti hash block).
Langkah 3: Sekarang kita ingin melihat info transaksi dengan mengetik getrawtransaction (diikuti hash string transaksi).
Langkah 4: Lalu kita akan membaca transaksi tersebut dengan melakukan decoding : decoderawtransaction (diikuti hasil string raw transaction)
CATATAN : Jika transaksi sudah terlalu lama, akan terjadi eror pada “memory Pool” karena default konfigurasi pada bitcoin.config adalah (set txindex = 1). Itu digunakan untuk seluruh explorer tapi dalam contoh ini tidak diperlukan. Setelah itu Anda dapat mengakses semua transaksi dengan menggunakan metode ini.
Contoh II: Sekarang mencari blockchain dengan menggunakan height dari block.
Pada contoh ini kita akan mencari blockchain dengan menggunakan height dari block. Height adalah urutan block yang terhitung dari genesis block.
Langkah 1: Pertama mari kita cari tahu hash dari block paling atas dengan command : getbestblockhash
Langkah 2: Sekarang kita sudah mendapatkan hash block. Lihatlah info block dan kita akan mengetahui seberapa jauh urutan block tersebut dari genesis block : getblock (Diikuti block hash)
Langkah 3: Sekarang kita akan mencoba apakah kita akan mendapat hash yang sama : getblockhash (diikuti height block)
Langkah 4: Eksplor semua block pada blockchain dengan menggunakan height dari block.
Contoh III: Melihat saldo akun.
Langkah 1: Di sini kita akan melihat total saldo pada akun kita : getbalance
Via RPC HTTP JSON
Di sini kita akan mengeksplor blockchain dengan menggunakan protokol RPC HTTP JSON.
Setup Postman:
Contoh I: Lihat transaksi pada block teratas.
Langkah 1: getbestblockhash
Langkah 2: Getblock (diikuti transaksi)
Langkah 3: getrawtransaction (diikuti hasil string transaksi)
CATATAN : Jika transaksi sudah terlalu lama, itu akan memberikan error pada “memory Pool” karena default konfigurasi pada bitcoin.config adalah (set txindex = 1) dan itu digunakan untuk seluruh explorer tapi dalam contoh ini tidak diperlukan. Setelah itu, anda dapat mengakses semua transaksi dengan menggunakan metode ini.
Langkah 4: decoderawtransaction (diikuti hasil string transaksi)
Contoh II: Explore blockchain dengan menggunakan height dari block.
Langkah 1: getbestblockhash
Langkah 2: getblock (diikuti block hash)
Langkah 3: getblockhash (diikuti block height)
Contoh III: Melihat saldo.
Langkah 1: getbalance
Via Bitcoind
Contoh I : Lihat transaksi pada block paling atas.
Langkah 1 : Di sini kita akan melihat block terakhir yang dibuat : getbestblockhash
Langkah 2: Sekarang kita akan melihat detail dari block terakhir dan kita akan melihat isi block dengan command getblock (diikuti hash block).
Langkah 3: Sekarang kita ingin melihat info transaksi dengan mengetik getrawtransaction (diikuti hash string transaksi).
Langkah 4: Lalu kita akan membaca transaksi tersebut dengan melakukan decoding : decoderawtransaction (diikuti hasil string raw transaction)
CATATAN : Jika transaksi sudah terlalu lama, akan terjadi eror pada “memory Pool” karena default konfigurasi pada bitcoin.config adalah (set txindex = 1). Itu digunakan untuk seluruh explorer tapi dalam contoh ini tidak diperlukan. Setelah itu Anda dapat mengakses semua transaksi dengan menggunakan metode ini.
Contoh II: Sekarang mencari blockchain dengan menggunakan height dari block.
Pada contoh ini kita akan mencari blockchain dengan menggunakan height dari block. Height adalah urutan block yang terhitung dari genesis block.
Langkah 1: Pertama mari kita cari tahu hash dari block paling atas dengan command : getbestblockhash
Langkah 2: Sekarang kita sudah mendapatkan hash block. Lihatlah info block dan kita akan mengetahui seberapa jauh urutan block tersebut dari genesis block : getblock (Diikuti block hash)
Langkah 3: Sekarang kita akan mencoba apakah kita akan mendapat hash yang sama : getblockhash (diikuti height block)
Langkah 4: Eksplor semua block pada blockchain dengan menggunakan height dari block.
- getblockhash 1294120
- getblockhash 50000
- getblockhash 50
- getblockhash
Contoh III: Melihat saldo akun.
Langkah 1: Di sini kita akan melihat total saldo pada akun kita : getbalance
Via RPC HTTP JSON
Di sini kita akan mengeksplor blockchain dengan menggunakan protokol RPC HTTP JSON.
Setup Postman:
- Instal Postman app via google chrome extensions.
- Jalankan Postman dan set up POST ke URL http://54.169.4.106:19001.
- Masuk ke authorization dan pilih “Basic Auth.”
- Lalu masukkan username dan password yang digunakan untuk test ini. Konfigurasi selanjutnya : Anda dapat menemukannya pada berkas: /home/ev-003/.bitcoin/bitcoin.conf rpcuser=bitcoin rpcpassword=local321
- Pada bagian header centang “Authorization”, “Content-Type”, “Accept-Encoding” dan pada bagian “Body” pilih “Pretty”.
Contoh I: Lihat transaksi pada block teratas.
Langkah 1: getbestblockhash
Langkah 2: Getblock (diikuti transaksi)
Langkah 3: getrawtransaction (diikuti hasil string transaksi)
CATATAN : Jika transaksi sudah terlalu lama, itu akan memberikan error pada “memory Pool” karena default konfigurasi pada bitcoin.config adalah (set txindex = 1) dan itu digunakan untuk seluruh explorer tapi dalam contoh ini tidak diperlukan. Setelah itu, anda dapat mengakses semua transaksi dengan menggunakan metode ini.
Langkah 4: decoderawtransaction (diikuti hasil string transaksi)
Contoh II: Explore blockchain dengan menggunakan height dari block.
Langkah 1: getbestblockhash
Langkah 2: getblock (diikuti block hash)
Langkah 3: getblockhash (diikuti block height)
Langkah 4:
- getblockhash 1294120
- getblockhash 50000
- getblockhash 50
- getblockhash
Contoh III: Melihat saldo.
Langkah 1: getbalance
Membuat Transaksi di Bitcoin Testnet
Via bitcoind
Contoh IV: Submit transaksi dan kirim koin ke diri Anda sendiri.
Langkah 1: Pertama, dapatkan informasi wallet anda : getwalletinfo
Langkah 2: Sekarang kita bisa melihat semua akun yang kita punya ; default akun adalah (“”). Selanjutnya ketik : listaccounts
Langkah 3: Sekarang kita perlu mendapatkan address yang terhubung dengan akun default kita. Selanjutnya ketik : getaccountaddress ""
Langkah 4: Sekarang kita memerlukan private key. Dapatkan private key dengan command : dumpprivkey "2N5V1jKHAwTE9NWVhDaQjZaYhX9FWcHx2M2".
Langkah 5: Kita akan mengirim uang kepada kita sendiri. Ketika kita melakukan ini kita akan kehilangan beberapa uang kita untuk membayar biaya mining. Prosedur yang sama digunakan untuk mengirim ke orang lain, sekarang ketik:
sendtoaddress "2N5V1jKHAwTE9NWVhDaQjZaYhX9FWcHx2M2" 0.001 (jika kita ingin mengirim ke orang lain, gunakan address yang berbeda)
Via RPC HTTP JSON
Contoh IV: Submit transaksi dan kirim koin ke diri Anda sendiri.
Persiapan:
Run Postman dan set up POST ke URL http://54.169.4.106:19001
rpcuser=bitcoin
rpcpassword=local321
Langkah 1: getwalletinfo
Langkah 2: listaccounts
Langkah 3: getaccountaddress "" (default akun adalah “”)
Langkah 4: dumpprivkey "2MuXrHnDaxGm1b3EPvib37GuAGaVo2ceKaE"
Langkah 5: sendtoaddress "2MuXrHnDaxGm1b3EPvib37GuAGaVo2ceKaE" 0.001 (jika ingin mengirim ke orang lain, gunakan address yang berbeda)
Via bitcoind
Contoh IV: Submit transaksi dan kirim koin ke diri Anda sendiri.
Langkah 1: Pertama, dapatkan informasi wallet anda : getwalletinfo
Langkah 2: Sekarang kita bisa melihat semua akun yang kita punya ; default akun adalah (“”). Selanjutnya ketik : listaccounts
Langkah 3: Sekarang kita perlu mendapatkan address yang terhubung dengan akun default kita. Selanjutnya ketik : getaccountaddress ""
Langkah 4: Sekarang kita memerlukan private key. Dapatkan private key dengan command : dumpprivkey "2N5V1jKHAwTE9NWVhDaQjZaYhX9FWcHx2M2".
Langkah 5: Kita akan mengirim uang kepada kita sendiri. Ketika kita melakukan ini kita akan kehilangan beberapa uang kita untuk membayar biaya mining. Prosedur yang sama digunakan untuk mengirim ke orang lain, sekarang ketik:
sendtoaddress "2N5V1jKHAwTE9NWVhDaQjZaYhX9FWcHx2M2" 0.001 (jika kita ingin mengirim ke orang lain, gunakan address yang berbeda)
Via RPC HTTP JSON
Contoh IV: Submit transaksi dan kirim koin ke diri Anda sendiri.
Persiapan:
Run Postman dan set up POST ke URL http://54.169.4.106:19001
rpcuser=bitcoin
rpcpassword=local321
Langkah 1: getwalletinfo
Langkah 2: listaccounts
Langkah 3: getaccountaddress "" (default akun adalah “”)
Langkah 4: dumpprivkey "2MuXrHnDaxGm1b3EPvib37GuAGaVo2ceKaE"
Langkah 5: sendtoaddress "2MuXrHnDaxGm1b3EPvib37GuAGaVo2ceKaE" 0.001 (jika ingin mengirim ke orang lain, gunakan address yang berbeda)
Reference & Images Suorces :
dicoding
No comments:
Post a Comment