Bitcoin Forum
April 24, 2024, 11:09:33 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3] 4 5 »  All
  Print  
Author Topic: [Edukasi] Dari Private Key Sampai Ke Bitcoin Address (Untuk Pemula)  (Read 25211 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic. (2 posts by 1+ user deleted.)
mu_enrico (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2310
Merit: 2135


Slots Enthusiast & Expert


View Profile WWW
July 24, 2018, 05:03:12 AM
Merited by Dermelon (1)
 #41

http://archive.is/S74Oj#selection-395.1-425.98
Quote from: jalxyx
gan maksudnya SHA itu apa ya? ane belum paham ini, mohon maaf wallet ane juga instant bikinnya wkw

Secure Hashing Algorithm, baca ini gan >> https://bitcointalk.org/index.php?topic=2996986.msg34337072#msg34337072

http://archive.is/g7h4g#selection-381.1-423.320
Quote from: imadar
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.

███████████████████████
████████████████████
██████████████████
████████████████████
███▀▀▀█████████████████
███▄▄▄█████████████████
██████████████████████
██████████████████████
███████████████████████
█████████████████████
███████████████████
███████████████
████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████▀▀██▀██▀▀█████████
█████████████▄█████████████
███████████████████████
████████████████████████
████████████▄█▄█████████
████████▀▀███████████
██████████████████
▀███████████████████▀
▀███████████████▀
█████████████████████████
O F F I C I A L   P A R T N E R S
▬▬▬▬▬▬▬▬▬▬
ASTON VILLA FC
BURNLEY FC
BK8?.
..PLAY NOW..
1714000173
Hero Member
*
Offline Offline

Posts: 1714000173

View Profile Personal Message (Offline)

Ignore
1714000173
Reply with quote  #2

1714000173
Report to moderator
1714000173
Hero Member
*
Offline Offline

Posts: 1714000173

View Profile Personal Message (Offline)

Ignore
1714000173
Reply with quote  #2

1714000173
Report to moderator
BitcoinCleanup.com: Learn why Bitcoin isn't bad for the environment
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714000173
Hero Member
*
Offline Offline

Posts: 1714000173

View Profile Personal Message (Offline)

Ignore
1714000173
Reply with quote  #2

1714000173
Report to moderator
valuater
Sr. Member
****
Offline Offline

Activity: 1162
Merit: 252



View Profile
July 31, 2018, 02:34:20 PM
 #42


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
siijombi
Full Member
***
Offline Offline

Activity: 294
Merit: 107



View Profile
August 01, 2018, 10:13:57 PM
 #43

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.
awi44
Member
**
Offline Offline

Activity: 322
Merit: 22


View Profile WWW
August 02, 2018, 02:46:48 AM
 #44

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



║║║║║║║║█║███║███║███║█║█║█║║███║█║█║║██    POPULOUS WORLD'S [GOLD POKEN]
║║║║║║║║█║███║█║█║███║█║█║█║║█║█║█║█║║█      GOLD BACKED ERC1155 TOKEN | RECEIVE 9% DISCOUNT | BUY NOW
║║║║║║║║█║█║║║███║█║║║███║██║███║███║██      HOMEPAGE | TWITTER | TELEGRAM | LINKEDIN | SLACK | GITHUB | YOUTUBE
antonio88s
Full Member
***
Offline Offline

Activity: 423
Merit: 118


View Profile
August 02, 2018, 06:03:16 AM
 #45

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/
mu_enrico (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2310
Merit: 2135


Slots Enthusiast & Expert


View Profile WWW
August 02, 2018, 09:58:59 AM
 #46

<...>
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://bitcointalk.org/index.php?topic=2826914.0

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

███████████████████████
████████████████████
██████████████████
████████████████████
███▀▀▀█████████████████
███▄▄▄█████████████████
██████████████████████
██████████████████████
███████████████████████
█████████████████████
███████████████████
███████████████
████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████▀▀██▀██▀▀█████████
█████████████▄█████████████
███████████████████████
████████████████████████
████████████▄█▄█████████
████████▀▀███████████
██████████████████
▀███████████████████▀
▀███████████████▀
█████████████████████████
O F F I C I A L   P A R T N E R S
▬▬▬▬▬▬▬▬▬▬
ASTON VILLA FC
BURNLEY FC
BK8?.
..PLAY NOW..
mu_enrico (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2310
Merit: 2135


Slots Enthusiast & Expert


View Profile WWW
August 05, 2018, 09:20:34 PM
Last edit: August 07, 2018, 02:57:07 AM by mu_enrico
Merited by dbshck (4), joniboini (3), Chikito (1), Husna QA (1), Dermelon (1), punk.zink (1)
 #47

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:
<?php
$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:
<?php
$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:
<?php
$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:
<?php
$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))."<br>";
?>
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:
<?php
$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:
<?php
$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:
<?php
$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))."<br>";
?>

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

