Author

Topic: [Edukasi] Dari Private Key Sampai Ke Bitcoin Address (Untuk Pemula) (Read 25199 times)

legendary
Activity: 2310
Merit: 2044
Non-custodial BTC Wallet
Terima kasih mas infonya, cuma yang ditanyakan oleh teman saya seperti web based bukan dari terminal. Pada web tersebut ada informasi yang menyatakan kalau sekian wallet itu valid. gitu. Cuma saya ga tau apakah itu cuma iming-iming atau real, karena kalau web based kan kita bisa membuat validitas palsu.
Saya ingat kemaren ada yang bisa crack seed di *#huntingsat, saya tak tahu dia itu pakai metode apa, tapi yang pastinya bukan web based karena memang untuk menjalankan itu musti menggunakan source PC yang mumpuni yang tidak bisa digunakan berbasis web atau storage.

*#huntingsat = adalah tagar di twitter yang dibuat oleh wasabi wallet untuk mereka yang bisa crack 12 mnemonic seed acak. Pada 12 seed acak tersebut terdapat sebuah address berisi 0.04213871 BTC atau kisaran $950. Jadi Siapa yang cepat dapat meng-crack itu, maka berhak memiliki sejumlah btc tersebut.

https://mempool.space/address/bc1q7kw2uepv6hfffhhxx2vplkkpcwsslcw9hsupc6
legendary
Activity: 2170
Merit: 1591
O,o
Kalo ga percaya coba aja shuffle 20x dan masukin ke appsnya iancoleman. Kalo masih penasaran shuffle lagi 100x... feeling ane ga ada yang valid checksum.
Saya terlalu malas untuk melakukan shuffle sebanyak itu mas. hahaha.. udah capek di shuffle starlight beberapa bulan lalu  Tongue

Program itu ada mas, malah open source, sampeyan nyari google juga bakal nemu. seedrecover.py > https://github.com/3rdIteration/btcrecover
jalaninnya di terminal, akan tetapi itu butuh juga sumber daya yang bagus, computing PC sampeyan juga harus mumpuni dan pastinya juga sama kayak PC mining BTC, karena untuk nebak 1 kata saja butuh 20 tahun dengan pakai PC kayak sekarang. [1].
Tentu jika PC kuantum sudah ada, hitungan jadi singkat [2]

Terima kasih mas infonya, cuma yang ditanyakan oleh teman saya seperti web based bukan dari terminal. Pada web tersebut ada informasi yang menyatakan kalau sekian wallet itu valid. gitu. Cuma saya ga tau apakah itu cuma iming-iming atau real, karena kalau web based kan kita bisa membuat validitas palsu.

Dari kesimpulan yang didapat dari post mas @abhiseshakana mas @mu_enrico dan mas ini sudah memberikan jawaban dari kejanggalan saya. Terima kasih atas penjelasannya  Wink
legendary
Activity: 2310
Merit: 2044
Non-custodial BTC Wallet
nah, pertanyaan saya adalah, apakah mungkin seseorang membuat program yang menginformasi validitas seed dari beberapa kata yang kita acak tersebut?
Program itu ada mas, malah open source, sampeyan nyari google juga bakal nemu. seedrecover.py > https://github.com/3rdIteration/btcrecover
jalaninnya di terminal, akan tetapi itu butuh juga sumber daya yang bagus, computing PC sampeyan juga harus mumpuni dan pastinya juga sama kayak PC mining BTC, karena untuk nebak 1 kata saja butuh 20 tahun dengan pakai PC kayak sekarang. [1].
Tentu jika PC kuantum sudah ada, hitungan jadi singkat [2]

Jikapun misal kita nemu 12 word mnemonic seed acak, tentu tidak akan mudah, akan ada sekitar 479,001,600 Kombinasi. Kalau misal ada tambahan kata passpharse, jadi 13 maka kombinasi nambah lagi jadi 6,227,020,800. masih mending hilang 1 atau 2 kata terakhir : glance atau eight, dibanding acak kayak di bawahnya. Karena kesulitan acak itu malah lebih besar dibanding hilang 2 atau 3 kata berurut dari mnemonc seed.

Tapi kalau mau gambling sih bisa aja pakai https://iancoleman.io/bip39/, masukin satu-satu 12 word seed acak tadi di sana, kali aja nemu checkshumnya. Namun ya buang-buang waktu, belum lagi jika ternyata ada 1 tambahan kata passphrase, mending cari cara ngecrack private key address ini 34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo.

[1]. https://www.quora.com/How-many-times-does-it-take-to-complete-a-brute-force-attack-up-to-8-characters-including-all-of-them
[2]. https://www.computerworld.com/article/2550008/the-clock-is-ticking-for-encryption.html
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
Ini yang saya khawatirkan mas, ketika ada yang bisa mengacak dan memiliki program/software yang menginformasikan valid atau tidaknya address, nanti ia mencoba untuk mengimport dan melihat isinya. Kalau diakses orang lain saya pikir tidak akan, tapi ya yang punya program tersebut yang akan akses.
Maksudnya dikhawatirkan adanya backdoor yang ngirim itu 12 frasa mnemonic ke pihak jahat.

Ini sebenarnya ga perlu semuanya, misal dari seed yang mas pake sebagai contoh di atas, itu kan udah bisa di shuffle menjadi banyak, semisal pada shuffle ke 3x seperti yang saya contohkan adalah milik saya, dan terdeteksi checksum valid, artinyakan itu bisa diimport, hasilnya kan jadi bisa diakses tuh addressnya. Bener kan?
Ane ga yakin bakal semudah itu dan ga yakin juga apakah dari 12 kata tsb bisa dituker-tuker jadi mnemonic yang valid checksum tanpa adanya kata lain di kata urutan ke-12 (yang terakhir). Kalo ga percaya coba aja shuffle 20x dan masukin ke appsnya iancoleman. Kalo masih penasaran shuffle lagi 100x... feeling ane ga ada yang valid checksum.

Coba dilihat di post ane bagaimana cara membuat 12 frasa mnemonic tersebut terutama di bagian penambahan 4-bit checksum, yang artinya kata terakhir itu dipengaruhi oleh keseluruhan 128 bit penyusunnya atau hash (11 kata + 7bit).

Jadi paling mudah mengekstrak 128 bit dari 12 kata yang dishuffle, dan mengganti kata ke-12 dengan kata yang valid checksum.
legendary
Activity: 2170
Merit: 1591
O,o
Sebetulnya ini ga bisa asal shuffle soalnya ada 4bit checksum, jadi kalau asal shuffle nanti yang mnemonic yang didapat tidak valid checksum.
Cuma ane belum nyoba masukin mnemonic yang tidak valid checksum ke wallet, apakah nanti tetap bisa dipaksa menghasilkan address atau hanya bisa error.
Kalau pakai iancoleman sih invalid mnemonic.
Bener mas, ini memang tidak asal, dan tujuannya untuk mencari valid seed.

Btw software untuk validasi seed itu buat apa? Malah nanti mnemonic bisa dicatet dan kemudian diakses orang lain...
Ini yang saya khawatirkan mas, ketika ada yang bisa mengacak dan memiliki program/software yang menginformasikan valid atau tidaknya address, nanti ia mencoba untuk mengimport dan melihat isinya. Kalau diakses orang lain saya pikir tidak akan, tapi ya yang punya program tersebut yang akan akses.

Tinggal pakai database/dictionary kata mnemonic + checksum aja toh?
- cek dulu kata-katanya ada semua ga di database/dictionary, kalau ada kata yang ga terdaftar == error
- cek apakah checksum valid, kalau invalid == error

Ini sebaiknya tidak dibuat software 3rd party hanya untuk ginian, rentan buat curi-curi data.
Ini sebenarnya ga perlu semuanya, misal dari seed yang mas pake sebagai contoh di atas, itu kan udah bisa di shuffle menjadi banyak, semisal pada shuffle ke 3x seperti yang saya contohkan adalah milik saya, dan terdeteksi checksum valid, artinyakan itu bisa diimport, hasilnya kan jadi bisa diakses tuh addressnya. Bener kan?
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
setelah saya shuffle 3x, dengan generator online, hasilnya ini:

Code:
melt display prison symptom fork vacuum where universe convince garbage glance eight

symptom melt glance convince where garbage display universe prison eight vacuum fork

fork eight where glance symptom display garbage melt universe convince prison vacuum
Sebetulnya ini ga bisa asal shuffle soalnya ada 4bit checksum, jadi kalau asal shuffle nanti yang mnemonic yang didapat tidak valid checksum.
Cuma ane belum nyoba masukin mnemonic yang tidak valid checksum ke wallet, apakah nanti tetap bisa dipaksa menghasilkan address atau hanya bisa error.
Kalau pakai iancoleman sih invalid mnemonic.

Btw software untuk validasi seed itu buat apa? Malah nanti mnemonic bisa dicatet dan kemudian diakses orang lain...

Nah, dari hasil tersebut kemudian jika valid, bukankah ada kemungkinan kalau seed tersebut memiliki address yang eksis. Jadi akun kita menjadi seperti tidak aman jika memiliki seed jika validasi seed acak ini benar-benar ada programnya. Memang, dari 12 kata akan menghasilkan banyak sekali kata yang berbeda. Takutnya jika valid memiliki address dan bisa diimport, bukan tidak mungkin jika itu milik kita, dan kebetulan ada asetnya kemungkinan dikuras.
Meskipun mnemonicnya tidak valid checksum, kita abaikan saja untuk diskusi. Kemungkinan ada yang punya 12 kata yang sama dengan agan itu kemungkinannya kecil sekali meskipun urutannya acak. IMO ini hanya bisa diperoleh pakai keylogger atau yang sejenisnya, soalnya total daftar mnemonicnya kan ada 2048 kata. Kalo ga curang ga bakal bisa nemu itu.

nah, pertanyaan saya adalah, apakah mungkin seseorang membuat program yang menginformasi validitas seed dari beberapa kata yang kita acak tersebut? Karena saya pikir, kalau untuk shuffle kata tidak membutuhkan resource computing besar, cuma kalau deteksi valid ini benar adanya, tetap saja akan menjadi ancaman pencurian yang serius.
Tinggal pakai database/dictionary kata mnemonic + checksum aja toh?
- cek dulu kata-katanya ada semua ga di database/dictionary, kalau ada kata yang ga terdaftar == error
- cek apakah checksum valid, kalau invalid == error

Ini sebaiknya tidak dibuat software 3rd party hanya untuk ginian, rentan buat curi-curi data.
legendary
Activity: 2170
Merit: 2220
Writing the Own Thoughts is Art
nah, pertanyaan saya adalah, apakah mungkin seseorang membuat program yang menginformasi validitas seed dari beberapa kata yang kita acak tersebut? Karena saya pikir, kalau untuk shuffle kata tidak membutuhkan resource computing besar, cuma kalau deteksi valid ini benar adanya, tetap saja akan menjadi ancaman pencurian yang serius.
Saya kira akan susah membuat program yang bisa digunakan buat mem-verifikasi seed yang valid (berisi private-key, public-key beserta UTXOnya jika ada) maupun seed yang tidak valid (atau belum digunakan), karena pada dasarnya saatnya kita membuat sebuah address dan melakukan transaksi, maka yang terlihat di blockchain hanyalah hash dari public key (address), sementara untuk private key maupun seed tidak tersimpan di blockchain. Jadi seharusnya tanpa adanya database (yang berkaitan dengan privkey maupun seed) maka akan sulit membuat program validitas seed hanya berdasarkan pada informasi address, dimana tidak mungkin menurunkan private key dari sebuah public key.

Satu-satunya cara ya Brute Force  Grin
legendary
Activity: 2170
Merit: 1591
O,o
Bump untuk pertanyaan yang mengganjal;D


Jadi begini, ada teman yang bertanya mengenai program untuk memvalidasi kalau seed tersebut valid atau tidak. Anggap saja begini, dari contoh seed yang mas @mu_enrico berikan

Code:
symptom display melt eight where universe prison vacuum convince garbage glance fork

setelah saya shuffle 3x, dengan generator online, hasilnya ini:

Code:
melt display prison symptom fork vacuum where universe convince garbage glance eight

symptom melt glance convince where garbage display universe prison eight vacuum fork

fork eight where glance symptom display garbage melt universe convince prison vacuum

Nah, dari hasil tersebut kemudian jika valid, bukankah ada kemungkinan kalau seed tersebut memiliki address yang eksis. Jadi akun kita menjadi seperti tidak aman jika memiliki seed jika validasi seed acak ini benar-benar ada programnya. Memang, dari 12 kata akan menghasilkan banyak sekali kata yang berbeda. Takutnya jika valid memiliki address dan bisa diimport, bukan tidak mungkin jika itu milik kita, dan kebetulan ada asetnya kemungkinan dikuras.

nah, pertanyaan saya adalah, apakah mungkin seseorang membuat program yang menginformasi validitas seed dari beberapa kata yang kita acak tersebut? Karena saya pikir, kalau untuk shuffle kata tidak membutuhkan resource computing besar, cuma kalau deteksi valid ini benar adanya, tetap saja akan menjadi ancaman pencurian yang serius.
legendary
Activity: 2310
Merit: 2044
Non-custodial BTC Wallet
nah, di Javascript mmg ada celah juga dalam menghasilkan random kata dev Bitcoin di seminar.

siap gan, bitaddress cukup terkenal juga ya. 👍😊.
coinbin juga pakai koordinat cursor.

generate manual pakai coin tadi lebih bagus, atau gak kalau ada duit lebih karena sekarang ini sudah hampir merata generate pakai hardware wallet yang lebih terjamin dari pada yang kamu sebutkan: bitaddress dan coinbin, nanti takut download source gak jelas kena phising dan sebagainya. kedua software itu juga terbatas, kayak bitaddress generate cuma alamat legacy, fee untuk ngirim2 btc jelas lebih gede dari segwit.
newbie
Activity: 4
Merit: 7
saya mau create private key di wallet saya sendiri om  Smiley.
dengan bantuan bahasa pemrograman C#/Java.
Jarang ya, rata-rata phyton, di board dev saja sepi > BitcoinJ, takutnya nanti kalau ada masalah, susah diselesaikan karena memang jarang sehingga ketika meng-implementasikan ke wallet khusus Java jadi kesulitan. Jadi harus tahu resiko kedepannya, kalau menurut saya gunakan testnet untuk pengetesan nanti.

Lagian, gak perlu susah-susah generate entropi pakai program java segala, cukup pakai lemparan coin(manual, tanpa elektronik sistem) bisa. > [Having Fun] Bikin Private Key Bitcoin kalau mau bikin entropi 132 bits lempar coin sebanyak 132 x, begitu juga 256bits, lemparan coinnya sebanyak 256 x untuk menghasilkan jumlah bilangan binari lalu dikonvert ke word untuk disimpan.

Karena tujuannya generate entropi, kecuali kalau memang mau sekalian menghasilkan public address/wallet menggunakan C#

betul gan, jarang yang menggunakan .net. ini ane pakai NBitcoin untuk mempelajari di lingkungan .net dan testnet untuk simulasi.

yap bisa juga menggunakan lemparan dadu / coin sebagai entropinya.

makasih gan atas sarannya.
saya mau create private key di wallet saya sendiri om  Smiley.
dengan bantuan bahasa pemrograman C#/Java.
Kalau mau buat belajar/eksperimen silahkan saja gan, tapi tidak dianjurkan untuk dipakai beneran karena belum teruji.
Jangan lupa mengikutsertakan input dari user untuk menambah keacakan, bisa pakai koordinat kursor seperti pada https://www.bitaddress.org/
Jangan hanya pakai random() saja karena katanya entropinya tidak memenuhi syarat.

nah, di Javascript mmg ada celah juga dalam menghasilkan random kata dev Bitcoin di seminar.

siap gan, bitaddress cukup terkenal juga ya. 👍😊.
coinbin juga pakai koordinat cursor.

sekali lagi terima kasih gan atas masukkannya.

sehat selalu

copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
saya mau create private key di wallet saya sendiri om  Smiley.
dengan bantuan bahasa pemrograman C#/Java.
Kalau mau buat belajar/eksperimen silahkan saja gan, tapi tidak dianjurkan untuk dipakai beneran karena belum teruji.
Jangan lupa mengikutsertakan input dari user untuk menambah keacakan, bisa pakai koordinat kursor seperti pada https://www.bitaddress.org/
Jangan hanya pakai random() saja karena katanya entropinya tidak memenuhi syarat.
legendary
Activity: 2310
Merit: 2044
Non-custodial BTC Wallet
saya mau create private key di wallet saya sendiri om  Smiley.
dengan bantuan bahasa pemrograman C#/Java.
Jarang ya, rata-rata phyton, di board dev saja sepi > BitcoinJ, takutnya nanti kalau ada masalah, susah diselesaikan karena memang jarang sehingga ketika meng-implementasikan ke wallet khusus Java jadi kesulitan. Jadi harus tahu resiko kedepannya, kalau menurut saya gunakan testnet untuk pengetesan nanti.

Lagian, gak perlu susah-susah generate entropi pakai program java segala, cukup pakai lemparan coin(manual, tanpa elektronik sistem) bisa. > [Having Fun] Bikin Private Key Bitcoin kalau mau bikin entropi 132 bits lempar coin sebanyak 132 x, begitu juga 256bits, lemparan coinnya sebanyak 256 x untuk menghasilkan jumlah bilangan binari lalu dikonvert ke word untuk disimpan.

Karena tujuannya generate entropi, kecuali kalau memang mau sekalian menghasilkan public address/wallet menggunakan C#
newbie
Activity: 4
Merit: 7
ane mau tanya, apakah dalam menghasilkan private key, dibutuhkan entropy sehingga kemungkinan menghasilkan private key yang sama adalah 0% (mendekati) ?
Butul, butuh entropy yang memenuhi syarat.

Quote
Entropy is the foundation upon which all cryptographic functions operate. Entropy, in cyber security, is a measure of the randomness or diversity of a data-generating function. Data with full entropy is completely random and no meaningful patterns can be found.
Sumur.

Dalam membuat private key dibutuhkan 256-bit data, dan entropi di sini adalah tingkat keacakan 256-bit data yang digunakan untuk membuat private key tersebut. Kalau 256-bit data tersebut benar-benar acak, maka kemungkinan untuk menghasilkan private key yang sama adalah 0 (dekat sekali).

Sebagai contoh dilakukan eksperimen pelemparan uang logam sebanyak 256 kali, orang-orang diminta untuk menulis 1 apabila muncul angka dan 0 apabila muncul gambar, maka kalau benar-benar dilakukan:
- Satu Kelurahan tidak akan ada hasil yang sama, bahkan
- Satu Kecamatan tidak akan ada hasil yang sama, bahkan
- Satu Negara tidak akan ada hasil yang sama, bahkan
- Satu Dunia tidak akan ada hasil yang sama.

i see.
terima kasih sekali lagi atas pandangannya.
👍🏻😊

ane mau tanya, apakah dalam menghasilkan private key, dibutuhkan entropy sehingga kemungkinan menghasilkan private key yang sama adalah 0% (mendekati) ?
Tergantung pada wallet apa atau dimana kamu meng-create entropi tersebut. Pada kasus brainwallet dimana entropinya hanya berupa password, tentu akan mudah atau menghasilkan hal yang sama jika menggunakan password secara umum misal: 1234567890, QWERTY, atau tanggal lahir, dsb.

Itu beda kalau menggunakan wallet seperti electrum, yang walau hanya menggunakan 132 bits entropi, digenerate langsung dari wallet, pun persentase untuk meng-create private key yang sama tetap 0%. Dan wallet kebanyakan, entropinya menggunakan BIP39 (2048 words) atau 256 bits, akan sangat imposible, apa lagi kalau ditambah dengan phrase tambahan di luar mnemonic seed (entropi - word to binary).

saya mau create private key di wallet saya sendiri om  Smiley.
dengan bantuan bahasa pemrograman C#/Java.

terima kasih atas informasinya 🙏.
legendary
Activity: 2310
Merit: 2044
Non-custodial BTC Wallet
ane mau tanya, apakah dalam menghasilkan private key, dibutuhkan entropy sehingga kemungkinan menghasilkan private key yang sama adalah 0% (mendekati) ?
Tergantung pada wallet apa atau dimana kamu meng-create entropi tersebut. Pada kasus brainwallet dimana entropinya hanya berupa password, tentu akan mudah atau menghasilkan hal yang sama jika menggunakan password secara umum misal: 1234567890, QWERTY, atau tanggal lahir, dsb.

