Profile: 1cf880b6...
another take
what if there was one master key which is only used by specific minimal app. this app publishes list of authorized subkeys. each of these subkey in practice publish content to the pubkey corresponding to the master key.
master key can at any point add or revoke these subkeys by publishing updated list.
my take on key rotation
a new event is published, which announces new key and freezes the existing key making all further events from that key to be ignored by relay
in addition maybe relay should allow delete events from the newly announced key towards the frozen key
#devstr
the thing is like you have relays, like here is > 800
https://api.nostr.watch/v1/online
then any post can be on any relay basically
it may be complex, but at the same time it means you can even have tor relays etc.
its really quite simple what the problem of nostr is
there is wot by default, but when you dont follow anyone, you dont see any content
there is a search bar on every app, but it does not show any results in any app
well that was quite a hallucination.
it seems edit is kind 1010...
can you give example tagging / event structure? i want to find one note that has been edited.
nostr:npub1pm5z0gmw3wcvl3yreuv8y7q3stz2zmzc4jar4ckhk927qdcwjwuq3txe07
does amethyst implement editable notes, and if so how? are kind 1 editable or only 1111?
# here is a vibe coded a hash function with each step broken down and printed in binary
# this is the basis of cryptographic hashing functions
# note how each step is deterministic operation, no single step can make the process secure:
# --> we cannot identify a single thing that makes cryptographic hashing secure
# security is based on assumption that random looking probabilities in output (avalanche effect) makes the hash secure
####
import sys
def print_hash(prefix, hash_val):
text = bin(hash_val)[2:].zfill(16)
print(prefix, ' '.join([text[i:i+8] for i in range(0, len(text), 8)]) + "\n")
def minimal_crypto_hash(data, key=int("1001100110111", 2)):
if isinstance(data, str):
data = data.encode('utf-8')
# Initialize with key
hash_val = key & int("1111111111111111", 2)
print_hash("hash_val k", hash_val)
# Process each byte with nonlinear operations
for byte in data:
print("byte ", "0" * 8, bin(byte)[2:].zfill(8))
print_hash("hash_val s", hash_val)
print("# XOR with input byte")
hash_val ^= byte
print_hash("hash_val a", hash_val)
print("# Nonlinear transformation - multiplication with odd constant 1100101100011")
hash_val = hash_val * int("1100101100011", 2)
print_hash("hash_val b", hash_val)
print("bitwise and 1111111111111111")
hash_val = hash_val & int("1111111111111111", 2)
print_hash("hash_val g", hash_val)
print("# Bit rotation for better mixing, bitwise OR")
hash_val = (hash_val >> 3) | (hash_val << 13)
print_hash("hash_val c", hash_val)
print("# bitwise AND")
hash_val = hash_val & int("1111111111111111", 2)
print_hash("hash_val c", hash_val)
print("# Another nonlinear step, shift hash_val >> 7")
hash_val ^= (hash_val >> 7)
print_hash("hash_val d", hash_val)
print("# multiply by 1010101111001101")
hash_val = hash_val * int("1010101111001101", 2)
print_hash("hash_val e", hash_val)
print("# bitwise and 1111111111111111")
hash_val = hash_val & int("1111111111111111", 2)
print_hash("hash_val h", hash_val)
return hash_val & int("1111111111111111", 2)
final_hash = minimal_crypto_hash(sys.argv[1])
print_hash("hash_val f", final_hash)
print("final_hash", bin(final_hash)[2:], hex(final_hash))