███████████████████████
████████████████████
██████████████████
████████████████████
███▀▀▀█████████████████
███▄▄▄█████████████████
██████████████████████
██████████████████████
███████████████████████
█████████████████████
███████████████████
███████████████
████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████▀▀██▀██▀▀█████████
█████████████▄█████████████
███████████████████████
████████████████████████
████████████▄█▄█████████
████████▀▀███████████
██████████████████
▀███████████████████▀
▀███████████████▀
█████████████████████████
O F F I C I A L   P A R T N E R S
▬▬▬▬▬▬▬▬▬▬
ASTON VILLA FC
BURNLEY FC
BK8?.
..PLAY NOW..
cocoklogi
Member
**
Offline Offline

Activity: 135
Merit: 41


View Profile WWW
August 14, 2018, 12:18:18 AM
Merited by dbshck (1)
 #48

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/
mu_enrico (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2310
Merit: 2135


Slots Enthusiast & Expert


View Profile WWW
August 20, 2018, 09:55:35 AM
Merited by dbshck (5), elda34b (2), abhiseshakana (1), Dermelon (1)
 #49

== 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://bitcointalk.org/index.php?topic=4459504.msg39933979#msg39933979
Pay to Script Hash (P2SH) >> https://bitcointalk.org/index.php?topic=4459504.msg42730207#msg42730207 (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://bitcointalk.org/index.php?topic=4459504.msg39933979#msg39933979
Deterministik >> https://bitcointalk.org/index.php?topic=4459504.msg41403564#msg41403564 & https://bitcointalk.org/index.php?topic=4459504.msg43552511#msg43552511

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:
<?php
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.

███████████████████████
████████████████████
██████████████████
████████████████████
███▀▀▀█████████████████
███▄▄▄█████████████████
██████████████████████
██████████████████████
███████████████████████
█████████████████████
███████████████████
███████████████
████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████▀▀██▀██▀▀█████████
█████████████▄█████████████
███████████████████████
████████████████████████
████████████▄█▄█████████
████████▀▀███████████
██████████████████
▀███████████████████▀
▀███████████████▀
█████████████████████████
O F F I C I A L   P A R T N E R S
▬▬▬▬▬▬▬▬▬▬
ASTON VILLA FC
BURNLEY FC
BK8?.
..PLAY NOW..
iamcryp
Newbie
*
Offline Offline

Activity: 26
Merit: 1


View Profile
September 14, 2018, 02:31:49 PM
 #50

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,?
mu_enrico (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2310
Merit: 2135


Slots Enthusiast & Expert


View Profile WWW
September 15, 2018, 02:20:56 AM
 #51

<...>
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://bitcointalk.org/index.php?topic=3315373.msg45366624#msg45366624


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).

███████████████████████
████████████████████
██████████████████
████████████████████
███▀▀▀█████████████████
███▄▄▄█████████████████
██████████████████████
██████████████████████
███████████████████████
█████████████████████
███████████████████
███████████████
████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████▀▀██▀██▀▀█████████
█████████████▄█████████████
███████████████████████
████████████████████████
████████████▄█▄█████████
████████▀▀███████████
██████████████████
▀███████████████████▀
▀███████████████▀
█████████████████████████
O F F I C I A L   P A R T N E R S
▬▬▬▬▬▬▬▬▬▬
ASTON VILLA FC
BURNLEY FC
BK8?.
..PLAY NOW..
awaw
Jr. Member
*
Offline Offline

Activity: 118
Merit: 2


View Profile WWW
September 15, 2018, 05:36:16 AM
 #52

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.


  A I R W (https://airwalletofficial.com/)
mu_enrico (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2310
Merit: 2135


Slots Enthusiast & Expert


View Profile WWW
September 16, 2018, 07:47:58 PM
 #53

<...>
<...>
<...>
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.

███████████████████████
████████████████████
██████████████████
████████████████████
███▀▀▀█████████████████
███▄▄▄█████████████████
██████████████████████
██████████████████████
███████████████████████
█████████████████████
███████████████████
███████████████
████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████▀▀██▀██▀▀█████████
█████████████▄█████████████
███████████████████████
████████████████████████
████████████▄█▄█████████
████████▀▀███████████
██████████████████
▀███████████████████▀
▀███████████████▀
█████████████████████████
O F F I C I A L   P A R T N E R S
▬▬▬▬▬▬▬▬▬▬
ASTON VILLA FC
BURNLEY FC
BK8?.
..PLAY NOW..
mcfly2011
Member
**
Offline Offline

Activity: 420
Merit: 11


View Profile
September 18, 2018, 12:49:56 AM
 #54

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..
mu_enrico (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2310
Merit: 2135


Slots Enthusiast & Expert


View Profile WWW
September 18, 2018, 02:29:04 AM
Last edit: September 18, 2018, 03:01:04 AM by mu_enrico
 #55

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.

███████████████████████
████████████████████
██████████████████
████████████████████
███▀▀▀█████████████████
███▄▄▄█████████████████
██████████████████████
██████████████████████
███████████████████████
█████████████████████
███████████████████
███████████████
████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████▀▀██▀██▀▀█████████
█████████████▄█████████████
███████████████████████
████████████████████████
████████████▄█▄█████████
████████▀▀███████████
██████████████████
▀███████████████████▀
▀███████████████▀
█████████████████████████
O F F I C I A L   P A R T N E R S
▬▬▬▬▬▬▬▬▬▬
ASTON VILLA FC
BURNLEY FC
BK8?.
..PLAY NOW..
mcfly2011
Member
**
Offline Offline

Activity: 420
Merit: 11


View Profile
September 18, 2018, 02:54:53 AM
 #56

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.
oppy16
Full Member
***
Offline Offline

Activity: 504
Merit: 100


View Profile
September 19, 2018, 11:30:04 AM
 #57

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.
mu_enrico (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2310
Merit: 2135


Slots Enthusiast & Expert


View Profile WWW
September 24, 2018, 06:12:27 PM
Last edit: June 09, 2019, 04:02:52 PM by mu_enrico
Merited by dbshck (6), roycilik (1), Husna QA (1), joniboini (1), fcmatt (1), Dermelon (1)
 #58

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.

███████████████████████
████████████████████
██████████████████
████████████████████
███▀▀▀█████████████████
███▄▄▄█████████████████
██████████████████████
██████████████████████
███████████████████████
█████████████████████
███████████████████
███████████████
████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████▀▀██▀██▀▀█████████
█████████████▄█████████████
███████████████████████
████████████████████████
████████████▄█▄█████████
████████▀▀███████████
██████████████████
▀███████████████████▀
▀███████████████▀
█████████████████████████
O F F I C I A L   P A R T N E R S
▬▬▬▬▬▬▬▬▬▬
ASTON VILLA FC
BURNLEY FC
BK8?.
..PLAY NOW..
Dermelon
Sr. Member
****
Offline Offline

Activity: 435
Merit: 400



View Profile
November 09, 2018, 05:36:55 PM
Last edit: November 10, 2018, 05:45:25 PM by Dermelon
Merited by dbshck (6), roycilik (2), mu_enrico (2), Husna QA (2)
 #59

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?
joniboini
Legendary
*
Offline Offline

Activity: 2170
Merit: 1789



View Profile WWW
November 30, 2018, 07:11:14 AM
 #60

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.

███████████████████████████
███████▄████████████▄██████
████████▄████████▄████████
███▀█████▀▄███▄▀█████▀███
█████▀█▀▄██▀▀▀██▄▀█▀█████
███████▄███████████▄███████
███████████████████████████
███████▀███████████▀███████
████▄██▄▀██▄▄▄██▀▄██▄████
████▄████▄▀███▀▄████▄████
██▄███▀▀█▀██████▀█▀███▄███
██▀█▀████████████████▀█▀███
███████████████████████████
.
.Duelbits.
..........UNLEASH..........
THE ULTIMATE
GAMING EXPERIENCE
DUELBITS
FANTASY
SPORTS
████▄▄█████▄▄
░▄████
███████████▄
▐███
███████████████▄
███
████████████████
███
████████████████▌
███
██████████████████
████████████████▀▀▀
███████████████▌
███████████████▌
████████████████
████████████████
████████████████
████▀▀███████▀▀
.
▬▬
VS
▬▬
████▄▄▄█████▄▄▄
░▄████████████████▄
▐██████████████████▄
████████████████████
████████████████████▌
█████████████████████
███████████████████
███████████████▌
███████████████▌
████████████████
████████████████
████████████████
████▀▀███████▀▀
/// PLAY FOR  FREE  ///
WIN FOR REAL
..PLAY NOW..
Pages: « 1 2 [3] 4 5 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!