Itu beda kalau menggunakan wallet seperti electrum, yang walau hanya menggunakan 132 bits entropi, digenerate langsung dari wallet, pun persentase untuk meng-create private key yang sama tetap 0%. Dan wallet kebanyakan, entropinya menggunakan BIP39 (2048 words) atau 256 bits, akan sangat imposible, apa lagi kalau ditambah dengan phrase tambahan di luar mnemonic seed (entropi - word to binary).
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
ane mau tanya, apakah dalam menghasilkan private key, dibutuhkan entropy sehingga kemungkinan menghasilkan private key yang sama adalah 0% (mendekati) ?
Butul, butuh entropy yang memenuhi syarat.

Quote
Entropy is the foundation upon which all cryptographic functions operate. Entropy, in cyber security, is a measure of the randomness or diversity of a data-generating function. Data with full entropy is completely random and no meaningful patterns can be found.
Sumur.

Dalam membuat private key dibutuhkan 256-bit data, dan entropi di sini adalah tingkat keacakan 256-bit data yang digunakan untuk membuat private key tersebut. Kalau 256-bit data tersebut benar-benar acak, maka kemungkinan untuk menghasilkan private key yang sama adalah 0 (dekat sekali).

Sebagai contoh dilakukan eksperimen pelemparan uang logam sebanyak 256 kali, orang-orang diminta untuk menulis 1 apabila muncul angka dan 0 apabila muncul gambar, maka kalau benar-benar dilakukan:
- Satu Kelurahan tidak akan ada hasil yang sama, bahkan
- Satu Kecamatan tidak akan ada hasil yang sama, bahkan
- Satu Negara tidak akan ada hasil yang sama, bahkan
- Satu Dunia tidak akan ada hasil yang sama.
newbie
Activity: 4
Merit: 7
mantap threadnya gan.
not your key, not your coin

sama-sama belajar hal mendasar tentang wallet, private key, public key, digital signature dan address.

ane mau tanya, apakah dalam menghasilkan private key, dibutuhkan entropy sehingga kemungkinan menghasilkan private key yang sama adalah 0% (mendekati) ?

thanks atas responsenya.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
Trit ini ane buka lagi karena ada beberapa pertanyaan via PM yang serius (bukan yang tanya apa itu Bech lol), dan spam fest sudah habis. Sayang rasanya kalau ilmu hanya dibagikan via PM. Jadi kalau ada pertanyaan silahkan biar sama-sama belajar.
Thanks!
legendary
Activity: 2170
Merit: 1591
O,o
maaf bang udah begitu jelas sih tapi menurut saya bisa di perjelas lagi secara detail agar bisa cepat paham
trimakasi.

Jika ingin cepat paham, coba baca pelan-pelan dari halaman pertama hingga terakhir mas bikin post. Karena penjelasannya memang sudah sangat detil, tinggal bagaimana cara mas membacanya dan memahaminya. Dan sangat ambigu menurut saya, mas bilang sudah jelas tapi perlu penjelasan lebih detil.
full member
Activity: 294
Merit: 100
Colletrix - Bridging the Physical and Virtual Worl
Nice explanation by experts for newbies

Kadang sangat membingungkan jikalau alamat btc sudah sangat rumit untuk dibobol karena untuk menciptakan alamat btc aja perlu perhitungan kompleks, akan tetapi mengapa btc masih bisa kena hack?

maaf, saya belum pernah mendengar btc kena hack, yang saya tau market yang kena hack dan dicuri bitcoinnya. maaf jika kata-kata saya ada yang salah.

Saya setuju dengan agan, setahu saya dan menurut pengalaman saya sendiri adalah market yg terkena hack.
Dan kalau sampai itu terjadi untuk melakukan claim atau complaint pasti susah karena dari pihak marketnya juga mengalami keterpurukan dan tidak menyangka bahwa market mereka bisa terkena hack.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
Peringatan:
  • Ane bukan bitcoin expert, thread ini dibuat sebagai salah satu cara ane untuk terpaksa mau belajar.
  • Cara ini hanya untuk pembelajaran saja. Jangan gunakan situs-situs "bitcoin tools" untuk merubah kode-kode apabila memang hendak menggunakan alamat-alamat tersebut untuk transaksi sungguhan.
  • Jangan gunakan alamat dan private key yang tercantum pada halaman ini untuk kirim/terima bitcoin!
Ane tadi dapat ping dari agan @vv181 terkait celah berbahaya dari walletgenerator-dot-net. Terima kasih agan @vv181 untuk infonya.

Sebenarnya ane sudah baca sih tapi malas ane rubah karena tidak terlalu berpengaruh asalkan pembaca membaca peringatan ane. Cuma untuk pencegahan karena takut nanti ada saja nubie yang iseng membuat privkey dari metode yang aneh, ane ganti dengan https://www.bitaddress.org/

Ingat ane hanya menjelaskan "cara kerja" di thread ini, bukan untuk diterapkan dalam membuat alamat bitcoin untuk benar-benar digunakan. Sekian dan terima kasih.


Ane kunci lagi ya gaes, kalau ada yang beneran serius tanya silahkan PM ane. Nanti ane unlock.
Nuhun
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
Kutipan Diatas Menyatakan 2^96 Private Key Akan Bekerja Untuk Setiap Satu Public Key (Bukan Address)
Ane setuju dengan ini. IMO pembungkusan apakah dengan Base58 atau Bech32 tidak berpengaruh (tidak ada "bottleneck" output lagi).

Karena Ada Dua Privkey Yang Bisa Dihasilkan Dari Suatu Hex, Maka Banyaknya Privkey (WIF)Jadi 2^256 X 2 =2^257
Menurut ane Sih Pernyataan Itu Benar,Kenapa?
Menurut Pemahaman Ane 2^160 itu Jumlah Hex Yang Bisa Dijadikan WIF Tanpa Pengulangan
Karena Ada 2^160 Hex,Dan Dari Setiap Hex Bisa Didapatkan 2 Public Key, Maka Banyaknya Public Key Jadi 2^160 X 2 =2^161
Logikanya masih belum pas betul kalau menurut ane, karena dua hal tersebut diperlakukan berbeda (lihat prefix), kita ambil maksimal address space-nya saja ya... Karena ada maksimal 2160 HASH-160 dari pasangan privkey-pubkey, maka akan ada:
- Maksimal 2160 alamat P2PKH uncompressed
- Maksimal 2160 alamat P2PKH compressed
- Maksimal 2160 alamat P2SH-P2WPKH
- Maksimal 2160 alamat Bech32-P2WPKH

2^257/2^161=2^96
Kalau rumus yang cuma dibagi ini memang menggoda, tapi insting ane mengatakan ini bukan rumus yang valid dan hasilnya cocok cuma kebetulan.

Kalau masih belum ada pencerahan dari suhu-suhu yang masih silent reader, nanti coba ane tanyakan di global.

Juga, collision yang dibahas masih collision yang "pasti" yaitu ~2256 input masuk ke 2160 output. Belum lagi terkait adanya collision di hash-nya itu sendiri yang meskipun kemungkinannya superrrr kecil (tapi kadang masih disebut-sebut).
sr. member
Activity: 270
Merit: 309
Shinji bgt gwh

The quote of 2^96 represented how many potential PRIVATE keys would work for a single PUBLIC key  if they were evenly distributed (not how many total private keys were there).

296 katanya kalo dihitung pakai prinsip lubang merpati*

*ane gak paham dan gak ingin mempelajarinya lebih jauh, mungkin bisa tanya atas ane saja.
Edit: kok kayaknya cuman 256-160 = 96 lol


Itu 2256(Jumlah Kombinasi Private Key)/2160(Jumlah total Wallet Bitcoin Yang Bisa Muncul) =296(Jumlah Private Key Yang Dapat Bekerja Untuk Satu Wallet)


Saya juga kurang mengerti tentang hal ini, tetapi seharusnya bukan 296 karena :
1. Dari sebuah private key, kita bisa membuat 2 jenis public key (compressed dan uncompressed)
2. Karena hal 1, sebuah private key bisa menghasilkan 2 bitcoin address (dari 2 public key)
3. Tetapi bitcoin juga memiliki P2SH dan Bech32 address
4. Selain itu, Bech32 dibagi menjadi 2 yaitu P2WPKH (dengan panjang 20 char) dan P2WSH (dengan panjang 32 char)


Kutipan Diatas Menyatakan 2^96 Private Key Akan Bekerja Untuk Setiap Satu Public Key (Bukan Address)
Karena Ada Dua Privkey Yang Bisa Dihasilkan Dari Suatu Hex, Maka Banyaknya Privkey (WIF)Jadi 2^256 X 2 =2^257
Menurut ane Sih Pernyataan Itu Benar,Kenapa?
Menurut Pemahaman Ane 2^160 itu Jumlah Hex Yang Bisa Dijadikan WIF Tanpa Pengulangan
Karena Ada 2^160 Hex,Dan Dari Setiap Hex Bisa Didapatkan 2 Public Key, Maka Banyaknya Public Key Jadi 2^160 X 2 =2^161

2^257/2^161=2^96

CMIIW
legendary
Activity: 2828
Merit: 7315
The quote of 2^96 represented how many potential PRIVATE keys would work for a single PUBLIC key  if they were evenly distributed (not how many total private keys were there).

296 katanya kalo dihitung pakai prinsip lubang merpati*

*ane gak paham dan gak ingin mempelajarinya lebih jauh, mungkin bisa tanya atas ane saja.
Edit: kok kayaknya cuman 256-160 = 96 lol

Saya juga kurang mengerti tentang hal ini, tetapi seharusnya bukan 296 karena :
1. Dari sebuah private key, kita bisa membuat 2 jenis public key (compressed dan uncompressed)
2. Karena hal 1, sebuah private key bisa menghasilkan 2 bitcoin address (dari 2 public key)
3. Tetapi bitcoin juga memiliki P2SH dan Bech32 address
4. Selain itu, Bech32 dibagi menjadi 2 yaitu P2WPKH (dengan panjang 20 char) dan P2WSH (dengan panjang 32 char)

Referensi :
1. https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki
2. https://en.bitcoin.it/w/images/en/4/48/Address_map.jpg
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
#ASK
Mengikuti Cara Yang Agan Berikan
Akan Ada Terdapat 16^64 (64 Digit Heksadesimal) atau 2^256 (256 Digit Biner) Address Bitcoin Yang Ada
Namun...
Thread Ini Menyatakan bahwa Hanya Ada 2^160 address Yang ada
apakah ini berarti ada beberapa pasangan Private key yang Mengarah Ke 1 Address Yang Sama?
Atau Ada Beberapa "Angka Spesial" Dimana Beberapa Privkey Yang Berbentuk Heksadesimal Tidak dapat Menghasilkan Suatu Address?
Mantab akhirnya ini ditanyakan juga.

2256 (256 bit) itu jumlah kombinasi private key yang mungkin dibuat sebelum diproses kriptografi lebih jauh. Nah dalam setiap tahapan akan ada "batasan" berapa kombinasi maksimum jumlah output yang bisa dihasilkan (kita abaikan collision terlebih dahulu):

1. secp256k1
2256 kombinasi privkey tidak semuanya bisa menghasilkan mapping 1:1 pasangan kunci privkey-pubkey. Karena batasan maksimum adalah FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140, lebih dari itu akan berulang.

2. RIPEMD-160
Sesuai namanya, output yang dihasilkan maksimum adalah 2160 (160 bit). Seberapa pun besarnya kombinasi input, outputnya tetap maksimal 2160. Maka dari itu hanya akan ada maksimum 2160 kombinasi alamat bitcoin.

Pernyataan di atas mengabaikan collision, yaitu 1 output yang sama dihasilkan dari input-input yang berbeda.
Apabila ikut menyertakan collision untuk dapat mengetahui berapa jumlah private key yang bisa menghasilkan satu alamat bitcoin yang unik, maka:

The quote of 2^96 represented how many potential PRIVATE keys would work for a single PUBLIC key  if they were evenly distributed (not how many total private keys were there).

296 katanya kalo dihitung pakai prinsip lubang merpati*

*ane gak paham dan gak ingin mempelajarinya lebih jauh, mungkin bisa tanya atas ane saja.
Edit: kok kayaknya cuman 256-160 = 96 lol

Pembahasan lebih lanjut:
https://crypto.stackexchange.com/questions/50997/sha256-and-ripemd160-collisions
https://en.wikipedia.org/wiki/Pigeonhole_principle
legendary
Activity: 2828
Merit: 7315
apakah ini berarti ada beberapa pasangan Private key yang Mengarah Ke 1 Address Yang Sama?

Ya, tetapi kemungkinan tersebut sangat kecil[1]

Atau Ada Beberapa "Angka Spesial" Dimana Beberapa Privkey Yang Berbentuk Heksadesimal Tidak dapat Menghasilkan Suatu Address?

Benar, ada beberapa private key yang tidak bisa di konversikan ke public key/address. Lebih tepatnya hanya private key antara 0x1 sampai 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140 saja yang valid[2]

Referensi :
1. https://bitcoin.stackexchange.com/a/31
2. https://en.bitcoin.it/wiki/Private_key#Range_of_valid_ECDSA_private_keys
legendary
Activity: 1918
Merit: 1143
Tambahan dan Saran agar wallet anda tersimpan dengan Aman menurut saya, dan kalian wajib mempunyai sebuah Flash Disk :
1. Buka Notepad pada Komputer kalian
2. Silakan kalian pastekan private key yang telah kalian salin ke notepad itu, lalu kalian save dan simpan di Dekstop.
3. Setelah itu kalian Pindahkan dengan cara Cut, ingat jangan di copy ya, jadi nanti biar tidak ada bekas di Komputer kalian.
4. Cabut flash disk setelah selesai di simpan

Smoga bermanfaat.
Saran yang bagus, tapi apakah agan pernah sadar dalam beberapa kasus dimana seseorang yang menyimpan data pribadi yang berharga di flashdisk bisa saja hilang ataupun rusak dan datanya tidak bisa di recover ulang ?
Ane rasa saran agan ini bersifat opsional, untuk jaga-jaga saja.
Tapi bagi sebagian besar kita disini yang masih berperingkat rendah, maka ane rasa tidak wajib dulu untuk menjaga keamanan data sedetail itu. Karena aset yang kita miliki sekarang belum cocok untuk membuat kita merasa was-was karena alasan keamanan.

Saran ane sih gini aja gan, sementara waktu kita belajar dulu bagaimana cara-cara dari master untuk bisa digunakan kedepan dalam hal mengamankan aset dan data berharga lainnya.
sr. member
Activity: 270
Merit: 309
Shinji bgt gwh
#ASK
Mengikuti Cara Yang Agan Berikan
Akan Ada Terdapat 16^64 (64 Digit Heksadesimal) atau 2^256 (256 Digit Biner) Address Bitcoin Yang Ada
Quote
Untuk dapat membuka loker tempat penyimpanan bitcoin, agan harus memiliki informasi letak loker tersebut. Informasi inilah yang disebut dengan private key. Bitcoin memiliki 2256 loker yang dapat digunakan untuk menyimpan bitcoin agan. Angka ini apabila didesimalkan akan menjadi sekitar 1077. Sebagai perbandingan, jumlah pasir di bumi ini diperkirakan sekitar 7.5 x 1018, sangat jauh lebih kecil dari jumlah alamat bitcoin yang bisa agan gunakan.
Namun...
Thread Ini Menyatakan bahwa Hanya Ada 2^160 address Yang ada
apakah ini berarti ada beberapa pasangan Private key yang Mengarah Ke 1 Address Yang Sama?
Atau Ada Beberapa "Angka Spesial" Dimana Beberapa Privkey Yang Berbentuk Heksadesimal Tidak dapat Menghasilkan Suatu Address?
jr. member
Activity: 111
Merit: 1
Tambahan dan Saran agar wallet anda tersimpan dengan Aman menurut saya, dan kalian wajib mempunyai sebuah Flash Disk :
1. Buka Notepad pada Komputer kalian
2. Silakan kalian pastekan private key yang telah kalian salin ke notepad itu, lalu kalian save dan simpan di Dekstop.
3. Setelah itu kalian Pindahkan dengan cara Cut, ingat jangan di copy ya, jadi nanti biar tidak ada bekas di Komputer kalian.
4. Cabut flash disk setelah selesai di simpan

Smoga bermanfaat.
legendary
Activity: 2142
Merit: 1785
Dalam pembahasan cara mudah generate private key ini, kita akan menggunakan generator key dari bitaddress.org. Untuk alasan keamanan, sebaiknya kita cukup menambil file zip dari bitaddress tersebut, lalu gunakan file tersebut pada computer offline

Kalau copas jangan separo-separo, sekalian aja 1 artikel. Mbok ya dibaca dulu peraturan forum, jangan asal ngepos.

[1] https://www.edukasibitcoin.com/cara-mudah-generate-private-key-dan-public-key/
[2] https://archive.fo/q68c8
legendary
Activity: 2142
Merit: 1785
Iya sebenarnya lucu juga ketika forum bitcoin berasa seperti forum trading (forex/saham). Yang dibahas cuma "opit," gosip dari bandar X (penganut bandarmologi), dsb., yang sebenarnya tidak semenarik pembahasan teknologi. Entah apakah ini hanya ane saja yang berpendapat kalau belajar bitcoin memang sulit untuk yang memiliki latar belakang non-tech, jadi tidak mungkin apabila mayoritas thread berubah pembahasan teknologi bitcoin/blockchain. Bukannya apatis ya gan, tapi lebih cenderung ke realistis.

Saya sendiri latar belakangnya sosial kok om, walaupun memang punya minat di bidang komputer/informatika sejak kecil. Sulit memang kalau belajar dari awal karena realitas yang ingin dipelajari masih abstrak dan sulit untuk mengkonkretkan fenomenanya langsung. Bagi mereka yang tidak betah berabstraksi dan bersabar dalam membaca/membayangkan pasti sangat sulit untuk mempelajari bitcoin dkk, tapi bukan tidak mungkin. Walaupun saya juga tidak berharap semua thread jadi berisi tentang teknologi blockchain dst di main forum, tapi setidaknya thread-thread yang isinya bisa bikin pinter (bukan tempat ngomong kayak kecebong dangdutan) makin banyak.

Yang belum ada dari thread-thread di sini menurut ane adalah komunitas belajar, bukan komunitas nge-bounty yang maaf sangat memalukan ketika diposting oleh @The Pharmacist beberapa bulan yang lalu.

Saya mau bikin komunitas sendiri juga ragu siapa yang mau jadi anggotanya, wong kebanyakan juga pada main bounty. Mungkin hal itu gak bakal bisa berubah, dan i think it's fine selama ga sampe menyalahi aturan forum atau norma/etika pada umumnya seperti kerja sama buat nuyul atau berbuat curang, bahkan sampai bikin akun-akun klonengan buat menyerang pihak tertentu yang mengekspos apa yang dia lakukan. Saya sendiri agak heran, padahal Indonesia ini negara yang cenderung agak religius dibandingkan dengan negara-negara barat, tapi kok yang curang malah kayaknya menjamur di sini. Ya mau gimana lagi, negaranya sendiri juga banyak masalahnya, mungkin karena udah permisif, seperti kasus nyuap polisi kena tilang dst sampai yang paling sederhana ngerjain UAS aja pake bantuan teman. Ya kalau hal ini gak bisa berubah, harapan ane sih bisa dikurangilah porsinya, thread" yang kualitasnya rendah dan ga ada moderasi langsung dihapus saja. Itu di altcoin pemandangannya udah gak karuan, sehari bisa 100 post direport.

Maap, ane sendiri belum memiliki banyak waktu luang untuk membuat thread baru yang serius gan. Market yang buruk (tidak cuma di crypto) sedikit banyak berimbas ke ane sehingga lebih banyak kejar setoran di RL  Grin

Gak masalah om, toh bukan kewajiban (kalau om dibayar buat bikin thread edukasi baru lain ceritanya haha). Semoga cepet dapat rejeki dan bisa investasi banyak biar ga perlu mikir nyari duit buat nyambung hidup satu bulan ke depan (doa buat kita semua).


Btw post ini sepertinya agak off-topic, dihapus juga ga papa gan.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
Iya sebenarnya lucu juga ketika forum bitcoin berasa seperti forum trading (forex/saham). Yang dibahas cuma "opit," gosip dari bandar X (penganut bandarmologi), dsb., yang sebenarnya tidak semenarik pembahasan teknologi. Entah apakah ini hanya ane saja yang berpendapat kalau belajar bitcoin memang sulit untuk yang memiliki latar belakang non-tech, jadi tidak mungkin apabila mayoritas thread berubah pembahasan teknologi bitcoin/blockchain. Bukannya apatis ya gan, tapi lebih cenderung ke realistis.

Yang belum ada dari thread-thread di sini menurut ane adalah komunitas belajar, bukan komunitas nge-bounty yang maaf sangat memalukan ketika diposting oleh @The Pharmacist beberapa bulan yang lalu.

Maap, ane sendiri belum memiliki banyak waktu luang untuk membuat thread baru yang serius gan. Market yang buruk (tidak cuma di crypto) sedikit banyak berimbas ke ane sehingga lebih banyak kejar setoran di RL  Grin

Wow,ternyata seperti itu ya proses terbentuknya private key. terbukti dari uraian agan sistem blockchain sangat canggih dan menggunakan algoritma yang sangat aman. semoga dengan kecanggihan teknologi ini nantinya bitcoin akan menjadi alat transaksi yang bisa di pakai di semua negara. aamiin.
Shitposting tepat di bawah batang hidung ane.. haduh..
legendary
Activity: 2142
Merit: 1785
Friendly bump.



Saya sumpek melihat thread di halaman 1 main forum penuh dengan thread-thread yang pembahasan tentang Bitcoinnya sangat dangkal. Sedih juga karena hal ini berarti gak banyak member yang memang mau belajar bitcoin selain seputar masalah nyimpen duit, transfer duit, mencairkan ke rupiah, beli mobil baru.

Mohon bantuannya buat mereport posting" spam dan mohon buat mod supaya jadi lebih galak. Saya sangat suka kalau RT kembali di berikan pada spammer akut dan thread" low-quality langsung dihapus dan tidak sekedar dikunci.
sr. member
Activity: 435
Merit: 400
Thread seperti ini yang kita butuhkan,bisa menambah ilmu kepada member-member pemula.
Karena dalam permasalahan wallet adalah bagian dasar untuk kita gabung ke dunia cryptocurrency.
Kalau bagian dasarnya saja kita tidak paham bagaimana mungkin kita melanjutkan pembelajaran ke fase-fase berikutnya setelah wallet.
Dengan metode ini apabila kita lupa menyimpan private key,bisakah digunakan?

Threadnya keren banget, walaupun telat tahu keberadaan thread ini, tapi sangat membantu untuk mempelajari topik-topik lainnya. Trims untuk om mu_enrico dan master-master lain yang sudah berkontribusi di thread ini.



<...>
Biner, heksadesimal, dan desimal itu adalah sistem bilangan yang memiliki basis n-angka yang berbeda. Biner (basis-2), desimal (basis-10), dan heksadesimal (basis-16). Jadi bisa diibaratkan kalau main petak umpet, desimal akan menghitung dari 0-9, biner 0-1, dan heksadesimal dari 0-F. Ketiga sistem bilangan itu bisa dikonversi dari sistem bilangan satu ke sistem bilangan yang lain. Manusia menggunakan sistem bilangan desimal karena sudah familiar dan nyaman.

Komputer dan perangkat elektronik sendiri menggunakan biner karena dengan mudah bisa merepresentasikan 0 dan 1. Misalnya 0 = 0 VDC dan 1 = 5 VDC. Namun penggunaan biner sedikit menyulitkan programer karena biner tidak human-friendly. Misalnya 0011101010111010, yang rentan salah tulis dan tidak enak untuk dibaca. Oleh karena itu, bilangan heksadesimal digunakan untuk merepresentasikan bilangan biner sehingga lebih human-friendly1. Satu angka heksadesimal sendiri dapat merepresentasikan empat bit bilangan biner2, sehingga untuk mengubah dari biner ke heksa secara manual, biasanya diberi spasi per empat bit3. 0011 1010 1011 1010 = 3ABA. (lihat tabel konversi https://ascii.cl/conversion.htm)
<...>

Terima kasih atas penjelasan no 1,2&3. Materi dasar banget tapi bertahun-tahun saya tidak pernah mengerti jawabannya. maklum belajar programming hanya otodidak, tidak pernah ikut kelas Computer Science.
Kenapa biner digunakan dan bagaimana hubungannya dengan desimal dan bit atau byte sudah saya ketahui sejak lama. Tetapi untuk heksadesimal (disebut juga heksa atau hex) selalu menjadi misteri, kenapa digunakan dan bagaimana hubungannya dengan biner,bit atau byte. Selama ini pengetahuan saya hanya sebatas cara konversi heksadesimal ke sistem lain, padahal heksadesimal sangat umum digunakan di literatur programming. Setelah membaca penjelasan di atas, rasanya seperti langsung ada yang meletus.

Saya coba bagikan sedikit pemahaman  yang didapat dari penjelasan om mu_enrico yang menurut saya sangat penting untuk bisa lebih memahami dunia programing. mudah-mudahan juga bermanfaat buat yang lain.

Desimal
adalah sistem bilangan yang sangat umum kita kenal yaitu angka 0-9 selanjutnya disebut basis 10. Karena terdiri dari 10 angka, silahkan dihitung sendiri agar lebih meyakinkan.. saya pikir sistem ini tidak perlu dijelaskan lagi.

Biner
Adalah sistem bilangan yang terdiri dari angka 0 dan 1, disebut basis 2. sistem ini digunakan oleh komputer dan peralatan lainnya. karena komputer menggunakan listrik yang kondisinya hanya 2 yaitu nyala atau mati. mati direpresentasikan sebagai 0 dan nyala direpresentasikan sebagai 1. Setiap angka di sistem bilangan biner adalah 1 bit dimana 8 bit =1 byte.
Misalnya ada angka biner 11 atau 00 artinya 2 bit. Karena biner adalah bilangan basis 2, artinya 2 bit bisa terdiri dari 2^2=4 kemungkinan. yaitu 00,01,10 dan 11.  Begitu juga untuk 4 bit menjadi 2^4. Atau  1 byte ( 8bit) maka menjadi 2^8.  
Cara menghitung biner dimulai dari 0 kemudian 1, selanjutnya kembali ke 0 tetapi menaikkan angka disebelah kiri menjadi 1. Misalnya :
      0
      1
    10
    11
  100
 .. dan seterusnya.
Bagi saya untuk memahami biner dengan bit atau byte relatif mudah.
 
Heksadesimal
Seperti yang sudah dijelaskan om mu_enrico, adalah sistem bilangan dari 0-F.

Yang menjadi pertanyaan saya selama ini adalah
1. Kenapa sih sistem bilangan heksa sering digunakan dalam programming, kok bukan biner?
2. Kenapa juga biner seringkali ditulis diberi spasi per empat bit?
3. Bagaimana hubungan heksa dengan biner dan bit serta byte?
   Karena sering kali dalam programming istilah bit dan byte digunakan lalu diberikan keterangan dalam heksa bukan biner.
   Biasanya jika membaca topik semacam ini selalu saya lewatkan, karena tidak bisa menemukan benang merahnya. Yang dikerjakan sekedar code bisa jalan, dengan mengandalkan converter. Tanpa memahami essensinya.
  
Pencerahan yang didapat..
No 1 sudah terjawab di atas, yaitu penggunaan heksa untuk memudahkan atau lebih user-friendly.
No 2 juga sudah terjawab di atas, yaitu Satu angka heksadesimal sendiri dapat merepresentasikan empat bit bilangan biner

No 3 adalah masalah sangat penting bagi programmer, jika tidak menguasai hal ini maka akan kesulitan untuk memahami teknik programming tingkat lanjut.
Kalimat ini yang membuat saya serasa meletus "Satu angka heksadesimal sendiri dapat merepresentasikan empat bit bilangan biner". Ternyata jawabannya sangat sederhana yaitu karena heksadesimal adalah basis 16, maka jika dikonversi ke biner maka menjadi 4 bit, didapat dari 2^4 =16. Cara penulisan 4 bit misalnya 0000 atau 1000 atau 1010. Sehingga seringkali dituliskan dengan memberi spasi 4 bit.

Dengan pencerahan ini saya menjadi lebih bisa menikmati bacaan selanjutnya, sekali lagi terima kasih.
CMIIW



<...>
Pelajaran
1. Peserta memahami apa itu bruteforce dan mengetahui betapa sulitnya membobol keamanan privkey bitcoin.
Privkey bitcoin terdiri dari 32 byte (64 digit hex)1 yang memiliki kombinasi 2256 atau 1077 yang mustahil untuk dipecahkan menggunakan teknologi saat ini. Dalam tantangan ini ane mempermudah hal ini dengan memberikan privkey minus satu atau dua digit terakhir sehingga bruteforce hanya cukup mencoba:
> 1-digit hex: 16 kombinasi (0-F)
> 2-digit hex: 256 kombinasi (00-FF)2
<....>

Sebagai contoh pengertian tentang heksa dengan biner,bit dan byte sangat membantu pemahaman adalah ketika membaca tulisan seperti di atas. Sebelum saya memahami hubungan Heksa dengan biner, bit dan byte maka sulit untuk membayangkan pengertian tulisan 1 dan 2 di atas. Biasanya ketika membaca tulisan semacam ini langsung dilewatkan saja, tanpa mengerti essensinya. Tetapi setelah mengerti hubungan heksadesimal dengan binari,bit dan byte, maka secara otomatis langsung terbayang hal sbb:
1. 32 byte (64 digit hex)
    penjelasannya adalah :
   - 4 bit = 1 heksa.
   - 8 bit = 2 heksa = 1 byte
   - Jadi 32 byte = 32 x 2 heksa = 64 heksa.
  
2. 2-digit hex: 256 kombinasi (00-FF)
   - Heksa adalah basis 16
   - Jadi 2 heksa = 16^2 = 256
   - Bukankah 2^8 = 256 juga?

3. Begitu juga jika ada yang menulis 2 heksa misalnya FF atau 00, langsung bisa dipahami sebagai 1 byte.
    Dimana 1 heksa = 4 bit, maka 2 heksa = 8 bit. Bukankah 8 bit = 1 byte?
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
Pembahasan Challenge Bruteforce Sederhana dan Sign Message

Soal
1. Privkey: 1ADCEBAFB9755BDE06607EA21D1531540737B70A04AAC7530278694179BE320X | Address: 1JYnXCYM2ueGcYTbrtqVjBUGQ9rd42wEH3
2. Privkey: 73B582C6D01C32B76F0917CB747C583D6E5EDE636DC3AE3A6B11002810D75B6X | Address: bc1qgz7xpt8w9d68eyd2d56tcrz5sxcjlxs6lg74wv
3. Privkey: 08CEF9BDAB6749CC14726CB00F0723461525A51816B8D541106A7B536BAC201X | Address: 14EdJpaB2dZDQZMzuPs16bPU2GcYSYuLym
4. Privkey: 22E4D397814D63E63E58469A252D096C3F0F8F323C92FF6B3A40517941860A3X | Address: bc1q0wcqv6x49s52v6p955msrpfs4sjr76nwg3v677
5. Privkey: 72B483C7D11D33B66E0816CA757D593C6F5FDF626CC2AF3B6A10012911D65AXX | Address: 1874A2YjWcVEfQVFvoQuM9RdVCSnHKhHw1
6. Privkey: 74B285C1D71B35B0680E10CC737B5F3A6959D9646AC4A93D6C16072F17D05CXX | Address: bc1qv3358pldmd2mg5k0sgvfsya9le8rcaxv0fsp3k


Jawaban
1. Privkey: 1ADCEBAFB9755BDE06607EA21D1531540737B70A04AAC7530278694179BE320D | Address: 1JYnXCYM2ueGcYTbrtqVjBUGQ9rd42wEH3
2. Privkey: 73B582C6D01C32B76F0917CB747C583D6E5EDE636DC3AE3A6B11002810D75B66 | Address: bc1qgz7xpt8w9d68eyd2d56tcrz5sxcjlxs6lg74wv
3. Privkey: 08CEF9BDAB6749CC14726CB00F0723461525A51816B8D541106A7B536BAC201F | Address: 14EdJpaB2dZDQZMzuPs16bPU2GcYSYuLym
4. Privkey: 22E4D397814D63E63E58469A252D096C3F0F8F323C92FF6B3A40517941860A35 | Address: bc1q0wcqv6x49s52v6p955msrpfs4sjr76nwg3v677
5. Privkey: 72B483C7D11D33B66E0816CA757D593C6F5FDF626CC2AF3B6A10012911D65A65 | Address: 1874A2YjWcVEfQVFvoQuM9RdVCSnHKhHw1
6. Privkey: 74B285C1D71B35B0680E10CC737B5F3A6959D9646AC4A93D6C16072F17D05C63 | Address: bc1qv3358pldmd2mg5k0sgvfsya9le8rcaxv0fsp3k


Langkah Menyelesaikan Challenge
Pada dasarnya memecahkan persoalan ini banyak sekali variasinya, bisa menggunakan script sendiri sehingga otomatis, ataupun manual yang membutuhkan kegigihan dan kesabaran. Ane tidak memusingkan peserta mau menggunakan cara yang mana asalkan pesan yang valid bisa ane terima. Hal ini diilhami dari transaksi bitcoin yang tidak mengenal adanya transaksi jahat atau transaksi baik, semua transaksi asalkan valid akan dicatat ke dalam blockchain.

Silahkan pada para pemenang challenge untuk memberi tahu bagaimana cara kalian memecahkan persoalan ini Grin Kalau ane:

P2PKH (misalnya 1ADCEBAFB9755BDE06607EA21D1531540737B70A04AAC7530278694179BE320X)

1. Gunakan situs https://walletgenerator.net/ (diubah karena ada celah keamanan) https://www.bitaddress.org/ -> wallet details untuk melakukan bruteforce sesuai dengan digit yang belum diketahui. Ganti X dengan mengurutkan 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
2. Perhatikan alamat compressed yang dihasilkan, cocokkan dengan yang agan cari yaitu 1JYnXCYM2ueGcYTbrtqVjBUGQ9rd42wEH3, lalu ulangi sampai sama.
3. Ternyata alamat compressed 1JYnXCYM2ueGcYTbrtqVjBUGQ9rd42wEH3 dihasilkan dari privkey 1ADCEBAFB9755BDE06607EA21D1531540737B70A04AAC7530278694179BE320D, catat WIF compressed-nya Kx7vqNCYJ6aWvyxkg51yC5L44UMgG24DtAYUxdU5vAJU9npioY4C.


4. Buka http://brainwalletx.github.io/#sign masukkan WIF dan pesan yang ingin agan tandatangani.


5. Click "Sign Message"
6. Selesai Grin


Bech32-P2WPKH (misal 73B582C6D01C32B76F0917CB747C583D6E5EDE636DC3AE3A6B11002810D75B6X)

Bech32-P2WPKH agak tricky karena tidak bisa hanya menggunakan kedua situs di atas saja. Sign dan verify pada alamat Bech32 harus menggunakan dompet yang sama karena belum ada standarnya. Sehingga mau tidak mau kita harus menggunakan electrum agar tantangan ini bisa lancar. Kalau ane lebih menyukai menggunakan script pemrograman untuk menyelesaikan hal ini. Kalau tanpa script, begini caranya:
1. Gunakan situs https://walletgenerator.net/ (diubah karena ada celah keamanan) https://www.bitaddress.org/ -> wallet details untuk melakukan bruteforce sesuai dengan digit yang belum diketahui. Ganti X dengan mengurutkan 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
2. Catat semua WIF compressed-nya dan tambahkan "p2wpkh:" di depan WIF tersebut, misal:
p2wpkh:L16djPwm7s69D9hEpJQ4XgbeFcxPLwg3fGCwH42yXowfM5u1JSy8
p2wpkh:L16djPwm7s69D9hEpJQ4XgbeFcxPLwg3fGCwH42yXowfMaigrLMT
p2wpkh:L16djPwm7s69D9hEpJQ4XgbeFcxPLwg3fGCwH42yXowfQ57feEuj
...dst...
3. Buka aplikasi electrum lalu buat alamat baru, "import private keys."



4. Masukkan semua WIF-compressed yang sudah dihasilkan berikut string "p2wpkh:"


5. Tidak perlu diberi password pada tantangan ini, langsung saja lihat alamat bc1qgz7xpt8w9d68eyd2d56tcrz5sxcjlxs6lg74wv yang dicari dari daftar alamat-alamat yang berhasil diimport.



6. Klik kanan, "sign/verify message", lalu masukkan pesan yang diinginkan. Selesaikan dengan klik "sign."



Pelajaran
1. Peserta memahami apa itu bruteforce dan mengetahui betapa sulitnya membobol keamanan privkey bitcoin.
Privkey bitcoin terdiri dari 32 byte (64 digit hex) yang memiliki kombinasi 2256 atau 1077 yang mustahil untuk dipecahkan menggunakan teknologi saat ini. Dalam tantangan ini ane mempermudah hal ini dengan memberikan privkey minus satu atau dua digit terakhir sehingga bruteforce hanya cukup mencoba:
> 1-digit hex: 16 kombinasi (0-F)
> 2-digit hex: 256 kombinasi (00-FF)
2. Peserta memahami bahwa untuk melakukan sign message hanya bisa dilakukan oleh peserta yang memiliki akses terhadap privkey yang menghasilkan alamat bitcoin tersebut. Hasilnya bisa diverifikasi sehingga pesan/jawaban yang tidak valid --entah itu disengaja atau tidak-- akan sangat mudah diketahui.
3. Peserta memahami perbedaan alamat bitcoin P2PKH dan P2WPKH, meskipun dihasilkan dari privkey yang sama.
4. Peserta dapat melakukan import private key dan melakukan sign message menggunakan dompet electrum.

Kepada para pembaca terutama para pemenang, ane harap agan dapat mengajarkan cara menggunakan dompet bitcoin kepada teman/saudara/bapak/ibu agan semuanya. Ajarkan bahwa privkey tersebut sangat penting karena orang yang menguasai privkey merupakan "pemilik" dari alamat bitcoin tersebut, tidak peduli apakah diperoleh dengan cara yang halal atau haram.

Dan yang terakhir, alamat Bech32-P2WPKH meskipun belum terlalu familiar, akan tetapi ada baiknya mulai menggunakan alamat tersebut karena biaya transaksi bisa lebih murah dari alamat P2PKH legacy.


Maaf double post, silahkan di delete aja. keasikan ngetik lupa kalau sebelumnya sudah post di thread ini.

Deleted, thanks gan atas apresiasinya  Kiss
Kalau topik yang newbie-newbie ane masih sanggup lah untuk menjelaskan. Kalau yang sulit-sulit ane sudah tidak mampu.
full member
Activity: 504
Merit: 100
Waktu itu ane sudah meluncur ke situ gan, untuk windows sendiri ane gagal instal 2x. Ane instal pertama yang windows installer gagal, kemudian standalon execuntable juga gagal. Mungkin penjelasannya bisa melalui pm gan, ini tele ane @hitorisam. Jika berkenan, terimakasih banyak sebelumnya.

Agan mu_enrico belum bisa membantu menjelaskan karena agan tidak menunjukkan permasalahannya dengan screenshot. Kalau dari ane yang agan alami itu karena windows pc/laptop agan tidak support sehingga penginstallan dompet electrum gagal. Coba ganti versi windows agan yang lebih baru lagi.
member
Activity: 420
Merit: 11
Electrum adalah dompet bitcoin, ada versi PC dan smartphone. Cek di https://electrum.org/#download

Waktu itu ane sudah meluncur ke situ gan, untuk windows sendiri ane gagal instal 2x. Ane instal pertama yang windows installer gagal, kemudian standalon execuntable juga gagal. Mungkin penjelasannya bisa melalui pm gan, ini tele ane @hitorisam. Jika berkenan, terimakasih banyak sebelumnya.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
Electrum adalah dompet bitcoin, ada versi PC dan smartphone. Cek di https://electrum.org/#download

Gagalnya gimana gan?
Ane juga bukan developer electrum gan, jadi kurang bisa membantu.. mungkin bisa troubleshoot dulu gan via google search.
member
Activity: 420
Merit: 11
Berkaitan dengan Bech32 - P2WPKH, beberapa waktu lalu ane sempat mencoba challenge agan "Bruteforce Sederhana dan Sign Message". Untuk yang pertama ane tanyakan adalah tentang dompet electrum, apakah itu sebuah aplikasi yang harus didonwload & dipasang di pc/laptop ataukah bisa dibuka di suatu browser gan?
Mohon maaf gan, basic ane bukan seorang IT tapi apa salahnya ane mencoba & belajar. Jika post ane termasuk shitpost, silakan dihapus & jangan lupa dijawab juga pertanyaan ane. Hehe, thanks..
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
<...>
<...>
Maaf post agan ane hapus karena tidak menambah informasi baru.


<...>
Wah.. bagus juga nih gan, keluarin modal sedikit demi keamanan private key kita kenapa tidak, yang penting private key yang kita punya aman dulu, lagian satu huruf nya membuat seperti itu cuma 10 ribu, terimakasih atas atas saran nya gan.
Sebetulnya ane sudah gatal memencet tombol delete, tapi ada hal yang ingin ane sampaikan terkait statement di atas. Agan sebaiknya hati-hati kalau mau memesan ukiran/cetak kartu seperti model di atas karena itu bisa dilihat si pengrajin dan mungkin akan didisplay terlebih dahulu sebelum diberikan ke agan. Kalau mau memesan ya sebaiknya diacak dulu karakternya (seperti pada gambar pertama). Sedangkan untuk gambar kedua itu sudah tidak aman, jangan dilakukan kecuali agan buat sendiri.
jr. member
Activity: 118
Merit: 2
Benar gan privetkey sangat bagus di tulis ke selembar kertas jd menjaga aset atau dokumen di butuhkan catatan penting ke tempat yg aman dari dunia digital supaya tidak terjadi keraguan...demikian gan.
sebaiknya private ke disarankan untuk ditulis diatas lempengan logam (biasanya ditukang cincin bisa bikin tulisan diatas logam) itu lebih aman, karena kalo ditulis di kertas ada resiko tulisan hilang karena luntur, kena air ato yang paling parah terbakar.
contohnya kaya gini



Wah.. bagus juga nih gan, keluarin modal sedikit demi keamanan private key kita kenapa tidak, yang penting private key yang kita punya aman dulu, lagian satu huruf nya membuat seperti itu cuma 10 ribu, terimakasih atas atas saran nya gan.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
Ya bisa dikatakan begitu. Ane sih tidak begitu suka ya dengan ibarat-ibarat... Kebetulan post history agan lumayan, tidak banyak shitposting. Coba ikut challenge ini https://bitcointalksearch.org/topic/m.45366624


Gan private key itu semacam apa sih Kalo boleh tau,
Ane belum sampe ke situ.
Cari di sini: https://www.google.com/search?q=apa+itu+private+key+bitcoin
Komeng agan ane hapus soalnya post history agan isinya shitpost (sampah).
newbie
Activity: 26
Merit: 1
kalo saya ibaratkan biar saya mudah nangkapnya gan, public key itu semacam alamat rumahnya, sedangkan privat key itu semacam kuncu pintu rumahnya. alamat rumah boleh diketahui oleh banyak orang, tetapi kalo kunci rumahnya yang tau ya cuma pemilik rumah. begitukah gan,?
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
== END ==
BIP-141/173: Segregated Witness (SegWit)

BIP-141 menjelaskan lapisan konsensus SegWit
BIP-173 menjelaskan format alamat Bech32

Prolog
Artikel ini merupakan artikel terakhir ane yang membahas alamat-alamat bitcoin. Sampai episode ini, mari kita renungkan kembali apa-apa saja yang sudah dibahas:

1. Format alamat
Pay to Public Key Hash (P2PKH) >> https://bitcointalksearch.org/topic/m.39933979
Pay to Script Hash (P2SH) >> https://bitcointalksearch.org/topic/m.42730207 (bonus sebenarnya tidak ingin ane bahas karena script & multisig sudah tidak sesuai dengan kata "untuk pemula" pada judul thread ini)

2. Mekanisme pembuatan privkey-pubkey
Random (nondeterministik) >> https://bitcointalksearch.org/topic/m.39933979
Deterministik >> https://bitcointalksearch.org/topic/m.41403564 & https://bitcointalksearch.org/topic/m.43552511

Pada artikel terakhir ini kita akan membahas update terbaru (sebenarnya sudah diimplementasikan tahun lalu), yaitu Segregated Witness (SegWit).

Latar Belakang SegWit
Bitcoin memiliki kapasitas blok hanya 1MB yang seringkali penuh pada pertengahan 2017. Terdapat dua cara untuk memperbaiki blok yang penuh ini, yaitu dengan (1) menambah kapasitas blok atau (2) membuat transaksi di dalam blok lebih efisien. Singkat cerita Bitcoin Cash (BCH) memilih menggunakan opsi 1 dan Bitcoin (BTC) memilih opsi 2.

Data transaksi di dalam blok berupa input, signature, dan output. Signature ini ternyata mengambil ruang data yang paling besar di antara data-data lainnya. Sehingga signature kemudian dipisahkan dari blok utama dan ditempatkan pada blok "tambahan." Akibatnya blok utama yang sebesar 1MB tersebut dapat menyimpan transaksi yang jauh lebih besar dari sebelumnya.

Seperti biasa artikel ini berfokus pada pembuatan alamat-alamat tersebut (bukan teorinya karena banyak di internet).

Format Alamat SegWit Pay to Witness Public Key Hash (P2WPKH): P2SH-P2WPKH, Bech32-P2WPKH
Alamat Segwit bitcoin selalu diawali dengan string "3" atau "bc1" yang menandakan format yang digunakan apakah P2SH ataukah Bech32. Bech32 sendiri hanyalah format yang mempermudah agar alamat bitcoin dapat dibaca dan ditulis oleh manusia.

Perhatikan alamat ini:
P2SH-P2WPKH: 3Aj3og72RnL8MMRwKFDKJNdrnZ4SPgYQD7
Bech32-P2WPKH: bc1qy76cjxcpmgkmwnx7z6y6j732e03r6ha3wqfasl
Kedua alamat di atas memiliki private key yang sama, hanya beda di encodingnya saja, menurut ane yang lebih enak dibaca memang yang Bech32 karena tidak ada huruf kapital.

#1 P2SH-P2WPKH
Alamat ini adalah alamat SegWit P2WPKH yang "dibungkus" dalam format P2SH. Alamat ini memakai public key hash yang mirip dengan penjelasan P2PKH yang digabungkan dengan P2SH (link pada prolog). Menggunakan pubkey yang dikompres pada pembahasan sebelumnya yaitu "025C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC" kita dapat membuat alamat SegWit P2SH-P2WPKH dengan cara:

1. HASH-160 (SHA-256 yang diikuti dengan RIPEMD-160) dari pubkey
SHA-256:
Code:
cf7262820b1bdc3e6401e082d0390346afc00ceba0baa37a90133950bc120424
RIPEMD-160:
Code:
27b5891b01da2db74cde1689a97a2acbe23d5fb1

2. Tambahkan kode 0x0014 yang menandakan P2WPKH
Code:
001427b5891b01da2db74cde1689a97a2acbe23d5fb1
Perhatikan bahwa pubkey hash kemudian diperlakukan seperti script hash pada langkah-langkah berikutnya.

3. HASH-160 dari script hash no 2
SHA-256:
Code:
861b2e6d0ab3548edd1334c3af000adf3d681890692de425e1c33b31e443133a
RIPEMD-160:
Code:
631b88dde960d66d7fa7ea2a3c1c084297143ba0

4. Tambahkan versi 0x05 (P2SH)
Code:
05631b88dde960d66d7fa7ea2a3c1c084297143ba0

5. Gunakan SHA-256 dua kali (SHA256D)
Code:
6bbc36c229c3ebbfa10f18dc33a9eb73f09fc479d8022f5d048b317df42bd171

6. Ambil 4 byte sebagai checksum dan tambahkan di akhir hasil nomor 4
Code:
05631b88dde960d66d7fa7ea2a3c1c084297143ba06bbc36c2

7. Ubah ke Base58
Code:
3Aj3og72RnL8MMRwKFDKJNdrnZ4SPgYQD7

#2 Bech32-P2WPKH
Alamat ini adalah alamat Native SegWit P2WPKH yang "dibungkus" dalam format Bech32. Alamat ini memakai public key hash yang mirip dengan penjelasan P2PKH akan tetapi alamat "bc1" ini diencode dengan cara yang berbeda dengan alamat "3". Menggunakan HASH-160 dari pubkey yang dikompres di atas "27b5891b01da2db74cde1689a97a2acbe23d5fb1" kita dapat membuat alamat Native SegWit Bech32 dengan menggunakan berbagai library (ane pakai library PHP). Fungsi dalam library tersebut membutuhkan 3 buah input, yaitu:
- Human-readable part (hrp): string "bc" untuk mainnet dan "tb" untuk testnet.
- Version: versi 0 untuk P2WPKH
- Data: adalah script hash atau pubkey hash

Code:
use function BitWasp\Bech32\encodeSegwit;

$hrp "bc";
$version 0;
$data pack("H*" "27b5891b01da2db74cde1689a97a2acbe23d5fb1");

$result encodeSegwit($hrp$version$data); 
echo 
$result;
?>

Hasilnya:
Code:
bc1qy76cjxcpmgkmwnx7z6y6j732e03r6ha3wqfasl


Bonus:
Terkait P2SH-P2WPKH apakah "001427b5891b01da2db74cde1689a97a2acbe23d5fb1" merupakan script yang valid karena kita tahu bahwa kode tsb adalah pubkey hash yang hanya ditambahkan 0x0014? Mari kita coba dengan perintah decodescript pada bitcoin core.

Code:
decodescript 001427b5891b01da2db74cde1689a97a2acbe23d5fb1

Hasilnya:
Code:
{
"result": {
"asm": "0 27b5891b01da2db74cde1689a97a2acbe23d5fb1",
"reqSigs": 1,
"type": "witness_v0_keyhash",
"addresses": [
"bc1qy76cjxcpmgkmwnx7z6y6j732e03r6ha3wqfasl"
],
"p2sh": "3Aj3og72RnL8MMRwKFDKJNdrnZ4SPgYQD7"
},
"error": null,
"id": null
}

Yak, ternyata valid dan semua alamat juga valid Smiley

Referensi:
https://en.bitcoin.it/wiki/Segregated_Witness
https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki
https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki

Library:
https://github.com/Bit-Wasp/bech32

Penutup
Ane kira edukasi untuk newbie cukup sampai di sini. Kalau lebih dari ini ane juga tidak mampu Grin
Thread ini tetap ane buka kalau-kalau ada newbie yang bertanya, entah bulan depan atau tahun depan atau 10 tahun ke depan. Ane yakin akan ada pertanyaan dari newbie yang stuck dan kepentok nyasar ke thread ini. Sekian dan terima kasih.
member
Activity: 135
Merit: 41
Latar Belakang:

Agan pastinya sering menggunakan alamat bitcoin untuk melakukan transaksi, nah thread ini bertujuan untuk menjelaskan bagaimana mekanisme dompet-dompet bitcoin dalam menghasilkan alamat tersebut dari awal. Agan bahkan dapat membuat private key sendiri dari sebuah uang logam! (+pensil dan kertas)

Peringatan:
  • Ane bukan bitcoin expert, thread ini dibuat sebagai salah satu cara ane untuk terpaksa mau belajar.
  • Cara ini hanya untuk pembelajaran saja. Jangan gunakan situs-situs "bitcoin tools" untuk merubah kode-kode apabila memang hendak menggunakan alamat-alamat tersebut untuk transaksi sungguhan.
  • Jangan gunakan alamat dan private key yang tercantum pada halaman ini untuk kirim/terima bitcoin!

Peraturan:
Karena thread ini adalah thread self-mod maka saya hanya akan menampilkan komentar/pertanyaan/saran/kritik yang bermakna. Thanks!
Arsip postingan yang ane hapus (mulai 19-7-2018) https://pastebin.com/6t7E0fGv


#1 Private Key

Untuk dapat membuka loker tempat penyimpanan bitcoin, agan harus memiliki informasi letak loker tersebut. Informasi inilah yang disebut dengan private key. Bitcoin memiliki 2256 loker yang dapat digunakan untuk menyimpan bitcoin agan. Angka ini apabila didesimalkan akan menjadi sekitar 1077. Sebagai perbandingan, jumlah pasir di bumi ini diperkirakan sekitar 7.5 x 1018, sangat jauh lebih kecil dari jumlah alamat bitcoin yang bisa agan gunakan.

Agan dapat membuat private key dengan melakukan pelemparan uang logam sebanyak 256 kali, tulis 1 apabila muncul angka dan 0 apabila muncul gambar, misalnya:

Code:
Biner: 0011 1010 1011 1010 0100 0001 0110 0010 1100 0111 0010 0101 0001 1100 1000 1001 0001 0010 0000 0111 1011 0111 0100 0111 1000 0100 0000 0101 0101 0001 1010 0111 0001 1001 0011 1001 1011 0000 1101 1110 0000 1000 0001 1111 1000 0101 1100 0100 1110 0100 0100 1100 1111 0111 1100 0001 0011 1110 0100 0001 1101 1010 1010 0110

Lalu ubah dari format biner ke heksadesimal (gunakan kalkulator) atau menggunakan situs https://www.rapidtables.com/convert/number/binary-to-hex.html

Code:
Heksadesimal: 3ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6

Kedua angka di atas merupakan privkey yang jarang ditampilkan ketika agan mengakses aplikasi dompet karena umumnya sudah menggunakan format WIF (Wallet Import Format).


#2 Wallet Import Format (WIF)

WIF adalah sebuah cara untuk membuat privkey lebih mudah diketik/dicopas dari atau ke dalam dompet bitcoin. Cara merubah privkey heksadesimal ke heksadesimal-WIF:

1. Tambahkan 0x80 di depan privkey.
Code:
803ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6

2. Gunakan SHA-256 hash pada privkey yang sudah ditambahkan 0x80. Agan dapat menggunakan binary hash pada situs http://www.fileformat.info/tool/hash.htm
Code:
64899055A09AAB79C7A5CA1080806FAFAFF29C987A53C27FA007F1BB0B996FDF

3. Gunakan SHA-256 hash kembali pada hasil SHA-256 hash di atas. Karena dua kali hash dilakukan, maka bitcoin disebut menggunakan SHA-256D pada inti komputasinya.
Code:
C609B82487C458EAA93FEEA16F8C6A98E0DA39CA683D6F917B6CDE2A7A5EEE18

4. Ambil 4 byte (8 karakter) pada hasil di atas sebagai checksum.
Code:
C609B824

5. Tambahkan checksum di akhir hasil nomor satu.
Code:
803ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6C609B824

6. Ubah menjadi format base58. Agan dapat menggunakan situs http://lenschulwitz.com/base58
Code:
5JG9hT3beGTJuUAmCQEmNaxAuMacCTfXuw1R3FCXig23RQHMr4K

Hasil ini sudah bisa diimport ke aplikasi dompet bitcoin.


#3 Public Key

Privkey dan Pubkey adalah pasangan kunci yang merupakan pondasi dari keamanan komputer. Pubkey diturunkan dari Privkey. Pubkey digunakan untuk menerima bitcoin (diibaratkan seperti kotak surat) dan privkey digunakan untuk menandai kepemilikan dan isi di dalam kotak surat tersebut (diibaratkan seperti kunci kotak surat).

Untuk menurunkan pubkey dari privkey, bitcoin menggunakan kurva eliptik dan konstanta-konstanta matematis dengan standar secp256k1. Sayangnya ane belum menemukan online tools yang berguna hanya untuk menurunkan privkey menggunakan secp256k1. Setelah ane "hitung," berikut ini adalah pubkey-nya:
Code:
045C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC243BCEFDD4347074D44BD7356D6A53C495737DD96295E2A9374BF5F02EBFC176


#4 Bitcoin (Public) Address

Sebelumnya disebutkan bahwa pubkey digunakan untuk menerima bitcoin (diibaratkan seperti kotak surat), maka alamat bitcoin merupakan hasil "turunan" dari pubkey. Cara merubah pubkey ke alamat bitcoin:

1. Gunakan SHA-256 pada pubkey.
Code:
38FDDB9986CFF3B5CDC46FAD15F540091A22CA649750B55CB1A2094930BCC687

2. Gunakan RIPEMD-160 pada hasil SHA-256.
Code:
09C6E71118D8F12BEC6B5C61884B35677C0A0AE3

3. Tambahkan versi di depan hasil RIPEMD-160 (0x00 untuk mainnet)
Code:
0009C6E71118D8F12BEC6B5C61884B35677C0A0AE3

4. Gunakan SHA-256 kembali pada hasil RIPEMD-160 setelah ditambahkan versi.
Code:
6143CD81DE6C3F3C5C3B301AB6B5AF5377AEBCA14885D3364378E501B5F44E88

5. Gunakan SHA-256 sekali lagi (SHA-256D)
Code:
2A021F87FA371AE2A63DD44112BF3175039E9A96613734309CA87FDA7862A301

6. Ambil 4 byte (8 karakter) pada hasil di atas sebagai checksum.
Code:
2A021F87

7. Tambahkan checksum di akhir hasil nomor tiga.
Code:
0009C6E71118D8F12BEC6B5C61884B35677C0A0AE32A021F87

8. Ubah menjadi format base58.
Code:
1thMirt546nngXqyPEz532S8fLwbozud8


#5 Tambahan

Privkey WIF dan Alamat publik bitcoin hasil di atas merupakan versi tidak dikompres. Kompresi digunakan untuk membuat lebih irit penggunaan ruang hdd pada node-node bitcoin. Sebenarnya kompresi hanya "berlaku" pada alamat publik, bukan privkey karena "kompresi" pada privkey malah menambah panjang privkey sebesar satu byte.

Untuk melakukan "kompresi" privkey cukup menambahkan "01" pada akhir privkey
Code:
803ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6C609B82401

Lakukan langkah yang sama seperti #2 untuk mengubah data di atas menjadi format WIF base58.
Code:
KyBsPXxTuVD82av65KZkrGrWi5qLMah5SdNq6uftawDbgKa2wv6S

Untuk melakukan kompresi pubkey menggunakan format (04 x y) = 02 x (apabila y genap) atau 03 x (apabila y ganjil)
Code:
045C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC243BCEFDD4347074D44BD7356D6A53C495737DD96295E2A9374BF5F02EBFC176
Code:
04
x = 5C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC
y = 243BCEFDD4347074D44BD7356D6A53C495737DD96295E2A9374BF5F02EBFC176
Karena y genap, maka:
Code:
025C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC

Lakukan langkah yang sama seperti #4 untuk mendapatkan alamat publik base58.
Code:
14cxpo3MBCYYWCgF74SWTdcmxipnGUsPw3

Apabila semua perhitungan benar, agan dapat menggunakan https://walletgenerator.net/ untuk mencocokkan semua informasi perhitungan:

apa yang disebutkan semuanya disini, sebenarnya maksudnya adalah proses generate key pair.

di dalam core bitcoin, ketika agan instal pertama bitcoin core, sebenarnya proses yang dilakukan pertama kali adalah generate key pair itu. key pair apa yang dimaksud? key pair itu adalah public dan private key.

yang tidak banyak diketahui adalah, bahwa ketika generate key pair, sebenarnya core juga akan generate hingga 100 key pair turunan yang kemudian di simpan di dalam file "wallet.dat" yang berada di lokasi folder mana instalasi itu ditempatkan.

sedangkan apa yang disebut dengan scriptPubKey, scriptSig, p2SH, multisig, dll, itu adalah bagaimana proses scripting transaksi dapat dilakukan di dalam bitcoin.

mengapa demikian? karena scripting bitcoin itu bisa dilakukan dengan berbagai macam cara itu. makanya jenis transaksi bitcoin itu bermacam macam, tidak hanya transaksi standar. alasannya, di tiap-tiap penyedia wallet, mungkin akan mengambil pendekatan berbeda dalam variasi penulisan scripting transaksi yang bisa dilakukan di wallet masing-masing tersebut.
lebih jauh tentang scripting transaksi itu bisa dibaca disin:
https://www.edukasibitcoin.com/script-bitcoin-dalam-cara-kerja-bitcoin/

atau kalau ingin belajar lagi bagaimana pemprograman bitcoin, penyusunan transaksi bisa dibaca disini:
https://www.edukasibitcoin.com/pemprograman-blockchain/
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
BIP-32/44: Heirarki Deterministik (HD)

BIP-32 menjelaskan cara menurunkan kunci parent -> kunci child
BIP-44 menjelaskan hierarki untuk aplikasi dompet "standar"

Kedua proposal pengembangan ini adalah satu rangkaian standar sehingga umumnya aplikasi yang mendukung BIP-32/44 yang kemudian ditambah dengan BIP-39 (BIP-32/39/44) dapat saling support. Misalnya kunci/backup yang dibuat mycelium dapat direstore menggunakan coinomi, trezor, dll., dan sebaliknya.

Latar belakang diciptakan dompet HD
Sebelum adanya dompet HD, pengguna kesulitan untuk bisa tetap anonim. Pada waktu itu, alamat bitcoin digunakan berulang kali karena setiap alamat membutuhkan satu privkey yang harus disimpan baik-baik oleh pengguna. Pengguna yang mencoba menggunakan alamat baru setiap kali transaksi pun kesulitan dalam mengelola alamat-alamat dan privkey-privkey pada alamat-alamat tersebut. Dengan adanya dompet HD, pengguna hanya perlu membackup master (root) privkey, dan pengguna sudah dapat menggunakan seluruh alamat child yang dihasilkan dari kunci parent tersebut.

Yang dijelaskan pada pembahasan ini
Ane ingin menjelaskan bagian yang jarang dijumpai pada tutorial-tutorial, yaitu bagaimana mekanisme perhitungan dompet HD tersebut untuk dapat menghasilkan privkey dan alamat bitcoin (silahkan dicoba sendiri dan tanyakan ke sini kalau stuck) menggunakan cara se-newbie mungkin!

Dari frasa BIP-39 dapat diturunkan:

Seed:
Code:
035ac5b79ff38a1df6add5dc03ac591cc774469826be79d859e21a4db56104cc77244445e5e31d85b982b6da86c783e39f597d9cd2b7b24c7d95550dd89fa0f7

Account Extended Privkey (m/44'/0'/0'):
Code:
xprv9xgKdgeSz3mxJGWGpTU7qtgD7x8H2ooVYxxawePdt7Dga3V2m28jLqwSawCXa6xAzK1oLioN2FXWD8uik8YnA37t15SyvCkFULYcopnM1ny

#1 Menghitung BIP-39 Seed

Pada pembahasan lalu kita tahu bahwa untuk menurunkan kunci-kunci kita membutuhkan titik awal yang disebut dengan seed. Untuk dapat mendapatkan seed dari frasa mnemonic kita perlu menggunakan Password-Based Key Derivation Function 2 (PBKDF2) yang bertujuan untuk memperkuat seed dari serangan brute force.

Perhatikan snippet berikut:
Code:
$password "symptom display melt eight where universe prison vacuum convince garbage glance fork";
$iterations 2048;
$salt "mnemonic";
$hash hash_pbkdf2("sha512"$password$salt$iterations);
echo 
$hash;
?>


Hasilnya:
Code:
035ac5b79ff38a1df6add5dc03ac591cc774469826be79d859e21a4db56104cc77244445e5e31d85b982b6da86c783e39f597d9cd2b7b24c7d95550dd89fa0f7

Agan dapat menggunakan bahasa pemrograman apapun untuk melakukan komputasi pbkdf2, ane menggunakan php karena kebetulan sering utak-atik wordpress.
Code:
$salt = "mnemonic" . $passphrase;
karena ane tidak memakai passphrase maka $salt hanya berisi string "mnemonic".


#2 Menghitung Root (Master) PrivKey

Root atau master privkey ini merupakan privkey pertama yang akan kita hitung. Privkey dengan kedalaman 0 (m) ini dapat kita turunkan sampai ke kedalaman 5 (m/44'/0'/0'/0/0) atau lebih. Kedalaman inilah yang disebut dengan hierarki. Sebagai contoh pada pembahasan ini kita akan menurunkan sampai kedalaman 3 (m/44'/0'/0') atau yang disebut dengan account extended key.

Hierarki:
Code:
m / purpose' / coin_type' / account' / change / address_index
purpose': 44' atau hex 0x8000002C karena BIP-44
coin_type': 0' atau hex 0x80000000 karena bitcoin
account': 0' atau hex 0x80000000 menandakan sebagai akun pertama
Tanda petik ' merupakan tanda hardened yang berarti angka 0 dimulai dari 0x80000000

Untuk menghitung master privkey, ada 3 tahap yaitu (1) HMAC-SHA512; (2) melengkapi data; (3) serialisasi
(1) HMAC-SHA512
Code:
$hashdata pack("H*" $hash);
$chaindata "Bitcoin seed";
$hash_m hash_hmac("sha512" $hashdata$chaindata);
$hash_m_l substr($hash_m064);
$hash_m_r substr($hash_m6464);
?>
Algoritma HMAC-SHA512 menggunakan input seed dan string "Bitcoin seed" untuk membuat 512 bit output. 512 bit output ini kita bagi dua menjadi 256bit hash kiri dan 256 bit hash kanan. Hash kiri merupakan hex privkey dan hash kanan adalah chain code.

(2) Melengkapi Data
Code:
$data_m = array(
            
'network' => '0488ade4',
            
'depth' => '00',
            
'fingerprint' => '00000000',
            
'i' => '00000000',
            
'chain_code' => $hash_m_r,
            
'key' => '00'.$hash_m_l,
          );
?>
Network "0488ade4" yang merupakan bitcoin private mainnet, depth "00" yang berarti kedalaman level 0 (pertama), dan 'fingerprint' serta 'i' kita kosongkan dahulu.

(3) Serialisasi
Code:
$xprivkey_m implode($data_m);
$checksum_m hash('sha256'pack("H*"hash('sha256'pack("H*"$xprivkey_m))));
$checksum_m substr($checksum_m08);
$xprivkey_m $xprivkey_m $checksum_m;
$base58 = new StephenHill\Base58();
echo 
$base58->encode(pack("H*"$xprivkey_m))."
"
;
?>
Setelah semua data diserialkan, lalu dihash SHA-256 dua kali, selanjutnya checksum 4 byte ditambahkan pada akhir data serial dan diubah ke dalam base58.

Hasilnya (m):
Code:
xprv9s21ZrQH143K25iSTiafu7Nby5AtknABvMMRm2WBAdhY4AW29V7CVs1BHgvF9snNy3oaWz4h5joCk8jcMJo4tjcwa57nq6v6usHwXxRo5QM


#3 Menurunkan Child Key atau Child key derivation (CKD)

Untuk menurunkan child key dari master key caranya hampir sama seperti #2, akan tetapi kita harus menghitung 'fingerprint' dan juga
Code:
parse256(IL) + kpar (mod n)
untuk diisikan pada 'key'.

(1) HMAC-SHA512
Code:
$hashdata pack("H*""00" $hash_m_l "8000002C");
$chaindata pack("H*"$hash_m_r);
$hash_m_44 hash_hmac("sha512" $hashdata$chaindata);
$hash_m_44_l substr($hash_m_44064);
$hash_m_44_r substr($hash_m_446464);
?>
Algoritma HMAC-SHA512 menggunakan input hash kiri, 'i', dan hash kanan parent untuk membuat 512 bit output. 512 bit output ini kita bagi dua menjadi 256bit hash kiri dan 256 bit hash kanan. Hash kiri merupakan data yang akan digunakan untuk perhitungan
Code:
parse256(IL) + kpar (mod n)
dan hash kanan adalah chain code.

(2) Melengkapi data
Code:
$bitcoinECDSA->setPrivateKey($hash_m_l);
$finger_m $bitcoinECDSA->getPubKey();
$finger_m hash('ripemd160'pack("H*"hash('sha256'pack("H*"$finger_m))));
$finger_m substr($finger_m08);

$math EccFactory::getAdapter();
$g EccFactory::getSecgCurves($math)->generator256k1();
$n $g->getOrder();
$Il_dec $math->hexDec($hash_m_44_l);
$private_key_dec $math->hexDec($hash_m_l);
$key_dec $math->mod($math->add($Il_dec$private_key_dec), $n);
$keym44 str_pad(BitcoinLib::hex_encode($key_dec), 64'0'STR_PAD_LEFT);

$data_m_44 = array(
            
'network' => '0488ade4',
            
'depth' => '01',
            
'fingerprint' => $finger_m,
            
'i' => '8000002C',
            
'chain_code' => $hash_m_44_r,
            
'key' => '00'.$keym44,
        );
?>
Pertama kita hitung 'fingerprint' dengan menggunakan HASH-160 dari pubkey parent, ekstrak hanya 4 byte pertama saja. Kemudian kita tidak dapat menggunakan hash kiri saja untuk diinput ke 'key', tapi harus ditambah dengan
Code:
+ kpar (mod n)
'depth' bertambah 01 karena kedalaman level bertambah, 'i' diisi dengan 0x8000002C sebagai penanda 44'

(3) Serialisasi
Code:
$xprivkey_m_44 implode($data_m_44);
$checksum_m_44 hash('sha256'pack("H*"hash('sha256'pack("H*"$xprivkey_m_44))));
$checksum_m_44 substr($checksum_m_4408);
$xprivkey_m_44 $xprivkey_m_44 $checksum_m_44;
$base58 = new StephenHill\Base58();
echo 
$base58->encode(pack("H*"$xprivkey_m_44))."
"
;
?>

Hasilnya (m/44'):
Code:
xprv9ve7i3PwihGn2M2iPMHQqGY9CKx4NdmAe3WtwirJ2bjQUu3yKMztYR6LA9FEC77JE38R6fh8uabGM5d2JxdTJ5bZuuRzKDiLLUxeorP4LMb

Unduh Script PHP ane di https://pastebin.com/TBCexuLF untuk menghitung sampai m/44'/0'/0'
Catatan: semua contoh pada script merupakan hardened key, untuk yang non-hardened metodenya akan sedikit berbeda.
Selamat mencoba!

Referensi:
https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc

Online tools:
https://iancoleman.io/bip39/
http://bip32.org/

PHP library:
https://github.com/stephen-hill/base58php/
https://github.com/BitcoinPHP/BitcoinECDSA.php
https://github.com/phpecc/phpecc
https://github.com/Bit-Wasp/bitcoin-lib-php
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
maaf kalau salah tempat nanya , butuh bantuan ini kira" kenapa ya apakah wallet ini ga bisa di sign atau gimana ? soalnya rencana mau ganti wallet buat sign karena wallet lama aksesnya hilang kalau pakai electrum ga bisa terpaksa pakai wallet lain selain electrum

Hai agan valuater, terkait error:



Agan tidak bisa sign message menggunakan dompet yang 2FA karena merupakan alamat P2SH multisig dan salah satu privkey-nya dimiliki oleh TrustedCoin.
Lebih lanjut https://bitcointalksearch.org/topic/signing-messages-with-multisig-wallet-2826914

Namun agan masih bisa menggunakan alamat legacy P2PKH untuk sign message menggunakan electrum:



Agan juga bisa menggunakan alamat segwit Bech32 untuk sign message menggunakan electrum:



Saran ane sih ganti alamat saja pakai legacy (P2PKH) atau segwit Bech32, tidak perlu ganti aplikasi dompet.



<...>

Setuju, apabila agan punya banyak bitcoin lebih baik diukir pada lempengan agar lebih aman. Namun cara ini sulit dan menyita banyak waktu dan energi.



Terkait kegunaan pubkey, sudah ane jelaskan dalam hal sign-verify message di bawah:

<...>
-Sign-
1. Bambang memiliki privkey: 9901837270847348473017285714031893363411661085679723059096297424686444821124
2. Bambang mengetik pesan "Hello World!" lalu menandatangani dengan privkey di atas, hasilnya message signature: 3045022044625be894c1dbd2208460eb14602b0bb34ca5f53ae4095f120ca1f8e6f51e090221009 7545585324baf40c00b7b2947c4a1fb59f88949036358d83cf782a135e09d86
3. Bambang mempublikasikan pubkey-nya (misalnya pada blog-nya) sehingga semua orang tahu kalau pubkey Bambang adalah 04e1411fe6cf169761dd1371583c620e0b7ec34120a6ffd6fc905a906e6764a2f5fcbdad4d3c60b b6185c832075eae4ae2accdc9de0fbfb66c7e1564ee8954875e
4. Pesan dan message signature dikirimkan ke Susi

-Verify-
1. Susi ingin melakukan verifikasi apakah pesan yang diterima benar-benar valid dari Bambang. Susi kemudian mengambil pubkey Bambang dari Blog Bambang.
2. Menggunakan suatu prosedur -teknikal kriptografi yang tidak cocok dijelaskan di topik ini- Susi menggunakan pesan "Hello World!", message signature, dan pubkey Bambang untuk melakukan verifikasi.
3. Apabila hasilnya valid, maka Susi yakin bahwa pesan "Hello World!" dikirimkan oleh orang yang memiliki akses terhadap pubkey 04e1411fe6cf169761dd1371583c620e0b7ec34120a6ffd6fc905a906e6764a2f5fcbdad4d3c60b b6185c832075eae4ae2accdc9de0fbfb66c7e1564ee8954875e, yang tidak lain adalah Bambang. Dengan demikian Susi dapat yakin pesan tersebut valid dari Bambang tanpa harus mengetahui privkey Bambang 9901837270847348473017285714031893363411661085679723059096297424686444821124

https://anders.com/blockchain/public-private-keys/signatures.html
full member
Activity: 423
Merit: 118
saya baru tau kalau private key itu sangat penting bagi bitcoiners, tetapi saya masih bingung dengan publik key, apa ya fungsi utamanya? apakah sama dengan private key juga?

Kalau setahu saya public key itu biasanya digunakan sebagai penanda bahwa transaksi yg dilakukan dari alamat tertentu. Pada artikel yg saya baca biasanya kalau kita mengirim bitcoin dan sign message biasanya ada public key di dalam message nya . Jadi intinya public key itu sebagai identitas dari pemilik address tersebut. Kalau private key ibarat kunci rumah kalau public key ibarat nomer rumah. Mungkin bisa lebih jelas disini gan https://www.edukasibitcoin.com/public-key-sebagai-identitas/
member
Activity: 322
Merit: 22
Benar gan privetkey sangat bagus di tulis ke selembar kertas jd menjaga aset atau dokumen di butuhkan catatan penting ke tempat yg aman dari dunia digital supaya tidak terjadi keraguan...demikian gan.
sebaiknya private ke disarankan untuk ditulis diatas lempengan logam (biasanya ditukang cincin bisa bikin tulisan diatas logam) itu lebih aman, karena kalo ditulis di kertas ada resiko tulisan hilang karena luntur, kena air ato yang paling parah terbakar.
contohnya kaya gini


full member
Activity: 294
Merit: 107
Menaruh privkey di PC/laptop atau perangkat lain yang terhubung ke internet sangatlah tidak dianjurkan! Cara paling tepat dalam membackup privkey adalah dengan menuliskannya pada selembar kertas, lalu disimpan di tempat yang aman.

ini yang biasa disepelekan sama kebanyakan orang gan. mereka nganggap backup di notepad dan save di folder yg aman udah cukup.
jangankan nyimpen private key di kompter yg terhubung di internet, di komputer offline pun tetap berbahaya, karena sewaktu2 komputer kita bisa saja bermasalah. kalo bermasalah, trs harus sampe install ulang (hdd non partisi) atau hdd nya bad sector, hilang sudah.
ane biasanya kalau bikin wallet baru, private key nya ane tulis tangan dan simpan di tempat dokumen2 penting barengan sama ijazah, dan hal2 penting lainnya. yang penting2 harus ditempatkan seberkas sama yang penting juga. jadi nanti gampang ingat kalo kebetulan dibutuhkan.

Iya saya sepakat seperti agan katakan banyak memang menyepelekan untuk menyimpan private key atau pun data2 yang berhungan dengan aset kita padahal itu sangat penting. Teman saya kemarin jga begitu nyimpannya di note HH, tiba2 HH blank hangus lah semua asetnya ya biarpun sedikit tapi itu mnyakitkan. Kalau saya pribadi untuk mnyimpan data2 itu di email khusus gan.
sr. member
Activity: 1162
Merit: 252

maaf kalau salah tempat nanya , butuh bantuan ini kira" kenapa ya apakah wallet ini ga bisa di sign atau gimana ? soalnya rencana mau ganti wallet buat sign karena wallet lama aksesnya hilang kalau pakai electrum ga bisa terpaksa pakai wallet lain selain electrum
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
http://archive.is/S74Oj#selection-395.1-425.98
Nice info gan. Saya baru tau ternyata kriptografi digunakan juga pada keamanan intelijen. Tapi tiba-tiba ada yang menjadi pertanyaan saya gan. Apakah memang sejak dulu keamanan intel menggunakan teknik kriptografi yang menjadi andalan bitcoin ataukah karena inovasi bitcoin akhirnya intel ikutan menggunakan kriptografi?

SHA-2 dikembangkan oleh National Security Agency (NSA) >> https://en.wikipedia.org/wiki/Secure_Hash_Algorithms

http://archive.is/o9Q5s#selection-635.1-665.198
Quote from: Suryatampan
Wallet emang paling penting dlm dunia crypto yah gan, kalau saya lupa naro private key (kehilangan) terus saya sudah mengikuti bounty2 yg sudah menggunakan erc20 dr private key tersebut gmn yah gan?

Nah dompet agan penting tidak di dunia agan?
Kalo hilang ya sudah hilang, tidak ada "pak polisi atau customer service" di mata uang kripto.

Catatan: komentar ane hapus karena OOT dan terkesan kejar postingan.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
By the way tools yang saya pakai ada di sini gan https://2coin.org/

Situs yang agan tulis mencantumkan alamat Pay to Public Script Hash (P2PSH) yang tidak dapat ane verifikasi validitasnya karena tidak ada sumber mengenai P2PSH kecuali salah singkatan --sebenarnya Pay to Script Hash (P2SH)-- sehingga sepertinya alamat P2PSH yang dihasilkan pada situs tsb tidak valid (CMIIW). Mengenai P2SH yang berupa HASH-160 (SHA-256 lalu RIPEMD-160) dari redeem script, bukan dari pubkey dijelaskan pada jawaban berikut:

Quote
Both P2SH and P2PKH addresses rely on HASH160. The difference is in the script.
Selengkapnya > https://bitcoin.stackexchange.com/questions/73288/differences-between-addresses-with-the-same-20b-hash-hash-160



Bonus
Lalu apa sebenarnya isi dari script tersebut?

Dengan pubkey yang tidak dikompres yang kita gunakan dalam thread ini:
Code:
045C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC243BCEFDD4347074D44BD7356D6A53C495737DD96295E2A9374BF5F02EBFC176

Nah kita akan membuat 1-of-1 multisig menggunakan pubkey tersebut dengan menulis pada console bitcoin core:
Code:
createmultisig 1 "[\"045C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC243BCEFDD4347074D44BD7356D6A53C495737DD96295E2A9374BF5F02EBFC176\"]"

Hasilnya:
Code:
{
  "address": "3CPsfd5fz8L3Z7PjvDDrb7VBmKqwqLEDoj",
  "redeemScript": "5141045c0de3b9c8ab18dd04e3511243ec2952002dbfadc864b9628910169d9b9b00ec243bcefdd4347074d44bd7356d6a53c495737dd96295e2a9374bf5f02ebfc17651ae"
}



Redeem Script
Code:
5141045c0de3b9c8ab18dd04e3511243ec2952002dbfadc864b9628910169d9b9b00ec243bcefdd4347074d44bd7356d6a53c495737dd96295e2a9374bf5f02ebfc17651ae
inilah yang di HASH-160 dst.. #4 dengan versi 0x05 (mainnet) untuk menciptakan alamat
Code:
3CPsfd5fz8L3Z7PjvDDrb7VBmKqwqLEDoj



Mari kita decodekan redeem script tersebut untuk mengintip isinya dengan perintah:
Code:
decodescript 5141045c0de3b9c8ab18dd04e3511243ec2952002dbfadc864b9628910169d9b9b00ec243bcefdd4347074d44bd7356d6a53c495737dd96295e2a9374bf5f02ebfc17651ae

Hasilnya:
Code:
{
  "asm": "1 045c0de3b9c8ab18dd04e3511243ec2952002dbfadc864b9628910169d9b9b00ec243bcefdd4347074d44bd7356d6a53c495737dd96295e2a9374bf5f02ebfc176 1 OP_CHECKMULTISIG",
  "reqSigs": 1,
  "type": "multisig",
  "addresses": [
    "1thMirt546nngXqyPEz532S8fLwbozud8"
  ],
  "p2sh": "3CPsfd5fz8L3Z7PjvDDrb7VBmKqwqLEDoj"
}

Perhatikan alamat bitcoin dan pubkey pada redeem script tersebut sudah valid.
jr. member
Activity: 280
Merit: 1
AFAIK (mohon koreksi apabila salah)
1. Alamat dengan awalan angka 3 dikenal dengan Pay to Script Hash (P2SH), memang ada "turunan" dari alamat tersebut seperti P2SH-P2WPKH (segwit)
https://bitcoincore.org/en/segwit_wallet_dev/

2. P2SH tidak harus multisig, bisa juga 1-of-1 signature tergantung isi redeem scriptnya
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch07.asciidoc

3. Perbedaannya lebih tepat pada komponen yang dihash, kalau pada P2PKH yang dihash adalah public key, pada P2SH yang dihash adalah script.
4. Agan tidak dapat membuat alamat P2SH yang valid dengan menggunakan public key hash menggunakan contoh yang ane lakukan pada langkah 1 (bold). Untuk membuat P2SH yang valid maka yang dihash adalah script.
https://bitcoin.org/en/developer-guide#p2sh-scripts
IMO penjelasan di atas lebih tepat untuk multisig.
Dengan mengimpor compressed WIF private key kita dapat memeriksa benar atau salah alamat yang dihasilkan.
Hasilnya: 3Aj3og72RnL8MMRwKFDKJNdrnZ4SPgYQD7
https://segwitaddress.org/

Terima kasih agan mu_enrico atas koreksinya dan sangat memberikan pemahaman yang luar biasa khususnya bagi saya dalam memahami wallet address ini..
By the way tools yang saya pakai ada di sini gan https://2coin.org/
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
AFAIK (mohon koreksi apabila salah)

<...>
kita juga bisa membuat wallet address dengan angka 3 atau lebih dikenal dengan sitilah P2PSH (Pay to Public Script Hash) -1 atau juga MultiSign Address. -2
Perbadaannya hanya pada penggunaan versi desimal yang memakai versi 5 (0x05) pada RIPEMD-160 pada hasil SHA-256. -3
<...>

1. Alamat dengan awalan angka 3 dikenal dengan Pay to Script Hash (P2SH), memang ada "turunan" dari alamat tersebut seperti P2SH-P2WPKH (segwit)
https://bitcoincore.org/en/segwit_wallet_dev/

2. P2SH tidak harus multisig, bisa juga 1-of-1 signature tergantung isi redeem scriptnya
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch07.asciidoc

3. Perbedaannya lebih tepat pada komponen yang dihash, kalau pada P2PKH yang dihash adalah public key, pada P2SH yang dihash adalah script.



<...>
#4 Bitcoin (Public) Address

Sebelumnya disebutkan bahwa pubkey digunakan untuk menerima bitcoin (diibaratkan seperti kotak surat), maka alamat bitcoin merupakan hasil "turunan" dari pubkey. Cara merubah pubkey ke alamat bitcoin:

1. Gunakan SHA-256 pada pubkey.
Code:
38FDDB9986CFF3B5CDC46FAD15F540091A22CA649750B55CB1A2094930BCC687

2. Gunakan RIPEMD-160 pada hasil SHA-256.
Code:
09C6E71118D8F12BEC6B5C61884B35677C0A0AE3
<...>

 dan selanjutnya..

3. Tambahkan versi desimal 5 di depan hasil RIPEMD-160 (0x05 mainnet)
0509C6E71118D8F12BEC6B5C61884B35677C0A0AE3

<...>

8. Ubah menjadi format base58.
32aiHGMKcxRAsrEH6UuaVfPNHBdfCfWYRM
-4

4. Agan tidak dapat membuat alamat P2SH yang valid dengan menggunakan public key hash menggunakan contoh yang ane lakukan pada langkah 1 (bold). Untuk membuat P2SH yang valid maka yang dihash adalah script.
https://bitcoin.org/en/developer-guide#p2sh-scripts



Akan tetapi untuk penggunaan wallet address P2PSH untuk transaksi peer to peer (P2P)-multisig sedikit rumit karena si penerima memerlukan signature beberapa orang untuk menerima bitcoin, atau kata sandi yang acak, atau persyaratan unik yang harus dimiliki.
Dalam pengertian sederhananya apabila Andi dan Bambang mengirim pesan ke Susi, Maka Susi harus memiliki tanda tangan atau Signature dari Andi dan Bambang,apabila hanya satu signature maka terjadi false, dan Susi pun tidak menerima pesan.
<...>

IMO penjelasan di atas lebih tepat untuk multisig.



<...>
Kira-kira seperti itu ya..
Mohon dikoreksi apabila saya salah dalam perhitungannya....

Dengan mengimpor compressed WIF private key kita dapat memeriksa benar atau salah alamat yang dihasilkan.
Hasilnya: 3Aj3og72RnL8MMRwKFDKJNdrnZ4SPgYQD7
https://segwitaddress.org/

jr. member
Activity: 280
Merit: 1
mohon ijin menambahkan sedikit untuk pembelajaran...
Selain mendapatkan wallet address dengan angka 1 pada kepala wallet address, kita juga bisa membuat wallet address dengan angka 3 atau lebih dikenal dengan sitilah P2PSH (Pay to Public Script Hash) atau juga MultiSign Address.
Perbadaannya hanya pada penggunaan versi desimal yang memakai versi 5 (0x05) pada RIPEMD-160 pada hasil SHA-256.
cara perhitungannya pun sama juga, Berikut ini:

<...>
#4 Bitcoin (Public) Address

Sebelumnya disebutkan bahwa pubkey digunakan untuk menerima bitcoin (diibaratkan seperti kotak surat), maka alamat bitcoin merupakan hasil "turunan" dari pubkey. Cara merubah pubkey ke alamat bitcoin:

1. Gunakan SHA-256 pada pubkey.
Code:
38FDDB9986CFF3B5CDC46FAD15F540091A22CA649750B55CB1A2094930BCC687

2. Gunakan RIPEMD-160 pada hasil SHA-256.
Code:
09C6E71118D8F12BEC6B5C61884B35677C0A0AE3
<...>

 dan selanjutnya..

3. Tambahkan versi desimal 5 di depan hasil RIPEMD-160 (0x05 mainnet)
Code:
0509C6E71118D8F12BEC6B5C61884B35677C0A0AE3

4. Gunakan SHA-256 kembali pada hasil RIPEMD-160 setelah ditambahkan versi.
Code:
c755761eff1baadec46f0e93017a5d4c15c95f6d3ab50334fc104a4c96f6afb7

5. Gunakan SHA-256 sekali lagi (SHA-256D)
Code:
92f587283756a2698f5d53624fc27df55a158efaaeb74743fbe52ccb04e2c204

6. Ambil 4 byte (8 karakter) pada hasil di atas sebagai checksum.
Code:
92f58728

7. Tambahkan checksum di akhir hasil nomor tiga.
Code:
0509C6E71118D8F12BEC6B5C61884B35677C0A0AE392f58728

8. Ubah menjadi format base58.
Code:
32aiHGMKcxRAsrEH6UuaVfPNHBdfCfWYRM

Akan tetapi untuk penggunaan wallet address P2PSH untuk transaksi peer to peer (P2P) sedikit rumit karena si penerima memerlukan signature beberapa orang untuk menerima bitcoin, atau kata sandi yang acak, atau persyaratan unik yang harus dimiliki.
Dalam pengertian sederhananya apabila Andi dan Bambang mengirim pesan ke Susi, Maka Susi harus memiliki tanda tangan atau Signature dari Andi dan Bambang,apabila hanya satu signature maka terjadi false, dan Susi pun tidak menerima pesan.

Kira-kira seperti itu ya..
Mohon dikoreksi apabila saya salah dalam perhitungannya....
member
Activity: 308
Merit: 11
Jika Private key di ketahui oleh orang lain, apakah kita bisa mengubah private terserbut...?
tanpa harus membuat dan memindah asset di dalam wallet

setahu ane gak bisa gan, coz satu wallet satu private key, jadi kalau privat key kita sudah ketahuan sama orang lain ya mendingan cari langkah amanya saja dengan segera memindahkan aset kita ke wallet yang lain sebelum semua aset kita amblas digondol maling
full member
Activity: 462
Merit: 100
Jika Private key di ketahui oleh orang lain, apakah kita bisa mengubah private terserbut...?
tanpa harus membuat dan memindah asset di dalam wallet
jr. member
Activity: 280
Merit: 1
Wah mantap nih agan agan mastah sangat detail penjelasannyannya..
ijin untuk menambahkan gan saya ada dapat site playground untuk pembelajaran siapa tahu orang Indonesia bisa berkontribusi untuk Blockchain..

http://royalforkblog.github.io/2014/08/11/graphical-address-generator/
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
kalo mau nyimpen private key dengan cara print qr codenya, bisa kan gan?

Bisa, tetapi tidak dianjurkan.
Berikut ini adalah alasan mengapa tidak dianjurkan menggunakan printer untuk mencetak privkey atau QR code:
1. Tinta inkjet printer terutama yang refill tidak tahan lama, tinta berkualitas buruk tersebut semakin lama bisa pudar dan hilang.
2. Driver printer dan/atau OS mungkin masih menyimpan duplikat dari dokumen privkey yang agan cetak dalam "service" atau "antrian."
3. Sebagaimana tidak dianjurkan menyimpan privkey dalam komputer, terkait keylogger dan malware lain yang ikut terinstall di OS.

Cara paling tepat dalam membackup privkey adalah dengan menuliskannya pada selembar kertas, lalu disimpan di tempat yang aman.

<...>
ini yang biasa disepelekan sama kebanyakan orang gan. mereka nganggap backup di notepad dan save di folder yg aman udah cukup.
jangankan nyimpen private key di kompter yg terhubung di internet, di komputer offline pun tetap berbahaya, karena sewaktu2 komputer kita bisa saja bermasalah. kalo bermasalah, trs harus sampe install ulang (hdd non partisi) atau hdd nya bad sector, hilang sudah.
ane biasanya kalau bikin wallet baru, private key nya ane tulis tangan dan simpan di tempat dokumen2 penting barengan sama ijazah, dan hal2 penting lainnya. yang penting2 harus ditempatkan seberkas sama yang penting juga. jadi nanti gampang ingat kalo kebetulan dibutuhkan.

Referensi:
https://www.reddit.com/r/Bitcoin/comments/670zhy/summary_pitfalls_of_paper_wallets/
newbie
Activity: 29
Merit: 0
kalo mau nyimpen private key dengan cara print qr codenya, bisa kan gan?
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
BIP-39: Frasa Mnemonic

BIP-39 mendeskripsikan implementasi dari frasa mnemonic untuk membuat dompet deterministik.
Frasa: gabungan dua kata atau lebih yang bersifat nonpredikatif
Dompet deterministik: sistem penurunan kunci-kunci dari sebuah titik awal yang disebut dengan "seed."

Privkey-pubkey yang sebelumnya kita buat pada thread ini merupakan dompet yang nondeterministik, artinya kita tidak menggunakan seed, dari sebuah pelemparan uang logam sebanyak 256 kali, kita hanya dapat membuat satu buah pasangan privkey-pubkey.

Dompet-dompet bitcoin saat ini sudah mengimplementasikan BIP-39 sehingga kita umumnya akan menuliskan frasa ketika kita membuat (atau membackup) dompet pertama kali.

Misalnya menggunakan mycelium, berikut ini adalah frasa yang harus ane simpan:
Code:
symptom display melt eight where universe prison vacuum convince garbage glance fork

Berikut ini adalah cara sistem dompet menghasilkan frasa mnemonic:

#1 Membuat angka acak atau Entropi (ENT)

ENT berukuran 128-256 bit, mycelium pada saat uji coba pembuatan artikel ini menghasilkan ENT acak sepanjang 128 bit.
Dalam hex:
Code:
dc87f22aa37fa5dbaac7842f8bf18aad
Kita juga dapat membuat 128 bit ENT dengan melakukan pelemparan uang logam sebanyak 128 kali.

#2 Menghitung Checksum Length (CL)

CL dihitung dengan membagi panjang bit ENT dengan 32, dalam contoh ini 128/32 = 4 bit checksum

#3 Melakukan HASH SHA-256 pada ENT

Menggunakan http://www.fileformat.info/tool/hash.htm hasilnya HASH:
b47f2a00e4a94dd707b000de88fc56263b6a76bb2f1aad80c957a42a3d40d317

#4 Mengambil 4 bit HASH dan menambahkan ke ENT

Karena CL 4 bit maka kita hanya perlu menggunakan 4 bit HASH (1 buah karakter HASH pertama) untuk ditambahkan di akhir ENT
hex b =  bin 1011
1101110010000111111100100010101010100011011111111010010111011011101010101100011 11000010000101111100010111111000110001010101011011011

#5 "Kelompokkan" hasil #4 per 11 bit dan ubah ke integer (angka utuh desimal)

Code:
11011100100 = 1764
00111111100 = 508
10001010101 = 1109
01000110111 = 567
11111010010 = 2002
11101101110 = 1902
10101011000 = 1368
11110000100 = 1924
00101111100 = 380
01011111100 = 764
01100010101 = 789
01011011011 = 731

#6 Cari hasil integer #5 pada daftar kata

Daftar kata ada di https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
Ingat bahwa daftar kata seharusnya dimulai dari indeks 0 (bukan 1), sehingga tambahkan 1 pada hasil perhitungan #5 misalnya 1764+1 = 1765 -> symptom
Berikut ini adalah hasil lengkapnya:
Code:
1765 -> symptom
509 -> display
1110 -> melt
568 -> eight
2003 -> where
1903 -> universe
1369 -> prison
1925 -> vacuum
381 -> convince
765 -> garbage
790 -> glance
732 -> fork

Kombinasi frasa yang dapat dibentuk dari 12 frasa mnemonic adalah 204812 yang didesimalkan sekitar 5.4 x 1039 ini berarti dompet yang dibuat dengan 12 frasa mnemonic memiliki tingkat keamanan yang lebih rendah dari dompet pada artikel sebelumnya yang sekitar 1077. Namun demikian dompet yang dibuat dengan cara ini lebih mudah untuk dibackup, bahkan frasa-frasanya dapat dihafalkan.

Dari frasa di atas dapat diturunkan:
Menggunakan Password-Based Key Derivation Function 2 (PBKDF2), frasa mnemonic, dan salt, lalu iterasi diset ke 2048 dan HMAC-SHA512, kita dapat menghitung seed. Gunakan online tools https://iancoleman.io/bip39/
Seed*:
Code:
035ac5b79ff38a1df6add5dc03ac591cc774469826be79d859e21a4db56104cc77244445e5e31d85b982b6da86c783e39f597d9cd2b7b24c7d95550dd89fa0f7

Extended Privkey (BIP-44)*:
Code:
xprv9xgKdgeSz3mxJGWGpTU7qtgD7x8H2ooVYxxawePdt7Dga3V2m28jLqwSawCXa6xAzK1oLioN2FXWD8uik8YnA37t15SyvCkFULYcopnM1ny

Extended Pubkey (BIP-44)*:
Code:
xpub6Bfg3CBLpRLFWkajvV18D2cwfyxmSGXLvBtBk2oFSSkfSqpBJZSyteFvSD1PGgxReDiUp3mjjC69yX66m4erRoEfhAELHmu9b3Lm3zinAbV

*Dijelaskan pada https://bitcointalksearch.org/topic/m.43552511

Program yang digunakan:
http://www.fileformat.info/tool/hash.htm
https://iancoleman.io/bip39/

Referensi:
https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
https://www.youtube.com/watch?v=hRXcY_tIlrw
member
Activity: 336
Merit: 20
saya ada sedikit pertanyaan dan kosultasi gan, pada saat saya mengikuti bounty saya pernah salah memasukan wallet address yang mana yang saya masukan itu private key. saat saya meminta untuk di perbaiki kata pihak manager bountynya tidak perlu karena token yang akan dikirim juga akan masuk ke wallet saya. apakah benar itu gan? saat itu saya pernah mendesak untuk tetap meminta menggantinya tapi tetap di tolak.
Mustahil jika privkey dapat menerima token. Sudah jelas, manager bounty nya ingin maling-malingin token agan.
Tolong di share bounty dan managernya gan! Supaya yang lain bisa menjauhinya.
legendary
Activity: 2142
Merit: 1785
saya ada sedikit pertanyaan dan kosultasi gan, pada saat saya mengikuti bounty saya pernah salah memasukan wallet address yang mana yang saya masukan itu private key. saat saya meminta untuk di perbaiki kata pihak manager bountynya tidak perlu karena token yang akan dikirim juga akan masuk ke wallet saya. apakah benar itu gan? saat itu saya pernah mendesak untuk tetap meminta menggantinya tapi tetap di tolak.

Walaupun sepertinya bukan membahas tentang Bitcoin, tapi sepertinya ini penting untuk direspons.

Sejauh yang saya pahami, tidak benar, format alamat wallet dengan private key itu berbeda. Tidak mungkin token akan masuk ke wallet agan, bisa jadi si manager yang tahu privkey agan maling token" agan. Bounty apa itu? Siapa managernya?
newbie
Activity: 69
Merit: 0
saya ada sedikit pertanyaan dan kosultasi gan, pada saat saya mengikuti bounty saya pernah salah memasukan wallet address yang mana yang saya masukan itu private key. saat saya meminta untuk di perbaiki kata pihak manager bountynya tidak perlu karena token yang akan dikirim juga akan masuk ke wallet saya. apakah benar itu gan? saat itu saya pernah mendesak untuk tetap meminta menggantinya tapi tetap di tolak.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
Di thread ini ane sedang membahas bitcoin gan, kenapa tiba-tiba membahas altcoin? Karena setau ane UTC/JSON itu adalah keystore file pada MyEtherWallet. Untuk keperluan pembelajaran baiklah ane coba untuk menjawabnya.

public key semacam keystore jason fie / utc file gitu dah klo tidak salah yah gan??
<...>
Salah! keystore file adalah bentuk lain dari privkey yang dienkripsi menggunakan password yang sudah agan pilih.
https://kb.myetherwallet.com/private-keys-passwords/difference-beween-private-key-and-keystore-file.html

<...>
jadi klo tidak salah perbedaan privat key dan public key,klo private berbentuk angka dan huruf seperti password dan public berbentuk softfile yang harus memasukan password?
<...>
Salah! baca dahulu link di atas. Privkey dan pubkey keduanya dapat berupa kombinasi huruf dan angka.

<...>
private key
bagi para bounty hunter pasti sudah tau bahwa private key berisifat rahasia, apalagi yang pernah membuat wallet MEW. Dalam bahasa Inggris private artinya pribadi dan key artinya kunci, yang berarti private key bersifat rahasia dan hanya diketahui oleh pemiliknya.
<...>
Benar privkey merupakan bagian dari pasangan privkey-pubkey yang bersifat rahasia dan hanya diketahui oleh pemiliknya.

<...>
public key
Public key tidak dirahasiakan dan bisa dikirimkan ke orang lain
<...>
Pubkey merupakan bagian dari pasangan privkey-pubkey yang memang berguna untuk disebarkan (untuk publik).

<...>namun yang bisa membuka publik key hanya orang yang dituju oleh si pengirim pesan. Misalnya : saya mengirimkan pesan ke anda secara rahasia, maka hanya anda yang dapat membukanya dengan publik key yang telah di Encrypt.
<...>
Sepengetahuan ane statement di atas adalah salah. Berikut ini penggunaan privkey dan pubkey dalam mengirim pesan:
-Sign-
1. Bambang memiliki privkey: 9901837270847348473017285714031893363411661085679723059096297424686444821124
2. Bambang mengetik pesan "Hello World!" lalu menandatangani dengan privkey di atas, hasilnya message signature: 3045022044625be894c1dbd2208460eb14602b0bb34ca5f53ae4095f120ca1f8e6f51e090221009 7545585324baf40c00b7b2947c4a1fb59f88949036358d83cf782a135e09d86
3. Bambang mempublikasikan pubkey-nya (misalnya pada blog-nya) sehingga semua orang tahu kalau pubkey Bambang adalah 04e1411fe6cf169761dd1371583c620e0b7ec34120a6ffd6fc905a906e6764a2f5fcbdad4d3c60b b6185c832075eae4ae2accdc9de0fbfb66c7e1564ee8954875e
4. Pesan dan message signature dikirimkan ke Susi

-Verify-
1. Susi ingin melakukan verifikasi apakah pesan yang diterima benar-benar valid dari Bambang. Susi kemudian mengambil pubkey Bambang dari Blog Bambang.
2. Menggunakan suatu prosedur -teknikal kriptografi yang tidak cocok dijelaskan di topik ini- Susi menggunakan pesan "Hello World!", message signature, dan pubkey Bambang untuk melakukan verifikasi.
3. Apabila hasilnya valid, maka Susi yakin bahwa pesan "Hello World!" dikirimkan oleh orang yang memiliki akses terhadap pubkey 04e1411fe6cf169761dd1371583c620e0b7ec34120a6ffd6fc905a906e6764a2f5fcbdad4d3c60b b6185c832075eae4ae2accdc9de0fbfb66c7e1564ee8954875e, yang tidak lain adalah Bambang. Dengan demikian Susi dapat yakin pesan tersebut valid dari Bambang tanpa harus mengetahui privkey Bambang 9901837270847348473017285714031893363411661085679723059096297424686444821124

https://anders.com/blockchain/public-private-keys/signatures.html
jr. member
Activity: 616
Merit: 8
pemaparan yang sangat bagus dan sangat tertata rapi, dapat memberikan prospec penambahan ilmu dan penguasaat members terhadap bitcoin, saya ingin menanyakan :
1. apa hubungan keterkaitan hubungan antara Privet key dengan Public key? bagaimana jika salah satunya hilang?
2. saya pernah mengalami kehilangan (kode) Privet Key, apakah bisa ditemukan kembali?
terimakasih..

public key semacam keystore jason fie / utc file gitu dah klo tidak salah yah gan?? kudu masukin password untuk akess address atau privatkey.
jadi klo tidak salah perbedaan privat key dan public key,klo private berbentuk angka dan huruf seperti password dan public berbentuk softfile yang harus memasukan password? maaf klo salah

Saya akan menjawab sesuai dengan pemahaman tentang perbedaan private key dan publik key.

private key
bagi para bounty hunter pasti sudah tau bahwa private key berisifat rahasia, apalagi yang pernah membuat wallet MEW. Dalam bahasa Inggris private artinya pribadi dan key artinya kunci, yang berarti private key bersifat rahasia dan hanya diketahui oleh pemiliknya.

public key
Public key tidak dirahasiakan dan bisa dikirimkan ke orang lain, namun yang bisa membuka publik key hanya orang yang dituju oleh si pengirim pesan. Misalnya : saya mengirimkan pesan ke anda secara rahasia, maka hanya anda yang dapat membukanya dengan publik key yang telah di Encrypt.
Untuk anda yang ingin mempelajari lebih lanjut tentang public key bisa ke link ini https://bitcointalksearch.org/topic/tutorial-pgpgpg-signed-message-public-key-3221263

Saya minta maaf jika penulisan ada yang salah.
sr. member
Activity: 726
Merit: 251
pemaparan yang sangat bagus dan sangat tertata rapi, dapat memberikan prospec penambahan ilmu dan penguasaat members terhadap bitcoin, saya ingin menanyakan :
1. apa hubungan keterkaitan hubungan antara Privet key dengan Public key? bagaimana jika salah satunya hilang?
2. saya pernah mengalami kehilangan (kode) Privet Key, apakah bisa ditemukan kembali?
terimakasih..

public key semacam keystore jason fie / utc file gitu dah klo tidak salah yah gan?? kudu masukin password untuk akess address atau privatkey.
jadi klo tidak salah perbedaan privat key dan public key,klo private berbentuk angka dan huruf seperti password dan public berbentuk softfile yang harus memasukan password? maaf klo salah
sr. member
Activity: 1120
Merit: 437
https://bitcointalk.org/index.php?topic=5274318.0
Menaruh privkey di PC/laptop atau perangkat lain yang terhubung ke internet sangatlah tidak dianjurkan! Cara paling tepat dalam membackup privkey adalah dengan menuliskannya pada selembar kertas, lalu disimpan di tempat yang aman.

ini yang biasa disepelekan sama kebanyakan orang gan. mereka nganggap backup di notepad dan save di folder yg aman udah cukup.
jangankan nyimpen private key di kompter yg terhubung di internet, di komputer offline pun tetap berbahaya, karena sewaktu2 komputer kita bisa saja bermasalah. kalo bermasalah, trs harus sampe install ulang (hdd non partisi) atau hdd nya bad sector, hilang sudah.
ane biasanya kalau bikin wallet baru, private key nya ane tulis tangan dan simpan di tempat dokumen2 penting barengan sama ijazah, dan hal2 penting lainnya. yang penting2 harus ditempatkan seberkas sama yang penting juga. jadi nanti gampang ingat kalo kebetulan dibutuhkan.
legendary
Activity: 2198
Merit: 2825
Non-custodial BTC Wallet
-snip-
<...> jadi yang mau saya tanyakan, apakah setiap perusahaan exchange seperti luno atau indosax dalam membuat alamat bitcoin harus memesan pada perusahaan lain atau membuatnya sendiri?

Ini ane juga belum terlalu paham gan, berdasarkan common sense sepertinya developer exchanger membuat kodenya aplikasinya sendiri, yang memiliki fitur: multisignature, hierarchical deterministic (HD), dan batching. Agak riskan kalau hal semacam ini memesan pada perusahaan lain, terutama di dunia mata uang kripto.

Mungkin master-master ingin menanggapi komentar-komentar ane?
Tadi saya mencoba menanyakan langsung mengenai hal ini kepada Indodax dan Luno,
Berikut ini (lebih kurang) jawabannya:

General Support <[email protected]> :
Quote
Setiap exchange sudah memiliki pengembang nya (developer) masing-masing yang sudah mengintegrasikan setiap asset untuk dapat digenerate alamat wallet tersebut ke masing-masing user/pengguna.

Luno Support <[email protected]> :
-- Saya masih menunggu jawaban resmi dari Luno via email, [ticket reference number: 457762] --
UPDATE, saya baru mendapat jawaban dari [email protected] pada 4 July 2018 at 11:51:
Quote
Di Luno, kami menyimpan private key pelanggan dengan aman dan membuatkan alamat dompet terima bagi pelanggan kami. Jadi, alamat terima Bitcoin pelanggan kami dibuat oleh Luno sendiri.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
apalagi kita sebagai pengguna tau nya kalau exchange itu sudah aman karena sudah berjalan bertahun tahun.
Wah sangat berbahaya apabila dengan sudah berjalan bertahun-tahun agan mengasumsikan bahwa BTC agan akan aman di exchange tersebut. Sejarah membuktikan berulang kali situs exchange diretas dan membuat harga BTC anjlok yang disertai tangisan korban.



Terkait dengan privkey, idenya adalah dengan membuat 2256 kombinasi acak. Sehingga yang paling ideal melakukan pelemparan uang logam (yang berbasis dua) sebanyak 256 kali.

<...>
apa itu Biner dan Heksadesimal seperti uraian mas di atas.
<...>
Biner, heksadesimal, dan desimal itu adalah sistem bilangan yang memiliki basis n-angka yang berbeda. Biner (basis-2), desimal (basis-10), dan heksadesimal (basis-16). Jadi bisa diibaratkan kalau main petak umpet, desimal akan menghitung dari 0-9, biner 0-1, dan heksadesimal dari 0-F. Ketiga sistem bilangan itu bisa dikonversi dari sistem bilangan satu ke sistem bilangan yang lain. Manusia menggunakan sistem bilangan desimal karena sudah familiar dan nyaman.

Komputer dan perangkat elektronik sendiri menggunakan biner karena dengan mudah bisa merepresentasikan 0 dan 1. Misalnya 0 = 0 VDC dan 1 = 5 VDC. Namun penggunaan biner sedikit menyulitkan programer karena biner tidak human-friendly. Misalnya 0011101010111010, yang rentan salah tulis dan tidak enak untuk dibaca. Oleh karena itu, bilangan heksadesimal digunakan untuk merepresentasikan bilangan biner sehingga lebih human-friendly. Satu angka heksadesimal sendiri dapat merepresentasikan empat bit bilangan biner, sehingga untuk mengubah dari biner ke heksa secara manual, biasanya diberi spasi per empat bit. 0011 1010 1011 1010 = 3ABA. (lihat tabel konversi https://ascii.cl/conversion.htm)

<...>
1. Untuk pengkodean di Biner, kita mendapati angka tersebut dari mana ya mas? apakah secara acak (membuat kode sendiri) atau menggunakan aplikasi?.
<...>
Yup, secara acak.
Menggunakan basis-2 agan dapat membuat private key dengan melakukan pelemparan uang logam sebanyak 256 kali, tulis 1 apabila muncul angka dan 0 apabila muncul gambar.
Menggunakan basis-6 agan dapat membuat private key dengan melakukan pelemparan dadu sebanyak 99 kali. https://forum.bitcoin.com/beginners-help/guide-how-to-create-a-bitcoin-address-using-a-normal-six-sided-die-t666.html
Semuanya nanti akan dikonversi ke heksadesimal sehingga paling enak konversi ya pakai uang logam.

Untuk mengkonversi basis-6 ke basis-16 http://www.unitconversion.org/numbers/base-6-to-base-16-conversion.html

<...>
2. Untuk pengkodeannya apakah hanya menggunakan angka 0 dan angka 1 saja per baris (yang terdiri dari empat angka)? dan tidak bisa menggunakan angka dari 2-9?
<...>
Karena uang logam hanya punya dua kemungkinan, maka hanya bisa dipakai untuk basis-2 (biner). Dipisahkan per empat bit supaya lebih enak untuk dikonversi ke heksadesimal secara manual (pakai tabel).

<...>
Saya sudah melakukan uji coba pada website yang tertera pada point #1 ini (sesuai dengan contoh pengkodean mas di awal), dan hasilnya sama seperti gambar berikut :
<...>
Yak, mudah kan?

<...>
3. Untuk segi keamanannya, apakah kode Desimal tidak bisa digunakan? dan hanya dianjurkan memakai kode Heksadesimal?
Dalam privkey dari awal kita hanya ingin membuat 2256 kombinasi acak sehingga tidak ada kaitannya dengan "keamanan." Juga, bilangan desimal tidak digunakan untuk bilangan mesin, umumnya yang digunakan adalah biner dan heksadesimal.  
member
Activity: 102
Merit: 10
~snip~
#1 Private Key

Untuk dapat membuka loker tempat penyimpanan bitcoin, agan harus memiliki informasi letak loker tersebut. Informasi inilah yang disebut dengan private key. Bitcoin memiliki 2256 loker yang dapat digunakan untuk menyimpan bitcoin agan. Angka ini apabila didesimalkan akan menjadi sekitar 1077. Sebagai perbandingan, jumlah pasir di bumi ini diperkirakan sekitar 7.5 x 1018, sangat jauh lebih kecil dari jumlah alamat bitcoin yang bisa agan gunakan.

Agan dapat membuat private key dengan melakukan pelemparan uang logam sebanyak 256 kali, tulis 1 apabila muncul angka dan 0 apabila muncul gambar, misalnya:

Code:
Biner: 0011 1010 1011 1010 0100 0001 0110 0010 1100 0111 0010 0101 0001 1100 1000 <...>

Lalu ubah dari format biner ke heksadesimal (gunakan kalkulator) atau menggunakan situs https://www.rapidtables.com/convert/number/binary-to-hex.html

Code:
Heksadesimal: 3ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6
~snip~

Izin nanya mas pada point #1 Private Key. Mungkin kebanyakan member di forum ini latar belakangnya bukan dari IT (Information Technology) ya mas ya, jadi sedikit membingungkan apa itu Biner dan Heksadesimal seperti uraian mas di atas. Terkait dengan thread, saya ingin menanyakan sebagai berikut :
1. Untuk pengkodean di Biner, kita mendapati angka tersebut dari mana ya mas? apakah secara acak (membuat kode sendiri) atau menggunakan aplikasi?.
2. Untuk pengkodeannya apakah hanya menggunakan angka 0 dan angka 1 saja per baris (yang terdiri dari empat angka)? dan tidak bisa menggunakan angka dari 2-9?.


Saya sudah melakukan uji coba pada website yang tertera pada point #1 ini (sesuai dengan contoh pengkodean mas di awal), dan hasilnya sama seperti gambar berikut :



3. Untuk segi keamanannya, apakah kode Desimal tidak bisa digunakan? dan hanya dianjurkan memakai kode Heksadesimal?
sr. member
Activity: 910
Merit: 351
-snip-

Nah kalau pihak ketiga nya kenapa tidak men-implementasikan saja SHA itu biar ga kena hack ?

Maksudnya aplikasi SHA itu gimana gan? Dalam setiap pembuatan address sepemahaman saya pasti akan menerapkan enkripsi SHA ini karena memang sudah menjadi standar dalam pembuatan alamat wallet.
member
Activity: 143
Merit: 15
Nice explanation by experts for newbies

Kadang sangat membingungkan jikalau alamat btc sudah sangat rumit untuk dibobol karena untuk menciptakan alamat btc aja perlu perhitungan kompleks, akan tetapi mengapa btc masih bisa kena hack?
Sebenarnya ada beberapa penyebab yg bisa membuat btc kena hack dan salah satunya phising dan bruteforce.
Kalo phising masih memungkinkan karena efek dari kelalaian user,  so kalo hanya dengan teknik bruteforce waduhh butuh super komputer kali ya,  karena kalo pake pc biasa nembus 1 private key aja mungkin butuh waktu yg sangat lama.

Untuk yg belum tau apa itu bruteforce.
Teknik hacking Brute Force adalah metode untuk meretas password dengan cara mencoba semua kemungkinan kombinasi yang ada pada wordlist. Dalam hal ini password yg dimaksud ada privatekey
source : https://jalantikus.com/tips/mengenal-brute-force-dan-mencegahnya
legendary
Activity: 2030
Merit: 1028
...

Sepengetahuan ane memang "hack" yang terjadi bukan pada jaringan bitcoin, tetapi pada pihak ketiga. Misalnya:
1. Aplikasi dompet yang tidak dibuat dengan baik (memiliki celah keamanan), atau memang sengaja dibuat untuk penipuan.
2. Keylogger dan malware lain yang ikut terinstall di OS ponsel/desktop. Ini biasanya karena pakai windows bajakan dan keseringan mengunjungi situs bokep.
3. Situs-situs phishing.
4. Situs-situs exchange.

....

Nah kalau pihak ketiga nya kenapa tidak men-implementasikan saja SHA itu biar ga kena hack ?

Tapi kalau memang aplikasi itu dengan sengaja "melonggarkan" keamanannya sendiri , ya mau gimana lagi ya , apalagi kita sebagai pengguna tau nya kalau exchange itu sudah aman karena sudah berjalan bertahun tahun.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
Seharusnya bagian ini dijelaskan lagi, apa yang di maksud gunakan SHA256 sama RIPEMD-160? Padahal cukup penting hal tersebut jika ingin coba langsung. No offense ok, cuman ngasih saran.
<...>

Benar sekali om @cissrawk, ane sendiri sebetulnya sudah bimbang sebelumnya apakah sebaiknya menyertakan penjelasan teknik kriptografi tersebut atau mengabaikannya agar lebih simpel. Memang seberapa dalam pembahasan sebuah tutorial/artikel adalah subjektif dan ane tidak pernah merasa tersinggung dengan sebuah kritik/saran yang valid.

Nantinya ane berencana untuk menambahkan link ke artikel om @joniboini apabila sudah siap (sudah ane bookmark pakai merit lol) yang berisi SHA256 karena artikel Om Joni lebih dalam membahas dari segi computer science-nya. Nah seberapa dalam Om Joni membahas, apakah sampai ke gerbang logika, atau blok konsep, ane pasrahkan saja ke beliau. hehehe

Kalau untuk coba-coba, ane sudah menyertakan link online-tools yang tinggal klik langsung jadi hasil SHA-256 maupun RIPEMD-160

<...>
Ada, nyatanya wallet saya sendiri pernah kena hack. Tidak harus bruteforcing, selama Hacker tersebut masukin virus seperti trojan atau spyware (yang saat kita copy, maka clipboard tersebut akan di kirim ke hackernya), kalo misal seed atau privkey yang di copy terkirim ke hacker tersebut, maka hacker tersebut punya akses ke wallet kita. *pengalaman pribadi.
Ada juga bisa lewat penyadapan file pc dengan mengambil wallet filenya.

Hal ini sudah ane jelaskan di https://bitcointalksearch.org/topic/m.40110206 terima kasih atas penjabarannya.

<...>
Agak OOT dikit, Bruteforcing sepertinya bukan menjadi metode yang sering digunakan oleh hacker. Butuh sumber daya yang besar, lebih efisien dan efektif cara-cara yang memanfaatkan 'kelemahan' user seperti keylogging/penyadapan, phising dst. Kecuali mereka punya komputer kuantum. CMIIW.

Betul, beberapa waktu lalu ane pernah menghitung hal ini (mohon koreksinya apabila salah) https://bitcointalksearch.org/topic/bitcrack-a-tool-for-brute-forcing-private-keys-4453897

Misalnya program BitCrack dapat melakukan 10 juta komputasi per detik = 107 menggunakan 1 GPU
Kombinasi alamat (privkey) BTC ~ 1077
Maka dibutuhkan waktu 1070 detik atau 3 x 1062 tahun untuk mem-bruteforce semua alamat BTC

1 juta GPU menjalankan BitCrack = 3 x 1056 tahun
1 milyar GPU menjalankan BitCrack = 3 x 1053 tahun
1 triliun GPU menjalankan BitCrack = 3 x 1050 tahun

Kesimpulan: mustahil

<...>
Jadi dengan kata lain, yang perlu disimpan rapi dan aman hanya Private key ya?
Kalau Phrase itu apakah harus disimpan juga? Atau sudah cukup dg private key saja?
<...>

Nah, ini sebenarnya mau ane sertakan di update/artikel lain mengenai dompet bitcoin (kalau sempat) sudah ane jelaskan di update: https://bitcointalksearch.org/topic/m.41403564

Singkatnya mnemonic phrase dengan privkey itu sangat mirip. Agan dapat menghasilkan privkey dari mnemonic n-kata yang diproses otomatis di dalam internal sistem dompet agan.

Sehingga kalau dompet agan sudah memiliki fitur mnemonic phrase ya cukup ditulis saja kata-katanya.
newbie
Activity: 4
Merit: 0
Privkey dan pubkey merupakan bagian dari Elliptic Curve Digital Signature Algorithm (ECDSA), yaitu algoritma kriptografi yang digunakan pada bitcoin untuk menjamin dana (bitcoin) hanya bisa ditransaksikan oleh pemiliknya yang sah. Pasangan privkey dan pubkey memiliki hubungan satu arah (privkey -> pubkey), maksudnya seseorang yang memiliki privkey akan bisa membuat pubkey (dari privkey tsb) menggunakan cara #3. Akan tetapi seseorang yang hanya mengetahui pubkey tidak dapat mengetahui privkey (dari pubkey tsb).

Di dalam aplikasi dompet, pembuatan pubkey sudah otomatis sehingga agan hanya perlu import privkey saja. Tidak perlu merisaukan pubkey.
Jadi dengan kata lain, yang perlu disimpan rapi dan aman hanya Private key ya?

Kalau Phrase itu apakah harus disimpan juga? Atau sudah cukup dg private key saja?

<...> jadi yang mau saya tanyakan, apakah setiap perusahaan exchange seperti luno atau indosax dalam membuat alamat bitcoin harus memesan pada perusahaan lain atau membuatnya sendiri?

Ini ane juga belum terlalu paham gan, berdasarkan common sense sepertinya developer exchanger membuat kodenya aplikasinya sendiri, yang memiliki fitur: multisignature, hierarchical deterministic (HD), dan batching. Agak riskan kalau hal semacam ini memesan pada perusahaan lain, terutama di dunia mata uang kripto.

Mungkin master-master ingin menanggapi komentar-komentar ane?

Yang ini menurut ane sih ada sistem otomatis, jadi yg tahu hanya sistem, bukan perusahaannya, kalau perusahaannya tidak aman donk pastinya
sr. member
Activity: 910
Merit: 351
-snip-
Ada, nyatanya wallet saya sendiri pernah kena hack. Tidak harus bruteforcing, selama Hacker tersebut masukin virus seperti trojan atau spyware (yang saat kita copy, maka clipboard tersebut akan di kirim ke hackernya), kalo misal seed atau privkey yang di copy terkirim ke hacker tersebut, maka hacker tersebut punya akses ke wallet kita. *pengalaman pribadi.
Ada juga bisa lewat penyadapan file pc dengan mengambil wallet filenya.

Agak OOT dikit, Bruteforcing sepertinya bukan menjadi metode yang sering digunakan oleh hacker. Butuh sumber daya yang besar, lebih efisien dan efektif cara-cara yang memanfaatkan 'kelemahan' user seperti keylogging/penyadapan, phising dst. Kecuali mereka punya komputer kuantum. CMIIW.
sr. member
Activity: 1218
Merit: 410
Secure your crypto : https://notyourkeys.org
4. Gunakan SHA-256 kembali pada hasil RIPEMD-160 setelah ditambahkan versi.

5. Gunakan SHA-256 sekali lagi (SHA-256D)
Seharusnya bagian ini dijelaskan lagi, apa yang di maksud gunakan SHA256 sama RIPEMD-160? Padahal cukup penting hal tersebut jika ingin coba langsung. No offense ok, cuman ngasih saran.

maaf, saya belum pernah mendengar btc kena hack, yang saya tau market yang kena hack dan dicuri bitcoinnya. maaf jika kata-kata saya ada yang salah.
Ya kalau hack mengartikannya di retas paksa memang jarang ada address bitcoin yang kena atau mungkin gak ada ? Soalnya untuk curi private key setahu ane butuh waktu yang lama buat brute force private keynya, tapi ada aja yang walletnya kehack karena kelalaian diri sendiri bukan di brute force.
Ada, nyatanya wallet saya sendiri pernah kena hack. Tidak harus bruteforcing, selama Hacker tersebut masukin virus seperti trojan atau spyware (yang saat kita copy, maka clipboard tersebut akan di kirim ke hackernya), kalo misal seed atau privkey yang di copy terkirim ke hacker tersebut, maka hacker tersebut punya akses ke wallet kita. *pengalaman pribadi.
Ada juga bisa lewat penyadapan file pc dengan mengambil wallet filenya.
full member
Activity: 389
Merit: 100
Nice explanation by experts for newbies

Kadang sangat membingungkan jikalau alamat btc sudah sangat rumit untuk dibobol karena untuk menciptakan alamat btc aja perlu perhitungan kompleks, akan tetapi mengapa btc masih bisa kena hack?

maaf, saya belum pernah mendengar btc kena hack, yang saya tau market yang kena hack dan dicuri bitcoinnya. maaf jika kata-kata saya ada yang salah.
Ya kalau hack mengartikannya di retas paksa memang jarang ada address bitcoin yang kena atau mungkin gak ada ? Soalnya untuk curi private key setahu ane butuh waktu yang lama buat brute force private keynya, tapi ada aja yang walletnya kehack karena kelalaian diri sendiri bukan di brute force.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>akan tetapi mengapa btc masih bisa kena hack?

<...>
maaf, saya belum pernah mendengar btc kena hack, yang saya tau market yang kena hack dan dicuri bitcoinnya. maaf jika kata-kata saya ada yang salah.

Sepengetahuan ane memang "hack" yang terjadi bukan pada jaringan bitcoin, tetapi pada pihak ketiga. Misalnya:
1. Aplikasi dompet yang tidak dibuat dengan baik (memiliki celah keamanan), atau memang sengaja dibuat untuk penipuan.
2. Keylogger dan malware lain yang ikut terinstall di OS ponsel/desktop. Ini biasanya karena pakai windows bajakan dan keseringan mengunjungi situs bokep.
3. Situs-situs phishing.
4. Situs-situs exchange.

Kalau keamanan bitcoin dengan SHA256 dan secp256k1 sampai saat ini masih belum bisa diretas. Teknik kriptografi ini digunakan pada keamanan intelijen, maka kalau bisa diretas dampaknya akan lebih besar dari sekedar kehilangan bitcoin.
newbie
Activity: 828
Merit: 0
Nice explanation by experts for newbies

Kadang sangat membingungkan jikalau alamat btc sudah sangat rumit untuk dibobol karena untuk menciptakan alamat btc aja perlu perhitungan kompleks, akan tetapi mengapa btc masih bisa kena hack?

maaf, saya belum pernah mendengar btc kena hack, yang saya tau market yang kena hack dan dicuri bitcoinnya. maaf jika kata-kata saya ada yang salah.
legendary
Activity: 2030
Merit: 1028
Nice explanation by experts for newbies

Kadang sangat membingungkan jikalau alamat btc sudah sangat rumit untuk dibobol karena untuk menciptakan alamat btc aja perlu perhitungan kompleks, akan tetapi mengapa btc masih bisa kena hack?
legendary
Activity: 2142
Merit: 1785
thread yang bagus dengan pemaparan yang baik dan sangat membantu bagi pemula yang baru mengikuti perkembangan di dunia bitcoin. saya ingin bertanya gan apabila private key yang kita miliki hilang apakah kita bisa meminta private key kita kembali lagi atau tidak?

Rank full member masih tanya masalah beginian? Situ yakin Full Member beneran? Di forum ini ngapain aja selama ini? Saya ragu ini beneran tanya atau sekedar nambah post count.

Private key kalau hilang ga ada backup ya sudah hilang, mau minta ke siapa? Tuhan?
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
2. Usahakan membackup private key untuk menjaga kehilangan gan, lebih baik taruh di pc atau di laptop agan tetapi buat folder yang aman untuk menaruh private key tersebut.
<...>

Menaruh privkey di PC/laptop atau perangkat lain yang terhubung ke internet sangatlah tidak dianjurkan! Cara paling tepat dalam membackup privkey adalah dengan menuliskannya pada selembar kertas, lalu disimpan di tempat yang aman.

<...>
Karena dalam permasalahan wallet adalah bagian dasar untuk kita gabung ke dunia cryptocurrency.
Kalau bagian dasarnya saja kita tidak paham bagaimana mungkin kita melanjutkan pembelajaran ke fase-fase berikutnya setelah wallet.
<...>

Pernyataan ini yang membuat ane urung menekan tombol delete. Memang benar artikel tentang dompet ini merupakan bagian awal dari rangkaian artikel yang lain untuk bisa memahami bitcoin -paling tidak- sampai paham cara kerjanya.
full member
Activity: 649
Merit: 100
Binance #SWGT and CERTIK Audited
Thread seperti ini yang kita butuhkan,bisa menambah ilmu kepada member-member pemula.
Karena dalam permasalahan wallet adalah bagian dasar untuk kita gabung ke dunia cryptocurrency.
Kalau bagian dasarnya saja kita tidak paham bagaimana mungkin kita melanjutkan pembelajaran ke fase-fase berikutnya setelah wallet.
Dengan metode ini apabila kita lupa menyimpan private key,bisakah digunakan?
full member
Activity: 336
Merit: 100
pemaparan yang sangat bagus dan sangat tertata rapi, dapat memberikan prospec penambahan ilmu dan penguasaat members terhadap bitcoin, saya ingin menanyakan :
1. apa hubungan keterkaitan hubungan antara Privet key dengan Public key? bagaimana jika salah satunya hilang?
2. saya pernah mengalami kehilangan (kode) Privet Key, apakah bisa ditemukan kembali?
terimakasih..

1. Hubungan antara Private key dan Public key menurut yang saya ketahui adalah kalau Public key hilang kita masih bisa masuk ke wallet menggunakan private key, nah kalau private key yang hilang kita tidak bisa masuk dan kita tidak mengetahui public key.
Intinya sih Private key itu sangat penting, kalau tidak ada private key kita tidak akan bisa mengakses wallet tersebut, anggap saja private key itu seperti password untuk masuk ke wallet tersebut.
2. Usahakan membackup private key untuk menjaga kehilangan gan, lebih baik taruh di pc atau di laptop agan tetapi buat folder yang aman untuk menaruh private key tersebut.
Kalau private key hilang tidak dapat di kembalikan lagi gan, mau tidak mau harus membuat wallet baru, itu saja yang dapat saya sampaikan ya gan semoga membantu.
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
<...>
1. apa hubungan keterkaitan hubungan antara Privet private key dengan Public key? bagaimana jika salah satunya hilang?
<...>

Privkey dan pubkey merupakan bagian dari Elliptic Curve Digital Signature Algorithm (ECDSA), yaitu algoritma kriptografi yang digunakan pada bitcoin untuk menjamin dana (bitcoin) hanya bisa ditransaksikan oleh pemiliknya yang sah. Pasangan privkey dan pubkey memiliki hubungan satu arah (privkey -> pubkey), maksudnya seseorang yang memiliki privkey akan bisa membuat pubkey (dari privkey tsb) menggunakan cara #3. Akan tetapi seseorang yang hanya mengetahui pubkey tidak dapat mengetahui privkey (dari pubkey tsb).

Di dalam aplikasi dompet, pembuatan pubkey sudah otomatis sehingga agan hanya perlu import privkey saja. Tidak perlu merisaukan pubkey.

<...>
2. saya pernah mengalami kehilangan (kode) Privet private Key, apakah bisa ditemukan kembali?
<...>

Ketika aplikasi dompet agan tidak dibackup dan lalu hilang/rusak, dan agan tidak memiliki backup privkey, maka tidak ada cara untuk bisa mengakses dana yang ada di loker tsb. Kenapa? Karena privkey agan menunjukkan letak alamat loker agan di antara 2256 loker-loker yang tersedia. Tanpa mengetahui alamat loker, agan tidak mungkin bisa mengakses loker tersebut.

<...> jadi yang mau saya tanyakan, apakah setiap perusahaan exchange seperti luno atau indosax dalam membuat alamat bitcoin harus memesan pada perusahaan lain atau membuatnya sendiri?

Ini ane juga belum terlalu paham gan, berdasarkan common sense sepertinya developer exchanger membuat kodenya aplikasinya sendiri, yang memiliki fitur: multisignature, hierarchical deterministic (HD), dan batching. Agak riskan kalau hal semacam ini memesan pada perusahaan lain, terutama di dunia mata uang kripto.

Mungkin master-master ingin menanggapi komentar-komentar ane?
sr. member
Activity: 910
Merit: 351
pemaparan yang sangat bagus dan sangat tertata rapi, dapat memberikan prospec penambahan ilmu dan penguasaat members terhadap bitcoin, saya ingin menanyakan :
1. apa hubungan keterkaitan hubungan antara Privet key dengan Public key? bagaimana jika salah satunya hilang?
2. saya pernah mengalami kehilangan (kode) Privet Key, apakah bisa ditemukan kembali?
terimakasih..

1. Sepertinya sudah dijawab. Pubkey dan private key ibarat loker dengan kuncinya. Kalau pubkey hilang agan bisa 'munculin' lagi dari private key. Kalau private key hilang ya wassalam.
2. Bisa kalau file .dat masih ada. Kalau tak de ya tak bisa.

Ternyata alamat Bitcoin dibuat tidak asal-asalan ya, jadi yang mau saya tanyakan, apakah setiap perusahaan exchange seperti luno atau indosax dalam membuat alamat bitcoin harus memesan pada perusahaan lain atau membuatnya sendiri?

Ya ditanyakan ke perusahaan mereka saja lah gan. Mungkin mereka pesen ke tengkulak kiloan kali ya.
Serius: mereka bisa buat sendiri, tapi kita gak mengontrol sepenuhnya atas wallet itu karena yang megang private key pihak exchange itu sendiri.
member
Activity: 938
Merit: 10
Ternyata alamat Bitcoin dibuat tidak asal-asalan ya, jadi yang mau saya tanyakan, apakah setiap perusahaan exchange seperti luno atau indosax dalam membuat alamat bitcoin harus memesan pada perusahaan lain atau membuatnya sendiri?
member
Activity: 308
Merit: 20
pemaparan yang sangat bagus dan sangat tertata rapi, dapat memberikan prospec penambahan ilmu dan penguasaat members terhadap bitcoin, saya ingin menanyakan :
1. apa hubungan keterkaitan hubungan antara Privet key dengan Public key? bagaimana jika salah satunya hilang?
2. saya pernah mengalami kehilangan (kode) Privet Key, apakah bisa ditemukan kembali?
terimakasih..
copper member
Activity: 2268
Merit: 2124
Slots Enthusiast & Expert
Latar Belakang:

Agan pastinya sering menggunakan alamat bitcoin untuk melakukan transaksi, nah thread ini bertujuan untuk menjelaskan bagaimana mekanisme dompet-dompet bitcoin dalam menghasilkan alamat tersebut dari awal. Agan bahkan dapat membuat private key sendiri dari sebuah uang logam! (+pensil dan kertas)

Peringatan:
  • Ane bukan bitcoin expert, thread ini dibuat sebagai salah satu cara ane untuk terpaksa mau belajar.
  • Cara ini hanya untuk pembelajaran saja. Jangan gunakan situs-situs "bitcoin tools" untuk merubah kode-kode apabila memang hendak menggunakan alamat-alamat tersebut untuk transaksi sungguhan.
  • Jangan gunakan alamat dan private key yang tercantum pada halaman ini untuk kirim/terima bitcoin!

Peraturan:
Karena thread ini adalah thread self-mod maka saya hanya akan menampilkan komentar/pertanyaan/saran/kritik yang bermakna. Thanks!
Arsip postingan yang ane hapus (mulai 19-7-2018) https://pastebin.com/6t7E0fGv


#1 Private Key

Untuk dapat membuka loker tempat penyimpanan bitcoin, agan harus memiliki informasi letak loker tersebut. Informasi inilah yang disebut dengan private key. Bitcoin memiliki 2256 loker yang dapat digunakan untuk menyimpan bitcoin agan. Angka ini apabila didesimalkan akan menjadi sekitar 1077. Sebagai perbandingan, jumlah pasir di bumi ini diperkirakan sekitar 7.5 x 1018, sangat jauh lebih kecil dari jumlah alamat bitcoin yang bisa agan gunakan.

Agan dapat membuat private key dengan melakukan pelemparan uang logam sebanyak 256 kali, tulis 1 apabila muncul angka dan 0 apabila muncul gambar, misalnya:

Code:
Biner: 0011 1010 1011 1010 0100 0001 0110 0010 1100 0111 0010 0101 0001 1100 1000 1001 0001 0010 0000 0111 1011 0111 0100 0111 1000 0100 0000 0101 0101 0001 1010 0111 0001 1001 0011 1001 1011 0000 1101 1110 0000 1000 0001 1111 1000 0101 1100 0100 1110 0100 0100 1100 1111 0111 1100 0001 0011 1110 0100 0001 1101 1010 1010 0110

Lalu ubah dari format biner ke heksadesimal (gunakan kalkulator) atau menggunakan situs https://www.rapidtables.com/convert/number/binary-to-hex.html

Code:
Heksadesimal: 3ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6

Kedua angka di atas merupakan privkey yang jarang ditampilkan ketika agan mengakses aplikasi dompet karena umumnya sudah menggunakan format WIF (Wallet Import Format).


#2 Wallet Import Format (WIF)

WIF adalah sebuah cara untuk membuat privkey lebih mudah diketik/dicopas dari atau ke dalam dompet bitcoin. Cara merubah privkey heksadesimal ke heksadesimal-WIF:

1. Tambahkan 0x80 di depan privkey.
Code:
803ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6

2. Gunakan SHA-256 hash pada privkey yang sudah ditambahkan 0x80. Agan dapat menggunakan binary hash pada situs http://www.fileformat.info/tool/hash.htm
Code:
64899055A09AAB79C7A5CA1080806FAFAFF29C987A53C27FA007F1BB0B996FDF

3. Gunakan SHA-256 hash kembali pada hasil SHA-256 hash di atas. Karena dua kali hash dilakukan, maka bitcoin disebut menggunakan SHA-256D pada inti komputasinya.
Code:
C609B82487C458EAA93FEEA16F8C6A98E0DA39CA683D6F917B6CDE2A7A5EEE18

4. Ambil 4 byte (8 karakter) pada hasil di atas sebagai checksum.
Code:
C609B824

5. Tambahkan checksum di akhir hasil nomor satu.
Code:
803ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6C609B824

6. Ubah menjadi format base58. Agan dapat menggunakan situs http://lenschulwitz.com/base58
Code:
5JG9hT3beGTJuUAmCQEmNaxAuMacCTfXuw1R3FCXig23RQHMr4K

Hasil ini sudah bisa diimport ke aplikasi dompet bitcoin.


#3 Public Key

Privkey dan Pubkey adalah pasangan kunci yang merupakan pondasi dari keamanan komputer. Pubkey diturunkan dari Privkey. Pubkey digunakan untuk menerima bitcoin (diibaratkan seperti kotak surat) dan privkey digunakan untuk menandai kepemilikan dan isi di dalam kotak surat tersebut (diibaratkan seperti kunci kotak surat).

Untuk menurunkan pubkey dari privkey, bitcoin menggunakan kurva eliptik dan konstanta-konstanta matematis dengan standar secp256k1. Sayangnya ane belum menemukan online tools yang berguna hanya untuk menurunkan privkey menggunakan secp256k1. Setelah ane "hitung," berikut ini adalah pubkey-nya:
Code:
045C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC243BCEFDD4347074D44BD7356D6A53C495737DD96295E2A9374BF5F02EBFC176


#4 Bitcoin (Public) Address

Sebelumnya disebutkan bahwa pubkey digunakan untuk menerima bitcoin (diibaratkan seperti kotak surat), maka alamat bitcoin merupakan hasil "turunan" dari pubkey. Cara merubah pubkey ke alamat bitcoin:

1. Gunakan SHA-256 pada pubkey.
Code:
38FDDB9986CFF3B5CDC46FAD15F540091A22CA649750B55CB1A2094930BCC687

2. Gunakan RIPEMD-160 pada hasil SHA-256.
Code:
09C6E71118D8F12BEC6B5C61884B35677C0A0AE3

3. Tambahkan versi di depan hasil RIPEMD-160 (0x00 untuk mainnet)
Code:
0009C6E71118D8F12BEC6B5C61884B35677C0A0AE3

4. Gunakan SHA-256 kembali pada hasil RIPEMD-160 setelah ditambahkan versi.
Code:
6143CD81DE6C3F3C5C3B301AB6B5AF5377AEBCA14885D3364378E501B5F44E88

5. Gunakan SHA-256 sekali lagi (SHA-256D)
Code:
2A021F87FA371AE2A63DD44112BF3175039E9A96613734309CA87FDA7862A301

6. Ambil 4 byte (8 karakter) pada hasil di atas sebagai checksum.
Code:
2A021F87

7. Tambahkan checksum di akhir hasil nomor tiga.
Code:
0009C6E71118D8F12BEC6B5C61884B35677C0A0AE32A021F87

8. Ubah menjadi format base58.
Code:
1thMirt546nngXqyPEz532S8fLwbozud8


#5 Tambahan

Privkey WIF dan Alamat publik bitcoin hasil di atas merupakan versi tidak dikompres. Kompresi digunakan untuk membuat lebih irit penggunaan ruang hdd pada node-node bitcoin. Sebenarnya kompresi hanya "berlaku" pada alamat publik, bukan privkey karena "kompresi" pada privkey malah menambah panjang privkey sebesar satu byte.

Untuk melakukan "kompresi" privkey cukup menambahkan "01" pada akhir privkey
Code:
803ABA4162C7251C891207B747840551A71939B0DE081F85C4E44CF7C13E41DAA6C609B82401

Lakukan langkah yang sama seperti #2 untuk mengubah data di atas menjadi format WIF base58.
Code:
KyBsPXxTuVD82av65KZkrGrWi5qLMah5SdNq6uftawDbgKa2wv6S

Untuk melakukan kompresi pubkey menggunakan format (04 x y) = 02 x (apabila y genap) atau 03 x (apabila y ganjil)
Code:
045C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC243BCEFDD4347074D44BD7356D6A53C495737DD96295E2A9374BF5F02EBFC176
Code:
04
x = 5C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC
y = 243BCEFDD4347074D44BD7356D6A53C495737DD96295E2A9374BF5F02EBFC176
Karena y genap, maka:
Code:
025C0DE3B9C8AB18DD04E3511243EC2952002DBFADC864B9628910169D9B9B00EC

Lakukan langkah yang sama seperti #4 untuk mendapatkan alamat publik base58.
Code:
14cxpo3MBCYYWCgF74SWTdcmxipnGUsPw3

Apabila semua perhitungan benar, agan dapat menggunakan https://walletgenerator.net/ (diubah karena ada celah keamanan) https://www.bitaddress.org/ untuk mencocokkan semua informasi perhitungan:




Program yang digunakan:
https://www.rapidtables.com/convert/number/binary-to-hex.html
http://www.fileformat.info/tool/hash.htm
http://lenschulwitz.com/base58
https://walletgenerator.net/ (diubah karena ada celah keamanan) https://www.bitaddress.org/ -> Wallet Details

Referensi:
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch04.asciidoc
https://en.bitcoin.it/wiki/Wallet_import_format
https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses

Update
BIP-39: Frasa Mnemonic https://bitcointalksearch.org/topic/m.41403564
BIP-32/44: Dompet Hierarki Deterministik https://bitcointalksearch.org/topic/m.43552511
SegWit: P2SH-P2WPKH & Bech32-P2WPKH https://bitcointalksearch.org/topic/m.44398942

Q&A
1. Apabila privkey/pubkey hilang > https://bitcointalksearch.org/topic/m.39950379
2. Tentang hack BTC > https://bitcointalksearch.org/topic/m.40110206
3. Tentang bruteforce BTC > https://bitcointalksearch.org/topic/m.40195397
4. Penjelasan biner, heksadesimal, desimal > https://bitcointalksearch.org/topic/m.40351435
5. Pasangan privkey-pubkey untuk sign-verify pesan > https://bitcointalksearch.org/topic/m.41031772
6. Menyimpan privkey dengan cara mencetak QR Code > https://bitcointalksearch.org/topic/m.41962227
7. Membuat alamat P2SH dari P2PKH ? > https://bitcointalksearch.org/topic/m.42324277
8. P2SH script > https://bitcointalksearch.org/topic/m.42730207
9. Dompet 2FA electrum tidak bisa untuk sign message > https://bitcointalksearch.org/topic/m.43326525
Jump to: